In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/35182409a84e9ffbc214100d50c327cf95b06d7d?hp=f5b885cd5cef50d401e2785fc9cd1f5ab1859f48>
- Log ----------------------------------------------------------------- commit 35182409a84e9ffbc214100d50c327cf95b06d7d Author: Craig A. Berry <[email protected]> Date: Sun Mar 6 16:07:30 2011 -0600 Add appropriate archname appendages in configure.com. Now that we have the relevant questions answered before we set archname, add the appropriate components to archname at the right time so they'll become part of the architecture-specific directory names. FIXME: We don't (yet) set archname64, so at present we're not adding it to archname. M configure.com commit 4581ada393ba58f2b8f438c7b9c336d6c79ec94c Author: Craig A. Berry <[email protected]> Date: Sun Mar 6 15:59:06 2011 -0600 Reorder archname-related questions in configure.com. By moving these to after other questions have been asked, we can construct a proper $Config{archname} that indicates threads, long doubles, multiplicity, or anything else that needs to be appended to the architecture name. This means letting go of the ability to configure for a different architecture than the one you're running on, but that feature is unlikely to have worked very well in recent years anyway as there have been an increasing number of features that are not available on all architectures. M configure.com commit 44caa20c7d9248fd77483468d77c9b5835e7066e Author: Craig A. Berry <[email protected]> Date: Sat Mar 5 22:18:38 2011 -0600 Use full archname in architecture-specific directories on VMS. We were only using the base archname (e.g., "VMS_AXP"), which is ok for a default bulid, but if any additions were made to it, such as "-thread", there would be a discrepancy between the actual directory on disk and what perl.c:S_incpush would look for when loading up @INC. The net effect was that the architecture- specific directory would not get loaded into @INC. M configure.com M vms/descrip_mms.template commit 2b4b3ebb703a73c0945957a42a77d70b29dceefb Author: Craig A. Berry <[email protected]> Date: Sat Mar 5 22:08:24 2011 -0600 Make archname checks relocatable in configure.com. Instead of testing for equality, look for the first minus sign- delimited element. This means it won't matter which order these checks are done in relation to adding things like "-thread-multi" to archname. M configure.com ----------------------------------------------------------------------- Summary of changes: configure.com | 750 ++++++++++++++++++++++++---------------------- vms/descrip_mms.template | 14 +- 2 files changed, 400 insertions(+), 364 deletions(-) diff --git a/configure.com b/configure.com index 6e59963..f9cc2fb 100644 --- a/configure.com +++ b/configure.com @@ -1148,11 +1148,23 @@ $Beyond_TimeZone: $ tz = f$fao("UTC!AS!UL:!2ZL",signothetime,tzhour,tzminrem) $ cf_time = "''wkday' ''mon' ''mday' ''hour':''min':''sec' ''tz' ''year'" $! -$!: determine the architecture name -$! Note that DCL in VMS V5.4 does not have F$GETSYI("ARCH_NAME") -$! but does have F$GETSYI("HW_MODEL"). -$! Please try to use either archname .EQS. "VMS_VAX" or archname .EQS. -$! "VMS_AXP" from here on to allow cross-platform configuration (e.g. +$! This quotation from Configure has to be included on VMS: +$! +$ TYPE SYS$INPUT: +$ DECK + +There is, however, a strange, musty smell in the air that reminds me of +something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. +$ EOD +$! +$! Determine the architecture name. For now we just get the base +$! architecture name, which may accumulate various minus sign-delimited +$! appendages later depending on configuration options. But we need the +$! base name early because not all questions are worth asking on all +$! platforms. +$! +$! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_VAX" (or "VMS_AXP" or +$! "VMS_IA64") from here on to allow cross-platform configuration (e.g. $! configure a VAX build on an Alpha). $! $ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0) @@ -1174,164 +1186,6 @@ $ arch_type = "ARCH-TYPE=__IA64__" $ ENDIF $ alignbytes="8" $ ENDIF -$ dflt = archname -$ rp = "What is your architecture name? [''archname'] " -$ GOSUB myread -$ IF ans.NES."" -$ THEN -$ ans = F$EDIT(ans,"COLLAPSE, UPCASE") -$ IF (ans.NES.archname) !.AND.knowitall -$ THEN -$ echo4 "I'll go with ''archname' anyway..." -$ ENDIF -$ ENDIF -$ bool_dflt = "n" -$ vms_prefix = "perl_root" -$ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") -$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] " -$ GOSUB myread -$ IF .NOT. ans -$ THEN -$ sharedperl = "N" -$ ELSE -$ sharedperl = "Y" -$ IF (archname.EQS."VMS_AXP") -$ THEN -$ macros = macros + """AXE=1""," -$ ENDIF -$ IF (archname.EQS."VMS_IA64") -$ THEN -$ macros = macros + """IXE=1""," -$ ENDIF -$ ENDIF -$! -$!: is AFS running? !sfn -$!: decide how portable to be. Allow command line overrides. !sfn -$!: set up shell script to do ~ expansion !sfn -$!: expand filename !sfn -$!: now set up to get a file name !sfn -$! -$ IF F$TYPE(prefix) .EQS. "" -$ THEN -$ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" -$ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - "000000." - ".000000" - ".;" -$ prefixbase = prefix - "]" -$! Add _ROOT to make install PERL_ROOT differ from build directory. -$ prefix = prefixbase + "_ROOT.]" -$ ENDIF -$ ! more redundant scrubbing of values -$ prefix = prefix - "000000." -$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" -$ src = prefix -$!: determine root of directory hierarchy where package will be installed. -$ dflt = prefix -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "By default, ''package' will be installed in ''dflt', pod" -$ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" -$ echo "all installation directories." -$ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" -$ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." -$ ENDIF -$ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " -$ GOSUB myread -$ IF ans.NES."" -$ THEN -$ prefix = ans -$ IF F$LOCATE(".]",ans) .EQ. F$LENGTH(ans) THEN prefix = prefix - "]" + ".]" -$ ELSE -$ prefix = dflt -$ ENDIF -$ perl_root = prefix -$! -$! Check here for pre-existing PERL_ROOT. -$! -> ask if removal desired. -$! Check here for writability of requested PERL_ROOT if it is not the default (cwd). -$! -> recommend letting PERL_ROOT be PERL_SRC if requested PERL_ROOT is not writable. -$! -$ tmp = perl_root - ".]" + "]" -$ dflt = f$parse(tmp,,,,) -$ IF dflt .eqs. "" -$ THEN -$ echo4 "''tmp' does not yet exist." -$! create/directory 'tmp' -$ ELSE -$ echo4 "''tmp' already exists." -$ ENDIF -$! -$ vms_skip_install = "true" -$ bool_dflt = "y" -$! echo "" -$ rp = "Skip the remaining """"where install"""" questions? [''bool_dflt'] " -$ GOSUB myread -$ IF (.NOT.ans) THEN vms_skip_install = "false" -$ IF (.NOT.vms_skip_install) -$ THEN -$! -$!: set the prefixit variable, to compute a suitable default value -$! -$!: determine where private library files go -$!: Usual default is /usr/local/lib/perl5. Also allow things like -$!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. -$ IF .NOT.silent -$ THEN -$ TYPE SYS$INPUT: -$ DECK - -There are some auxiliary files for perl5 that need to be put into a -private library directory that is accessible by everyone. -$ EOD -$ ENDIF -$ IF F$TYPE(privlib) .NES. "" -$ THEN dflt = privlib -$ ELSE dflt = "''vms_prefix':[lib]" -$ ENDIF -$ rp = "Pathname where the private library files will reside? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ privlib = ans -$! -$ ENDIF !%Config-I-VMS, skip remaining "where install" questions -$! -$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true -$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = "" -$ IF perl_symbol -$ THEN bool_dflt = "y" -$ ELSE bool_dflt = "n" -$ ENDIF -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" -$ echo "symbol to invoke ''package', which is the usual method." -$ echO "If you do not do so then you would need a DCL command verb at the" -$ echo "process or the system wide level." -$ ENDIF -$ rp = "Invoke perl as a global symbol foreign command? [''bool_dflt'] " -$ GOSUB myread -$ IF (.NOT.ans) THEN perl_symbol = "false" -$! -$ IF (.NOT.perl_symbol) -$ THEN -$ IF perl_verb .EQS. "DCLTABLES" -$ THEN bool_dflt = "n" -$ ELSE bool_dflt = "y" -$ ENDIF -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "Since you won't be using a symbol you must choose to put the ''packageup'" -$ echo "verb in a per-process table or in the system wide DCLTABLES (which" -$ echo "would require write privilege)." -$ ENDIF -$ rp = "Invoke perl as a per process command verb? [ ''bool_dflt' ] " -$ GOSUB myread -$ IF (.NOT.ans) -$ THEN perl_verb = "DCLTABLES" -$ ELSE perl_verb = "PROCESS" -$ ENDIF -$ ENDIF ! (.NOT.perl_symbol) $! $!: set the base revision $ baserev="5.0" @@ -1440,175 +1294,6 @@ $ echo "(You have ''package' ''version_patchlevel_string'.)" $! $ version = revision + "_" + patchlevel + "_" + subversion $! -$ IF (.NOT.vms_skip_install) -$ THEN -$!: set the prefixup variable, to restore leading tilde escape !sfn -$! -$!: determine where public architecture dependent libraries go -$ IF (.NOT.silent) -$ THEN -$ echo "" -$ echo "''package' contains architecture-dependent library files. If you are" -$ ENDIF -$ IF (.NOT.silent) -$ THEN -$ TYPE SYS$INPUT: -$ DECK -sharing libraries in a heterogeneous environment, you might store -these files in a separate location. Otherwise, you can just include -them with the rest of the public library files. -$ EOD -$ ENDIF -$ IF F$TYPE(archlib) .NES. "" -$ THEN dflt = archlib -$ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" -$ ENDIF -$ rp = "Where do you want to put the public architecture-dependent libraries? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ archlib = ans -$! -$ ENDIF !%Config-I-VMS, skip "where install" questions -$! -$! This quotation from Configure has to be included on VMS: -$! -$ TYPE SYS$INPUT: -$ DECK - -There is, however, a strange, musty smell in the air that reminds me of -something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. -$ EOD -$ IF (.NOT.vms_skip_install) -$ THEN -$!: it so happens the Eunice I know will not run shell scripts in Unix format -$! -$!: see if setuid scripts can be secure !sfn -$!: now see if they want to do setuid emulation !sfn -$! -$!: determine where site specific libraries go. -$ IF .NOT.silent -$ THEN -$ TYPE SYS$INPUT: -$ DECK - -The installation process will also create a directory for -site-specific extensions and modules. Some users find it convenient -to place all local files in this directory rather than in the main -distribution directory. -$ EOD -$ ENDIF -$ IF F$TYPE(sitelib) .NES. "" -$ THEN dflt = sitelib -$ ELSE dflt = privlib - "]" + ".SITE_PERL]" -$ ENDIF -$ rp = "Pathname for the site-specific library files? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitelib = ans -$! -$!: determine where site specific architecture-dependent libraries go. -$ IF .NOT.silent -$ THEN TYPE SYS$INPUT: -$ DECK - -The installation process will also create a directory for -architecture-dependent site-specific extensions and modules. -$ EOD -$ ENDIF -$ IF F$TYPE(sitearch) .NES. "" -$ THEN dflt = sitearch -$ ELSE dflt = sitelib - "]" + "." + archname + "]" -$ ENDIF -$ rp = "Pathname for the site-specific architecture-dependent library files? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitearch = ans -$! -$!: determine where old public architecture dependent libraries might be -$! -$!: determine where public executables go -$ IF F$TYPE(bin) .NES. "" -$ THEN dflt = bin -$! ELSE dflt = prefix - ".]" + ".BIN]" -$ ELSE dflt = "/''vms_prefix'" -$ ENDIF -$ rp = "Pathname where the public executables will reside? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ bin = ans -$! -$!: determine where add-on public executables go -$ IF F$TYPE(sitebin) .NES. "" -$ THEN dflt = sitebin -$ ELSE dflt = "''vms_prefix':[bin.''archname']" -$ ENDIF -$ rp = "Pathname where the add-on public executables should be installed? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitebin = ans -$! -$!: determine where manual pages are on this system -$!: What suffix to use on installed man pages -$!: see if we can have long filenames -$!: determine where library module manual pages go -$!: What suffix to use on installed man pages -$!: see what memory models we can support -$! -$ ELSE ! skipping "where install" questions, we must set some symbols -$ IF F$TYPE(archlib).EQS."" THEN - - archlib="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(bin) .EQS. "" THEN - - bin="/''vms_prefix'" -$ IF F$TYPE(privlib) .EQS. "" THEN - - privlib ="''vms_prefix':[lib]" -$ IF F$TYPE(sitearch) .EQS. "" THEN - - sitearch="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(sitelib) .EQS. "" THEN - - sitelib ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(sitebin) .EQS. "" THEN - - sitebin="''vms_prefix':[bin.''archname']" -$ ENDIF !%Config-I-VMS, skip "where install" questions -$! -$! These derived locations can be set whether we've opted to -$! skip the where install questions or not. -$! -$ IF F$TYPE(archlibexp) .EQS. "" THEN - - archlibexp="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(binexp) .EQS. "" THEN - - binexp ="''vms_prefix':[000000]" -$ IF F$TYPE(builddir) .EQS. "" THEN - - builddir ="''vms_prefix':[000000]" -$ IF F$TYPE(installarchlib) .EQS. "" THEN - - installarchlib="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(installbin) .EQS. "" THEN - - installbin ="''vms_prefix':[000000]" -$ IF F$TYPE(installscript) .EQS. "" THEN - - installscript ="''vms_prefix':[utils]" -$ IF F$TYPE(installman1dir) .EQS. "" THEN - - installman1dir ="''vms_prefix':[man.man1]" -$ IF F$TYPE(installman3dir) .EQS. "" THEN - - installman3dir ="''vms_prefix':[man.man3]" -$ IF F$TYPE(installprivlib) .EQS. "" THEN - - installprivlib ="''vms_prefix':[lib]" -$ IF F$TYPE(installsitearch) .EQS. "" THEN - - installsitearch="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(installsitelib) .EQS. "" THEN - - installsitelib ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(oldarchlib) .EQS. "" THEN - - oldarchlib="''vms_prefix':[lib.''archname']" -$ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - - oldarchlibexp="''vms_prefix':[lib.''archname']" -$ IF F$TYPE(privlibexp) .EQS. "" THEN - - privlibexp ="''vms_prefix':[lib]" -$ IF F$TYPE(scriptdir) .EQS. "" THEN - - scriptdir ="''vms_prefix':[utils]" -$ IF F$TYPE(sitearchexp) .EQS. "" THEN - - sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(sitelib_stem) .EQS. "" THEN - - sitelib_stem ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(sitelibexp) .EQS. "" THEN - - sitelibexp ="''vms_prefix':[lib.site_perl]" -$! $!: see if we need a special compiler $! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands $! @@ -1898,7 +1583,7 @@ $ CLOSE CONFIG $ echo "You are using Dec C ''line'" $ ccversion = line $ Dec_C_Version = F$INTEGER(line) -$ IF Dec_C_Version .GE. 60200000 .AND. archname .NES. "VMS_VAX" +$ IF Dec_C_Version .GE. 60200000 .AND. F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" $ THEN $ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." $ ccflags = ccflags + "/NOANSI_ALIAS" @@ -2093,12 +1778,12 @@ $! $List_Parse: $ OPEN/READ CONFIG ccvms.lis $ READ CONFIG line -$ IF archname .EQS. "VMS_VAX" +$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_VAX" $ THEN $ read CONFIG line $ archsufx = "VAX" $ ELSE -$ IF archname .EQS. "VMS_AXP" +$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP" $ THEN $ archsufx = "AXP" $ ELSE @@ -2350,7 +2035,7 @@ $ usemultiplicity="undef" $ ENDIF $! $! Ask if they want to build with 64-bit support -$ IF (archname.NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") +$ IF (F$ELEMENT(0, "-", archname).NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN $ bool_dflt = "n" $ IF F$TYPE(use64bitint) .NES. "" @@ -2509,7 +2194,7 @@ $ THEN $ thread_upcalls = "MTU=MTU=1" $ usethreadupcalls = "define" $ ! Are they on alpha or itanium? -$ IF (archname .NES. "VMS_VAX") .AND. ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2") +$ IF (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") .AND. ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2") $ THEN $ echo "" $ echo "Threaded Perl can be linked to use multiple kernel threads on your system." @@ -2569,7 +2254,7 @@ $ endif $ rp = "Build with long symbols shortened? [''bool_dflt'] " $ GOSUB myread $ shorten_long_symbols = ans -$ IF archname .NES. "VMS_VAX" +$ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" $ THEN $! IEEE math? $ echo "" @@ -2686,6 +2371,362 @@ $ d_alwdeftype = ans $ usedefaulttypes = "undef" $ if (d_alwdeftype) then usedefaulttypes = "define" $! +$ dflt = archname +$ rp = "What is your architecture name? [''archname'] " +$ GOSUB myread +$ IF ans.NES."" +$ THEN +$ ans = F$EDIT(ans,"COLLAPSE, UPCASE") +$ IF (ans.NES.archname) !.AND.knowitall +$ THEN +$ echo4 "I'll go with ''archname' anyway..." +$ ENDIF +$ ENDIF +$! +$ IF usethreads .OR. usethreads .EQS. "define" +$ THEN +$ echo4 "Threads selected." +$ IF F$LOCATE("-thread", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-thread" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -thread." +$ ENDIF +$ ENDIF +$! +$ IF usemultiplicity .OR. usemultiplicity .EQS. "define" +$ THEN +$ echo4 "Multiplicity selected." +$ IF F$LOCATE("-multi", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-multi" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -multi." +$ ENDIF +$ ENDIF +$! +$ IF uselongdouble .OR. uselongdouble .EQS. "define" +$ THEN +$ echo4 "Long doubles selected." +$ IF F$LOCATE("-ld", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-ld" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -ld." +$ ENDIF +$ ENDIF +$! +$ bool_dflt = "n" +$ vms_prefix = "perl_root" +$ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") +$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] " +$ GOSUB myread +$ IF .NOT. ans +$ THEN +$ sharedperl = "N" +$ ELSE +$ sharedperl = "Y" +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_AXP") +$ THEN +$ macros = macros + """AXE=1""," +$ ENDIF +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") +$ THEN +$ macros = macros + """IXE=1""," +$ ENDIF +$ ENDIF +$! +$!: is AFS running? !sfn +$!: decide how portable to be. Allow command line overrides. !sfn +$!: set up shell script to do ~ expansion !sfn +$!: expand filename !sfn +$!: now set up to get a file name !sfn +$! +$ IF F$TYPE(prefix) .EQS. "" +$ THEN +$ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" +$ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - "000000." - ".000000" - ".;" +$ prefixbase = prefix - "]" +$! Add _ROOT to make install PERL_ROOT differ from build directory. +$ prefix = prefixbase + "_ROOT.]" +$ ENDIF +$ ! more redundant scrubbing of values +$ prefix = prefix - "000000." +$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" +$ src = prefix +$!: determine root of directory hierarchy where package will be installed. +$ dflt = prefix +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "By default, ''package' will be installed in ''dflt', pod" +$ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" +$ echo "all installation directories." +$ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" +$ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." +$ ENDIF +$ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " +$ GOSUB myread +$ IF ans.NES."" +$ THEN +$ prefix = ans +$ IF F$LOCATE(".]",ans) .EQ. F$LENGTH(ans) THEN prefix = prefix - "]" + ".]" +$ ELSE +$ prefix = dflt +$ ENDIF +$ perl_root = prefix +$! +$! Check here for pre-existing PERL_ROOT. +$! -> ask if removal desired. +$! Check here for writability of requested PERL_ROOT if it is not the default (cwd). +$! -> recommend letting PERL_ROOT be PERL_SRC if requested PERL_ROOT is not writable. +$! +$ tmp = perl_root - ".]" + "]" +$ dflt = f$parse(tmp,,,,) +$ IF dflt .eqs. "" +$ THEN +$ echo4 "''tmp' does not yet exist." +$! create/directory 'tmp' +$ ELSE +$ echo4 "''tmp' already exists." +$ ENDIF +$! +$ vms_skip_install = "true" +$ bool_dflt = "y" +$! echo "" +$ rp = "Skip the remaining """"where install"""" questions? [''bool_dflt'] " +$ GOSUB myread +$ IF (.NOT.ans) THEN vms_skip_install = "false" +$ IF (.NOT.vms_skip_install) +$ THEN +$! +$!: set the prefixit variable, to compute a suitable default value +$! +$!: determine where private library files go +$!: Usual default is /usr/local/lib/perl5. Also allow things like +$!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. +$ IF .NOT.silent +$ THEN +$ TYPE SYS$INPUT: +$ DECK + +There are some auxiliary files for perl5 that need to be put into a +private library directory that is accessible by everyone. +$ EOD +$ ENDIF +$ IF F$TYPE(privlib) .NES. "" +$ THEN dflt = privlib +$ ELSE dflt = "''vms_prefix':[lib]" +$ ENDIF +$ rp = "Pathname where the private library files will reside? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ privlib = ans +$! +$ ENDIF !%Config-I-VMS, skip remaining "where install" questions +$! +$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true +$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = "" +$ IF perl_symbol +$ THEN bool_dflt = "y" +$ ELSE bool_dflt = "n" +$ ENDIF +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" +$ echo "symbol to invoke ''package', which is the usual method." +$ echO "If you do not do so then you would need a DCL command verb at the" +$ echo "process or the system wide level." +$ ENDIF +$ rp = "Invoke perl as a global symbol foreign command? [''bool_dflt'] " +$ GOSUB myread +$ IF (.NOT.ans) THEN perl_symbol = "false" +$! +$ IF (.NOT.perl_symbol) +$ THEN +$ IF perl_verb .EQS. "DCLTABLES" +$ THEN bool_dflt = "n" +$ ELSE bool_dflt = "y" +$ ENDIF +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "Since you won't be using a symbol you must choose to put the ''packageup'" +$ echo "verb in a per-process table or in the system wide DCLTABLES (which" +$ echo "would require write privilege)." +$ ENDIF +$ rp = "Invoke perl as a per process command verb? [ ''bool_dflt' ] " +$ GOSUB myread +$ IF (.NOT.ans) +$ THEN perl_verb = "DCLTABLES" +$ ELSE perl_verb = "PROCESS" +$ ENDIF +$ ENDIF ! (.NOT.perl_symbol) +$! +$ IF (.NOT.vms_skip_install) +$ THEN +$!: set the prefixup variable, to restore leading tilde escape !sfn +$! +$!: determine where public architecture dependent libraries go +$ IF (.NOT.silent) +$ THEN +$ echo "" +$ echo "''package' contains architecture-dependent library files. If you are" +$ ENDIF +$ IF (.NOT.silent) +$ THEN +$ TYPE SYS$INPUT: +$ DECK +sharing libraries in a heterogeneous environment, you might store +these files in a separate location. Otherwise, you can just include +them with the rest of the public library files. +$ EOD +$ ENDIF +$ IF F$TYPE(archlib) .NES. "" +$ THEN dflt = archlib +$ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" +$ ENDIF +$ rp = "Where do you want to put the public architecture-dependent libraries? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ archlib = ans +$! +$ ENDIF !%Config-I-VMS, skip "where install" questions +$ IF (.NOT.vms_skip_install) +$ THEN +$!: it so happens the Eunice I know will not run shell scripts in Unix format +$! +$!: see if setuid scripts can be secure !sfn +$!: now see if they want to do setuid emulation !sfn +$! +$!: determine where site specific libraries go. +$ IF .NOT.silent +$ THEN +$ TYPE SYS$INPUT: +$ DECK + +The installation process will also create a directory for +site-specific extensions and modules. Some users find it convenient +to place all local files in this directory rather than in the main +distribution directory. +$ EOD +$ ENDIF +$ IF F$TYPE(sitelib) .NES. "" +$ THEN dflt = sitelib +$ ELSE dflt = privlib - "]" + ".SITE_PERL]" +$ ENDIF +$ rp = "Pathname for the site-specific library files? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ sitelib = ans +$! +$!: determine where site specific architecture-dependent libraries go. +$ IF .NOT.silent +$ THEN TYPE SYS$INPUT: +$ DECK + +The installation process will also create a directory for +architecture-dependent site-specific extensions and modules. +$ EOD +$ ENDIF +$ IF F$TYPE(sitearch) .NES. "" +$ THEN dflt = sitearch +$ ELSE dflt = sitelib - "]" + "." + archname + "]" +$ ENDIF +$ rp = "Pathname for the site-specific architecture-dependent library files? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ sitearch = ans +$! +$!: determine where old public architecture dependent libraries might be +$! +$!: determine where public executables go +$ IF F$TYPE(bin) .NES. "" +$ THEN dflt = bin +$! ELSE dflt = prefix - ".]" + ".BIN]" +$ ELSE dflt = "/''vms_prefix'" +$ ENDIF +$ rp = "Pathname where the public executables will reside? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ bin = ans +$! +$!: determine where add-on public executables go +$ IF F$TYPE(sitebin) .NES. "" +$ THEN dflt = sitebin +$ ELSE dflt = "''vms_prefix':[bin.''archname']" +$ ENDIF +$ rp = "Pathname where the add-on public executables should be installed? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ sitebin = ans +$! +$!: determine where manual pages are on this system +$!: What suffix to use on installed man pages +$!: see if we can have long filenames +$!: determine where library module manual pages go +$!: What suffix to use on installed man pages +$!: see what memory models we can support +$! +$ ELSE ! skipping "where install" questions, we must set some symbols +$ IF F$TYPE(archlib).EQS."" THEN - + archlib="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(bin) .EQS. "" THEN - + bin="/''vms_prefix'" +$ IF F$TYPE(privlib) .EQS. "" THEN - + privlib ="''vms_prefix':[lib]" +$ IF F$TYPE(sitearch) .EQS. "" THEN - + sitearch="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(sitelib) .EQS. "" THEN - + sitelib ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(sitebin) .EQS. "" THEN - + sitebin="''vms_prefix':[bin.''archname']" +$ ENDIF !%Config-I-VMS, skip "where install" questions +$! +$! These derived locations can be set whether we've opted to +$! skip the where install questions or not. +$! +$ IF F$TYPE(archlibexp) .EQS. "" THEN - + archlibexp="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(binexp) .EQS. "" THEN - + binexp ="''vms_prefix':[000000]" +$ IF F$TYPE(builddir) .EQS. "" THEN - + builddir ="''vms_prefix':[000000]" +$ IF F$TYPE(installarchlib) .EQS. "" THEN - + installarchlib="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(installbin) .EQS. "" THEN - + installbin ="''vms_prefix':[000000]" +$ IF F$TYPE(installscript) .EQS. "" THEN - + installscript ="''vms_prefix':[utils]" +$ IF F$TYPE(installman1dir) .EQS. "" THEN - + installman1dir ="''vms_prefix':[man.man1]" +$ IF F$TYPE(installman3dir) .EQS. "" THEN - + installman3dir ="''vms_prefix':[man.man3]" +$ IF F$TYPE(installprivlib) .EQS. "" THEN - + installprivlib ="''vms_prefix':[lib]" +$ IF F$TYPE(installsitearch) .EQS. "" THEN - + installsitearch="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(installsitelib) .EQS. "" THEN - + installsitelib ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(oldarchlib) .EQS. "" THEN - + oldarchlib="''vms_prefix':[lib.''archname']" +$ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - + oldarchlibexp="''vms_prefix':[lib.''archname']" +$ IF F$TYPE(privlibexp) .EQS. "" THEN - + privlibexp ="''vms_prefix':[lib]" +$ IF F$TYPE(scriptdir) .EQS. "" THEN - + scriptdir ="''vms_prefix':[utils]" +$ IF F$TYPE(sitearchexp) .EQS. "" THEN - + sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(sitelib_stem) .EQS. "" THEN - + sitelib_stem ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(sitelibexp) .EQS. "" THEN - + sitelibexp ="''vms_prefix':[lib.site_perl]" +$! $! determine whether to use malloc wrapping $ echo "" $ bool_dflt = "y" @@ -3043,7 +3084,7 @@ $ IF use_ieee_math $ THEN $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm" $ ELSE -$ IF (archname.EQS."VMS_IA64") +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") $ THEN $ extra_flags = "''extra_flags'" + "/float=g_float" $ ENDIF @@ -3258,7 +3299,7 @@ $ if mymalloc then usemymalloc = "define" $! $ perl_cc=Mcc $! -$ IF (sharedperl .AND. archname .EQS. "VMS_AXP") +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") $ THEN $ obj_ext=".abj" $ so="axe" @@ -3266,7 +3307,7 @@ $ dlext="axe" $ exe_ext=".axe" $ lib_ext=".alb" $ ELSE -$ IF (sharedperl .AND. archname .EQS. "VMS_IA64") +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") $ THEN $ obj_ext=".ibj" $ so="ixe" @@ -3320,7 +3361,7 @@ $! $ perllibs=libs $! $! -$ IF archname .NES. "VMS_VAX" +$ IF F$ELEMENT(0, "-", archname) .NES. "VMS_VAX" $ THEN $ d_PRId64 = "define" $ d_PRIu64 = "define" @@ -3378,15 +3419,11 @@ $ IF use_threads $ THEN $ IF use_5005_threads $ THEN -$ arch = "''arch'-thread" -$ archname = "''archname'-thread" $ d_old_pthread_create_joinable = "undef" $ old_pthread_create_joinable = " " $ use5005threads = "define" $ useithreads = "undef" $ ELSE -$ arch = "''arch'-ithread" -$ archname = "''archname'-ithread" $ d_old_pthread_create_joinable = "undef" $ old_pthread_create_joinable = " " $ use5005threads = "undef" @@ -5119,7 +5156,7 @@ $! easy to use DCL test to see if hardlinks are enabled on the build $! disk. That would require more work to test, and I am only testing $! this on 8.2, so that is why the 8.2 test. $! -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ THEN $ IF f$getdvi("SYS$DISK","HARDLINKS_SUPPORTED") $ THEN @@ -5137,7 +5174,7 @@ $ ENDIF $! $ IF uselargefiles .OR. uselargefiles .eqs. "define" $ THEN -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ THEN $ echo4 "Largefile support enabled, so enabling standard stat support too." $ usestdstat = "y" @@ -5179,7 +5216,7 @@ $ echo4 "Your system does not support symbolic links." $ echo4 "I am disabling symbolic link support." $ ENDIF $ ELSE -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ THEN $ echo4 "-Duselargefiles is required for symbolic link support." $ echo4 "You did not specify that, so I am disabling symbolic link support." @@ -5213,7 +5250,7 @@ $ d_ttyname_r = "undef" $ ttyname_r_proto = "0" $ d_snprintf = "undef" $ d_vsnprintf = "undef" -$ if (vms_ver .GES. "7.3-2") .AND. (archname .NES. "VMS_VAX") +$ if (vms_ver .GES. "7.3-2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ then $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines" $ d_getgrgid_r = "define" @@ -5247,7 +5284,7 @@ $ d_setregid = "undef" $ d_setreuid = "undef" $ d_setsid = "undef" $ ! Disable this section for now. -$!$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$!$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ if .NOT. 1 $ then $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 UID setting routines" @@ -5265,7 +5302,7 @@ $! $ d_fstatvfs = "undef" $! d_statvfs = "undef" $ i_sysstatvfs = "undef" -$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ then $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with 8.2 routines" $ d_fstatvfs = "define" @@ -5531,7 +5568,7 @@ $ d_vms_do_sockets="define" $ d_htonl="define" $ d_socket="define" $ d_sockpair = "undef" -$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ if (vms_ver .GES. "8.2") .AND. (F$ELEMENT(0, "-", archname) .NES. "VMS_VAX") $ then $ echo "Found 64 bit OpenVMS 8.2, will build with socketpair support" $ d_sockpair = "define" @@ -6988,7 +7025,7 @@ $ IF use_ieee_math THEN WC "#define USE_IEEE" $ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO" $ WC "#define HAS_ENVGETENV" $ WC "#define PERL_EXTERNAL_GLOB" -$ IF archname .EQS. "VMS_VAX" .AND. - +$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_VAX" .AND. - ccname .EQS. "DEC" .AND. - ccversion .LE. 50390006 $ THEN @@ -7091,6 +7128,7 @@ $ WC "''THREAD_KERNEL'" $ WC "PV=''version'" $ WC "FLAGS=FLAGS=''extra_flags'" $ WC "''LARGEFILE_REPLACE'" +$ WC "ARCHNAME=ARCHNAME=''archname'" $ close CONFIG $! $ echo4 "Extracting ''defmakefile' (with variable substitutions)" @@ -7216,8 +7254,8 @@ $ echo "" $ echo4 "The perl.cld file is now being written..." $ OPEN/WRITE CONFIG 'file_2_find' $ ext = ".exe" -$ IF (sharedperl .AND. F$EXTRACT(0,7,archname) .EQS. "VMS_AXP") THEN ext := .AXE -$ IF (sharedperl .AND. F$EXTRACT(0,8,archname) .EQS. "VMS_IA64") THEN ext := .IXE +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") THEN ext := .AXE +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") THEN ext := .IXE $ IF (use_vmsdebug_perl) $ THEN $ WRITE CONFIG "define verb dbgperl" diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index b1b3ae5..b100ef3 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -33,6 +33,7 @@ ~MTU~ ~FLAGS~ ~LARGEFILE~ +~ARCHNAME~ #: >>>>> Architecture-specific options <<<<< .ifdef IXE @@ -58,14 +59,11 @@ E = .exe .endif .ifdef __IA64__ -ARCH = VMS_IA64 OBJVAL = $(O) .else .ifdef __AXP__ -ARCH = VMS_AXP OBJVAL = $(O) .else -ARCH = VMS_VAX OBJVAL = $(MMS$TARGET_NAME)$(O) .endif .endif @@ -96,9 +94,9 @@ SOCKETSHR_SOCKETS=1 .endif .endif -ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)] -ARCHCORE = [.lib.$(ARCH).$(PERL_VERSION).CORE] -ARCHAUTO = [.lib.$(ARCH).$(PERL_VERSION).auto] +ARCHDIR = [.lib.$(ARCHNAME).$(PERL_VERSION)] +ARCHCORE = [.lib.$(ARCHNAME).$(PERL_VERSION).CORE] +ARCHAUTO = [.lib.$(ARCHNAME).$(PERL_VERSION).auto] #: Backwards compatibility .ifdef DECC_PIPES_BROKEN @@ -1535,7 +1533,7 @@ install : $(MINIPERL_EXE) $(MINIPERL) installperl archify : all - @ Write Sys$Output "Moving files to architecture-specific locations for $(ARCH)" + @ Write Sys$Output "Moving files to architecture-specific locations for $(ARCHNAME)" archroot = "$(ARCHAUTO)" - "]" + "...]" Backup/Log/Verify [.lib.auto...]*.*;/Exclude=(*.al,*.ix) 'archroot'/New_Version Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix,*.dir) @@ -1944,7 +1942,7 @@ realclean : clean - If F$Search("Descrip.MMS").nes."" Then Delete/NoConfirm/Log Descrip.MMS;* - If F$Search("extra_pods.Com").nes."" Then Delete/NoConfirm/Log extra_pods.Com;* - If F$Search("extra.pods").nes."" Then Delete/NoConfirm/Log extra.pods;* - - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCH)'],1,0);" + - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCHNAME)'],1,0);" - If F$Search("*.TS").nes."" Then Delete/NoConfirm/Log *.TS;* - If F$Search("[.lib]Config.pm").nes."" Then Delete/NoConfirm/Log [.lib]Config.pm;* - If F$Search("[.lib]Config_heavy.pl").nes."" Then Delete/NoConfirm/Log [.lib]Config_heavy.pl;* -- Perl5 Master Repository
