Define WINDOWS in all Mingw32 cases.
[openssl.git] / util / mk1mf.pl
index 90f2dfca06cf0d46eba67d82f48f75f6586b7d5e..6fbf3ceca6a4aa613834b89e269fd64c86e8a724 100755 (executable)
@@ -401,6 +401,42 @@ vclean:
        \$(RM) \$(OUT_D)$o*.*
 
 EOF
+    
+my $platform_cpp_symbol = "MK1MF_PLATFORM_$platform";
+$platform_cpp_symbol =~ s/-/_/g;
+if (open(IN,"crypto/buildinf.h"))
+       {
+       # Remove entry for this platform in existing file buildinf.h.
+
+       my $old_buildinf_h = "";
+       while (<IN>)
+               {
+               if (/^\#ifdef $platform_cpp_symbol$/)
+                       {
+                       while (<IN>) { last if (/^\#endif/); }
+                       }
+               else
+                       {
+                       $old_buildinf_h .= $_;
+                       }
+               }
+       close(IN);
+
+       open(OUT,">crypto/buildinf.h") || die "Can't open buildinf.h";
+       print OUT $old_buildinf_h;
+       close(OUT);
+       }
+
+open (OUT,">>crypto/buildinf.h") || die "Can't open buildinf.h";
+printf OUT <<EOF;
+#ifdef $platform_cpp_symbol
+  /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
+  #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 +766,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";