[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Thu Feb 11 15:49:06 UTC 2016


The branch master has been updated
       via  e737d7b197e153775735f700cd6c31cb55d803de (commit)
      from  d20bb611d90df0dc3561a6972ba6bf0e3c65b3e5 (commit)


- Log -----------------------------------------------------------------
commit e737d7b197e153775735f700cd6c31cb55d803de
Author: Richard Levitte <levitte at openssl.org>
Date:   Thu Feb 11 15:22:27 2016 +0100

    Unified build: Keep track of generated header files
    
    If someone runs a mixed unixmake / unified environment (the unified
    build tree would obviously be out of the source tree), the unified
    build will pick up on the unixmake crypto/buildinf.h because of
    assumptions made around this sort of declaration (found in
    crypto/build.info):
    
        DEPENDS[cversion.o]=buildinf.h
    
    The assumption was that if such a header could be found in the source
    tree, that was the one to depend on, otherwise it would assume it
    should be in the build tree.
    
    This change makes sure that sort of mix-up won't happen again.
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 Configure | 33 ++++++++++++++++++++++-----------
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/Configure b/Configure
index f74355c..f617df5 100755
--- a/Configure
+++ b/Configure
@@ -395,6 +395,15 @@ my @default_depdefines =
 # We will collect such requests in @experimental.
 # To avoid accidental use of experimental features, applications will have to use -DOPENSSL_EXPERIMENTAL_FOO.
 
+my @generated_headers = (
+    "include/openssl/opensslconf.h",
+    "crypto/include/internal/bn_conf.h"
+    );
+
+my @generated_by_make_headers = (
+    "crypto/buildinf.h"
+    );
+
 
 my $no_sse2=0;
 
@@ -1481,9 +1490,15 @@ EOF
             foreach (@{$depends{$dest}}) {
                 my $d = cleanfile($sourced, $_, $blddir);
 
-                # If it isn't found in the source, let's assume it's generated
-                # and that the Makefile template has the lines
-                if (! -f $d) {
+                # If we know it's generated, or assume it is because we can't
+                # find it in the source tree, we set file we depend on to be
+                # in the build tree rather than the source tree, and assume
+                # and that there are lines to build it in a BEGINRAW..ENDRAW
+                # section or in the Makefile template.
+                if (! -f $d
+                    || !(grep { $d eq $_ }
+                         map { cleanfile($srcdir, $_, $blddir) }
+                         (@generated_headers, @generated_by_make_headers))) {
                     $d = cleanfile($buildd, $_, $blddir);
                 }
                 # Take note if the file to depend on is being renamed
@@ -1697,14 +1712,10 @@ print "THIRTY_TWO_BIT mode\n" if $config{b32};
 print "BN_LLONG mode\n" if $config{bn_ll};
 print "RC4 uses $config{rc4_int}\n" if $config{rc4_int} != $def_int;
 
-mkpath(catdir($blddir, "include/openssl"));
-run_dofile(catfile($blddir, "include/openssl/opensslconf.h"),
-           catfile($srcdir, "include/openssl/opensslconf.h.in"));
-
-mkpath(catdir($blddir, "crypto/include/internal"));
-foreach my $alg ( 'bn' ) {
-    run_dofile(catfile($blddir, "crypto/include/internal/${alg}_conf.h"),
-               catfile($srcdir, "crypto/include/internal/${alg}_conf.h.in"));
+for (@generated_headers) {
+    mkpath(catdir($blddir, dirname($_)));
+    run_dofile(catfile($blddir, $_),
+               catfile($srcdir, $_.".in"));
 }
 
 ###


More information about the openssl-commits mailing list