3 # Create perlmain.c from miniperlmain.c, adding code to boot the
4 # extensions listed on the command line.
7 if (-f 'miniperlmain.c') { $dir = ''; }
8 elsif (-f '../miniperlmain.c') { $dir = '../'; }
9 else { die "$0: Can't find miniperlmain.c\n"; }
11 open (IN,"${dir}miniperlmain.c")
12 || die "$0: Can't open ${dir}miniperlmain.c: $!\n";
13 open (OUT,">${dir}perlmain.c")
14 || die "$0: Can't open ${dir}perlmain.c: $!\n";
17 s/INTERN\.h/EXTERN\.h/;
19 last if /Do not delete this line--writemain depends on it/;
26 unlink "${dir}perlmain.c";
27 die "$0: Can't find marker line in ${dir}miniperlmain.c - aborting\n";
32 print OUT " char *file = __FILE__;\n";
35 foreach $ext (@ARGV) {
36 print OUT "extern void boot_${ext} _((CV* cv));\n"
39 foreach $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"
47 print OUT " newXS(\"${ext}::bootstrap\", boot_${ext}, file);\n"