X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FSDBM_File%2FMakefile.PL;h=1267efc859e6cf8ade78e02dd4691933cf1da9a1;hb=8fdbae25099b33d6035cb6e295622a0580c070a1;hp=c0daa064c722fc2513db153c9f218781f415ef61;hpb=bf99883da2fbc1b4d546abddb96990a37466b881;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/SDBM_File/Makefile.PL b/ext/SDBM_File/Makefile.PL index c0daa06..1267efc 100644 --- a/ext/SDBM_File/Makefile.PL +++ b/ext/SDBM_File/Makefile.PL @@ -1,39 +1,59 @@ 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 'VMS') { - $myextlib = 'sdbm/libsdbm$(LIB_EXT)'; -} else { - $myextlib = 'sdbm/libsdbm$(LIB_EXT)'; -} +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. + MAN3PODS => {}, # Pods will be built by installman. XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'SDBM_File.pm', DEFINE => $define, -# NORECURS => $^O eq 'VMS', -# SKIP => $^O eq 'VMS' ? 'subdirs' : '', # Don't do the subdirs section for VMS + 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 { - ' -$(MYEXTLIB): [.sdbm]descrip.mms + } + else { + ' +$(MYEXTLIB) : [.sdbm]descrip.mms set def [.sdbm] $(MMS) all set def [-]