[patch] make test.valgrind capable of running cachegrind
[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
e678f8d3 25 CVf_ISXSUB
7386c4fb 26 CVf_UNIQUE
27 CVf_WEAKOUTSIDE
28 GVf_IMPORTED_AV
29 GVf_IMPORTED_CV
30 GVf_IMPORTED_HV
31 GVf_IMPORTED_SV
b874ff32 32 HEf_SVKEY
7386c4fb 33 SVTYPEMASK
34 SVf_FAKE
35 SVf_IOK
36 SVf_IVisUV
37 SVf_NOK
38 SVf_POK
39 SVf_READONLY
40 SVf_ROK
41 SVp_IOK
42 SVp_NOK
43 SVp_POK
44 SVpad_OUR
45 SVs_RMG
46 SVs_SMG
47 SVt_PVGV
48 SVt_PVHV
059a8bb7 49 ))
4c1f658f 50 {
51 doconst($const);
52 }
53foreach my $file (qw(op.h cop.h))
54 {
db5fd395 55 my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file";
56 open(OPH,"$path") || die "Cannot open $path:$!";
4c1f658f 57 while (<OPH>)
58 {
59 doconst($1) if (/#define\s+(\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/);
60 }
61 close(OPH);
62 }
63close(OUT);
64
65sub doconst
66{
67 my $sym = shift;
68 my $l = length($sym);
69 print OUT <<"END";
70 newCONSTSUB(stash,"$sym",newSViv($sym));
79cb57f6 71 av_push(export_ok,newSVpvn("$sym",$l));
4c1f658f 72END
73}