Greetings,

Enclosed please find a working draft of a patch against perl@11626
that updates configure.com and README.vms to provide:

 * The default PERL_ROOT prefix will be 'perl_src' + "ROOT.]"
 * A crude tests of intended to PERL_ROOT is the device MOUNTED?
 * A better check of the ACPTYPE of the DEFAULT file system   
   instead of checking OS version and architecture.  Since it is
   rare to deploy recent OSes on SYSTEM DISKS that are not ODS-2 this
   check is more correct than the previous one.  The previous one
   also ignore the fact that /STRUCTURE=5 is optional on AXP VMS V7.2++
   and is not required.
 * PERL_SETUP.COM will be written out with a new foreign symbol for
   @-executing perlivp.com.
 * A start on instructions about running h2ph in README.vms.  Do note 
   that this is only a start and I would appreciate hearing some war
   stories about what people have done to get *.ph files on VMS.

and so forth.  Would anyone object to this going into the next dev
snapshot?  Thanks for your comments.

diff -ru perl_11626_orig/README.vms perl_11626/README.vms
--- perl_11626_orig/README.vms  Mon Aug 13 17:09:06 2001
+++ perl_11626/README.vms       Mon Aug 13 17:14:33 2001
@@ -196,6 +196,17 @@
 
     @ Configure "-d" "-Dprefix=dka100:[utils.perl5.]"
 
+Note that the default location would be where where you unpacked the 
+source with a "ROOT." appended.  For example if you unpacked the perl 
+source into:
+
+   DKA200:[PERL-5_10_2...]
+
+Then the PERL_SETUP.COM that gets written out by Configure.com will
+try to DEFINE your installation PERL_ROOT to be:
+
+   DKA200:[PERL-5_10_2ROOT.]
+
 More help with configure.com is available from:
 
     @ Configure "-h"
@@ -451,6 +462,17 @@
 While there is code in perl to remove privileges as it runs you are advised
 to NOT INSTALL PERL.EXE with PRIVs!
 
+=head2 Running h2ph to create perl header files (optional) on VMS
+
+If using DEC C or Compaq C ensure that you have extracted loose versions
+of your compiler's header or *.H files.  Be sure to check the contents of:
+
+    SYS$LIBRARY:DECC$RTLDEF.TLB
+    SYS$LIBRARY:SYS$LIB_C.TLB
+    SYS$LIBRARY:SYS$STARLET_C.TLB
+
+etcetera.
+
 =head1 Reporting Bugs
 
 If you come across what you think might be a bug in Perl, please report
@@ -467,8 +489,9 @@
 
 The next big gotcha is directory depth.  Perl can create directories four,
 five, or even six levels deep during the build, so you don't have to be 
-too deep to start to hit the RMS 8 level limit (for versions of VMS prior 
-to V7.2 and even with V7.2 on the VAX).  It is best to do
+too deep to start to hit the RMS 8 level limit (for ODS 2 volumes which were
+common on versions of VMS prior to V7.2 and even with V7.2 on the VAX).  
+It is best to do:
 
     DEFINE/TRANS=(CONC,TERM) PERLSRC "disk:[dir.dir.dir.perldir.]"
     SET DEFAULT PERLSRC:[000000]
diff -ru perl_11626_orig/configure.com perl_11626/configure.com
--- perl_11626_orig/configure.com       Mon Aug 13 17:08:53 2001
+++ perl_11626/configure.com    Mon Aug 13 17:15:27 2001
@@ -427,11 +427,12 @@
 $     GOTO Beyond_manifest
 $   ENDIF
 $ ELSE
-$! MANIFEST. has been found and we have set def'ed there - 
-$! time to bail out before it's too late.
-$ tmp = f$extract(1,3,f$edit(f$getsyi("VERSION"),"TRIM,COLLAPSE"))
-$ IF (tmp .GES. "7.2") .AND. (F$GETSYI("HW_MODEL") .GE. 1024) THEN GOTO 
Beyond_depth_check
-$   IF (F$ELEMENT(max_allowed_dir_depth,".",F$ENVIRONMENT("Default")).nes.".")
+$! MANIFEST. has been found and we have set def'ed there.
+$! time to bail out before it's too late.  But we do not need to 
+$! conduct depth checks on ODS 5 (or later) file systems.
+$ tmp = F$INTEGER(F$GETDVI(F$ENVIRONMENT("DEFAULT"),"ACPTYPE") - "F11V")
+$ IF (tmp .GE. 5) THEN GOTO Beyond_depth_check
+$   IF (F$ELEMENT(max_allowed_dir_depth,".",F$ENVIRONMENT("DEFAULT")).nes.".")
 $   THEN
 $     TYPE SYS$INPUT:
 $     DECK
@@ -1130,7 +1131,8 @@
 $   prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]"
 $   prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - ".;"
 $   prefixbase = prefix - "]"
-$   prefix = prefixbase + ".]"
+$!  Add ROOT to make install PERL_ROOT differ from build directory.
+$   prefix = prefixbase + "ROOT.]"
 $ ENDIF
 $ src = prefix
 $!: determine root of directory hierarchy where package will be installed.
@@ -1160,6 +1162,22 @@
 $! 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.
 $!
+$ IF .NOT. F$GETDVI(perl_root,"MNT")
+$ THEN
+$   tmp = F$PARSE(perl_root,,,"DEVICE",)
+$   echo4 "''tmp' is not mounted."
+$ ELSE
+$   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
+$ ENDIF
+$!
 $ vms_skip_install = "true"
 $ dflt = "y"
 $! echo ""
@@ -6042,7 +6060,7 @@
 $ WRITE CONFIG "$! define SYS$TIMEZONE_DIFFERENTIAL ''tzd'"
 $ ENDIF
 $ WRITE CONFIG "$!"
-$ WRITE CONFIG "$! Symbols for commonly used scripts:"
+$ WRITE CONFIG "$! Symbols for commonly used programs:"
 $ WRITE CONFIG "$!"
 $ IF (perl_symbol)
 $ THEN
@@ -6060,6 +6078,7 @@
 $   WRITE CONFIG "$ h2ph     == ""'"+"'Perl' ''vms_prefix':[utils]h2ph.com"""
 $   WRITE CONFIG "$ h2xs     == ""'"+"'Perl' ''vms_prefix':[utils]h2xs.com"""
 $   WRITE CONFIG "$!perlcc   == ""'"+"'Perl' ''vms_prefix':[utils]perlcc.com"""
+$   WRITE CONFIG "$ perlivp  == ""'"+"'Perl' ''vms_prefix':[utils]perlivp.com"""
 $   WRITE CONFIG "$ splain   == ""'"+"'Perl' ''vms_prefix':[utils]splain.com"""
 $ ELSE
 $   WRITE CONFIG "$ Perldoc  == ""Perl ''vms_prefix':[lib.pod]Perldoc.com -t"""
@@ -6076,6 +6095,7 @@
 $   WRITE CONFIG "$ h2ph     == ""Perl ''vms_prefix':[utils]h2ph.com"""
 $   WRITE CONFIG "$ h2xs     == ""Perl ''vms_prefix':[utils]h2xs.com"""
 $   WRITE CONFIG "$!perlcc   == ""Perl ''vms_prefix':[utils]perlcc.com"""
+$   WRITE CONFIG "$ perlivp  == ""Perl ''vms_prefix':[utils]perlivp.com"""
 $   WRITE CONFIG "$ splain   == ""Perl ''vms_prefix':[utils]splain.com"""
 $ ENDIF
 $ CLOSE CONFIG
End of Proposed Patch.

Peter Prymmer


Reply via email to