In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/b545184ec397e90a1e25844a1f0c830dec9ee6dc?hp=7ff1117359e03ce00638e9ee1daad537321e75d6>
- Log ----------------------------------------------------------------- commit b545184ec397e90a1e25844a1f0c830dec9ee6dc Author: Craig A. Berry <[email protected]> Date: Sat Dec 28 11:22:28 2013 -0600 Make perl_setup.com infer perl_root from its own location. The perl_setup.com command procedure initializes the root logical name, the shareable image logical name pointing to the main Perl dynamic library, and either command symbols or command table entries that reference those logical names. It's always by default hard-coded the prefix chosen at configuration time as the basis for where Perl should be located. The original rationale for that was that it gets run right before installperl and sets things up correctly for installation. But that optimizes for a single use case that is easily handled by specifying the correct install location as a parameter and pessimizes for every other use case, notably relocating an installed Perl directory tree. So make it infer the correct root from its own location and specify the install location only at installation time. Among other benefits, this allows the install location to be chosen at installation time by overriding the default prefix like so: MMK/MACRO=(PREFIX="DSA0:[homedir.MyPerl2.]") install ----------------------------------------------------------------------- Summary of changes: configure.com | 35 ++++++++++++++++------------------- vms/descrip_mms.template | 5 +++-- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/configure.com b/configure.com index 6135dfa..db9f0be 100644 --- a/configure.com +++ b/configure.com @@ -7041,6 +7041,7 @@ $ DEBUG_REPLACE = "USEVMSDEBUG=__DEBUG__=1" $ ELSE $ DEBUG_REPLACE = "USEVMSDEBUG=" $ ENDIF +$ PREFIX_REPLACE = "PREFIX=PREFIX=''prefix'" $! $! In order not to stress the tiny command buffer on pre-7.3-2 systems, $! we put the following substitutions in a file and pass the file to @@ -7063,6 +7064,7 @@ $ WC "FLAGS=FLAGS=''extra_flags'" $ WC "''LARGEFILE_REPLACE'" $ WC "ARCHNAME=ARCHNAME=''archname'" $ WC "''DEBUG_REPLACE'" +$ WC "''PREFIX_REPLACE'" $ close CONFIG $! $ echo4 "Extracting ''defmakefile' (with variable substitutions)" @@ -7230,25 +7232,20 @@ $ ELSE $ WRITE CONFIG "$! This perl configured & administered by ''perladmin'" $ ENDIF $ WRITE CONFIG "$!" -$! HP hack to make distributing binaries easier -$!---------------------------------------------- -$ pcsi_producer = f$trnlnm("PCSI_PRODUCER") -$ if pcsi_producer .eqs. "" -$ then -$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" -$ else -$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" -$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")" -$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000.""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">""" -$ WRITE CONFIG "$ if f$trnlnm(""HP_BUILD_PERL_BIN_KIT"",""LNM$PROCESS_TABLE"") .EQS. """"" -$ WRITE CONFIG "$ then" -$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'myroot_dev'['myroot_dir'.]" -$ WRITE CONFIG "$ endif" -$ endif +$ WRITE CONFIG "$ if P1 .EQS. """"" +$ WRITE CONFIG "$ then" +$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" +$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")" +$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000.""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">""" +$ WRITE CONFIG "$ root_spec = myroot_dev + ""["" + myroot_dir + "".]""" +$ WRITE CONFIG "$ else" +$ WRITE CONFIG "$ root_spec = P1" +$ WRITE CONFIG "$ endif" +$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'root_spec'" $ WRITE CONFIG "$ ext = "".exe""" $ IF sharedperl $ THEN diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 94e93e7..4c3206a 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -35,6 +35,7 @@ ~LARGEFILE~ ~ARCHNAME~ ~USEVMSDEBUG~ +~PREFIX~ #: >>>>> Architecture-specific options <<<<< .ifdef IXE @@ -564,7 +565,7 @@ makeppport : $(MINIPERL_EXE) $(ARCHDIR)Config.pm nonxsext $(MINIPERL) mkppport install.html : [.pod]perltoc.pod - @ @perl_setup.com + @ @perl_setup.com "$(PREFIX)" @ If F$Search("perl_root:[lib]html.dir").eqs."" Then Create/Directory perl_root:[lib.html] $(MINIPERL) installhtml. "--podroot=. --recurse --htmldir=/perl_root/lib/html --htmlroot=.. --verbose" @@ -615,7 +616,7 @@ minitest : $(MINITEST_EXE) unidatafiles.ts # install ought not need a source, but it doesn't work if one's not # there. Go figure... install : $(PERL_EXE) - @ @perl_setup.com + @ @perl_setup.com "$(PREFIX)" If F$TrnLnm("Sys") .nes. "" Then Deass SYS @ define/user_mode $(DBG)PERLSHR SYS$DISK:[]$(DBG)perlshr$(E) $(PERL) installperl -- Perl5 Master Repository
