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=8fc9411768a0d9f3cf5cc6b86303de9ada7cf41e;hpb=1adb159c9e6f4ac956dc944251da05cb1fe521ec;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/SDBM_File/Makefile.PL b/ext/SDBM_File/Makefile.PL index 8fc9411..1267efc 100644 --- a/ext/SDBM_File/Makefile.PL +++ b/ext/SDBM_File/Makefile.PL @@ -1,23 +1,62 @@ 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. -WriteMakefile( - NAME => 'SDBM_File', - MYEXTLIB => 'sdbm/libsdbm$(LIB_EXT)', - MAN3PODS => ' ', # Pods will be built by installman. - XSPROTOARG => '-noprototypes', # XXX remove later? - VERSION_FROM => 'SDBM_File.pm', -); +# 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( + NAME => 'SDBM_File', + MYEXTLIB => $myextlib, + MAN3PODS => {}, # Pods will be built by installman. + XSPROTOARG => '-noprototypes', # XXX remove later? + VERSION_FROM => 'SDBM_File.pm', + DEFINE => $define, + PERL_MALLOC_OK => 1, + ); sub MY::postamble { + 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 + cd sdbm && $(MAKE) all '; + } + else { + ' +$(MYEXTLIB) : [.sdbm]descrip.mms + set def [.sdbm] + $(MMS) all + set def [-] +'; + } } -