perl5.000 patch.0k: MakeMaker 4.06 and to fix minor portability and build problems...
[p5sagit/p5-mst-13.2.git] / vms / writemain.pl
CommitLineData
a0d0e21e 1#!./miniperl
2#
3# Create perlmain.c from miniperlmain.c, adding code to boot the
4# extensions listed on the command line.
5#
6
7if (-f 'miniperlmain.c') { $dir = ''; }
8elsif (-f '../miniperlmain.c') { $dir = '../'; }
9else { die "$0: Can't find miniperlmain.c\n"; }
10
11open (IN,"${dir}miniperlmain.c")
12 || die "$0: Can't open ${dir}miniperlmain.c: $!\n";
13open (OUT,">${dir}perlmain.c")
14 || die "$0: Can't open ${dir}perlmain.c: $!\n";
15
16while (<IN>) {
17 s/INTERN\.h/EXTERN\.h/;
18 print OUT;
19 last if /Do not delete this line--writemain depends on it/;
20}
21$ok = !eof(IN);
22close IN;
23
24if (!$ok) {
25 close OUT;
26 unlink "${dir}perlmain.c";
27 die "$0: Can't find marker line in ${dir}miniperlmain.c - aborting\n";
28}
29
30
31if ($#ARGV > -1) {
32 print OUT " char *file = __FILE__;\n";
33}
34
35foreach $ext (@ARGV) {
36 print OUT "extern void boot_${ext} _((CV* cv));\n"
37}
38
39foreach $ext (@ARGV) {
40 print "Adding $ext . . .\n";
41 if ($ext eq 'DynaLoader') {
42 # Must NOT install 'DynaLoader::boot_DynaLoader' as 'bootstrap'!
43 # boot_DynaLoader is called directly in DynaLoader.pm
44 print OUT " newXS(\"${ext}::boot_${ext}\", boot_${ext}, file);\n"
45 }
46 else {
47 print OUT " newXS(\"${ext}::bootstrap\", boot_${ext}, file);\n"
48 }
49}
50
51print OUT "}\n";
52close OUT;