summaryrefslogtreecommitdiff
path: root/configure.com
diff options
context:
space:
mode:
authorCraig A. Berry <craigberry@mac.com>2010-04-13 21:55:58 -0500
committerCraig A. Berry <craigberry@mac.com>2010-04-13 22:10:34 -0500
commitbd2aeadfa5cb8ea8dbfc9c3060728594d8452bc6 (patch)
treef5d109b353d64c7431f184f02c120bfcbf4edba9 /configure.com
parent2245bcb6feb0767d75052b7ccde4f6345e3a5f79 (diff)
downloadperl-bd2aeadfa5cb8ea8dbfc9c3060728594d8452bc6.tar.gz
Allow extension building on older (pre 7.3-2) VMS systems.
DCL symbol length was limited to 1K up until about seven years or so ago, but there was no particularly deep reason to prevent those older systems from configuring and building Perl.
Diffstat (limited to 'configure.com')
-rw-r--r--configure.com30
1 files changed, 21 insertions, 9 deletions
diff --git a/configure.com b/configure.com
index 5ce518d278..0fce752b83 100644
--- a/configure.com
+++ b/configure.com
@@ -63,6 +63,7 @@ $ ccflags = ""
$ static_ext = ""
$ dynamic_ext = ""
$ nonxs_ext = ""
+$ nonxs_ext2 = ""
$ vms_default_directory_name = F$ENVIRONMENT("DEFAULT")
$ max_allowed_dir_depth = 3 ! e.g. [A.B.PERLxxx] not [A.B.C.PERLxxx]
$! max_allowed_dir_depth = 2 ! e.g. [A.PERLxxx] not [A.B.PERLxxx]
@@ -2772,14 +2773,21 @@ $ THEN
$ xxx = nonxs_ext
$ gosub may_already_have_extension
$ ENDIF
+$ IF $STATUS .EQ. 1
+$ THEN
+$ xxx = nonxs_ext2
+$ gosub may_already_have_extension
+$ ENDIF
$ IF $STATUS .NE. 1 THEN goto ext_loop
$ goto found_new_extension
$!
$ may_already_have_extension:
$ idx = F$LOCATE(extspec, xxx)
$ extlen = F$LENGTH(xxx)
-$ IF idx .EQ. extlen THEN return 1
-$! But "Flirble" may just be part of "Acme-Flirble"
+$ IF idx .EQ. extlen THEN return 1 ! didn't find it
+$! But "Flirble" may just be part of "Acme-Flirble". This is not
+$! bullet-proof because we may only be looking at one chunk of the
+$! existing extension list.
$ IF idx .GT. 0 .AND. F$EXTRACT(idx - 1, 1, xxx) .NES. " "
$ THEN
$ xxx = F$EXTRACT(idx + F$LENGTH(extspec) + 1, extlen, xxx)
@@ -2798,7 +2806,13 @@ $!
$ found_new_extension:
$ IF F$SEARCH("[-.ext.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.dist.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.cpan.''extension_dir_name']*.xs") .EQS. ""
$ THEN
-$ nonxs_ext = nonxs_ext + " ''extspec'"
+$! Bit if a hack to get around the 1K buffer on older systems.
+$ IF F$LENGTH(nonxs_ext) .GT. 950
+$ THEN
+$ nonxs_ext2 = nonxs_ext2 + " ''extspec'"
+$ ELSE
+$ nonxs_ext = nonxs_ext + " ''extspec'"
+$ ENDIF
$ ELSE
$ known_extensions = known_extensions + " ''extspec'"
$ ENDIF
@@ -2829,8 +2843,10 @@ $ dflt = dflt - "Socket" ! optional on VMS
$ ENDIF
$ dflt = dflt - "Win32API/File" - "Win32" ! need Dave Cutler's other project
$ nonxs_ext = nonxs_ext - "Win32CORE"
+$ nonxs_ext2 = nonxs_ext2 - "Win32CORE"
$ dflt = F$EDIT(dflt,"TRIM,COMPRESS")
$ nonxs_ext = F$EDIT(nonxs_ext,"TRIM,COMPRESS")
+$ nonxs_ext2 = F$EDIT(nonxs_ext2,"TRIM,COMPRESS")
$!
$! Ask for their default list of extensions to build
$ echo ""
@@ -6290,9 +6306,7 @@ $ WC "exe_ext='" + exe_ext + "'"
$!
$! The extensions symbols may be quite long
$!
-$ tmp = "extensions='" + nonxs_ext + " " + dynamic_ext + "'"
-$ WC/symbol tmp
-$ DELETE/SYMBOL tmp
+$ WC/symbol "extensions='", nonxs_ext, " ", nonxs_ext2, " ", dynamic_ext, "'"
$ WC "fflushNULL='define'"
$ WC "fflushall='undef'"
$ WC "fpostype='fpos_t'"
@@ -6461,9 +6475,7 @@ $ WC "netdb_hlen_type='" + netdb_hlen_type + "'"
$ WC "netdb_host_type='" + netdb_host_type + "'"
$ WC "netdb_name_type='" + netdb_name_type + "'"
$ WC "netdb_net_type='" + netdb_net_type + "'"
-$ tmp = "nonxs_ext='" + nonxs_ext + "'"
-$ WC/symbol tmp
-$ DELETE/SYMBOL tmp
+$ WC/symbol "nonxs_ext='", nonxs_ext, " ", nonxs_ext2, "'"
$ WC "nveformat='" + nveformat + "'"
$ WC "nvfformat='" + nvfformat + "'"
$ WC "nvgformat='" + nvgformat + "'"