summaryrefslogtreecommitdiff
path: root/configure.com
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2015-06-04 22:07:14 -0500
committerCraig A. Berry <craigberry@mac.com>2015-06-04 22:07:14 -0500
commitdd3163fe576a290b373e718815be5649da21745a (patch)
tree5577777ada095393d32ffc097fcb8cf90f15af48 /configure.com
parent33bbbd9c164e5fcf08eb134af69fe2e57177b5ab (diff)
downloadperl-dd3163fe576a290b373e718815be5649da21745a.tar.gz
Handle variant build product extensions in configure.com.
This addresses [perl #125284]. Object files, object libraries, shared libraries, and executables can be given architecture-specific extensions on VMS to allow for an installation directory that can be shared by multiple platforms. I guess this feature seemed like a good idea twenty years ago when disks were much smaller, but it hasn't been working for some time because, as noted in the ticket some configure-time compilation was inconsistent in its use of the alternate extensions. There were a couple more in addition to those mentioned in the ticket. N.B. t/TEST still won't run as it's looking explicitly for perl.exe so that's a TODO.
Diffstat (limited to 'configure.com')
-rw-r--r--configure.com15
1 files changed, 8 insertions, 7 deletions
diff --git a/configure.com b/configure.com
index 78ce59f614..bd05113edd 100644
--- a/configure.com
+++ b/configure.com
@@ -7002,12 +7002,12 @@ $ WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library"
$ ENDIF
$ WRITE CONFIG "Sys$Share:VAXCRTL/Share"
$ CLOSE CONFIG
-$ 'ld' munchconfig.obj,munchconfig.opt/opt
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext',munchconfig.opt/opt
$ DELETE/NOLOG/NOCONFIRM munchconfig.opt;
$ ELSE
-$ 'ld' munchconfig.obj
+$ 'ld'/EXE='exe_ext' munchconfig'obj_ext'
$ ENDIF
-$ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj;
+$ IF F$SEARCH("munchconfig''obj_ext'") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig'obj_ext';
$ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c;
$ IF ccname .EQS. "CXX"
$ THEN
@@ -7097,7 +7097,7 @@ $ echo4 "Extracting config.h (with variable substitutions)"
$!
$! Now build the normal config.h
$ DEFINE/USER_MODE sys$output [-]config.main
-$ mcr []munchconfig 'config_sh' [-]config_h.sh
+$ mcr []munchconfig'exe_ext' 'config_sh' [-]config_h.sh
$ ! Concatenate them together
$ copy [-]config.local,[-]config.main [-]config.h
$! Clean up
@@ -7186,9 +7186,9 @@ $ close CONFIG
$!
$ echo4 "Extracting ''defmakefile' (with variable substitutions)"
$ DEFINE/USER_MODE sys$output 'UUmakefile'
-$ mcr []munchconfig 'config_sh' 'Makefile_SH' -f extra_subs.txt
+$ mcr []munchconfig'exe_ext' 'config_sh' 'Makefile_SH' -f extra_subs.txt
$! Clean up after ourselves
-$ DELETE/NOLOG/NOCONFIRM []munchconfig.exe;
+$ DELETE/NOLOG/NOCONFIRM []munchconfig'exe_ext';
$ DELETE/NOLOG/NOCONFIRM []extra_subs.txt;
$!
$! Note that the /key qualifier to search, as in:
@@ -7203,6 +7203,7 @@ $! NOTE: This file is extracted as part of the VMS configuration process.
$! Any changes made to it directly will be lost. If you need to make any
$! changes, please edit the template in Configure.Com instead.
$! Use FORCE if you've just podified a README.* file on VMS.
+$ miniperl = f$search("sys$disk:[]miniperl.%xe;") ! could have alternate extension
$ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then -
search README.* "=head"/window=0/output=extra.pods
$ open/read/error=extra_close EXTRA extra.pods
@@ -7225,7 +7226,7 @@ $ pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT"))
$ if file_rdt .GTS. pod_file_rdt then do_copy := true
$ endif
$ ! wacky method to preserve case on ODS-5 even when parse style is traditional
-$ if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});"
+$ if do_copy then mcr 'miniperl' -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});"
$ endif
$ endif
$ goto extra_loop