Wrap the macro arguments for ck_proto in ().
[p5sagit/p5-mst-13.2.git] / ext / SDBM_File / Makefile.PL
index c0daa06..1267efc 100644 (file)
@@ -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 [-]