# 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;
foreach my $const (qw(
CVf_ANON
- CVf_ASSERTION
CVf_CLONE
CVf_CLONED
CVf_CONST
doconst(AVf_REAL);
}
-foreach my $file (qw(op.h cop.h))
+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);
}