Skip to content
  1. 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
  2. Jan 31, 2016
  3. Jan 29, 2016
  4. 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
  5. 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