Now that Configure doesn't produce tools/c_rehash, mk1mf has to do it
authorRichard Levitte <levitte@openssl.org>
Sun, 24 Jan 2016 16:07:27 +0000 (17:07 +0100)
committerRichard Levitte <levitte@openssl.org>
Mon, 25 Jan 2016 17:36:08 +0000 (18:36 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
util/mk1mf.pl
util/pl/BC-32.pl
util/pl/VC-32.pl
util/pl/unix.pl

index 6cece33..98e44b0 100755 (executable)
@@ -751,9 +751,10 @@ headers: \$(HEADER)
 
 lib: \$(LIBS_DEP) \$(E_SHLIB)
 
-exe: apps testapps
-apps: \$(BIN_D)$o\$(E_EXE)$exep
+exe: apps tools testapps
+apps: \$(BIN_D)$o\$(E_EXE)$exep \$(BIN_D)${o}CA.pl
 testapps: \$(T_EXE)
+tools: \$(BIN_D)${o}c_rehash
 
 install: all
        \$(MKDIR) \"\$(INSTALLTOP)\"
@@ -778,7 +779,7 @@ reallyclean:
 
 EOF
 
-$rules .= &do_rehash_rule("rehash.time", "certs apps");
+$rules .= &do_rehash_rule("rehash.time", "certs/demo apps tools");
 $rules .= &do_test_rule("test", "rehash.time", "run_tests.pl");
 
 my $platform_cpp_symbol = "MK1MF_PLATFORM_$platform";
@@ -807,7 +808,7 @@ if (open(IN,"crypto/buildinf.h"))
        }
 
 open (OUT,">>crypto/buildinf.h") || die "Can't open buildinf.h";
-printf OUT <<EOF;
+printf OUT <<"EOF";
 #ifdef $platform_cpp_symbol
   /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
   #define CFLAGS "compiler: $cc $cflags"
@@ -998,6 +999,9 @@ if ($fips)
 
 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)", ($fips && !$shlib) ? 2 : 0);
 
+$rules.=&do_dofile_rule("\$(BIN_D)","c_rehash","tools/c_rehash.in");
+$rules.=&do_dofile_rule("\$(BIN_D)","CA.pl","apps/CA.pl.in");
+
 print $defs;
 
 if ($platform eq "linux-elf") {
@@ -1327,6 +1331,7 @@ sub do_copy_rule
        local($to,$files,$p)=@_;
        local($ret,$_,$n,$pp);
        
+
        $files =~ s/\//$o/g if $o ne '/';
        foreach (split(/\s+/,$files))
                {
@@ -1339,6 +1344,18 @@ sub do_copy_rule
        return($ret);
        }
 
+sub do_dofile_rule
+       {
+       (my $to, my $file, my $tmpl) = @_;
+
+       $file =~ s|/|$o|g if $o ne '/';
+       return <<"EOF";
+$to${o}$file: $tmpl
+       \$(PERL) "-I." "-Mconfigdata" util/dofile.pl "$tmpl" > "$to${o}$file.new"
+       mv "$to${o}$file.new" "$to${o}$file"
+EOF
+       }
+
 # Options picked up from the OPTIONS line in the top level Makefile
 # generated by Configure.
 
index 3b2b854..36ad682 100644 (file)
@@ -100,7 +100,8 @@ sub do_rehash_rule {
 $target: $deps
        set OPENSSL=\$(BIN_D)${o}openssl.exe
        set OPENSSL_DEBUG_MEMORY=on
-       \$(PERL) tools/c_rehash certs/demo
+       \$(PERL) \$(BIN_D)${o}c_rehash certs/demo
+       echo off > $target
 EOF
     return $ret
 }
index 8cb4835..73160e9 100644 (file)
@@ -306,7 +306,7 @@ sub do_rehash_rule {
 $target: $deps
        set OPENSSL=\$(BIN_D)${o}openssl.exe
        set OPENSSL_DEBUG_MEMORY=on
-       \$(PERL) tools/c_rehash certs/demo
+       \$(PERL) \$(BIN_D)${o}c_rehash certs/demo
        echo off > $target
 EOF
     return $ret
index c1fa1ff..c1b2c26 100644 (file)
@@ -193,7 +193,7 @@ $target: $deps
        (OPENSSL="`pwd`/util/opensslwrap.sh"; \\
        OPENSSL_DEBUG_MEMORY=on; \\
        export OPENSSL OPENSSL_DEBUG_MEMORY; \\
-       \$(PERL) tools/c_rehash certs/demo; \\
+       \$(PERL) \$(BIN_D)${o}c_rehash certs/demo; \\
        touch $target)
 EOF
     return $ret