@ 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"
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
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]
$ 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
$ 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.
$! 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 ""
$ 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
$ 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
$ 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"""
$ 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