3 use File::Compare qw(compare);
4 use File::Copy qw(copy);
5 my $OBJ = 1 if $Config{'ccflags'} =~ /PERL_OBJECT/i;
7 $name =~ s#^(.*)\.PL$#../$1.SH#;
8 open(SH,"<$name") || die "Cannot open $name:$!";
13 ($term,$file,$pat) = /^sed\s+<<(\S+)\s+>(\S+)\s+(.*)$/;
15 my $str = "sub munge\n{\n";
17 while ($pat =~ s/-e\s+'([^']*)'\s*//)
20 $e =~ s/\\([\(\)])/$1/g;
21 $e =~ s/\\(\d)/\$$1/g;
30 open(H,">$file.new") || die "Cannot open $file.new:$!";
31 binmode H; # no CRs (which cause a spurious rebuild)
35 s/\$([\w_]+)/Config($1)/eg;
36 s/`([^\`]*)`/BackTick($1)/eg;
40 if (/^\s*#define\s+ARCHLIB_EXP/)
42 $_ = "#define ARCHLIB_EXP (win32_perllib_path(ARCHNAME,NULL))\t/**/\n";
44 if (/^\s*#define\s+PRIVLIB_EXP/)
46 $_ = "#define PRIVLIB_EXP (win32_perllib_path(NULL))\t/**/\n"
48 if (/^\s*#define\s+SITEARCH_EXP/)
50 $_ = "#define SITEARCH_EXP (win32_perllib_path(\"site\",ARCHNAME,NULL))\t/**/\n";
52 if (/^\s*#define\s+SITELIB_EXP/)
54 $_ = "#define SITELIB_EXP (win32_perllib_path(\"site\",NULL))\t/**/\n";
58 print H "#include <win32.h>
64 chmod(0666,"../lib/CORE/config.h");
65 copy("$file.new","../lib/CORE/config.h") || die "Cannot copy:$!";
66 chmod(0444,"../lib/CORE/config.h");
68 if (!$OBJ && compare("$file.new",$file))
70 warn "$file has changed\n";
73 rename("$file.new",$file);
86 my $val = $Config{$var};
87 $val = 'undef' unless defined $val;
95 if ($cmd =~ /^echo\s+(.*?)\s*\|\s+sed\s+'(.*)'\s*$/)
97 local ($data,$pat) = ($1,$2);
99 eval "\$data =~ $pat";
104 die "Cannot handle \`$cmd\`";