@pods = (<pod/*.pod>);
+%archpms = (Config => 1, FileHandle => 1, overload => 1);
+find(sub {
+ if ("$File::Find::dir/$_" =~ m{^ext/[^/]+/(.*)\.pm$}) {
+ (my $pm = $1) =~ s{^lib/}{};
+ $archpms{$pm} = 1;
+ }
+ }, 'ext');
+
$ver = $];
$release = substr($ver,0,3); # Not used presently.
$patchlevel = substr($ver,3,2);
# If they have built sperl.o...
push(@corefiles,'sperl.o') if -f 'sperl.o';
foreach $file (@corefiles) {
- cp_if_diff($file,"$installarchlib/CORE/$file");
- &chmod($file =~ /^libperl/ ? 0555 : 0444,"$installarchlib/CORE/$file");
+ # HP-UX (at least) needs to maintain execute permissions
+ # on dynamically-loaded libraries.
+ cp_if_diff($file,"$installarchlib/CORE/$file")
+ and &chmod($file =~ /^\.(so|$dlext)$/ ? 0555 : 0444,
+ "$installarchlib/CORE/$file");
}
# Offer to install perl in a "standard" location
$mainperl_is_instperl = 0;
-if (-w $mainperldir && ! &samepath($mainperldir, $installbin) && !$nonono) {
+if (!$nonono && -t STDIN && -t STDERR
+ && -w $mainperldir && ! &samepath($mainperldir, $installbin)) {
local($usrbinperl) = "$mainperldir/perl$exe_ext";
local($instperl) = "$installbin/perl$exe_ext";
local($expinstperl) = "$binexp/perl$exe_ext";
# to binexp/perl if binexp and installbin are different.
$mainperl_is_instperl =
&samepath($usrbinperl, $instperl) ||
+ &samepath($usrbinperl, $expinstperl) ||
(($binexp ne $installbin) &&
(-l $usrbinperl) &&
((readlink $usrbinperl) eq $expinstperl));
$name = "$dir/$name" if $dir ne '';
- # ignore Chip-style patch backups.
- return if grep(/^P\d+$/, split(m{/+}, $name));
-
my $installlib = $installprivlib;
- if ($dir =~ /^auto/ || $name =~ /^(Config|FileHandle|Safe)\.pm$/) {
+ if ($dir =~ /^auto/ ||
+ ($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1})) {
$installlib = $installarchlib;
return unless $do_installarchlib;
} else {
if (compare($_, "$installlib/$name") || $nonono) {
&unlink("$installlib/$name");
mkpath("$installlib/$dir", 1, 0777);
- cp_if_diff($_, "$installlib/$name");
# HP-UX (at least) needs to maintain execute permissions
# on dynamically-loaded libraries.
- if ($name =~ /\.(so|$dlext)$/o) {
- &chmod(0555, "$installlib/$name");
- }
- else {
- &chmod(0444, "$installlib/$name");
- }
+ cp_if_diff($_, "$installlib/$name")
+ and &chmod($name =~ /\.(so|$dlext)$/o ? 0555 : 0444,
+ "$installlib/$name");
}
} elsif (-d $_) {
mkpath("$installlib/$name", 1, 0777);
# and then try to link against the installed libperl.a, you might
# get an error message to the effect that the symbol table is older
# than the library.
+# Return true if copying occurred.
sub cp_if_diff {
my($from,$to)=@_;
-f $from || die "$0: $from not found";
($atime, $mtime) = (stat $from)[8,9];
utime $atime, $mtime, $to;
}
+ 1;
}
}