use strict;
my ($Is_VMS, $Is_W32, $Is_OS2, $Is_Cygwin, $nonono, $dostrip,
- $versiononly, $silent, $otherperls);
+ $versiononly, $silent, $verbose, $otherperls);
use vars qw /$depth/;
BEGIN {
$versiononly = 1 if $ARGV[0] eq '-v';
$silent = 1 if $ARGV[0] eq '-S';
$otherperls = 0 if $ARGV[0] eq '-o';
+ $verbose = 1 if $ARGV[0] eq '-V' || $ARGV [0] eq '-n';
shift;
}
+$versiononly = 1 if $Config{versiononly};
+
my @scripts = qw(utils/c2ph utils/h2ph utils/h2xs utils/perlbug utils/perldoc
utils/pl2pm utils/splain utils/perlcc utils/dprofpp
x2p/s2p x2p/find2perl
if ($d_dosuid && $>) { die "You must run as root to install suidperl\n"; }
$installbin || die "No installbin directory in config.sh\n";
--d $installbin || mkpath($installbin, 1, 0777);
+-d $installbin || mkpath($installbin, $verbose, 0777);
-d $installbin || $nonono || die "$installbin is not a directory\n";
-w $installbin || $nonono || die "$installbin is not writable by you\n"
unless $installbin =~ m#^/afs/# || $nonono;
-x 'perl' . $exe_ext || die "perl isn't executable!\n";
-x 'suidperl' . $exe_ext|| die "suidperl isn't executable!\n" if $d_dosuid;
--f 't/ran_tests' || $Is_W32
+-f 't/rantests' || $Is_W32
|| warn "WARNING: You've never run 'make test'!!!",
" (Installing anyway.)\n";
my ($do_installarchlib, $do_installprivlib) = (0, 0);
-mkpath($installprivlib, 1, 0777);
-mkpath($installarchlib, 1, 0777);
-mkpath($installsitelib, 1, 0777) if ($installsitelib);
-mkpath($installsitearch, 1, 0777) if ($installsitearch);
+mkpath($installprivlib, $verbose, 0777);
+mkpath($installarchlib, $verbose, 0777);
+mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
+mkpath($installsitearch, $verbose, 0777) if ($installsitearch);
if (chdir "lib") {
$do_installarchlib = ! samepath($installarchlib, '.');
}
# Install header files and libraries.
-mkpath("$installarchlib/CORE", 1, 0777);
+mkpath("$installarchlib/CORE", $verbose, 0777);
my @corefiles;
if ($Is_VMS) { # We did core file selection during build
my $coredir = "lib/$Config{archname}/$ver/CORE";
push(@corefiles,'perl.exp') if $^O eq 'aix';
if ($^O eq 'mpeix') {
# MPE needs mpeixish.h installed as well.
- mkpath("$installarchlib/CORE/mpeix", 1, 0777);
+ mkpath("$installarchlib/CORE/mpeix", $verbose, 0777);
push(@corefiles,'mpeix/mpeixish.h');
}
# If they have built sperl.o...
chmod(0755, "$installbin/cppstdin");
}
-# Install scripts.
+if (! $versiononly) {
+ # Install scripts.
-mkpath($installscript, 1, 0777);
+ mkpath($installscript, $verbose, 0777);
-if (! $versiononly) {
for (@scripts) {
(my $base = $_) =~ s#.*/##;
copy($_, "$installscript/$base");
chmod(0755, "$installscript/$base");
}
-}
-
-# pstruct should be a link to c2ph
-if (! $versiononly) {
+ # pstruct should be a link to c2ph
safe_unlink("$installscript/pstruct$scr_ext");
if ($^O eq 'dos' or $Is_VMS or $^O eq 'transit') {
- copy("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
+ copy("$installscript/c2ph$scr_ext",
+ "$installscript/pstruct$scr_ext");
} else {
- link("$installscript/c2ph$scr_ext", "$installscript/pstruct$scr_ext");
+ link("$installscript/c2ph$scr_ext",
+ "$installscript/pstruct$scr_ext");
}
}
# ($installprivlib/pods for cygwin).
my $pod = $Is_Cygwin ? 'pods' : 'pod';
-unless ( $versiononly && !($installprivlib =~ m/\Q$ver/)) {
- mkpath("${installprivlib}/$pod", 1, 0777);
+if ( !$versiononly || ($installprivlib =~ m/\Q$ver/)) {
+ mkpath("${installprivlib}/$pod", $verbose, 0777);
# If Perl 5.003's perldiag.pod is there, rename it.
if (open POD, "${installprivlib}/$pod/perldiag.pod") {
}
$packlist->write() unless $nonono;
-print " Installation complete\n" unless $silent;
+print " Installation complete\n" if $verbose;
exit 0;
foreach my $name (@names) {
next unless -e $name;
chmod 0777, $name if ($Is_OS2 || $Is_W32 || $Is_Cygwin);
- print " unlink $name\n" unless $silent;
+ print " unlink $name\n" if $verbose;
( CORE::unlink($name) and ++$cnt
or warn "Couldn't unlink $name: $!\n" ) unless $nonono;
}
foreach my $name (@names) {
next unless -e $name;
chmod 0777, $name if ($Is_OS2 || $Is_W32);
- print " unlink $name\n" unless $silent;
+ print " unlink $name\n" if $verbose;
next if CORE::unlink($name);
warn "Couldn't unlink $name: $!\n";
if ($! =~ /busy/i) {
- print " mv $name $name.old\n" unless $silent;
+ print " mv $name $name.old\n" if $verbose;
safe_rename($name, "$name.old")
or warn "Couldn't rename $name: $!\n";
}
my($from,$to) = @_;
my($success) = 0;
- print " ln $from $to\n" unless $silent;
+ print $verbose ? " ln $from $to\n" : " $to\n" unless $silent;
eval {
CORE::link($from, $to)
? $success++
};
if ($@) {
warn $@;
- print " cp $from $to\n" unless $silent;
+ print $verbose ? " cp $from $to\n" : " $to\n" unless $silent;
print " creating new version of $to\n"
if $Is_VMS and -e $to and !$silent;
File::Copy::copy($from, $to)
my($mode,$name) = @_;
return if ($^O eq 'dos');
- printf " chmod %o %s\n", $mode, $name unless $silent;
+ printf " chmod %o %s\n", $mode, $name if $verbose;
CORE::chmod($mode,$name)
|| warn sprintf("Couldn't chmod %o %s: $!\n", $mode, $name)
unless $nonono;
sub copy {
my($from,$to) = @_;
- print " cp $from $to\n" unless $silent;
+ print $verbose ? " cp $from $to\n" : " $to\n" unless $silent;
print " creating new version of $to\n" if $Is_VMS and -e $to and !$silent;
File::Copy::copy($from, $to)
|| warn "Couldn't copy $from to $to: $!\n"
$packlist->{"$installlib/$name"} = { type => 'file' };
if (compare($_, "$installlib/$name") || $nonono) {
unlink("$installlib/$name");
- mkpath("$installlib/$dir", 1, 0777);
+ mkpath("$installlib/$dir", $verbose, 0777);
# HP-UX (at least) needs to maintain execute permissions
# on dynamically-loaded libraries.
copy_if_diff($_, "$installlib/$name")
foreach my $file (@args) {
if (-f $file) {
- print " strip $file\n" unless $silent;
+ print " strip $file\n" if $verbose;
system("strip", @opts, $file);
} else {
- print "# file '$file' skipped\n" unless $silent;
+ print "# file '$file' skipped\n" if $verbose;
}
}
}