develooper Front page | perl.perl5.porters | Postings from August 2001

[PATCH: perl@11626] modify VMS default prefix for installation

Thread Next
From:
Peter Prymmer
Date:
August 14, 2001 13:34
Subject:
[PATCH: perl@11626] modify VMS default prefix for installation
Message ID:
Pine.OSF.4.10.10108141327590.192110-100000@aspara.forte.com

Greetings,

The enclosed patch affects the configure.com and README.vms files
within the distribution.  It will make the default installation location
differ from the build directory by default (although still allow
over-rides).  It also removes "Sys/Syslog" from the list of buildable
extensions, but still does allow for adding that by hand (since GDBM is
rare on VMS it too is not built by default and if you build Sys/Syslog and
then try to use it you see the following errors:

 $ perl "-MSys::Syslog" -e "print ""Hello world"";"
 Your vendor has not defined GDBM_File macro LOG_DEBUG, used at -e line 0
 Compilation failed in require.
 BEGIN failed--compilation aborted.
 %SYSTEM-F-ABORT, abort

There are a few other updates included too.  The nature of this patch
has been discussed on the vmsperl list and I am indebted to Craig Berry
for providing some very valuable feedback.

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	Tue Aug 14 13:27:11 2001
@@ -196,6 +196,17 @@
 
     @ Configure "-d" "-Dprefix=dka100:[utils.perl5.]"
 
+Note that the installation location would be by default 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,20 @@
 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.
+
+If using GNU cc then also check your GNU_CC:[000000...] tree for the locations
+of the GNU cc headers.
+
 =head1 Reporting Bugs
 
 If you come across what you think might be a bug in Perl, please report
@@ -467,8 +492,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	Tue Aug 14 11:46:01 2001
@@ -427,11 +427,15 @@
 $     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, i.e. too deep.
+$! Depth check is unnecessary on Alpha VMS V7.2++ (even for ODS-2).
+$   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
+$! Depth check also unnecessary 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 +1134,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 +1165,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 ""
@@ -2481,6 +2502,7 @@
 $ dflt = dflt - "IPC/SysV"            ! needs to be ported
 $ dflt = dflt - "NDBM_File"           ! needs porting/special library
 $ dflt = dflt - "ODBM_File"           ! needs porting/special library
+$ dflt = dflt - "Sys/Syslog"          ! needs porting/special library "GDBM_File macro LOG_DEBUG"
 $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets
 $ THEN
 $   dflt = dflt - "Socket"            ! optional on VMS
@@ -6042,7 +6064,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 +6082,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 +6099,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 Patch.

Peter Prymmer



Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About