[openssl-dev] Upcoming build system change

Joey Yandle dragon at dancingdragon.be
Sat Jan 16 06:13:20 UTC 2016


I tried building your branch on windows, but the windows Configure 
targets appear to be missing:

c:\src\openssl>perl Configure VC-WIN64A
Configuring OpenSSL version 1.1.0-pre3-dev (0x0x10100003L)
...
Configuring for VC-WIN64A
Warning! target VC-WIN64A doesn't exist!
Can't use an undefined value as an ARRAY reference at Configure line 825.

I verified that the windows targets are present in 
Configurations/10-main.conf:

     "VC-WIN64A" => {
         inherit_from     => [ "VC-common", asm("x86_64_asm") ],
         cflags           => add(" ", "-DUNICODE -D_UNICODE"),
         sys_id           => "WIN64A",
         bn_ops           => "SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT 
EXPORT_VAR_AS_FN",
         bn_obj           => sub { my $r=join(" ", at _); 
$r=~s/x86_64\-gcc/bn_asm/; $r; },
         perlasm_scheme   => "auto",
     build_scheme     => [ "mk1mf", "VC-W64" ],
     },

Am I doing something wrong?  Your email didn't actually say anything 
about the windows build...

cheers,

Joey

On 1/14/2016 12:59 PM, Richard Levitte wrote:
> Hi,
>
> there's an effort going on to revamp the build system for future
> OpenSSL, coining it as "unified".  The intention is to have one and
> the same base of information for all platforms, instead of having to
> maintain one set of files for Unixly platforms, one makefile generator
> for Windowsy platforms, and one pile of scripts with a serious case of
> bit rot for VMS.
>
> In particular, this is of interest for the VMS folks, as it's the only
> currently workable build system for upcoming version 1.1.
>
>
> Finding it
> ==========
>
> For now, this change is available on here:
>
>      https://github.com/levitte/openssl/tree/refactor-build
>
> which is git repo https://github.com/levitte/openssl.git, branch
> refactor-build.
>
>
> Using it
> ========
>
> Requirements
> ------------
>
> On all platforms, it requires
>
> - Perl!  Reports tell me that version 5.10.1 works fine but might need
>    some extra perl modules (Test::More and possibly others.  Feedback
>    welcome!).  Unix usually has it installed or easy to find.  For VMS,
>    there's an install kit on sourceforge
>    (https://sourceforge.net/projects/vmsperlkit/files/Archive/), and
>    Windows, we've always recommended ActiveState Perl
>    (http://www.activestate.com/ActivePerl).
> - The Perl module Text::Template, which is the driver behind the
>    generation Makefile and other files.  This branch relies quite
>    heavily on templates.
>
> On Unix, it requires
>
> - the usual developmemt stuff.  cc, as and make would be the really
>    bare minimum, and maybe I'm forgetting something, but what is
>    usually considered the normal tool chain should work out.
>
> On VMS, it requires
>
> - DEC C...  It's called HP C these days and might be called something
>    else again when VSI starts shipping.  It needs to be recent enough
>    to support the qualifiers /NAMES=(AS_IS,SHORTENED) and /REPOSITORY
>    (I welcome feedback on which the minimum version for this is!)
> - DECset, at the very least MMS.  Alternatively, MMK can be used if
>    you can find it (if anyone knows of a place that has it for sure,
>    feedback is welcome!)
> - Of course, the rest of the tool chain, but that comes with the
>    operating system, no worries there.
>
> [I certainly hope I didn't forget anything, but if I did, feedback is
> welcome!]
>
> Config and build
> ----------------
>
> For Unix users, who are used to the usual generation of a top Makefile
> from Makefile.org...  that is, Makefile.in since recently, this it
> still the default, but you can always use the unified build as an
> alternative by adding the flag --unified, like so:
>
>      ./config --unified
>      make
>      make test
>      # There is no install target yet, it's coming up!
>
> You will get One Top Makefile that does everything.  It will not touch
> any other Makefile.
>
>
> For VMS users, the unified build is the only one available in this
> branch, the old scripts are simply gone.  Instead, you configure just
> like you would on any other platform (well, almost, there isn't any
> config.com yet, so you'll have to jump directly to the Configure
> script), and that will generate a descrip.mms:
>
>      perl Configure vms-alpha	! or vms-ia64
>      mms
>      mms test
>      ! There is no install target yet.
>      ! As a matter of fact, I'd like to talk about exactly where it
>      ! should install.  Let's talk!
>
>
> Features
> ========
>
> There are a few features in the unified build that are worth testing:
>
> 1. Out of source tree builds!  It's perfectly possible to do this:
>
>      mkdir ../build
>      cd ../build
>      perl ../openssl-src/config
>      make
>      make test
>
>     (and yes, on VMS as well)
>
> 2. The generated Makefile supports parallell make:
>
>      make -j9
>
>     (carefull, though, don't try the silliness I tried: make -j9 clean all)
>
>
> Future
> ======
>
> I plan on making the generated Makefile / descrip.mms full featured,
> which means at least adding install targets.  Then, on to a template
> for a Windows makefile.
>
>
> =================
> Feedback welcome!
> =================
>
>
> Cheers,
> Richard
>


More information about the openssl-dev mailing list