Skip to content
  1. Mar 08, 2016
  2. Mar 02, 2016
    • Richard Levitte's avatar
      Configure - Get rid of the special thread_cflag, replace with thread_scheme · 9c62a279
      Richard Levitte authored
      
      
      The thread_cflag setting filled a double role, as kinda sorta an
      indicator of thread scheme, and as cflags.  Some configs also added
      lflags and ex_libs for multithreading regardless of if threading would
      be enabled or not.
      
      Instead of this, add threading cflags among in the cflag setting,
      threading lflags in the lflag setting and so on if and only if threads
      are enabled (which they are by default).
      
      Also, for configs where there are no special cflags for threading (the
      VMS configs are of that kind), this makes it possible to still clearly
      mention what thread scheme is used.
      
      The exact value of thread scheme is currently ignored except when it's
      "(unknown)", and thereby only serves as a flag to tell if we know how
      to build for multi-threading in a particular config.  Yet, the
      currently used values are "(unknown)", "pthreads", "uithreads" (a.k.a
      solaris threads) and "winthreads".
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      9c62a279
    • Richard Levitte's avatar
      Configure - get rid of the special debug_ and release_ settings · 8864f0de
      Richard Levitte authored
      
      
      Instead, make the build type ("debug" or "release") available through
      $config{build_type} and let the configs themselves figure out what the
      usual settings (such as "cflags", "lflags" and so on) should be
      accordingly.
      
      The benefit with this is that we can now have debug and release
      variants of any setting, not just those Configure supports, and may
      also involve other factors (the MSVC flags /MD[d] and /MT[d] involve
      both build type and whether threading is enabled or not)
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      8864f0de
    • Richard Levitte's avatar
      Configure - move the addition of the zlib / libz lib to configs · 98fdbce0
      Richard Levitte authored
      
      
      Configure had the Unix centric addition of -lz when linking with zlib
      is enabled, which doesn't work on other platforms.  Therefore, we move
      it to the BASE_unix config template and add corresponding ones in the
      other BASE_* config templates.  The Windows one is probably incomplete,
      but that doesn't matter for the moment, as mk1mf does it's own thing
      anyway.
      
      This required making the %withargs table global, so perl snippets in
      the configs can use it.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      98fdbce0
    • Richard Levitte's avatar
      Configure - Rename BASE to DEFAULTS and add a few inheritable BASEs · d2b2221a
      Richard Levitte authored
      
      
      These BASE templates are intended to hold values that are common for
      all configuration variants for whole families of configurations.
      
      So far, three "families" are identified: Unix, Windows and VMS, mostly
      characterised by the build system they currently use.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      d2b2221a
    • Richard Levitte's avatar
      Make uplink auxiliary source separate from cpuid source · b756967d
      Richard Levitte authored
      
      
      There are cases, for example when configuring no-asm, that the added
      uplink source files got in the way of the cpuid ones.  The best way to
      solve this is to separate the two.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      b756967d
  3. Feb 26, 2016
  4. Feb 19, 2016
    • Richard Levitte's avatar
      Rethink the uplink / applink story · 3a55c92b
      Richard Levitte authored
      
      
      Adding uplink and applink to some builds was done by "magic", the
      configuration for "mingw" only had a macro definition, the Configure
      would react to its presence by adding the uplink source files to
      cpuid_asm_src, and crypto/build.info inherited dance to get it
      compiled, and Makefile.shared made sure applink.o would be
      appropriately linked in.  That was a lot under the hood.
      
      To replace this, we create a few template configurations in
      Configurations/00-base-templates.conf, inherit one of them in the
      "mingw" configuration, the rest is just about refering to the
      $target{apps_aux_src} / $target{apps_obj} in the right places.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      3a55c92b
  5. Feb 16, 2016
  6. Feb 14, 2016
  7. Feb 13, 2016
  8. Feb 11, 2016
  9. Feb 10, 2016
    • Richard Levitte's avatar
      unified build scheme: add a "unified" template for VMS descrip.mms · e84193e4
      Richard Levitte authored
      
      
      As part of this, change util/mkdef.pl to stop adding libraries to
      depend on in its output.  mkdef.pl should ONLY output a symbol
      vector.
      
      Because symbol names can't be longer than 31 characters, we use the
      compiler to shorten those that are longer down to 23 characters plus
      an 8 character CRC.  To make sure users of our header files will pick
      up on that automatically, add the DEC C supported extra headers files
      __decc_include_prologue.h and __decc_include_epilogue.h.
      
      Furthermore, we add a config.com, so VMS people can configure just as
      comfortably as any Unix folks, thusly:
      
          @config
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      e84193e4
    • Richard Levitte's avatar
      Configure et al: treat C defines separately · bcb1977b
      Richard Levitte authored
      
      
      With some compilers, C macros are defined differently on the command
      line than on Unix.  It could be that the flad to define them isn't -D,
      it could also be that they need to be grouped together and not be mixed
      in with the other compiler flags (that's how it's done on VMS, for
      example).
      
      On Unix family platform configurations, we can continue to have macro
      definitions mixed in with the rest of the flags, so the changes in
      Configurations/*.conf are kept to an absolute minimum.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      bcb1977b
    • Andy Polyakov's avatar
  10. Feb 09, 2016
  11. Feb 08, 2016
  12. Feb 01, 2016
    • Richard Levitte's avatar
      unified build scheme: a first introduction · 9fe2bb77
      Richard Levitte authored
      
      
      The "unified" build scheme revolves around small information files,
      build.info, which each describe their own bit of everything that needs
      to be built, using a mini-language described in Configurations/README.
      
      The information in build.info file contain references to source files
      and final result.  Object files are not mentioned at all, they are
      simply from source files.  Because of this, all the *_obj items in
      Configurations/*.conf are renamed to *_asm_src and the files listed
      in the values are change from object files to their corresponding
      source files.  For the sake of the other build schemes, Configure
      generates corresponding *_obj entries in %target.
      
      Furthermore, the "unified" build scheme supports having a build
      directory tree separate from the source directry tree.
      
      All paths in a build.info file is assumed to be relative to its
      location, either within the source tree or within the build tree.
      
      Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
      9fe2bb77
  13. Jan 31, 2016
  14. Jan 29, 2016
  15. Jan 25, 2016
    • Richard Levitte's avatar
      Small cleanups in Configure · f0bd4686
      Richard Levitte authored
      
      
      - Small rearrangement of the TABLE and HASH printouts, and adding
        printout of the "build_scheme" item
      - Renamed "engines_obj" to "padlock_obj"
      - Moved the runs of dofile down...  it didn't quite make sense to have
        that in the middle of a printout
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      f0bd4686
    • Richard Levitte's avatar
      Refactor file writing - Remake Makefile.org into a template · 107b5792
      Richard Levitte authored
      
      
      It is time for Makefile.org to fold into the new regime and have a run
      through util/dofile.pl.  This forces some information out of there and
      into Configure, which isn't a bad thing, it makes Configure
      increasingly the center of build information, which is as it should
      be.
      
      A few extra defaults were needed in the BASE template to get rid of
      warnings about missing values.
      
      Reviewed-by: default avatarViktor Dukhovni <viktor@openssl.org>
      107b5792
  16. Jan 21, 2016
    • Richard Levitte's avatar
      Refactor config - @MK1MF_Builds out, general build scheme in · 88087414
      Richard Levitte authored
      
      
      Time to get rid of @MK1MF_Builds and introduce a more flexible
      'build_scheme' configuration key.  Its value may be a string or an
      array of strings, meaning we need to teach resolve_config how to
      handle ARRAY referenses.
      
      The build scheme is a word that selects a function to create the
      appropriate result files for a certain configuration.  Currently valid
      build schemes aer "mk1mf" and "unixmake", the plan is however to add
      at least one other for a more universal build scheme.
      
      Incidently, this also adds the functions 'add' and 'add_before', which
      can be used in a configuration, so instead of having to repeatedly
      write a sub like this:
      
      	key1 => sub { join(" ", @_, "myvalues"); },
      	key2 => sub { join(" ", "myvalues", @_); },
      
      one could write this:
      
      	key1 => add(" ", "myvalues"),
      	key2 => add_before(" ", "myvalues"),
      
      The good point with 'add' and 'add_before' is that they handle
      inheritances where the values are a misture of scalars and ARRAYs.  If
      there are any ARRAY to be found, the resulting value will be an ARRAY,
      otherwise it will be a scalar with all the incoming valued joined
      together with the separator given as first argument to add/add_before.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      88087414
    • Richard Levitte's avatar
      Refactor config - move templates and template docs to Configurations · 9e0724a1
      Richard Levitte authored
      
      
      Move the documentation of the target configuration form to
      Configurations/README.
      
      Move initial assembler object templates to
      Configurations/00-BASE-templates.conf.
      
      Furthermore, remove all variables containing the names of the
      non-assembler object files and make a BASE template of them instead.
      The  values from this templates are used as defaults as is.  The
      remaining manipulation of data when assembler modules are used is done
      only when $no_asm is false.
      
      While doing this, clean out some other related variables that aren't
      used anywhere.
      
      Also, we had to move the resolution of the chosen target a bit, or the
      function 'asm' would never catch a true $no_asm...  this hasn't
      mattered before we've moved it all to the BASE template, but now it
      does.
      
      At the same time, add the default for the 'unistd' key to the BASE
      template.
      
      Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
      9e0724a1