use strict;
my ($Is_VMS, $Is_W32, $Is_OS2, $Is_Cygwin, $Is_Darwin,
$nonono, $dostrip, $versiononly, $silent, $verbose,
- $otherperls, $archname,$Is_NetWare, $nwinstall);
+ $otherperls, $archname,$Is_NetWare, $nwinstall, $nopods);
use vars qw /$depth/;
BEGIN {
$verbose = 1 if $ARGV[0] eq '-V' || $ARGV [0] eq '-n';
$archname = 1 if $ARGV[0] eq '-A';
$nwinstall = 1 if $ARGV[0] eq '-netware';
+ $nopods = 1 if $ARGV[0] eq '-p';
if ($ARGV[0] eq '-?' or $ARGV[0] =~ /^-?-h/) {
print <<"EOT";
Usage $0: [switches]
-V Verbose mode.
-A Also install perl with the architecture's name in the perl binary's
name.
+ -p Don't install the pod files. [This will break use diagnostics;]
-netware Install correctly on a Netware server.
EOT
exit;
if ($scr_ext) { @scripts = map { "$_$scr_ext" } @scripts; }
-my @pods = (<pod/*.pod>);
+my @pods = $nopods ? () : (<pod/*.pod>);
# Specify here any .pm files that are actually architecture-dependent.
# (Those included with XS extensions under ext/ are automatically
# added later.)
# Now that the default privlib has the full perl version number included,
-# we no longer have to play the trick of sticking version-specific .pm
+# we no longer have to play the trick of sticking version-specific .pm
# files under the archlib directory.
my %archpms = (
- Config => 1,
- lib => 1,
+ Config => 1,
+ lib => 1,
+ Cwd => 1,
);
if ($^O eq 'dos') {
if ($Is_Cygwin) {
$perldll = $libperl;
- $perldll =~ s/(\..*)?$/.$dlext/;
+ my $v_e_r_s = $ver; $v_e_r_s =~ tr/./_/;
+ $perldll =~ s/(\..*)?$/$v_e_r_s.$dlext/;
+ $perldll =~ s/^lib/cyg/;
if ($Config{useshrplib} eq 'true') {
# install ld2 and perlld as well
foreach ('ld2', 'perlld') {
copy("$_", "$installbin/$_");
chmod(0755, "$installbin/$_");
};
+ {
+ open (LD2, ">$installbin/ld2");
+ print LD2 "#!/bin/sh\n#\n# ld wrapper, passes all args to perlld;\n#\n"
+ . "for trythis in $installbin/perl\ndo\n if [ -x \$trythis ]\n"
+ . " then\n \$trythis $installbin/perlld \"\$\@\"\n"
+ . " exit \$?\n fi\ndone\n# hard luck!\necho i see no perl"
+ . " executable around there\necho perl is required to build "
+ . "dynamic libraries\necho look if the path to perl in /bin/ld2"
+ . " is correct\nexit 1\n";
+ close LD2;
+ };
+ chmod(0755, "$installbin/ld2");
};
} else {
$perldll = 'perl57.' . $dlext;
safe_unlink("$installbin/$perldll");
copy("$perldll", "$installbin/$perldll");
chmod(0755, "$installbin/$perldll");
-
+
} # if (($Is_W32 and ! $Is_NetWare) or $Is_Cygwin)
# This will be used to store the packlist
# Install library files.
my ($do_installarchlib, $do_installprivlib) = (0, 0);
-
+
mkpath($installprivlib, $verbose, 0777);
mkpath($installarchlib, $verbose, 0777);
mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
# MPE doesn't support hard links, so use a symlink.
# We don't want another cloned copy.
symlink($Config{perlpath}, "$installbin/perl$exe_ext");
+ } elsif ($^O eq 'vos') {
+ # VOS doesn't support hard links, so use a symlink.
+ symlink("$installbin/$perl_verbase$ver$exe_ext",
+ "$installbin/$perl$exe_ext");
} else {
link("$installbin/$perl_verbase$ver$exe_ext",
"$installbin/$perl$exe_ext");
}
link("$installbin/s$perl_verbase$ver$exe_ext",
- "$installbin/suid$perl$exe_ext")
+ "$installbin/suid$perl$exe_ext")
if $d_dosuid;
}
# MPE doesn't support hard links, so use a symlink.
# We don't want another cloned copy.
symlink($Config{perlpath}, "$installbin/$archperl");
+ } elsif ($^O eq 'vos') {
+ # VOS doesn't support hard links, so use a symlink.
+ symlink("$installbin/$perl_verbase$ver$exe_ext",
+ "$installbin/$archperl");
} else {
link("$installbin/$perl_verbase$ver$exe_ext",
"$installbin/$archperl");
(-l $usrbinperl) &&
((readlink $usrbinperl) eq $expinstperl));
}
- if ((! $mainperl_is_instperl) &&
- (yn("Many scripts expect perl to be installed as $usrbinperl.\n" .
- "Do you wish to have $usrbinperl be the same as\n" .
- "$expinstperl? [y] ")))
- {
+ if (! $mainperl_is_instperl) {
unlink($usrbinperl);
( $Config{'d_link'} eq 'define' &&
eval { CORE::link $instperl, $usrbinperl } ) ||
safe_unlink("$installscript/$alias$scr_ext");
if ($^O eq 'dos' or $Is_VMS or $^O eq 'transit') {
copy("$installscript/$orig$scr_ext",
- "$installscript/$alias$scr_ext");
+ "$installscript/$alias$scr_ext");
+ } elsif ($^O eq 'vos') {
+ symlink("$installscript/$orig$scr_ext",
+ "$installscript/$alias$scr_ext");
} else {
link("$installscript/$orig$scr_ext",
"$installscript/$alias$scr_ext");
chmod(0755, "$installscript/$base");
}
- for (@tolink) {
+ for (@tolink) {
my ($from, $to) = map { "$_$ver" } @$_;
(my $frbase = $from) =~ s#.*/##;
(my $tobase = $to) =~ s#.*/##;
chmod(0755, "$installscript/$base");
}
- for (@tolink) {
+ for (@tolink) {
my ($from, $to) = @$_;
(my $frbase = $from) =~ s#.*/##;
(my $tobase = $to) =~ s#.*/##;
next unless -e $name;
chmod 0777, $name if ($Is_OS2 || $Is_W32 || $Is_Cygwin || $Is_NetWare);
print " unlink $name\n" if $verbose;
- ( CORE::unlink($name) and ++$cnt
+ ( CORE::unlink($name) and ++$cnt
or warn "Couldn't unlink $name: $!\n" ) unless $nonono;
}
return $cnt;
for ($i = 1; $i < 50; $i++) {
last if rename($to, "$to.$i");
}
- warn("Cannot rename to `$to.$i': $!"), return 0
+ warn("Cannot rename to `$to.$i': $!"), return 0
if $i >= 50; # Give up!
}
link($from,$to) || return 0;
$File::Find::prune = 1;
return;
}
-
+
# ignore patch backups, RCS files, emacs backup & temp files and the
# .exists files, .PL files, and .t files.
- return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$};
+ return if $name =~ m{\.orig$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.t$} ||
+ $dir =~ m{/t(?:/|$)};
$name = "$dir/$name" if $dir ne '';