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