From beb13193c046c5af0b3d82b63bab87b266b7697c Mon Sep 17 00:00:00 2001 From: Roderick Schertler Date: Wed, 7 Apr 1999 11:34:56 -0400 Subject: [PATCH] allow distinct prefix for versioned executables Message-ID: <3003.923513696@eeyore.ibcinc.com> Subject: perl55.00503 -> perl5.00503 patch for installperl p4raw-id: //depot/perl@3320 --- INSTALL | 9 +++++++++ installperl | 28 +++++++++++++++++++--------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/INSTALL b/INSTALL index 8e6f81c..acb9efd 100644 --- a/INSTALL +++ b/INSTALL @@ -1414,6 +1414,15 @@ indicate the alternate name on the "make install" line, such as: make install PERLNAME=myperl +You can separately change the base used for versioned names (like +"perl5.005") by setting PERLNAME_VERBASE, like + + make install PERLNAME=perl5 PERLNAME_VERBASE=perl + +This can be useful if you have to install perl as "perl5" (due to an +ancient version in /usr/bin supplied by your vendor, eg). Without this +the versioned binary would be called "perl55.005". + =head2 Installed files If you want to see exactly what will happen without installing diff --git a/installperl b/installperl index ebb6f47..4e9b391 100755 --- a/installperl +++ b/installperl @@ -39,6 +39,14 @@ my $exe_ext = $Config{exe_ext}; # 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'; @@ -171,20 +179,20 @@ elsif ($^O eq 'mpeix') { 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. @@ -253,9 +261,11 @@ if (! $versiononly && ! samepath($installbin, '.') && ($^O ne 'dos') && ! $Is_VM # 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; } -- 1.8.3.1