X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FSDBM_File%2FMakefile.PL;h=1267efc859e6cf8ade78e02dd4691933cf1da9a1;hb=46471bde41ad0777edf7b89818df6730e8b55c20;hp=749478551fe0cf294fafc167d6bf1735bb559d87;hpb=ad7e816fc202b9506cd8e0633196331ccf37f264;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/SDBM_File/Makefile.PL b/ext/SDBM_File/Makefile.PL index 7494785..1267efc 100644 --- a/ext/SDBM_File/Makefile.PL +++ b/ext/SDBM_File/Makefile.PL @@ -1,12 +1,17 @@ use ExtUtils::MakeMaker; +use Config; # The existence of the ./sdbm/Makefile.PL file causes MakeMaker # to automatically include Makefile code for the targets # config, all, clean, realclean and sdbm/Makefile # which perform the corresponding actions in the subdirectory. +# Work around: Darwin ppc64 bug ignores archive contents when building bundles + $define = ($^O eq 'MSWin32') ? '-DMSDOS' : ''; if ($^O eq 'MSWin32') { $myextlib = 'sdbm\\libsdbm$(LIB_EXT)'; } +elsif ($^O eq 'darwin' && $Config{'ldflags'} =~/-arch ppc64/) { + $myextlib = '-all_load sdbm/libsdbm$(LIB_EXT)'; } else { $myextlib = 'sdbm/libsdbm$(LIB_EXT)'; } WriteMakefile( @@ -16,16 +21,38 @@ WriteMakefile( XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'SDBM_File.pm', DEFINE => $define, + PERL_MALLOC_OK => 1, ); sub MY::postamble { - if ($^O ne 'VMS') { + if ($^O =~ /MSWin32/ && !defined($ENV{SYSTEMROOT})) { + if ($Config{'make'} =~ /dmake/i) { + # dmake-specific + return <<'EOT'; +$(MYEXTLIB): sdbm/Makefile +@[ + cd sdbm + $(MAKE) all + cd .. +] +EOT + } elsif ($Config{'make'} =~ /nmake/i) { + # + return <<'EOT'; +$(MYEXTLIB): sdbm/Makefile + cd sdbm + $(MAKE) all + cd .. +EOT + } +} elsif ($^O ne 'VMS') { ' $(MYEXTLIB): sdbm/Makefile cd sdbm && $(MAKE) all '; - } else { - ' + } + else { + ' $(MYEXTLIB) : [.sdbm]descrip.mms set def [.sdbm] $(MMS) all