$!----------------------------------------------------------------------------- $! BUILD_PHPWASD.COM $! $! Copyright (C) 2002-2014 Mark G.Daniel $! This package comes with ABSOLUTELY NO WARRANTY. $! This is free software, and you are welcome to redistribute it under the $! conditions of the GNU GENERAL PUBLIC LICENSE, version 3, or later version. $! http://www.gnu.org/licenses/gpl.txt $! $! Build the WASD CGI/CGIplus/RTE interface for PHP. $! There are default locations for both of the following resources, but $! $! to link against your own PHP sharable image or location $! $! $ DEFINE /SYSTEM PHPWASDSHR device:[directory]image_name.exe $! $! to compile against your own CSWS PHP source kit location $! $! $ DEFINE /SYSTEM /TRANSLATION=CONCEALED CSWS_PHP_ROOT device:[directory.] $! $! before invoking this build procedure. $! $! P1 == LINK (empty) or BUILD $! A build (compile+link) will only work when executed within a VMS PHP $! source structure and environment. Otherwise only linking is available. $! $ IMAGE_IDENT = "PHPWASD144" $! $! 27-JAN-2012 MGD add DCLSYMBOL.C extension build $! remove CRTL-specific 702 build $! 25-MAY-2009 MGD v1.4.0 image identification $! 26-NOV-2005 MGD V1.3.3 build changes for CSWS PHP 1.3 code base $! 14-NOV-2004 MGD v1.2.3 add P2 for CRTL-specific build $! 14-FEB-2004 MGD modified for building against CSWS PHP v1.2 source $! 26-DEC-2002 MGD modified for building against CSWS PHP v1.1 source $! 28-JAN-2002 MGD corrected $! 14-JAN-2002 MGD initial $!----------------------------------------------------------------------------- $! $ SAY = "WRITE SYS$OUTPUT" $! $ SAY "" $ SAY "Building ""PHPWASD"" for ""''F$GETSYI("ARCH_NAME")'"" architecture" $! $ SYI_VERSION = F$GETSYI("VERSION") $ VMS_VERSION = F$INTEGER(F$EXTRACT(1,1,SYI_VERSION)) * 100 +- F$INTEGER(F$EXTRACT(3,1,SYI_VERSION)) * 10 $ IF F$EXTRACT(4,1,SYI_VERSION) .EQS. "-" - THEN VMS_VERSION = VMS_VERSION + F$INTEGER(F$EXTRACT(5,1,SYI_VERSION)) $ DATETIME = F$TIME() $ IF F$EXTRACT(0,1,DATETIME) .EQS. " " THEN DATETIME = F$EXTRACT(1,99,DATETIME) $! $ IF P2 .EQS. "DIST" $ THEN $ @BUILD_PHPWASD.COM BUILD $ EXIT $ ENDIF $ CC_DEFINES = " /DEFINE=(BUILD_DATETIME=""""""''DATETIME'"""""")" $! $ IF P1 .EQS. "BUILD" .OR. P1 .EQS. "COMPILE" $ THEN $! (need header files) $ IF F$SEARCH("HT_ROOT:[SRC.PHP]PHP.DIR") .NES. "" $ THEN $! (CSWS PHP directory as subdirectory of HT_ROOT:[SRC.PHP]) $ HT_ROOT = F$TRNLNM("HT_ROOT",,"NO_CONCEAL") - "][" - ".]" $ CSWS_PHP_ROOT = "''HT_ROOT'.SRC.PHP.PHP.]" $ DEFINE /PROCESS /TRANSLATION=CONCEALED CSWS_PHP_ROOT 'CSWS_PHP_ROOT' $ ELSE $! (CSWS PHP directory located somewhere site-dependent) $ IF F$TRNLNM("CSWS_PHP_ROOT") .EQS. "" $ THEN $ TYPE SYS$INPUT *********************************************** * LOGICAL NAME 'CSWS_PHP_ROOT' NOT DEFINED! * *********************************************** This logical locates the CSWS PHP sources used for header files during compilation. This can be defined as follows $ DEFINE /PROCESS /TRANSLATION=CONCEALED CSWS_PHP_ROOT device:[dir.] $ EXIT $ ENDIF $ ENDIF $ SAY "Using CSWS_PHP_ROOT defined as ''f$TRNLNM("CSWS_PHP_ROOT")'" $ ENDIF $! $ PHPSHR = F$TRNLNM("PHPSHR","LNM$SYSTEM") $ PHPWASDSHR = F$TRNLNM("PHPWASDSHR","LNM$SYSTEM") $ IF PHPSHR .EQS. "" .AND. PHPWASDSHR .EQS. "" $ THEN $ TYPE SYS$INPUT ************************************************************ * NEITHER LOGICAL NAME 'PHPSHR' OR 'PHPWASDSHR' DEFINED! * ************************************************************ Either one of these logical names needs to be available to locate the PHP sharable image. Please read build instructions and execute PHP_STARTUP.COM procedure before attempting to build. $ EXIT $ ENDIF $! $ PHP_ROOT = F$TRNLNM("PHP_ROOT","LNM$PROCESS") $ IF PHP_ROOT .NES. "" THEN DEASSIGN /PROCESS PHP_ROOT $! $ IF PHPWASDSHR .NES. "" .AND. F$SEARCH("PHPWASDSHR") .EQS. "" $ THEN $ TYPE SYS$INPUT ********************************************** * CANNOT FIND 'PHPWASDSHR' SHAREABLE IMAGE * ********************************************** Check definition of logical name PHPWASDSHR. $ SHOW LOGICAL PHPWASDSHR $ SAY "" $ EXIT $ ENDIF $! $ IF PHPSHR .NES. "" .AND. F$SEARCH("PHPSHR") .EQS. "" $ THEN $ TYPE SYS$INPUT ****************************************** * CANNOT FIND 'PHPSHR' SHAREABLE IMAGE * ****************************************** Check definition of logical name PHPSHR. $ SHOW LOGICAL PHPWASDSHR $ SAY "" $ EXIT $ ENDIF $! $ IF PHP_ROOT .NES. "" - THEN DEFINE /PROCESS /TRANSLATION=CONCEALED PHP_ROOT 'PHP_ROOT' $! $ ARCH_NAME = F$EDIT(F$GETSYI("ARCH_NAME"),"UPCASE") $ IF ARCH_NAME .EQS. "ALPHA" THEN ARCH_NAME = "AXP" $! $ CC_OPTIONS = "/DECC /OPTIMIZE /PREFIX=ALL" $! $ PREVIOUS_DEFAULT = F$ENVIRONMENT("DEFAULT") $ SET DEFAULT HT_ROOT:[SRC.PHP] $! $ IF F$SEARCH("OBJ_''ARCH_NAME'.DIR") .EQS. "" - THEN CREATE /DIR [.OBJ_'ARCH_NAME'] $ OBJECT_DIR = "[.OBJ_''ARCH_NAME']" $! $ IF P1 .EQS. "BUILD" .OR. P1 .EQS. "COMPILE" $ THEN $! $ DEFINE /PROCESS MAIN CSWS_PHP_ROOT:[MAIN] $ DEFINE /PROCESS TSRM CSWS_PHP_ROOT:[TSRM] $ DECC_SYSTEM_INCLUDE = "CSWS_PHP_ROOT:[EXT.STANDARD], " +- "CSWS_PHP_ROOT:[MAIN], CSWS_PHP_ROOT:[TSRM], CSWS_PHP_ROOT:[ZEND]" $ DEFINE /PROCESS DECC$SYSTEM_INCLUDE 'DECC_SYSTEM_INCLUDE' $! $ IF F$SEARCH("DECC$SYSTEM_INCLUDE:PHP.H") .EQS. "" $ THEN $ TYPE SYS$INPUT ***************************************** * CANNOT FIND 'PHP.H' IN INCLUDE PATH * ***************************************** $ SHOW LOGICAL DECC$SYSTEM_INCLUDE $ SAY "" $ EXIT $ ENDIF $ SAY "" $ SET NOON $ SET VERIFY $ CC 'CC_OPTIONS''CC_DEFINES' /OBJECT='OBJECT_DIR'PHPWASD PHPWASD $ CC 'CC_OPTIONS' /OBJECT='OBJECT_DIR'DCLSYMBOL DCLSYMBOL $! 'F$VERIFY(0) $ CC_STATUS = $STATUS $ CC_SEVERITY = $SEVERITY $ IF .NOT. CC_SEVERITY THEN EXIT 'CC_STATUS' $ SET ON $! $ IF F$TRNLNM("PHP_INCLUDE_DIR","LNM$PROCESS") .NES. "" - THEN DEASSIGN /PROCESS PHP_INCLUDE_DIR $! $ ENDIF $! $ IF P1 .EQS. "" .OR. P1 .EQS. "BUILD" .OR. P1 .EQS. "LINK" $ THEN $! $ SET NOON $ IF PHPWASDSHR .EQS. "" THEN PHPWASDSHR = PHPSHR $ DEFINE /PROCESS PHPWASDSHR 'PHPWASDSHR' $ SAY "Linking against shareable image ''F$TRNLNM("PHPSHR")'" $ SET VERIFY $ LINK /EXECUTABLE=HT_EXE:PHPWASD.EXE - [.OBJ_'ARCH_NAME']PHPWASD.OBJ, - SYS$INPUT:/OPTIONS IDENTIFICATION="''IMAGE_IDENT'" PHPWASDSHR/SHARE $ LINK /SHARE /EXECUTABLE=[.OBJ_'ARCH_NAME']PHP_DCLSYMBOL.EXE - [.OBJ_'ARCH_NAME']DCLSYMBOL.OBJ, - SYS$INPUT:/OPTIONS PHPWASDSHR/SHARE symbol_vector=(get_module=PROCEDURE) $! 'F$VERIFY(0) $ DEASSIGN /PROCESS PHPWASDSHR $ SET ON $! $ ENDIF $! $ PURGE /NOLOG 'OBJECT_DIR' $ SAY "" $! $ IF F$TRNLNM("TSRM","LNM$PROCESS") .NES. "" THEN DEASSIGN /PROCESS TSRM $ IF F$TRNLNM("MAIN","LNM$PROCESS") .NES. "" THEN DEASSIGN /PROCESS MAIN $ IF F$TRNLNM("DECC$SYSTEM_INCLUDE","LNM$PROCESS") .NES. "" THEN DEASSIGN /PROCESS DECC$SYSTEM_INCLUDE $! $ IF F$TYPE(CSWS_PHP_ROOT) .NES. "" THEN DEASSIGN /PROCESS CSWS_PHP_ROOT $! $ SET DEFAULT 'PREVIOUS_DEFAULT' $!-----------------------------------------------------------------------------