Commit | Line | Data |
---|---|---|
39e571d4 LM |
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 | ||
6 | use Config; | |
7 | ||
8 | open (PERLM,"<perlmain.c") or die "Can't load perlmain.c: $!"; | |
9 | open (MAKEFILE,"<makefile.pl") or die "Can't load makefile.pl: $!"; | |
10 | undef $/; | |
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 | ||
a7d17c96 LM |
18 | @exts=('DynaLoader',split (" ",$Config{known_extensions})); |
19 | for $realname (@exts) | |
39e571d4 | 20 | { |
a7d17c96 LM |
21 | $dosname=join ("__",map {lc substr ($_,0,8)} split /\//,$realname); |
22 | $realname =~ s!/!__!g; | |
17f71141 LM |
23 | $perlmain =~ s/\bboot_$dosname/boot_$realname/gm; |
24 | $perlmain =~ s/\b$dosname(::bootstrap)/$realname$1/gm; | |
39e571d4 LM |
25 | } |
26 | ||
27 | #DynaLoader is special | |
28 | $perlmain =~ s/(DynaLoader:\:boot)strap/$1_DynaLoader/gm; | |
29 | ||
30 | open (PERLM,">perlmain.c") or die "Can't write perlmain.c: $!"; | |
31 | print PERLM $perlmain; |