Goodbye PERL_XSUB_OLDSTYLE.
[p5sagit/p5-mst-13.2.git] / ext / B / defsubs_h.PL
CommitLineData
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 5my ($out) = __FILE__ =~ /(^.*)\.PL/i;
93804878 6$out =~ s/_h$/.h/;
4c1f658f 7open(OUT,">$out") || die "Cannot open $file:$!";
cc50ac46 8print "Extracting $out...\n";
651aa52e 9print OUT <<"END";
10/*
11 !!! Don't modify this file - it's autogenerated from $0 !!!
12 */
13END
14
059a8bb7 15foreach 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 }
52foreach 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 }
62close(OUT);
63
64sub 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 71END
72}