Eviscerate README.macos to match the state of the world
[p5sagit/p5-mst-13.2.git] / ext / B / defsubs_h.PL
index 2bc0a1f..684ca26 100644 (file)
@@ -1,7 +1,9 @@
 # Do not remove the following line; MakeMaker relies on it to identify
 # this file as a template for defsubs.h
 # Extracting defsubs.h (with variable substitutions)
-#!perl
+#!perl -w
+use File::Spec;
+my (undef, $headerpath) = @ARGV;
 my ($out) = __FILE__ =~ /(^.*)\.PL/i;
 $out =~ s/_h$/.h/;
 unlink $out if -l $out;
@@ -15,15 +17,12 @@ END
 
 foreach my $const (qw(
                      CVf_ANON
-                     CVf_ASSERTION
                      CVf_CLONE
                      CVf_CLONED
                      CVf_CONST
-                     CVf_LOCKED
                      CVf_LVALUE
                      CVf_METHOD
                      CVf_NODEBUG
-                     CVf_ISXSUB
                      CVf_UNIQUE
                      CVf_WEAKOUTSIDE
                      GVf_IMPORTED_AV
@@ -60,13 +59,28 @@ if ($] < 5.009) {
     doconst(OPpPAD_STATE);
 }
 
-foreach my $file (qw(op.h cop.h))
+if ($] >= 5.009) {
+    # Constant not present in 5.8.x
+    doconst(CVf_ISXSUB);
+} else {
+    # Constant not present after 5.8.x
+    doconst(AVf_REAL);
+}  
+
+if ($] < 5.011) {
+    # Constant not present after 5.10.x
+    doconst(CVf_LOCKED);
+}
+
+foreach my $tuple (['op.h'],['cop.h'],['regexp.h','RXf_'])
  {
-  my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file";
+  my $file = $tuple->[0];
+  my $pfx = $tuple->[1] || '';
+  my $path = File::Spec->catfile($headerpath, $file);
   open(OPH,"$path") || die "Cannot open $path:$!";
   while (<OPH>)
    {  
-    doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/);
+    doconst($1) if (/#define\s+($pfx\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/);
    }  
   close(OPH);
  }