Make makedef.pl read "miniperl -V" on Win32
Steve Hay [Thu, 21 Jul 2005 17:01:33 +0000 (17:01 +0000)]
Perhaps other platforms that use makedef.pl also need a similar
change (currently required to pick up PERL_DONT_CREATE_GVSV),
but it also requires them to have minimal canned configs (if they
are using canned configs like Win32 does) and I don't have any
of the affected platforms (AIX, WinCE, OS/2, MacOS Classic and
NetWare) for testing, so play it safe instead

p4raw-id: //depot/perl@25209

makedef.pl

index bc47833..b460bee 100644 (file)
@@ -36,6 +36,22 @@ my %PLATFORM;
 defined $PLATFORM || die "PLATFORM undefined, must be one of: @PLATFORM\n";
 exists $PLATFORM{$PLATFORM} || die "PLATFORM must be one of: @PLATFORM\n";
 
+if ($PLATFORM eq 'win32') {
+       # Add the compile-time options that miniperl was built with to %define.
+       # These are not the same options as perl itself will be built with since
+       # miniperl is built with a canned config (one of the win32/config_H.*)
+       # and none of the BUILDOPT's that are set in the makefiles, but they do
+       # include some #define's that are hard-coded in various source files and
+       # header files and don't include any BUILDOPT's that the user might have
+       # chosen to disable because the canned configs are minimal configs that
+       # don't include any of those options.
+       my $config = `$^X -V`;
+       my($options) = $config =~ /^  Compile-time options: (.*?)^  \S/ms;
+       foreach (split /\s+/, $options) {
+               $define{$_} = 1;
+       }
+}
+
 my %exportperlmalloc =
     (
        Perl_malloc             =>      "malloc",