Commit | Line | Data |
918c0b2d |
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"; |
651aa52e |
9 | print OUT <<"END"; |
10 | /* |
11 | !!! Don't modify this file - it's autogenerated from $0 !!! |
12 | */ |
13 | END |
14 | |
059a8bb7 |
15 | foreach my $const (qw( |
7386c4fb |
16 | CVf_ANON |
17 | CVf_ASSERTION |
18 | CVf_CLONE |
19 | CVf_CLONED |
20 | CVf_CONST |
21 | CVf_LOCKED |
22 | CVf_LVALUE |
23 | CVf_METHOD |
24 | CVf_NODEBUG |
7386c4fb |
25 | CVf_UNIQUE |
26 | CVf_WEAKOUTSIDE |
27 | GVf_IMPORTED_AV |
28 | GVf_IMPORTED_CV |
29 | GVf_IMPORTED_HV |
30 | GVf_IMPORTED_SV |
b874ff32 |
31 | HEf_SVKEY |
7386c4fb |
32 | SVTYPEMASK |
33 | SVf_FAKE |
34 | SVf_IOK |
35 | SVf_IVisUV |
36 | SVf_NOK |
37 | SVf_POK |
38 | SVf_READONLY |
39 | SVf_ROK |
40 | SVp_IOK |
41 | SVp_NOK |
42 | SVp_POK |
43 | SVpad_OUR |
44 | SVs_RMG |
45 | SVs_SMG |
46 | SVt_PVGV |
47 | SVt_PVHV |
059a8bb7 |
48 | )) |
4c1f658f |
49 | { |
50 | doconst($const); |
51 | } |
52 | foreach my $file (qw(op.h cop.h)) |
53 | { |
db5fd395 |
54 | my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file"; |
55 | open(OPH,"$path") || die "Cannot open $path:$!"; |
4c1f658f |
56 | while (<OPH>) |
57 | { |
58 | doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/); |
59 | } |
60 | close(OPH); |
61 | } |
62 | close(OUT); |
63 | |
64 | sub doconst |
65 | { |
66 | my $sym = shift; |
67 | my $l = length($sym); |
68 | print OUT <<"END"; |
69 | newCONSTSUB(stash,"$sym",newSViv($sym)); |
79cb57f6 |
70 | av_push(export_ok,newSVpvn("$sym",$l)); |
4c1f658f |
71 | END |
72 | } |