$!----------------------------------------------------------------------------- $! BUILD_PERLRTE.COM $! Perl Run-Time Environment. $! $! P1 == LINK or BUILD or empty (builds) $! P2 == 5.24 for Perl 5.24 (VMS ports) $! P2 == 5.22 for Perl 5.22 (VMS ports) $! P2 == 5.20 for Perl 5.20 (VMS ports) $! P2 == 5.18 for Perl 5.18 (VMS ports) $! P2 == 5.8 (default) for Perl 5.8 (HP) $! $! 18-MAY-2016 MGD Perl 5.24.0 release (VMS ports) $! Perl 5.20.0 release (VMS ports) $! 06-JUN-2015 MGD Perl 5.22.0 release (VMS ports) $! 11-JAN-2013 MGD Perl 5.18.2 release (VMS ports) $! Perl 5.10.n and 5.6.n dropped $! 24-JAN-2008 MGD Perl 5.10.0 release $! 23-NOV-2005 MGD Perl for IA64 is available $! 06-JAN-2002 MGD try to determine/verify version of Perl $! 27-JUL-2002 MGD cater for 5.8 and previous versions (5.6), $! CGILIB no longer required $! 28-OCT-2000 MGD use CGILIB object library $! 23-MAY-2000 MGD initial $!----------------------------------------------------------------------------- $! $ ON CONTROLY THEN EXIT 44 $ SAY = "WRITE SYS$OUTPUT" $! $ IF P1 .EQS. "DIST" $ THEN $! (building versions on my development system only) $ PERL = "$PERL_ROOT:[000000]PERL.EXE" $ SYSDEV = F$TRNLNM("SYS$SYSDEVICE") $ DEFINE /NOLOG /PROCESS /TRANSLATION=(CONCEALED,TERMINAL) - PERL_ROOT 'SYSDEV'[VMS$COMMON.PERL-5_24.] $ @BUILD_PERLRTE BUILD 5.24 NOCHECK $ DEFINE /NOLOG /PROCESS /TRANSLATION=(CONCEALED,TERMINAL) - PERL_ROOT 'SYSDEV'[VMS$COMMON.PERL-5_22.] $ @BUILD_PERLRTE BUILD 5.22 NOCHECK $ DEFINE /NOLOG /PROCESS /TRANSLATION=(CONCEALED,TERMINAL) - PERL_ROOT 'SYSDEV'[VMS$COMMON.PERL-5_20.] $ @BUILD_PERLRTE BUILD 5.20 NOCHECK $ DEFINE /NOLOG /PROCESS /TRANSLATION=(CONCEALED,TERMINAL) - PERL_ROOT 'SYSDEV'[VMS$COMMON.PERL-5_18.] $ @BUILD_PERLRTE BUILD 5.18 NOCHECK $ DEFINE /NOLOG /PROCESS /TRANSLATION=(CONCEALED,TERMINAL) - PERL_ROOT 'SYSDEV'[VMS$COMMON.PERL5_8_6.] $ @BUILD_PERLRTE BUILD 5.8 NOCHECK $ EXIT $ ENDIF $! $ SAY "" $ SAY "Building ""PERLRTE"" for ""''F$GETSYI("ARCH_NAME")'"" architecture" $ SAY "Using PERL_ROOT of " + f$trnlnm("PERL_ROOT") - ".]" + "]" $! $ ARCH_NAME = F$EDIT(F$GETSYI("ARCH_NAME"),"UPCASE") $ IF ARCH_NAME .EQS. "ALPHA" THEN ARCH_NAME = "AXP" $! $ IF P2 .NES. "" .AND. P2 .NES. "5.8" - .AND. P2 .NES. "5.18" - .AND. P2 .NES. "5.20" - .AND. P2 .NES. "5.22" - .AND. P2 .NES. "5.24" $ THEN $ WRITE SYS$OUTPUT "''P2' is an unknown version of Perl!" $ EXIT $ ENDIF $ RTENG = "" $ IF P1 .EQS. "5.24" .OR. P2 .EQS. "5.24" THEN RTENG = "524" $ IF P1 .EQS. "5.22" .OR. P2 .EQS. "5.22" THEN RTENG = "522" $ IF P1 .EQS. "5.20" .OR. P2 .EQS. "5.20" THEN RTENG = "520" $ IF P1 .EQS. "5.18" .OR. P2 .EQS. "5.18" THEN RTENG = "518" $ IF P1 .EQS. "5.8" .OR. P2 .EQS. "5.8" THEN RTENG = "58" $! $ IF P3 .EQS. "NOCHECK" THEN GOTO BUILD_PERLRTE $! $ SET NOON $ PERLV = "" $ PERL -v > SYS$SCRATCH:BUILD_PERLRTE.TXT $ DEFINE /USER SYS$OUTPUT NL: $ DEFINE /USER SYS$ERROR NL: $ SEARCH SYS$SCRATCH:BUILD_PERLRTE.TXT "v5.24" $ IF $SEVERITY .EQS. "1" THEN PERLV = "524" $ DEFINE /USER SYS$OUTPUT NL: $ DEFINE /USER SYS$ERROR NL: $ SEARCH SYS$SCRATCH:BUILD_PERLRTE.TXT "v5.22" $ IF $SEVERITY .EQS. "1" THEN PERLV = "522" $ DEFINE /USER SYS$OUTPUT NL: $ DEFINE /USER SYS$ERROR NL: $ SEARCH SYS$SCRATCH:BUILD_PERLRTE.TXT "v5.20" $ IF $SEVERITY .EQS. "1" THEN PERLV = "520" $ DEFINE /USER SYS$OUTPUT NL: $ DEFINE /USER SYS$ERROR NL: $ SEARCH SYS$SCRATCH:BUILD_PERLRTE.TXT "v5.18" $ IF $SEVERITY .EQS. "1" THEN PERLV = "518" $ DEFINE /USER SYS$OUTPUT NL: $ DEFINE /USER SYS$ERROR NL: $ SEARCH SYS$SCRATCH:BUILD_PERLRTE.TXT "v5.8" $ IF $SEVERITY .EQS. "1" THEN PERLV = "58" $ IF PERLV .EQS. "" $ THEN $ SAY "" $ SAY "COULD NOT DETERMINE CURRENT VERSION OF PERL!" $ SAY "" $ EXIT $ ENDIF $ DELETE = "DELETE/NOLOG/NOCONFIRM" $ DELETE SYS$SCRATCH:BUILD_PERLRTE.TXT;* $ SET ON $! $ IF PERLV .EQS. "58" .AND. RTENG .EQS. "" THEN RTENG = "58" $ IF PERLV .EQS. "518" .AND. RTENG .EQS. "" THEN RTENG = "518" $ IF PERLV .EQS. "520" .AND. RTENG .EQS. "" THEN RTENG = "520" $ IF PERLV .EQS. "522" .AND. RTENG .EQS. "" THEN RTENG = "522" $ IF PERLV .EQS. "524" .AND. RTENG .EQS. "" THEN RTENG = "524" $ IF PERLV .NES. "522" .AND. RTENG .EQS. "522" $ THEN $ SAY "" $ SAY "A BUILD FOR 5.24 HAS BEEN REQUESTED, BUT PERL REPORTS A DIFFERENT VERSION!" $ PERL -v $ EXIT $ ENDIF $ IF PERLV .NES. "522" .AND. RTENG .EQS. "522" $ THEN $ SAY "" $ SAY "A BUILD FOR 5.22 HAS BEEN REQUESTED, BUT PERL REPORTS A DIFFERENT VERSION!" $ PERL -v $ EXIT $ ENDIF $ IF PERLV .NES. "520" .AND. RTENG .EQS. "520" $ THEN $ SAY "" $ SAY "A BUILD FOR 5.20 HAS BEEN REQUESTED, BUT PERL REPORTS A DIFFERENT VERSION!" $ PERL -v $ EXIT $ ENDIF $ IF PERLV .NES. "518" .AND. RTENG .EQS. "518" $ THEN $ SAY "" $ SAY "A BUILD FOR 5.18 HAS BEEN REQUESTED, BUT PERL REPORTS A DIFFERENT VERSION!" $ PERL -v $ EXIT $ ENDIF $ IF PERLV .NES. "58" .AND. RTENG .EQS. "58" $ THEN $ SAY "" $ SAY "A BUILD FOR 5.8 HAS BEEN REQUESTED, BUT PERL REPORTS A DIFFERENT VERSION!" $ PERL -v $ EXIT $ ENDIF $! $ BUILD_PERLRTE: $! $ DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE)" $ IF RTENG .EQS. "58" - THEN DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE,PERLRTENG_58)" $ IF RTENG .EQS. "518" - THEN DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE,PERLRTENG_518)" $ IF RTENG .EQS. "520" - THEN DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE,PERLRTENG_520)" $ IF RTENG .EQS. "522" - THEN DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE,PERLRTENG_522)" $ IF RTENG .EQS. "524" - THEN DEFINES = "/DEFINE=(CGILIB_OBJECT_MODULE,PERLRTENG_524)" $ WARNINGS = "/WARNING=(DISABLE=(PREOPTW))" $ INCLUDES = "/INCLUDE=(HT_ROOT:[SRC.MISC])" $! $ IF F$SEARCH("OBJ_''ARCH_NAME'.DIR") .EQS. "" - THEN CREATE /DIR [.OBJ_'ARCH_NAME'] $ OBJECT_DIR = "[.OBJ_''ARCH_NAME']" $! $ IF F$EDIT(F$GETSYI("ARCH_NAME"),"UPCASE") .EQS. "VAX" $ THEN $ CC_OPTIONS = "/DECC /OPTIMIZE /STANDARD=RELAXED" + WARNINGS + DEFINES $ ELSE $ CC_OPTIONS = "/DECC /OPTIMIZE /STANDARD=RELAXED" + WARNINGS + DEFINES $ ENDIF $! $ IF P1 .EQS. "" .OR. P1 .EQS. "BUILD" .OR. P1 .EQS. "COMPILE" $ THEN $! $ IF F$INTEGER(F$EXTRACT(1,1,F$GETSYI("NODE_SWVERS"))) .LT. 7 $ THEN $ WRITE SYS$OUTPUT "Build requires at least VMS V7.n" $ EXIT $ ENDIF $ IF F$TRNLNM("PERL_ROOT") .EQS. "" $ THEN $ WRITE SYS$OUTPUT "Cannot compile, ""PERL_ROOT"" not detected." $ EXIT $ ENDIF $ IF F$SEARCH("PERL_ROOT:[000000]PERL.H") .EQS. "" .OR. - F$SEARCH("PERL_ROOT:[000000]EXTERN.H") .EQS. "" $ THEN $ IF F$SEARCH("PERL_ROOT:[000000...]PERL.H") .EQS. "" .OR. - F$SEARCH("PERL_ROOT:[000000...]EXTERN.H") .EQS. "" $ THEN $ WRITE SYS$OUTPUT "Cannot build, required header files are not available." $ EXIT $ ENDIF $ PERL_INCLUDES = "/INCLUDE=(PERL_ROOT:[000000...])" $ ELSE $ PERL_INCLUDES = "/INCLUDE=(PERL_ROOT:[000000])" $ ENDIF $! $ SET NOON $ SET VERIFY $ CC 'CC_OPTIONS''INCLUDES' /OBJECT='OBJECT_DIR'PERLRTE PERLRTE $ CC 'CC_OPTIONS''PERL_INCLUDES' /OBJECT='OBJECT_DIR'PERLRTENG'RTENG' PERLRTENG $! 'F$VERIFY(0) $ SET ON $ ENDIF $! $ show sym rteng $ IF P1 .EQS. "" .OR. P1 .EQS. "BUILD" .OR. P1 .EQS. "LINK" $ THEN $! $ IF F$TRNLNM("PERLSHR") .EQS. "" $ THEN $ WRITE SYS$OUTPUT "Cannot link, ""PERLSHR"" not detected." $ EXIT $ ENDIF $! $ CGILIB_OLB = "HT_ROOT:[SRC.MISC.OBJ_''ARCH_NAME']CGILIB.OLB" $ SET NOON $ SET VERIFY $ LINK /NOTRACEBACK /EXECUTABLE=HT_EXE:PERLRTE.EXE - 'OBJECT_DIR'PERLRTE,'OBJECT_DIR'PERLRTENG'RTENG', - 'CGILIB_OLB'/LIBRARY, - SYS$INPUT:/OPTIONS PERLSHR/Share $! 'F$VERIFY(0) $ SET ON $ ENDIF $ PURGE /NOLOG 'OBJECT_DIR' $! $!-----------------------------------------------------------------------------