Commit | Line | Data |
---|---|---|
918c0b2d CB |
1 | # Do not remove the following line; MakeMaker relies on it to identify |
2 | # this file as a template for defsubs.h | |
3 | # Extracting defsubs.h (with variable substitutions) | |
4c1f658f | 4 | #!perl |
32882678 | 5 | my ($out) = __FILE__ =~ /(^.*)\.PL/i; |
93804878 | 6 | $out =~ s/_h$/.h/; |
4c1f658f | 7 | open(OUT,">$out") || die "Cannot open $file:$!"; |
cc50ac46 | 8 | print "Extracting $out...\n"; |
059a8bb7 JH |
9 | foreach my $const (qw( |
10 | AVf_REAL | |
b874ff32 | 11 | HEf_SVKEY |
059a8bb7 JH |
12 | SVf_READONLY SVTYPEMASK |
13 | GVf_IMPORTED_AV GVf_IMPORTED_HV | |
14 | GVf_IMPORTED_SV GVf_IMPORTED_CV | |
b326da91 | 15 | CVf_METHOD CVf_LOCKED CVf_LVALUE CVf_CONST |
ce4e655d | 16 | SVpad_OUR SVf_IOK SVf_IVisUV SVf_NOK SVf_POK |
059a8bb7 JH |
17 | SVf_ROK SVp_IOK SVp_POK SVp_NOK |
18 | )) | |
4c1f658f NIS |
19 | { |
20 | doconst($const); | |
21 | } | |
22 | foreach my $file (qw(op.h cop.h)) | |
23 | { | |
db5fd395 CN |
24 | my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file"; |
25 | open(OPH,"$path") || die "Cannot open $path:$!"; | |
4c1f658f NIS |
26 | while (<OPH>) |
27 | { | |
28 | doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/); | |
29 | } | |
30 | close(OPH); | |
31 | } | |
32 | close(OUT); | |
33 | ||
34 | sub doconst | |
35 | { | |
36 | my $sym = shift; | |
37 | my $l = length($sym); | |
38 | print OUT <<"END"; | |
39 | newCONSTSUB(stash,"$sym",newSViv($sym)); | |
79cb57f6 | 40 | av_push(export_ok,newSVpvn("$sym",$l)); |
4c1f658f NIS |
41 | END |
42 | } |