I did note the following informational during the compilation with DEC C V6.0-001
on OpenVMS Alpha V7.1:
CC/DECC /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList/Define=PERL_CORE
REGEXEC.C
yes:
^
%CC-I-UNREACH, code can never be executed at label yes
at line number 3249 in file DKB100:[PERL-5_5_670]REGEXEC.C;1
do_no:
^
%CC-I-UNREACH, code can never be executed at label do_no
at line number 3263 in file DKB100:[PERL-5_5_670]REGEXEC.C;1
At any rate the kit did build (hung on openpid.t during `mms test`) and
the deadline is too close. Herein please find a patch to 5.5.670
that adds some installation automation to the VMS port. Files affected:
configure.com
pod/pod2usage.PL
pod/podselect.PL
utils/dprofpp.PL
vms/descrip_mms.template
I hope that the mods I've proposed to vms/descrip_mms.template do not conflict
in any way with the ones that Craig Berry has provided today. Please let me
know if a conflict does arise.
diff -ru perl-5.5.670.orig/configure.com perl-5.5.670/configure.com
--- perl-5.5.670.orig/configure.com Tue Feb 29 22:28:41 2000
+++ perl-5.5.670/configure.com Thu Mar 2 17:19:45 2000
@@ -992,6 +992,39 @@
$!
$ ENDIF !%Config-I-VMS, skip remaining "where install" questions
$!
+$ perl_symbol = "true"
+$ perl_verb = ""
+$ dflt = "y"
+$ IF .NOT.silent
+$ THEN
+$ echo ""
+$ echo "%Config-I-VMS, You may choose to write ''packageup'_SETUP.COM to assign a
+foreign"
+$ echo "-Config-I-VMS, symbol to invoke ''package', which is the usual method."
+$ echO "-Config-I-VMS, If you do not do so then you would need a DCL command verb
+at the"
+$ echo "-Config-I-VMS, process or the system wide level."
+$ ENDIF
+$ rp = "Invoke perl as a global symbol foreign command [''dflt'] "
+$ GOSUB myread
+$ IF (.NOT.ans).AND.(ans.NES."") THEN perl_symbol = "false"
+$!
+$ IF (.NOT.perl_symbol)
+$ THEN
+$ dflt = "y"
+$ IF .NOT.silent
+$ THEN
+$ echo ""
+$ echo "%Config-I-VMS, Since you won't be using a symbol you must choose to put
+the ''packageup'"
+$ echo "-Config-I-VMS, verb in a per-process table or in the system wide
+DCLTABLES (which"
+$ echo "-Config-I-VMS, would require write privilege)."
+$ ENDIF
+$ rp = "Invoke perl as a per process command verb [ ''dflt' ] "
+$ GOSUB myread
+$ IF (.NOT.ans).AND.(ans.NES."")
+$ THEN perl_verb = "DCLTABLES"
+$ ELSE perl_verb = "PROCESS"
+$ ENDIF
+$ ENDIF ! (.NOT.perl_symbol)
+$!
$!: set the base revision
$ baserev="5"
$!: get the patchlevel
@@ -2203,6 +2236,28 @@
$!
$! %Config-I-VMS, write perl_setup.com here
$!
+$ IF (.NOT.perl_symbol)
+$ THEN
+$ file_2_find = "[-]''packageup'.cld"
+$ echo ""
+$ echo4 "%Config-I-VMS, The perl.cld file is now being written..."
+$ OPEN/WRITE CONFIG 'file_2_find'
+$ IF (use_vmsdebug_perl)
+$ THEN
+$ WRITE CONFIG "define verb dbgperl"
+$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]dbgperl''ext'")
+$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)")
+$ WRITE CONFIG ""
+$ WRITE CONFIG "define verb perl"
+$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]ndbgPerl''ext'")
+$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)")
+$ ELSE
+$ WRITE CONFIG "define verb perl"
+$ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]perl''ext'")
+$ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)")
+$ ENDIF
+$ CLOSE CONFIG
+$ ENDIF ! (.NOT.perl_symbol)
$ echo ""
$ echo4 "%Config-I-VMS, The perl_setup.com file is now being written..."
$ file_2_find = "[-]perl_setup.com"
@@ -2220,20 +2275,34 @@
$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN -
prefix = prefix - "]" + ".]"
$ WRITE CONFIG "$ define/translation=concealed Perl_Root ''prefix'"
-$ write config "$ ext = "".exe"""
-$ if sharedperl .eqs. "Y"
-$ then
+$ WRITE CONFIG "$ ext = "".exe"""
+$ IF sharedperl .EQS. "Y"
+$ THEN
$ write config "$ if f$getsyi(""ARCH_NAME"") .nes. ""VAX"" then ext = "".AXE"""
-$ endif
-$ IF use_vmsdebug_perl .eqs. "Y"
-$ then
-$ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'"
-$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'"
-$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'"
-$ else
-$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'"
-$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'"
-$ endif
+$ ENDIF
+$ IF (perl_symbol)
+$ THEN
+$ IF (use_vmsdebug_perl)
+$ THEN
+$ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'"
+$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'"
+$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'"
+$ ELSE
+$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'"
+$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'"
+$ ENDIF
+$ ELSE ! .NOT.perl_symbol
+$ IF (use_vmsdebug_perl)
+$ THEN
+$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'"
+$ ELSE
+$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'"
+$ ENDIF
+$ IF perl_verb .EQS. "PROCESS"
+$ THEN
+$ WRITE CONFIG "$ set command ''packagup'_ROOT:[000000]''packageup'.CLD"
+$ ENDIF
+$ ENDIF ! perl_symbol
$ WRITE CONFIG "$ define/nolog pod2text Perl_Root:[lib.pod]pod2text.com"
$ WRITE CONFIG "$ define/nolog pod2html Perl_Root:[lib.pod]pod2html.com"
$ WRITE CONFIG "$ define/nolog pod2man Perl_Root:[lib.pod]pod2man.com"
@@ -2247,14 +2316,40 @@
$ WRITE CONFIG "$!"
$ WRITE CONFIG "$! Symbols for commonly used scripts:"
$ WRITE CONFIG "$!"
-$ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t"""
-$ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text"""
-$ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html"""
-$ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man"""
-$ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' Perl_Root:[lib]Perlbug.com"""
-$ WRITE CONFIG "$!c2ph == ""'"+"'Perl' c2ph"""
-$ WRITE CONFIG "$!h2ph == ""'"+"'Perl' h2ph"""
-$ WRITE CONFIG "$!h2xs == ""'"+"'Perl' h2xs"""
+$ IF (perl_symbol)
+$ THEN
+$ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t"""
+$ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text"""
+$ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html"""
+$ WRITE CONFIG "$ pod2latex == ""'"+"'Perl' Perl_Root:[lib.pod]pod2latex.com"""
+$ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man"""
+$ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' Perl_Root:[lib]Perlbug.com"""
+$ WRITE CONFIG "$ c2ph == ""'"+"'Perl' Perl_Root:[utils]c2ph.com"""
+$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions)
+$ THEN
+$ WRITE CONFIG "$ dprofpp == ""'"+"'Perl' Perl_Root:[utils]dprofpp.com"""
+$ ENDIF
+$ WRITE CONFIG "$ h2ph == ""'"+"'Perl' Perl_Root:[utils]h2ph.com"""
+$ WRITE CONFIG "$ h2xs == ""'"+"'Perl' Perl_Root:[utils]h2xs.com"""
+$ WRITE CONFIG "$!perlcc == ""'"+"'Perl' Perl_Root:[utils]perlcc.com"""
+$ WRITE CONFIG "$ splain == ""'"+"'Perl' Perl_Root:[utils]splain.com"""
+$ ELSE
+$ WRITE CONFIG "$ Perldoc == ""Perl Perl_Root:[lib.pod]Perldoc.com -t"""
+$ WRITE CONFIG "$ pod2text == ""Perl pod2text"""
+$ WRITE CONFIG "$ pod2html == ""Perl pod2html"""
+$ WRITE CONFIG "$ pod2latex == ""Perl Perl_Root:[lib.pod]pod2latex.com"""
+$ WRITE CONFIG "$!pod2man == ""Perl pod2man"""
+$ WRITE CONFIG "$!Perlbug == ""Perl Perl_Root:[lib]Perlbug.com"""
+$ WRITE CONFIG "$ c2ph == ""Perl Perl_Root:[utils]c2ph.com"""
+$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions)
+$ THEN
+$ WRITE CONFIG "$ dprofpp == ""Perl Perl_Root:[utils]dprofpp.com"""
+$ ENDIF
+$ WRITE CONFIG "$ h2ph == ""Perl Perl_Root:[utils]h2ph.com"""
+$ WRITE CONFIG "$ h2xs == ""Perl Perl_Root:[utils]h2xs.com"""
+$ WRITE CONFIG "$!perlcc == ""Perl Perl_Root:[utils]perlcc.com"""
+$ WRITE CONFIG "$ splain == ""Perl Perl_Root:[utils]splain.com"""
+$ ENDIF
$ CLOSE CONFIG
$!
$ echo ""
@@ -2264,6 +2359,20 @@
$ echo "-Config-I-VMS, when you are satisfied with a successful compilation,"
$ echo "-Config-I-VMS, testing, and installation of your perl."
$ echo ""
+$ IF ((.NOT.perl_symbol) .AND. (perl_verb .EQS. "DCLTABLES"))
+$ THEN
+$ file_2_find = "[-]''packageup'_install.com"
+$ OPEN/WRITE CONFIG 'file_2_find
+$ WRITE CONFIG "$ set command perl /table=sys$common:[syslib]dcltables.exe -"
+$ WRITE CONFIG " /output=sys$common:[syslib]dcltables.exe"
+$ WRITE CONFIG "$ install replace sys$common:[syslib]dcltables.exe"
+$ CLOSE CONFIG
+$ echo4 ""
+$ echo4 "%Config-I-VMS, In order to install the ''packageup' verb into DCLTABLES
+run:"
+$ echo4 "-Config-I-VMS, @ ''F$SEARCH(file_2_find)'"
+$ echo4 "-Config-I-VMS, after a successful build, test, and install. Do so with
+CMKRNL privilege."
+$ echo4 ""
+$ ENDIF
$!
$!figure out where we "are" by parsing 'vms_default_directory_name'
$!
diff -ru perl-5.5.670.orig/pod/pod2usage.PL perl-5.5.670/pod/pod2usage.PL
--- perl-5.5.670.orig/pod/pod2usage.PL Fri Oct 1 22:17:51 1999
+++ perl-5.5.670/pod/pod2usage.PL Thu Mar 2 17:21:09 2000
@@ -16,8 +16,8 @@
$origdir = cwd;
chdir(dirname($0));
($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($^O eq 'VMS' or $^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
+$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
+$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving"
open OUT,">$file" or die "Can't create $file: $!";
diff -ru perl-5.5.670.orig/pod/podselect.PL perl-5.5.670/pod/podselect.PL
--- perl-5.5.670.orig/pod/podselect.PL Fri Oct 1 22:17:51 1999
+++ perl-5.5.670/pod/podselect.PL Thu Mar 2 17:20:48 2000
@@ -16,8 +16,8 @@
$origdir = cwd;
chdir(dirname($0));
($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($^O eq 'VMS' or $^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
+$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos'); # "case-forgiving"
+$file =~ s/\.pl$/.com/ if ($^O eq 'VMS'); # "case-forgiving"
open OUT,">$file" or die "Can't create $file: $!";
diff -ru perl-5.5.670.orig/utils/dprofpp.PL perl-5.5.670/utils/dprofpp.PL
--- perl-5.5.670.orig/utils/dprofpp.PL Sun Jan 23 01:49:18 2000
+++ perl-5.5.670/utils/dprofpp.PL Thu Mar 2 17:21:39 2000
@@ -14,9 +14,8 @@
# This is so that make depend always knows where to find PL derivatives.
chdir(dirname($0));
($file = basename($0)) =~ s/\.PL$//;
-$file =~ s/\.pl$//
- if ($Config{'osname'} eq 'VMS' or
- $Config{'osname'} eq 'OS2'); # "case-forgiving"
+$file =~ s/\.pl$// if ($Config{'osname'} eq 'OS2'); # "case-forgiving"
+$file =~ s/\.pl$/.com/ if ($Config{'osname'} eq 'VMS'); # "case-forgiving"
my $dprof_pm = '../ext/Devel/DProf/DProf.pm';
my $VERSION = 0;
diff -ru perl-5.5.670.orig/vms/descrip_mms.template
perl-5.5.670/vms/descrip_mms.template
--- perl-5.5.670.orig/vms/descrip_mms.template Tue Feb 29 22:28:41 2000
+++ perl-5.5.670/vms/descrip_mms.template Thu Mar 2 17:20:14 2000
@@ -360,7 +360,7 @@
@ $(NOOP)
utils : $(utils1) $(utils2)
@ $(NOOP)
-podxform : [.lib.pod]pod2text.com [.lib.pod]pod2html.com [.lib.pod]pod2latex.com
[.lib.pod]pod2man.com [.lib.pod]podchecker.com
+podxform : [.lib.pod]pod2text.com [.lib.pod]pod2html.com [.lib.pod]pod2latex.com
+[.lib.pod]pod2man.com [.lib.pod]podchecker.com [.lib.pod]pod2usage.com
+[.lib.pod]podselect.com
@ $(NOOP)
x2p : [.x2p]a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com
@ $(NOOP)
@@ -581,6 +581,16 @@
@ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
$(MINIPERL) $(MMS$SOURCE)
Copy/Log [.pod]podchecker.com $(MMS$TARGET)
+
+[.lib.pod]pod2usage.com : [.pod]pod2usage.PL $(ARCHDIR)Config.pm
+ @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ $(MINIPERL) $(MMS$SOURCE)
+ Copy/Log [.pod]pod2usage.com $(MMS$TARGET)
+
+[.lib.pod]podselect.com : [.pod]podselect.PL $(ARCHDIR)Config.pm
+ @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
+ $(MINIPERL) $(MMS$SOURCE)
+ Copy/Log [.pod]podselect.com $(MMS$TARGET)
preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
@ Write Sys$Output "Autosplitting Perl library . . ."
End of Patch.
Peter Prymmer