Further Byteloader tweaks from Enache.
[p5sagit/p5-mst-13.2.git] / ext / B / defsubs_h.PL
index 2129c8c..4c6b4cb 100644 (file)
@@ -2,20 +2,35 @@
 # this file as a template for defsubs.h
 # Extracting defsubs.h (with variable substitutions)
 #!perl
-my ($out) = __FILE__ =~ /(^.*)\.PL/;
-if ($^O eq 'VMS') { ($out) = __FILE__ =~ /^(.+)_PL$/i; }
+my ($out) = __FILE__ =~ /(^.*)\.PL/i;
+$out =~ s/_h$/.h/;
 open(OUT,">$out") || die "Cannot open $file:$!";
-print "Extracting $out . . .\n";
-foreach my $const (qw(AVf_REAL 
+print "Extracting $out...\n";
+print OUT <<"END";
+/*
+ !!! Don't modify this file - it's autogenerated from $0 !!!
+ */
+END
+
+foreach my $const (qw(
+                     AVf_REAL
                      HEf_SVKEY
-                      SVf_IOK SVf_IVisUV SVf_NOK SVf_POK 
-                     SVf_ROK SVp_IOK SVp_POK ))
+                     SVf_READONLY SVTYPEMASK
+                     GVf_IMPORTED_AV GVf_IMPORTED_HV
+                     GVf_IMPORTED_SV GVf_IMPORTED_CV
+                     CVf_CLONE CVf_CLONED CVf_ANON CVf_OLDSTYLE
+                     CVf_UNIQUE CVf_NODEBUG CVf_METHOD CVf_LOCKED
+                     CVf_LVALUE CVf_CONST CVf_WEAKOUTSIDE CVf_ASSERTION
+                      SVpad_OUR SVf_FAKE SVf_IOK SVf_IVisUV SVf_NOK SVf_POK 
+                     SVf_ROK SVp_IOK SVp_POK SVp_NOK SVt_PVGV SVt_PVHV SVs_RMG
+                     ))
  {
   doconst($const);
  }
 foreach my $file (qw(op.h cop.h))
  {
-  open(OPH,"../../$file") || die "Cannot open ../../$file:$!";
+  my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file";
+  open(OPH,"$path") || die "Cannot open $path:$!";
   while (<OPH>)
    {  
     doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/);