dos-djgpp update
[p5sagit/p5-mst-13.2.git] / djgpp / fixpmain
CommitLineData
39e571d4 1#!perl -w
2# Fix perlmain.c under DOS (short & case insensitive filenames).
3# Called from Makefile.aperl when needed.
4# You don't need this when LFN=y.
5
6use Config;
7
8open (PERLM,"<perlmain.c") or die "Can't load perlmain.c: $!";
9open (MAKEFILE,"<makefile.pl") or die "Can't load makefile.pl: $!";
10undef $/;
11$perlmain=<PERLM>;
12$makefile=<MAKEFILE>;
13
14($_) = $makefile =~ /\bNAME\b.*=>\W*([\w\:]+)/; # extract module name
15$badname=join ("__",map {lc substr ($_,0,8)} split /:+/); # dosify
16$perlmain =~ s/^.*boot_$badname.*$//gm if $badname; # delete bad lines
17
18@exts=split (" ",$Config{known_extensions});
19for $realname (@exts,'DynaLoader')
20{
21 $dosname=substr (lc $realname,0,8);
22 $perlmain =~ s/boot_$dosname/boot_$realname/gm;
23 $perlmain =~ s/$dosname(::bootstrap)/$realname$1/gm;
24}
25
26#DynaLoader is special
27$perlmain =~ s/(DynaLoader:\:boot)strap/$1_DynaLoader/gm;
28
29open (PERLM,">perlmain.c") or die "Can't write perlmain.c: $!";
30print PERLM $perlmain;