}
use strict;
-use vars qw($Is_VMS $Is_W32 $Is_OS2 $nonono $versiononly $depth);
+use vars qw($Is_VMS $Is_W32 $Is_OS2 $Is_Cygwin $nonono $versiononly $depth);
BEGIN {
$Is_VMS = $^O eq 'VMS';
$Is_W32 = $^O eq 'MSWin32';
$Is_OS2 = $^O eq 'os2';
+ $Is_Cygwin = $^O =~ /cygwin/i;
if ($Is_VMS) { eval 'use VMS::Filespec;' }
}
# Allow ``make install PERLNAME=something_besides_perl'':
my $perl = defined($ENV{PERLNAME}) ? $ENV{PERLNAME} : 'perl';
+# This is the base used for versioned names, like "perl5.005".
+# It's separate because a common use of $PERLNAME is to install
+# perl as "perl5", if that's used as base for versioned files you
+# get "perl55.005".
+my $perl_verbase = defined($ENV{PERLNAME_VERBASE})
+ ? $ENV{PERLNAME_VERBASE}
+ : $perl;
+
while (@ARGV) {
$nonono = 1 if $ARGV[0] eq '-n';
$versiononly = 1 if $ARGV[0] eq '-v';
|| warn "WARNING: You've never run 'make test'!!!",
" (Installing anyway.)\n";
-if ($Is_W32) {
-
-my $perldll = 'perl.' . $dlext;
-$perldll = 'perlcore.' . $dlext if $Config{'ccflags'} =~ /PERL_OBJECT/i;
+if ($Is_W32 or $Is_Cygwin) {
+ my $perldll;
+
+if ($Is_Cygwin) {
+ $perldll = $libperl;
+ $perldll =~ s/(\..*)?$/.$dlext/;
+ if ($Config{useshrplib} eq 'true') {
+ # install ld2 and perlld as well
+ foreach ('ld2', 'perlld') {
+ safe_unlink("$installbin/$_");
+ copy("$_", "$installbin/$_");
+ chmod(0755, "$installbin/$_");
+ };
+ };
+} else {
+ $perldll = 'perl.' . $dlext;
+ $perldll = 'perlcore.' . $dlext if $Config{'ccflags'} =~ /PERL_OBJECT/i;
+}
-f $perldll || die "No perl DLL built\n";
link($Config{perlpath}, "$installbin/perl$ver$exe_ext");
}
elsif ($^O ne 'dos') {
- safe_unlink("$installbin/$perl$ver$exe_ext");
- copy("perl$exe_ext", "$installbin/$perl$ver$exe_ext");
- strip("$installbin/perl$ver$exe_ext") if $^O =~ /^(rhapsody)$/;
- chmod(0755, "$installbin/$perl$ver$exe_ext");
+ safe_unlink("$installbin/$perl_verbase$ver$exe_ext");
+ copy("perl$exe_ext", "$installbin/$perl_verbase$ver$exe_ext");
+ strip("$installbin/$perl_verbase$ver$exe_ext") if $^O =~ /^(rhapsody)$/;
+ chmod(0755, "$installbin/$perl_verbase$ver$exe_ext");
}
else {
safe_unlink("$installbin/$perl.exe");
copy("perl.exe", "$installbin/$perl.exe");
}
-safe_unlink("$installbin/s$perl$ver$exe_ext");
+safe_unlink("$installbin/s$perl_verbase$ver$exe_ext");
if ($d_dosuid) {
- copy("suidperl$exe_ext", "$installbin/s$perl$ver$exe_ext");
- chmod(04711, "$installbin/s$perl$ver$exe_ext");
+ copy("suidperl$exe_ext", "$installbin/s$perl_verbase$ver$exe_ext");
+ chmod(04711, "$installbin/s$perl_verbase$ver$exe_ext");
}
# Install library files.
@corefiles = <$coredir/*.*>;
}
else {
+ # [als] hard-coded 'libperl' name... not good!
@corefiles = <*.h libperl*.*>;
+
# AIX needs perl.exp installed as well.
push(@corefiles,'perl.exp') if $^O eq 'aix';
if ($^O eq 'mpeix') {
# We don't want another cloned copy.
symlink($Config{perlpath}, "$installbin/perl$exe_ext");
} else {
- link("$installbin/$perl$ver$exe_ext", "$installbin/$perl$exe_ext");
+ link("$installbin/$perl_verbase$ver$exe_ext",
+ "$installbin/$perl$exe_ext");
}
- link("$installbin/s$perl$ver$exe_ext", "$installbin/suid$perl$exe_ext")
+ link("$installbin/s$perl_verbase$ver$exe_ext",
+ "$installbin/suid$perl$exe_ext")
if $d_dosuid;
}
foreach my $name (@names) {
next unless -e $name;
- chmod 0777, $name if ($Is_OS2 || $Is_W32);
+ chmod 0777, $name if ($Is_OS2 || $Is_W32 || $Is_Cygwin);
print STDERR " unlink $name\n";
( CORE::unlink($name) and ++$cnt
or warn "Couldn't unlink $name: $!\n" ) unless $nonono;