Remove support for assertions and -A
[p5sagit/p5-mst-13.2.git] / ext / B / defsubs_h.PL
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)
4 #!perl
5 my ($out) = __FILE__ =~ /(^.*)\.PL/i;
6 $out =~ s/_h$/.h/;
7 unlink $out if -l $out;
8 open(OUT,">$out") || die "Cannot open $file:$!";
9 print "Extracting $out...\n";
10 print OUT <<"END";
11 /*
12  !!! Don't modify this file - it's autogenerated from $0 !!!
13  */
14 END
15
16 foreach my $const (qw(
17                       CVf_ANON
18                       CVf_CLONE
19                       CVf_CLONED
20                       CVf_CONST
21                       CVf_LOCKED
22                       CVf_LVALUE
23                       CVf_METHOD
24                       CVf_NODEBUG
25                       CVf_UNIQUE
26                       CVf_WEAKOUTSIDE
27                       GVf_IMPORTED_AV
28                       GVf_IMPORTED_CV
29                       GVf_IMPORTED_HV
30                       GVf_IMPORTED_SV
31                       HEf_SVKEY
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
48                       PAD_FAKELEX_ANON
49                       PAD_FAKELEX_MULTI
50                       ))
51  {
52   doconst($const);
53  }
54
55 if ($] < 5.009) {
56     # This is only present in 5.10, but it's useful to B::Deparse to be able
57     # to import a dummy value from B
58     doconst(OPpPAD_STATE);
59 }
60
61 if ($] >= 5.009) {
62     # Constant not present in 5.8.x
63     doconst(CVf_ISXSUB);
64 } else {
65     # Constant not present after 5.8.x
66     doconst(AVf_REAL);
67 }  
68
69 foreach my $tuple (['op.h'],['cop.h'],['regexp.h','RXf_'])
70  {
71   my $file = $tuple->[0];
72   my $pfx = $tuple->[1] || '';
73   my $path = $^O eq 'MacOS' ? ":::$file" : "../../$file";
74   open(OPH,"$path") || die "Cannot open $path:$!";
75   while (<OPH>)
76    {  
77     doconst($1) if (/#define\s+($pfx\w+)\s+([\(\)\|\dx]+)\s*(?:$|\/\*)/);
78    }  
79   close(OPH);
80  }
81 close(OUT);
82                
83 sub doconst
84 {
85  my $sym = shift;
86  my $l = length($sym);
87  print OUT <<"END";
88  newCONSTSUB(stash,"$sym",newSViv($sym)); 
89  av_push(export_ok,newSVpvn("$sym",$l));
90 END
91 }