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