From a3ef2c6f736628e81e9ce2a07226bd754872ac62 Mon Sep 17 00:00:00 2001 From: Gurusamy Sarathy Date: Sat, 26 Feb 2000 08:03:36 +0000 Subject: [PATCH] VMS patch (from Peter Prymmer) p4raw-id: //depot/perl@5271 --- Makefile.SH | 3 -- README.vms | 87 +++++++++++++++++++++++++----------------------- configure.com | 44 ++++++++++++++---------- vms/descrip_mms.template | 13 +++----- vms/sockadapt.h | 2 +- vms/subconfigure.com | 12 +++++-- 6 files changed, 88 insertions(+), 73 deletions(-) diff --git a/Makefile.SH b/Makefile.SH index 0817c99..56c5d91 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -534,7 +534,6 @@ extra.pods: miniperl $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ echo "pod/perl"$$nx".pod" >> extra.pods ; \ done - -@test -f README.vms && $(LNS) ../README.vms pod/README_vms.pod && echo "pod/README_vms.pod" >> extra.pods -@test -f vms/perlvms.pod && $(LNS) ../vms/perlvms.pod pod/perlvms.pod && echo "pod/perlvms.pod" >> extra.pods install-strip: @@ -558,9 +557,7 @@ install.man: all installman # XXX Experimental. Hardwired values, but useful for testing. # Eventually Configure could ask for some of these values. install.html: all installhtml - -@test -f pod/README_vms.pod && rm -f pod/README_vms.pod -@test -f README.vms && $(LNS) ../README.vms vms/README_vms.pod - -@test -f pod/perlvms.pod && rm -f pod/perlvms.pod $(LDLIBPTH) ./perl installhtml \ --podroot=. --podpath=. --recurse \ --htmldir=$(privlib)/html \ diff --git a/README.vms b/README.vms index e58e6dd..f6d970f 100644 --- a/README.vms +++ b/README.vms @@ -327,70 +327,73 @@ rebuild attempt. They might not, too, so it is best to be sure and do it. There are several steps you need to take to get Perl installed and running. -1) Create a directory somewhere and define the concealed logical PERL_ROOT -to point to it. For example, +=over 4 - CREATE/DIRECTORY dka200:[perl] - DEFINE/TRANS=(CONC,TERM) PERL_ROOT dka200:[perl.] +=item 1 -2) Run the install script via: +Check your default file protections with - MMS install + SHOW PROTECTION /DEFAULT -or +and adjust if necessary with SET PROTECTION=(code)/DEFAULT. - MMK install +=item 2 -If for some reason it complains about target INSTALL being up to date, -throw a /FORCE switch on the MMS or MMK command. +Create a directory somewhere and either run @perl_setup or +define the concealed logical PERL_ROOT to point to it by hand. +For example, -The DCL script [.VMS]PERL_SETUP.COM that is written by CONFIGURE.COM -will take care of most of the following: + CREATE/DIRECTORY dka200:[perl] + @PERL_SETUP + SHOW LOGICAL PERL_ROOT -3) Either create the global foreign symbol PERL somewhere, such as -SYS$MANAGER:SYLOGIN.COM, to be +or, - $ PERL :== "$PERL_ROOT:[000000]PERL.EXE" + CREATE/DIRECTORY dka200:[perl] + DEFINE/TRANS=(CONC,TERM) PERL_ROOT dka200:[perl.] -or install Perl into DCLTABLES.EXE (Check out the section "Installing Perl -into DCLTABLES (optional)" for more information), or put the image in a -directory that's in your DCL$PATH (if you're using VMS V6.2 or higher). -4) Either define the logical name PERLSHR somewhere -(such as in PERL_SETUP.COM) like so +=item 3 - $ DEFINE/NOLOG PERLSHR PERL_ROOT:[000000]PERLSHR.EXE +Run the install script via: -or copy the file into the system shareable library directory with + MMS install - copy perl_root:[000000]perlshr.exe sys$share: +or -5) Optionally define the command PERLDOC as + MMK install - $ PERLDOC == "$PERL_ROOT:[000000]PERL PERL_ROOT:[LIB.POD]PERLDOC.COM -t" +If for some reason it complains about target INSTALL being up to date, +throw a /FORCE switch on the MMS or MMK command. -(See above for where to find the B pager for use with perldoc). +=back + +The DCL script PERL_SETUP.COM that is written by CONFIGURE.COM +will help you with the definition of PERL_ROOT, PERLSHR and the PERL +Foreign symbol. Take a look at PERL_SETUP.COM and modify it if you want +to. Then copy PERL_SETUP.COM to a place accessible to your perl users. +For example: -6) Optionally define the command PERLBUG (the Perl bug report generator) as + COPY PERL_SETUP.COM SYS$LIBRARY: - $ PERLBUG == "$PERL_ROOT:[000000]PERL PERL_ROOT:[LIB]PERLBUG.COM" +If you want to have everyone on the system have access to perl +then add a line that reads -7) Optionally define the command POD2MAN (Converts POD files to nroff -source suitable for converting to man pages. Also quiets complaints during -module builds) as + $ @sys$library:perl_setup - $ DEFINE/NOLOG POD2MAN PERL_ROOT:[LIB.POD]POD2MAN.COM - $ POD2MAN == "$PERL_ROOT:[000000]PERL POD2MAN" +to SYS$MANAGER:SYLOGIN.COM. -8) Optionally define the command POD2TEXT (Converts POD files to text, -which is required for B to work properly) as +Two alternatives to the foreign symbol would be to install PERL into +DCLTABLES.EXE (Check out the section "Installing Perl into DCLTABLES +(optional)" for more information), or put the image in a +directory that's in your DCL$PATH (if you're using VMS V6.2 or higher). - $ DEFINE/NOLOG POD2TEXT PERL_ROOT:[LIB.POD]POD2TEXT.COM - $ POD2TEXT == "$PERL_ROOT:[000000]PERL POD2TEXT" +An alternative to having PERL_SETUP.COM define the PERLSHR logical name +is to simply copy it into the system shareable library directory with: + + copy perl_root:[000000]perlshr.exe sys$share: -In all these cases, if you've got PERL defined as a foreign command symbol, -you can replace $PERL_ROOT:[000000]PERL with ''perl'. If you have installed -perl into DCLTABLES, replace it with just perl. +See also the "INSTALLing images (optional)" section. =head2 Installing Perl into DCLTABLES (optional) @@ -567,7 +570,7 @@ of extending vmsperl with CPAN modules after Perl has been installed. =head1 AUTHORS -Last revised 13-February-2000 by Peter Prymmer pvhp@best.com. +Last revised 25-February-2000 by Peter Prymmer pvhp@best.com. Revised 27-October-1999 by Craig Berry craig.berry@metamorgs.com. Revised 01-March-1999 by Dan Sugalski dan@sidhe.org. Originally by Charles Bailey bailey@newman.upenn.edu. @@ -601,6 +604,8 @@ missed someone. That said, special thanks are due to the following: the Stanford Synchrotron Radiation Laboratory and the Laboratory of Nuclear Studies at Cornell University for the opportunity to test and develop for the AXP, + John Hasstedt John.Hasstedt@sunysb.edu + for VAX VMS V7.2 support and to the entire VMSperl group for useful advice and suggestions. In addition the perl5-porters deserve credit for their creativity and diff --git a/configure.com b/configure.com index af42385..ccb66bd 100644 --- a/configure.com +++ b/configure.com @@ -4,12 +4,12 @@ $! $! For example, if you unpacked perl into: [USER.PERL5_00n...] then you will $! want to cd into the tree and execute Configure: $! -$! $ SET DEFAULT [USER.PERL5_00n] +$! $ SET DEFAULT [USER.PERL5_xxx] $! $ @Configure $! $! or $! -$! $ SET DEFAULT [USER.PERL5_00n] +$! $ SET DEFAULT [USER.PERL5_xxx] $! $ @Configure "-des" $! $! That's it. If you get into a bind trying to build perl on VMS then @@ -19,7 +19,7 @@ $! $! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $! $! send suggestions to: -$! Dan Sugalski +$! Dan Sugalski $! Thank you!!!! $! $! Adapted and converted from Larry Wall & Andy Dougherty's @@ -39,7 +39,7 @@ $ cat = "type" $ gcc_symbol = "gcc" $ ans = "" $ macros = "" -$ use_vmsdebug_perl = "N" +$ use_vmsdebug_perl = "n" $ use_debugging_perl = "Y" $ use_64bitint = "n" $ C_Compiler_Replace = "CC=" @@ -395,7 +395,7 @@ $ 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" THEN GOTO Beyond_depth_check +$ 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.".") $ THEN $ TYPE SYS$INPUT: @@ -590,7 +590,7 @@ $ user = F$EDIT(F$GETJPI("","USERNAME"),"TRIM,COLLAPSE") $ IF .NOT.(F$SEARCH("[-.CONFIG]INSTRUCT.").EQS."") $ THEN $ messages = F$ENVIRONMENT("MESSAGE") -$ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT !sorry :-( +$ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT $ contains /NOOUTPUT [-.CONFIG]INSTRUCT. 'user' $ IF .NOT.($status.EQ.%X08D78053) $ THEN @@ -600,7 +600,7 @@ $ rp = "Would you like to see the instructions? [''dflt'] " $ GOSUB myread $ if .NOT.ans THEN needman="" $ ENDIF -$ SET MESSAGE 'messages' !hope you made it here :-) +$ SET MESSAGE 'messages' $ ENDIF $ if (fastread.AND.silent.AND.(alldone.eqs."cont")) THEN needman="" $! @@ -618,9 +618,9 @@ brackets; typing carriage return will give you the default. $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans $ TYPE SYS$INPUT: -In a hurry? You may run '@Configure -d'. This will bypass nearly all +In a hurry? You may run '@Configure "-d"'. This will bypass nearly all the questions and use the computed defaults (or the previous answers provided -there was already a config.sh file). Type '@Configure -h' for a list of +there was already a config.sh file). Type '@Configure "-h"' for a list of options. $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans @@ -1925,9 +1925,9 @@ $Build_probe: $ build = F$ELEMENT(n,"/",builders) $ probe = F$ELEMENT(n,"!",probers) $ echo "Testing whether you have ''build' on your system..." -$ SET NOON !sorry :-( -$ ON CONTROL_Y THEN GOTO Reenable_messages_build !sorry :-( -$ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT !sorry :-( +$ SET NOON +$ ON CONTROL_Y THEN GOTO Reenable_messages_build +$ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT $ 'build' 'probe' $ IF ($SEVERITY .EQ. 1) $ THEN @@ -1942,9 +1942,9 @@ $ IF (.NOT. default_set) THEN dflt = build $ ELSE $ echo "Nope." $ ENDIF -$Reenable_messages_build: !hope you made it here :-) -$ SET MESSAGE 'messages' !hope you made it here :-) -$ SET ON !hope you made it here :-) +$Reenable_messages_build: +$ SET MESSAGE 'messages' +$ SET ON $ n = n + 1 $ IF (n .LT. max_build) THEN GOTO Build_probe $! @@ -2097,7 +2097,7 @@ $! %Config-I-VMS, write perl_setup.com here $! $ echo "" $ echo4 "%Config-I-VMS, The perl_setup.com file is now being written..." -$ file_2_find = "[-.vms]perl_setup.com" +$ file_2_find = "[-]perl_setup.com" $ OPEN/WRITE CONFIG 'file_2_find' $ WRITE CONFIG "$!" $ WRITE CONFIG "$! Perl_Setup.com ''cf_time'" @@ -2126,6 +2126,9 @@ $ else $ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'" $ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" $ endif +$ 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" $! $ IF (tzneedset) $ THEN @@ -2136,7 +2139,14 @@ $ ENDIF $ WRITE CONFIG "$!" $ WRITE CONFIG "$! Symbols for commonly used scripts:" $ WRITE CONFIG "$!" -$ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t""" +$ 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""" $ CLOSE CONFIG $! $ echo "" diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index c07c6d9..9e426e9 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -375,7 +375,7 @@ pod8 = [.lib.pod]perltoot.pod [.lib.pod]perltootc.pod [.lib.pod]perltrap.pod [.l pod9 = [.lib.pod]perlfaq.pod [.lib.pod]perlfaq1.pod [.lib.pod]perlfaq2.pod [.lib.pod]perlfaq3.pod [.lib.pod]perlfaq4.pod [.lib.pod]perlfaq5.pod pod10 = [.lib.pod]perlfaq6.pod [.lib.pod]perlfaq7.pod [.lib.pod]perlfaq8.pod [.lib.pod]perlfaq9.pod -perlpods : $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) [.lib.pod]perlvms.pod [.lib.pod]README_vms.pod +perlpods : $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) $(pod9) $(pod10) [.lib.pod]perlvms.pod @ $(NOOP) archcorefiles : $(ac) $(acth) $(ARCHAUTO)time.stamp @@ -850,13 +850,10 @@ preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM) @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET) -[.lib.pod]README_vms.pod : README.vms - @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] - @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET) - -[.lib.pod]perlwin32.pod : README.win32 - @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod] - @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET) +install.html : []perl_setup.com installhtml. install $(perlpods) + @ @perl_setup + @ If F$Search("[.lib]html.dir").eqs."" Then Create/Directory [.lib.html] + $(MINIPERL) installhtml. "--podroot=/perl_root --recurse --htmldir=lib/html --htmlroot=lib/html --splithead=pod/perlipc --splititem=pod/perlfunc --libpods=perlfunc:perlguts:perlvar:perlrun:perlop --verbose" printconfig : @ @[.vms]make_command $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS) diff --git a/vms/sockadapt.h b/vms/sockadapt.h index 0ff309a..97a49f8 100644 --- a/vms/sockadapt.h +++ b/vms/sockadapt.h @@ -35,7 +35,7 @@ void setservent(int); void endservent(void); #endif -# if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) +# if defined(__DECC) && defined(__DECC_VER) && (__DECC_VER >= 50200000) && !defined(Sock_size_t) # define Sock_size_t unsigned int # endif diff --git a/vms/subconfigure.com b/vms/subconfigure.com index dae2bda..dfa3482 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -141,6 +141,7 @@ $ perl_uselargefiles = "undef" $ perl_uselongdouble = "undef" $ perl_usemorebits = "undef" $ ENDIF +$ use_64bitall = use_64bitint ! until configure.com question is reworded? $ IF use_64bitall .eqs. "Y" $ THEN $ perl_use64bitall = "define" @@ -3349,7 +3350,12 @@ $ perl_d_gethostprotos="define" $ perl_d_getnetprotos="define" $ perl_d_getprotoprotos="define" $ perl_d_getservprotos="define" -$ perl_sock_size_type="int *" +$ IF ("''Using_Dec_C'".EQS."Yes") +$ THEN +$ perl_socksizetype="unsigned int" +$ ELSE +$ perl_socksizetype="int *" +$ ENDIF $ ELSE $ perl_d_vms_do_sockets="undef" $ perl_d_htonl="undef" @@ -3371,7 +3377,7 @@ $ perl_d_gethostprotos="undef" $ perl_d_getnetprotos="undef" $ perl_d_getprotoprotos="undef" $ perl_d_getservprotos="undef" -$ perl_sock_size_type="undef" +$ perl_socksizetype="undef" $ ENDIF $! Threads $ if ("''use_threads'".eqs."T") @@ -3919,7 +3925,7 @@ $ WC "netdb_host_type='" + perl_netdb_host_type + "'" $ WC "netdb_hlen_type='" + perl_netdb_hlen_type + "'" $ WC "netdb_name_type='" + perl_netdb_name_type + "'" $ WC "netdb_net_type='" + perl_netdb_net_type + "'" -$ WC "sock_size_type='" + perl_sock_size_type + "'" +$ WC "socksizetype='" + perl_socksizetype + "'" $ WC "baserev='" + perl_baserev + "'" $ WC "doublesize='" + perl_doublesize + "'" $ WC "ptrsize='" + perl_ptrsize + "'" -- 2.7.4