diff options
author | Charles Bailey <bailey@newman.upenn.edu> | 1999-09-29 02:21:31 +0000 |
---|---|---|
committer | bailey <bailey@newman.upenn.edu> | 1999-09-29 02:21:31 +0000 |
commit | c529f79d594c53d3968d464c57ac24a21137dd09 (patch) | |
tree | 1a391a0c329976fd8ae88a240da31051b926c681 /ext/B/defsubs_h.PL | |
parent | 424a8fe95d507998fe8750793da1b35bd6d7074b (diff) | |
download | perl-c529f79d594c53d3968d464c57ac24a21137dd09.tar.gz |
resync with mainline
p4raw-id: //depot/vmsperl@4249
Diffstat (limited to 'ext/B/defsubs_h.PL')
-rw-r--r-- | ext/B/defsubs_h.PL | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ext/B/defsubs_h.PL b/ext/B/defsubs_h.PL new file mode 100644 index 0000000000..8dfa3a5fe2 --- /dev/null +++ b/ext/B/defsubs_h.PL @@ -0,0 +1,36 @@ +# 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 +my ($out) = __FILE__ =~ /(^.*)\.PL/; +if ($^O eq 'VMS') { ($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 + HEf_SVKEY + SVf_IOK SVf_IVisUV SVf_NOK SVf_POK + SVf_ROK SVp_IOK SVp_POK )) + { + doconst($const); + } +foreach my $file (qw(op.h cop.h)) + { + open(OPH,"../../$file") || die "Cannot open ../../$file:$!"; + while (<OPH>) + { + doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/); + } + close(OPH); + } +close(OUT); + +sub doconst +{ + my $sym = shift; + my $l = length($sym); + print OUT <<"END"; + newCONSTSUB(stash,"$sym",newSViv($sym)); + av_push(export_ok,newSVpvn("$sym",$l)); +END +} |