diff options
-rw-r--r-- | CHANGES | 7 | ||||
-rwxr-xr-x | Configure | 2 | ||||
-rw-r--r-- | crypto/.cvsignore | 1 | ||||
-rw-r--r-- | crypto/Makefile.ssl | 4 | ||||
-rw-r--r-- | crypto/cversion.c | 7 | ||||
-rwxr-xr-x | util/mk1mf.pl | 36 |
6 files changed, 51 insertions, 6 deletions
@@ -30,9 +30,10 @@ *) The -DPLATFORM="\"$(PLATFORM)\"" definition and the similar -DCFLAGS=... (both in crypto/Makefile.ssl for use by crypto/cversion.c) caused problems not only on Windows, but also on some Unix platforms. - To avoid problematic command lines, these definitions are now made - in auto-generated file crypto/buildinf.h, which also defines DATE - and thus replaces crypto/date.h. + To avoid problematic command lines, these definitions are now in an + auto-generated file, which also defines DATE and thus replaces + crypto/date.h. Standard "make" builds use crypto/buildinf.h, + mk1mf.pl builds use crypto/mk1mfinf.h (created by mk1mf.pl). [Bodo Moeller] *) MIPS III/IV assembler module is reimplemented. @@ -710,11 +710,13 @@ if($IsWindows) { printf OUT <<EOF; /* auto-generated by Configure for crypto/cversion.c */ /* (Unix builds: auto-generated by crypto/Makefile.ssl) */ +/* mk1mf builds use mk1mfinf.h instead, so this file is probably never needed */ #define CFLAGS "$cc $cflags" #define PLATFORM "$target" EOF printf OUT "#define DATE \"%s\"\n", scalar gmtime(); close(OUT); + system "perl crypto/objects/obj_dat.pl <crypto/objects/objects.h >crypto/objects/obj_dat.h"; } else { (system "make -f Makefile.ssl PERL=\'$perl\' links") == 0 or exit $?; diff --git a/crypto/.cvsignore b/crypto/.cvsignore index 6b86a0a8dc..b8d2cb1da2 100644 --- a/crypto/.cvsignore +++ b/crypto/.cvsignore @@ -1,4 +1,5 @@ lib buildinf.h +mk1mfinf.h opensslconf.h Makefile.save diff --git a/crypto/Makefile.ssl b/crypto/Makefile.ssl index d5e48d5c41..c27a69d5e1 100644 --- a/crypto/Makefile.ssl +++ b/crypto/Makefile.ssl @@ -51,7 +51,7 @@ all: buildinf.h lib subdirs buildinf.h: ../Makefile.ssl ( echo "/* auto-generated by crypto/Makefile.ssl for crypto/cversion.c */"; \ - echo "/* (Windows builds: auto-generated by Configure) */"; \ + echo "/* (mk1mf builds use mk1mfinf.h instead) */"; \ echo "#define CFLAGS \"$(CC) $(CFLAG)\""; \ echo "#define PLATFORM \"$(PLATFORM)\""; \ echo "#define DATE \"`date`\"" ) >buildinf.h @@ -129,7 +129,7 @@ depend: done; clean: - rm -f buildinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff + rm -f buildinf.h mk1mfinf.h *.o */*.o *.obj lib tags core .pure .nfs* *.old *.bak fluff @for i in $(SDIRS) ;\ do \ (cd $$i; echo "making clean in crypto/$$i..."; \ diff --git a/crypto/cversion.c b/crypto/cversion.c index 72af476fbe..428def3081 100644 --- a/crypto/cversion.c +++ b/crypto/cversion.c @@ -60,7 +60,12 @@ #include <string.h> #include "cryptlib.h" #include <openssl/crypto.h> -#include "buildinf.h" + +#ifdef MK1MF_BUILD +# include "mk1mfinf.h" +#else +# include "buildinf.h" +#endif const char *SSLeay_version(int t) { diff --git a/util/mk1mf.pl b/util/mk1mf.pl index 90f2dfca06..4647fc7a03 100755 --- a/util/mk1mf.pl +++ b/util/mk1mf.pl @@ -401,6 +401,41 @@ vclean: \$(RM) \$(OUT_D)$o*.* EOF + +my $platform_cpp_symbol = "MK1MF_PLATFORM_$platform"; +$platform_cpp_symbol =~ s/-/_/; +if (open(IN,"crypto/mk1mfinf.h")) + { + # Remove entry for this platform in existing file mk1mfinf.h. + + my $old_mk1mfinf_h = ""; + while (<IN>) + { + if (/^\#ifdef $platform_cpp_symbol$/) + { + while (<IN>) { last if (/^\#endif/); } + } + else + { + $old_mk1mfinf_h .= $_; + } + } + + open(OUT,">crypto/mk1mfinf.h") || die "Can't open mk1mfinf.h"; + print OUT $old_mk1mfinf_h; + } + +open (OUT,">>crypto/mk1mfinf.h") || die "Can't open mk1mfinf.h"; +printf OUT <<EOF; +#ifdef $platform_cpp_symbol + /* auto-generated and updated by util/mk1mf.pl for crypto/cversion.c */ + /* (used in place of crypto/buildinf.h by mk1mf builds) */ + #define CFLAGS "$cc $cflags" + #define PLATFORM "$platform" +EOF +printf OUT " #define DATE \"%s\"\n", scalar gmtime(); +printf OUT "#endif\n"; +close(OUT); ############################################# # We parse in input file and 'store' info for later printing. @@ -730,6 +765,7 @@ sub cc_compile_target local($target,$source,$ex_flags)=@_; local($ret); + $ex_flags.=" -DMK1MF_BUILD -D$platform_cpp_symbol" if ($source =~ /cversion/); $target =~ s/\//$o/g if $o ne "/"; $source =~ s/\//$o/g if $o ne "/"; $ret ="$target: \$(SRC_D)$o$source\n\t"; |