summaryrefslogtreecommitdiff
path: root/configure.com
diff options
context:
space:
mode:
authorDan Sugalski <dan@sidhe.org>1998-06-19 08:36:34 -0700
committerGurusamy Sarathy <gsar@cpan.org>1998-06-21 06:55:18 +0000
commit429a5e67a8cd7868f6400fb40a70246ad7548973 (patch)
treea6ee82a5dae271a7ae918a6b654d9d8026af2e8f /configure.com
parent4318d5a0158916acc059aa8e6af84037cb7296b9 (diff)
downloadperl-429a5e67a8cd7868f6400fb40a70246ad7548973.tar.gz
applied VMS patch from Dan Sugalski
Message-Id: <980619153634.2063ee12@cedar.osshe.edu> Subject: [PATCH 5.004_67] Enhancements to the VMS configuration procedures p4raw-id: //depot/perl@1174
Diffstat (limited to 'configure.com')
-rw-r--r--configure.com103
1 files changed, 94 insertions, 9 deletions
diff --git a/configure.com b/configure.com
index 57fb5c567b..7eef1ca5d9 100644
--- a/configure.com
+++ b/configure.com
@@ -20,24 +20,22 @@ $! $ SET DEFAULT [USER.PERL5_00n]
$! $ @[.vms]Configure "-des"
$!
$! That's it. If you get into a bind trying to build perl on VMS then
-$! definitely read through the README.VMS file as well as the top of the
-$! [.VMS]DESCRIP.MMS file.
+$! definitely read through the README.VMS file.
$! Beyond that send email to VMSPerl@cor.newman.upenn.edu
$!
$! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$!
-$! This CONFIGURE.COM prototype is available from:
-$! http://w4.lns.cornell.edu/~pvhp/perl/vms/devel/configure.com
$! send suggestions to:
-$! Peter Prymmer pvhp@lns62.lns.cornell.edu or pvhp@forte.com
+$! Dan Sugalski <sugalskd@ous.edu>
$! Thank you!!!!
$!
$! Adapted and converted from Larry Wall & Andy Dougherty's
-$! "Configure generated by metaconfig 3.0 PL60."
+$! "Configure generated by metaconfig 3.0 PL60." by Peter Prymmer
$! (a Bourne sh[ell] script for configuring the installation of perl on VMS)
$! in the perl5.002|3 epoch (spring/summer 1996)
$! with much valuable help from Charles Bailey &
$! the whole VMSPerl crew.
+$! Extended and messed about with by Dan Sugalski
$!
$! SET NOVERIFY
$ sav_ver = F$VERIFY(sav_ver)
@@ -48,7 +46,13 @@ $ cat = "type"
$ gcc_symbol = "gcc"
$ ans = ""
$ macros = ""
+$ use_debugging_perl = "Y"
$ C_Compiler_Replace = "CC="
+$ Thread_Live_Dangerously = "MT="
+$ use_two_pot_malloc = "N"
+$ use_pack_malloc = "N"
+$ use_debugmalloc = "N"
+$ preload_env = "N"
$ vms_default_directory_name = F$ENVIRONMENT("DEFAULT")
$! max_allowed_dir_depth = 3 ! e.g. [A.B.PERL5_00n] not [A.B.C.PERL5_00n]
$ max_allowed_dir_depth = 2 ! e.g. [FOO.PERL5_00n] not [FOO.BAR.PERL5_00n]
@@ -495,7 +499,7 @@ THIS PACKAGE SEEMS TO BE INCOMPLETE.
You have the option of continuing the configuration process, despite the
distinct possibility that your kit is damaged, by typing 'y'es. If you
do, don't blame me if something goes wrong. I advise you to type 'n'o
-and contact the author (pvhp@lns62.lns.cornell.edu).
+and contact the author (sugalskd@ous.edu).
$ READ SYS$COMMAND/PROMPT="Continue? [n] " ans
$ IF ans
@@ -1245,11 +1249,13 @@ $ IF F$LOCATE("dec",ans).NE.F$LENGTH(ans)
$ THEN
$ Mcc = "cc/decc"
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF F$LOCATE("vax",ans).NE.F$LENGTH(ans)
$ THEN
$ Mcc = "cc/vaxc"
$ Using_Vax_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc.NES.dflt
$ THEN
@@ -1267,6 +1273,7 @@ $ ELSE
$ IF Mcc .EQS. "cc/decc"
$ THEN
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ ENDIF
$ ELSE
@@ -1274,14 +1281,17 @@ $ Mcc = dflt
$ IF Mcc .EQS. "cc/decc"
$ THEN
$ Using_Dec_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc .EQS. "cc/vaxc"
$ THEN
$ Using_Vax_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ IF Mcc .EQS. "gcc"
$ THEN
$ Using_Gnu_C = "Yes"
+$ C_COMPILER_Replace = "CC=cc=''Mcc'"
$ ENDIF
$ ENDIF
$Decc_Version_check:
@@ -1670,28 +1680,103 @@ $ echo "This version of Perl can be built with threads. While really nifty,
$ echo "they are a beta feature, and there is a speed penalty for perl
$ echo "programs if you build with threads *even if you don't use them*
$ echo ""
-$ dflt = "y"
+$ dflt = "n"
$ rp = "Build with threads? [''dflt'] "
$ GOSUB myread
$ if ans.eqs."" then ans = dflt
$ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y")
$ THEN
$ use_threads="T"
+$ ! Are they on VMS 7.1 on an alpha?
+$ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1")
+$ THEN
+$ echo ""
+$ echo "Threaded perl can be linked to use multiple kernel threads
+$ echo "and system upcalls on VMS 7.1+ on Alpha systems. This feature
+$ echo "allows multiple threads to execute simultaneously on an SMP
+$ echo "system as well as preventing a single thread from blocking
+$ echo "all the threads in a program, even on a single-processor
+$ echo "machine. Unfortunately this feature isn't safe on an
+$ echo "unpatched 7.1 system. (Several OS patches were required when
+$ echo "this procedure was written)
+$ echo ""
+$ dflt = "N"
+$ rp = "Enable multiple kernel threads and upcalls? [''dflt'] "
+$ gosub myread
+$ if ans.eqs."" then ans="''dflt'"
+$ if f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE")).eqs."Y"
+$ THEN
+$ Thread_Live_Dangerously = "MT=MT=1"
+$ ENDIF
+$ ENDIF
$ ENDIF
$ ENDIF
$!
+$! Pre-load %ENV?
+$ echo ""
+$ echo "Because of the way perl fetches the list of logical names
+$ echo "for the %ENV hash (we spawn a subprocess that does a
+$ echo "SHOW LOGICALS *, which is expensive), we defer fetching it
+$ echo "until the first time a program iterates over the %ENV hash.
+$ echo "This means things like 'exists($ENV{'SYS$MANAGER'})' will
+$ echo "return false unless you've already accessed $ENV{SYS$MANAGER}
+$ echo "or done something like a keys %ENV."
+$ echo ""
+$ echo "If you choose, perl can populate the %ENV hash at startup.
+$ echo "This will exact both a memory penalty (to store the keys) and
+$ echo "a time penalty (to spawn the subprocess) every time you invoke
+$ echo "perl. Depending on your system, this might not be a big deal.
+$ echo ""
+$ dflt = "N"
+$ rp = "Populate %ENV at startup time? [''dflt'] "
+$ GOSUB myread
+$ if ans.eqs."" then ans="''dflt'"
+$ preload_env = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE"))
+$!
$! Ask if they want to use perl's memory allocator
$ echo ""
$ echo "Perl has a built-in memory allocator that's tuned for perl's
$ echo "normal memory usage. It's oftentimes better than the standard
$ echo "system memory allocator. It also has the advantage of providing
-$ echo "memory allocation statistics.
+$ echo "memory allocation statistics, if you choose to enable them.
$ echo ""
$ dflt = "N"
$ rp = "Build with perl's memory allocator? [''dflt'] "
$ GOSUB myread
$ if ans.eqs."" then ans="''dflt'"
$ mymalloc = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE"))
+$ if mymalloc.eqs."Y"
+$ THEN
+$ if use_debugging_perl.eqs."Y"
+$ THEN
+$ echo ""
+$ echo "Perl can keep statistics on memory usage if you choose to use
+$ echo "them. This is useful for debugging, but does have some
+$ echo "performance overhead.
+$ echo ""
+$ dflt = "N"
+$ rp = "Do you want the debugging memory allocator? [''dflt'] "
+$ gosub myread
+$ if ans.eqs."" then ans="''dflt'"
+$ use_debugmalloc = f$extract(0, 1, f$edit(ans, "TRIM,COMPRESS,UPCASE"))
+$ ENDIF
+$ ! Check which memory allocator we want
+$ echo ""
+$ echo "There are currently three different memory allocators: the
+$ echo "default (which is a pretty good general-purpose memory manager),
+$ echo "the TWO_POT allocator (which is optimized to save memory for
+$ echo "larger allocations), and PACK_MALLOC (which is optimized to save
+$ echo "memory for smaller allocations). They're all good, but if your
+$ echo "usage tends towards larger chunks use TWO_POT, otherwise use
+$ echo "PACK_MALLOC."
+$ echo ""
+$ dflt = "DEFAULT"
+$ rp = "Memory allocator (DEFAULT, TWO_POT, PACK_MALLOC) [''dflt'] "
+$ GOSUB myread
+$ if ans.eqs."" then ans = "''dflt'"
+$ if ans.eqs."TWO_POT" then use_two_pot_malloc = "Y"
+$ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y"
+$ ENDIF
$!
$! Ask for their default list of extensions to build
$ echo ""