Line | |
---|
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 |
|
---|
18 | @exts=('DynaLoader',split (" ",$Config{known_extensions}));
|
---|
19 | for $realname (@exts)
|
---|
20 | {
|
---|
21 | $dosname=join ("__",map {lc substr ($_,0,8)} split /\//,$realname);
|
---|
22 | $realname =~ s!/!__!g;
|
---|
23 | $perlmain =~ s/\bboot_$dosname\b/boot_$realname/gm;
|
---|
24 | $dosname =~ s/__/::/;
|
---|
25 | $realname =~ s/__/::/;
|
---|
26 | $perlmain =~ s/\b$dosname(::bootstrap)/$realname$1/gm;
|
---|
27 | }
|
---|
28 |
|
---|
29 | #DynaLoader is special
|
---|
30 | $perlmain =~ s/(DynaLoader:\:boot)strap/$1_DynaLoader/gm;
|
---|
31 |
|
---|
32 | open (PERLM,">perlmain.c") or die "Can't write perlmain.c: $!";
|
---|
33 | print PERLM $perlmain;
|
---|
Note:
See
TracBrowser
for help on using the repository browser.