summaryrefslogtreecommitdiffstats
path: root/build.com
diff options
context:
space:
mode:
Diffstat (limited to 'build.com')
-rw-r--r--build.com467
1 files changed, 467 insertions, 0 deletions
diff --git a/build.com b/build.com
new file mode 100644
index 0000000..eae12e7
--- /dev/null
+++ b/build.com
@@ -0,0 +1,467 @@
+$ v0 = 0
+$ v = f$verify(v0)
+$! $LynxId: build.com,v 1.20 2020/01/21 21:54:23 tom Exp $
+$! BUILD.COM
+$!
+$! Command file to build LYNX.EXE on VMS systems.
+$! Also invokes build of the WWWLibrary if its
+$! object library does not already exist.
+$!
+$!
+$! 11-Jun-2010 Ch. Gartmann
+$! add support for "Multinet UCX emulation"
+$! 01-Jul-2007 T.Dickey
+$! add support for "TCPIP" (TCPIP Services)
+$! 04-Nov-2004 T.Dickey
+$! workarounds to build with IA64 platform.
+$! 23-Oct-2004 T.Dickey
+$! cleanup, remove duplication, etc.
+$! 08-Oct-1997 F.Macrides macrides@sci.wfeb.edu
+$! Added comments and minor tweaks for convenient addition of
+$! compiler definitions and compiler and linker options.
+$! 28-Jun-1997 F.Macrides macrides@sci.wfeb.edu
+$! Added chartrans support.
+$! 29-Feb-1996 F.Macrides macrides@sci.wfeb.edu
+$! Added LYMap to the compilation and link lists.
+$! 26-Jul-1995 F.Macrides macrides@sci.wfeb.edu
+$! Reorganized the option files into ones for the transport and
+$! ones for the compiler, and adding support for GNUC.
+$! 14-Jun-1995 F.Macrides macrides@sci.wfeb.edu
+$! Added LYList.
+$! 03-May-1995 F.Macrides macrides@sci.wfeb.edu
+$! Include /nomember for compilations with DECC. It's not the
+$! default on AXP and the code assumes byte alignment.
+$! 23-Mar-1995 F.Macrides macrides@sci.wfeb.edu
+$! Replaced references to v2.3.8 or v2.3.9 with v2.3-FM to avoid
+$! any confusion with official releases at UKans.
+$! 16-Mar-1995 F.Macrides macrides@sci.wfeb.edu
+$! Updated to permit submission to BATCH.
+$! 17-Feb-1995 F.Macrides macriees@sci.wfeb.edu
+$! Updated for v2.3-FM
+$! 07-Dec-1994 F.Macrides macrides@sci.wfeb.edu
+$! Updated for DECC/VAX, VAXC/VAX and DECC/AXP
+$! 03-OCT-1994 A.Harper A.Harper@kcl.ac.uk
+$! Mods to support SOCKETSHR/NETLIB and add a /DEBUG/NOOPT option
+$! 02-Jun-1994 F.Macrides macrides@sci.wfeb.edu
+$! Mods to support TCPWare (To use non-blocking connects, you need
+$! the DRIVERS_V405B.INC patch from FTP.PROCESS.COM for TCPware for
+$! OpenVMS Version 4.0-5, or a higher version of TCPWare, which will
+$! have that bug in the TCPDRIVER fixed. Otherwise, add NO_IOCTL to
+$! the $ cc := cc/define=(...) list in [.WWW.Library.VMS]libmake.com).
+$! 20-May-1994 Andy Harper A.Harper@bay.cc.kcl.ac.uk
+$! Mods to support CMU TCP/IP
+$! 13-Dec-1993 F.Macrides macrides@sci.wfeb.edu
+$! Mods for conditional compilations with VAXC versus DECC
+$! 10-Dec-1993 F.Macrides macrides@sci.wfeb.edu
+$! Initial version, for Lynx v2.1
+$!
+$ ON CONTROL_Y THEN GOTO CLEANUP
+$ ON ERROR THEN GOTO CLEANUP
+$ proc = f$environment("PROCEDURE")
+$ where = f$parse(proc,,,"DEVICE") + f$parse(proc,,,"DIRECTORY")
+$ set default 'where'
+$ write sys$output "Default directory:"
+$ show default
+$ write sys$output ""
+$!
+$! Compiler definitions can be added here as a comma separated
+$! list with a lead comma, e.g., ",HAVE_FOO_H,DO_BLAH". The
+$! definitions will apply only to the LYfoo.c modules. Ones
+$! for the libwww-FM modules can be added equivalently in
+$! [.WWW.Library.vms]libmake.com. - FM
+$!
+$ extra_defs = ""
+$!
+$! Include-paths can be added here as a comma separated
+$! list with a lead comma, e.g., ",foo".
+$!
+$ extra_incs = ""
+$!
+$! Library definitions can be added here as a comma separated
+$! list with a lead comma, e.g., ",foo/LIB".
+$!
+$ extra_libs = ""
+$!
+$! If no TCP/IP agent is specified (as the first argument),
+$! prompt for a number from the list. Note that the agent
+$! must be the first argument if the debugger mode is to be
+$! set via a second argument (see below). - FM
+$!
+$ agent = 0
+$ IF P1 .EQS. ""
+$ THEN
+$ If f$mode() .eqs. "BATCH"
+$ Then
+$ write sys$output "TCP/IP agent not specified!"
+$ write sys$output "Defaulting to MULTINET"
+$ agent = 1
+$ Else
+$ write sys$output "Acceptable TCP/IP agents are"
+$ write sys$output " [1] MULTINET (default)"
+$ write sys$output " [2] UCX"
+$ write sys$output " [3] WIN_TCP"
+$ write sys$output " [4] CMU_TCP"
+$ write sys$output " [5] SOCKETSHR_TCP"
+$ write sys$output " [6] TCPWARE"
+$ write sys$output " [7] DECNET"
+$ write sys$output " [8] TCPIP"
+$ write sys$output " [9] Multinet with UCX emulation"
+$ read sys$command/prompt="Agent [1,2,3,4,5,6,7,8,9] (RETURN = [1]) " agent
+$ EndIf
+$ ENDIF
+$ option = ""
+$ if agent .eq. 1 .or. agent .eqs. "" .or. p1 .eqs. "" .or. p1 .eqs. "MULTINET" then -
+ option = "MULTINET"
+$ if agent .eq. 2 .or. p1 .eqs. "UCX" then option = "UCX"
+$ if agent .eq. 3 .or. p1 .eqs. "WIN_TCP" then option = "WIN_TCP"
+$ if agent .eq. 4 .or. p1 .eqs. "CMU_TCP" then option = "CMU_TCP"
+$ if agent .eq. 5 .or. p1 .eqs. "SOCKETSHR_TCP" then option = "SOCKETSHR_TCP"
+$ if agent .eq. 6 .or. p1 .eqs. "TCPWARE" then option = "TCPWARE"
+$ if agent .eq. 7 .or. p1 .eqs. "DECNET" then option = "DECNET"
+$ if agent .eq. 8 .or. p1 .eqs. "TCPIP" then option = "TCPIP"
+$ if agent .eq. 9 .or. p1 .eqs. "MULTINETUCX"
+$ then
+$ option = "UCX"
+$ mucx = 1
+$ extra_defs = extra_defs + ",MUCX"
+$ ELSE
+$ mucx = 0
+$ ENDIF
+$!
+$ if option .eqs. ""
+$ then
+$ write sys$output "TCP/IP agent could not be determined"
+$ exit 18
+$ endif
+$!
+$ if option .eqs. "TCPWARE"
+$ then
+$ write sys$output "Building Lynx for TCPWARE with UCX emulation..."
+$ extra_defs = extra_defs + ",UCX"
+$ endif
+$!
+$ optfile = "''option'"
+$!
+$! Compiler and linker options can be specified here. If
+$! there was a second argument (with any value), then debugger
+$! mode with no optimization will be specified as well. The
+$! compiler options will apply only to the LYfoo.c and UCfoo.c
+$! modules. Ones for the libwww-FM modules can be specified
+$! in [.WWW.Library.vms]libmake.com. - FM
+$!
+$ cc_opts = ""
+$ link_opts = ""
+$!
+$! The second parameter is a comma-separated list of the optional
+$! libraries:
+$! bzlib, slang, ssl, zlib
+$! Because these are normally not installed in a standard place,
+$! you must define their locations (see below for the symbols ending
+$! with "_INC" or "_LIB").
+$!
+$ if P2 .nes. ""
+$ then
+$ count_parm = 0
+$ parse_p2:
+$ value_parm = f$element('count_parm, ",", "''p2'")
+$ if value_parm .nes. ","
+$ then
+$ if value_parm .eqs. "BZLIB"
+$ then
+$ write sys$output "** adding BZlib to build."
+$ extra_defs = extra_defs + ",USE_BZLIB"
+$ extra_incs = extra_incs + "," + BZLIB_INC
+$ extra_libs = extra_libs + "," + BZLIB_LIB + "libbz2/LIB"
+$ endif
+$ if value_parm .eqs. "SLANG"
+$ then
+$ write sys$output "** adding SLang to build."
+$ extra_defs = extra_defs + ",USE_SLANG"
+$ extra_incs = extra_incs + "," + SLANG_INC
+$ extra_libs = extra_libs + "," + SLANG_LIB + "slang.olb/lib"
+$ endif
+$ if value_parm .eqs. "SSL"
+$ then
+$ write sys$output "** adding SSL to build."
+$ IF F$TYPE( ssl_lib ) .EQS. "" THEN ssl_lib = F$TRNLNM("SSLLIB")
+$ IF F$TYPE( ssl_inc ) .EQS. "" THEN ssl_inc = F$TRNLNM("SSLINCLUDE")
+$ extra_defs = extra_defs + ",USE_SSL,USE_OPENSSL_INCL"
+$ extra_libs = extra_libs + "," + SSL_LIB + "libssl/LIB," + SSL_LIB + "libcrypto/LIB"
+$!
+$! The "#include <openssl/ssl.h>" requires a logical variable "openssl".
+$!
+$ define/nolog openssl 'SSL_INC
+$ endif
+$ if value_parm .eqs. "ZLIB"
+$ then
+$ write sys$output "** adding Zlib to build."
+$ extra_defs = extra_defs + ",USE_ZLIB"
+$ extra_incs = extra_incs + "," + ZLIB_INC
+$ extra_libs = extra_libs + "," + ZLIB_LIB + "libz/LIB"
+$ endif
+$ count_parm = count_parm + 1
+$ goto parse_p2
+$ endif
+$ endif
+$!
+$! The third parameter is nonempty to make a debug build
+$!
+$ if P3 .nes. ""
+$ then
+$ debug_arg = "DEBUG"
+$ cc_opts = cc_opts + "/DEBUG/NOOPT"
+$ link_opts = link_opts + "/DEBUG"
+$ else
+$ debug_arg = ""
+$ endif
+$!
+$ IF f$search("[.WWW.Library.Implementation]WWWLib_''option'.olb") .nes. ""
+$ THEN
+$ write sys$output " WWWLib_''option'.olb already exists."
+$ If f$mode() .eqs. "BATCH"
+$ Then
+$ write sys$output " Updating WWWLib_''option'.olb"
+$ Else
+$ read sys$command/prompt=" Update it [default Y]? " reply
+$ if reply .nes. "" .and. -
+ f$extract(0,1,f$edit(reply, "TRIM, UPCASE")) .nes. "Y" then -
+$ goto Compile_CHRTRANS
+$ EndIf
+$ ENDIF
+$ v1 = f$verify(1)
+$!
+$! Build the WWWLibrary
+$!
+$ set default [.WWW.Library.VMS]
+$ v1 = f$verify(v0)
+$ @libmake "''option'" "''P2'" "''debug_arg'"
+$ v1 = f$verify(1)
+$ set default [-.-.-]
+$ v1 = f$verify(v0)
+$ ON CONTROL_Y THEN GOTO CLEANUP
+$ ON ERROR THEN GOTO CLEANUP
+$!
+$Compile_CHRTRANS:
+$ IF f$search("[.src.chrtrans]makeuctb.exe") .nes. ""
+$ THEN
+$ write sys$output " [.src.chrtrans]makeuctb.exe already exists."
+$ If f$mode() .eqs. "BATCH"
+$ Then
+$ write sys$output " Updating makeuctb.exe and chrtrans header files."
+$ Else
+$ read sys$command -
+ /prompt=" Update it and chrtrans header files [default Y]? " reply
+$ if reply .nes. "" .and. -
+ f$extract(0,1,f$edit(reply, "TRIM, UPCASE")) .nes. "Y" then -
+$ goto Compile_SRC
+$ EndIf
+$ ENDIF
+$!
+$ v1 = f$verify(1)
+$!
+$! Build the chrtrans modules.
+$!
+$ set default [.src.chrtrans]
+$ v1 = 'f$verify(v0)
+$ @build-chrtrans
+$ v1 = f$verify(1)
+$ set default [-.-]
+$ v1 = f$verify(v0)
+$ ON CONTROL_Y THEN GOTO CLEANUP
+$ ON ERROR THEN GOTO CLEANUP
+$!
+$Compile_SRC:
+$ v1 = f$verify(1)
+$!
+$! Compile the Lynx [.SRC] modules
+$!
+$ set default [.SRC]
+$ v1 = f$verify(v0)
+$ IF f$getsyi("ARCH_NAME") .eqs. "Alpha" .or. -
+ f$getsyi("ARCH_NAME") .eqs. "IA64" .or. -
+ f$trnlnm("VAXCMSG") .eqs. "DECC$MSG" .or. -
+ f$trnlnm("DECC$CC_DEFAULT") .eqs. "/DECC" .or. -
+ f$trnlnm("DECC$CC_DEFAULT") .eqs. "/VAXC"
+$ THEN
+$ compiler := "DECC"
+$!
+$ if option .eqs. "UCX"
+$ then
+$ optfile = "UCXSHR"
+$ IF mucx THEN optfile = "MULTINET_UCX"
+$ ENDIF
+$ if option .eqs. "TCPIP" then optfile = "TCPIPSHR"
+$ if option .eqs. "TCPWARE" then optfile = "TCPWARESHR"
+$!
+$ if option .eqs. "SOCKETSHR_TCP" then extra_defs = extra_defs + ",_DECC_V4_SOURCE"
+$ if option .eqs. "TCPIP" then extra_defs = extra_defs + ",TCPIP_SERVICES"
+$ if option .eqs. "MULTINET" then -
+ extra_defs = extra_defs + ",_DECC_V4_SOURCE,__SOCKET_TYPEDEFS"
+$!
+$ if option .eqs. "TCPIP"
+$ then
+$ if f$trnlnm("TCPIP$IPC_SHR") .eqs. "" then define TCPIP$IPC_SHR SYS$LIBRARY:TCPIP$IPC_SHR
+$ endif
+$!
+$ v1 = f$verify(1)
+$! DECC:
+$ cc := cc/decc/prefix=all/nomember'cc_opts' -
+ /DEFINE=(ACCESS_AUTH,'option''extra_defs',__VMS_CURSES)-
+ /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]'extra_incs')
+$ v1 = f$verify(v0)
+$ ELSE
+$ IF option .eqs. "UCX"
+$ THEN
+$ optfile = "UCXSHR"
+$ IF mucx THEN optfile = "MULTINET_UCX"
+$ ENDIF
+$ if option .eqs. "TCPIP" then optfile = "TCPIPOLB"
+$ if option .eqs. "TCPWARE" then optfile = "TCPWAREOLB"
+$ IF f$search("gnu_cc:[000000]gcclib.olb") .nes. ""
+$ THEN
+$ compiler := "GNUC"
+$ v1 = f$verify(1)
+$! GNUC:
+$ cc := gcc'cc_opts' -
+ /DEFINE=(ACCESS_AUTH,'option''extra_defs')-
+ /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]'extra_incs')
+$ v1 = f$verify(v0)
+$ ELSE
+$ compiler := "VAXC"
+$ v1 = f$verify(1)
+$! VAXC:
+$ cc := cc'cc_opts' -
+ /DEFINE=(ACCESS_AUTH,'option''extra_defs')-
+ /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]'extra_incs')
+$ v1 = f$verify(v0)
+$ ENDIF
+$ ENDIF
+$ v1 = f$verify(1)
+$!
+$ cc DefaultStyle
+$ cc GridText
+$ cc HTAlert
+$ cc HTFWriter
+$ cc HTInit
+$ cc HTML
+$ cc LYBookmark
+$ cc LYCgi
+$ cc LYCharSets
+$ cc LYCharUtils
+$ cc LYClean
+$ cc LYCookie
+$ cc/nooptimize LYCurses
+$ cc LYDownload
+$ cc LYEdit
+$ cc LYEditmap
+$ cc LYexit
+$ cc LYForms
+$ cc LYGetFile
+$ cc LYHistory
+$ cc LYJump
+$ cc LYKeymap
+$ cc LYLeaks
+$ cc LYList
+$ cc LYMail
+$ cc LYMain
+$ cc LYMainLoop
+$ cc LYMap
+$ cc LYMktime
+$ cc LYNews
+$ cc LYOptions
+$ cc LYPrint
+$ cc LYrcFile
+$ cc LYReadCFG
+$ cc LYSearch
+$ cc LYSession
+$ cc LYShowInfo
+$ cc LYStrings
+$ cc LYTraversal
+$ cc LYUpload
+$ cc LYUtils
+$ cc PARSDATE
+$ cc TRSTable
+$ cc UCAuto
+$ cc UCAux
+$ cc UCdomap
+$!
+$! Link the objects and libraries.
+$!
+$ IF f$getsyi("ARCH_NAME") .eqs. "IA64"
+$ THEN
+$ optslibs="''extra_libs'"
+$ ELSE
+$ optslibs=", sys$disk:[]''optfile'.opt/opt, sys$disk:[]''compiler'.opt/opt ''extra_libs'"
+$ ENDIF
+$!
+$ link/exe=lynx.exe/map=lynx 'link_opts' -
+DefaultStyle.obj, -
+GridText.obj, -
+HTAlert.obj, -
+HTFWriter.obj, -
+HTInit.obj, -
+HTML.obj, -
+LYBookmark.obj, -
+LYCgi.obj, -
+LYCharSets.obj, -
+LYCharUtils.obj, -
+LYClean.obj, -
+LYCookie.obj, -
+LYCurses.obj, -
+LYDownload.obj, -
+LYEdit.obj, -
+LYEditmap.obj, -
+LYexit.obj, -
+LYForms.obj, -
+LYGetFile.obj, -
+LYHistory.obj, -
+LYJump.obj, -
+LYKeymap.obj, -
+LYLeaks.obj, -
+LYList.obj, -
+LYMail.obj, -
+LYMain.obj, -
+LYMainLoop.obj, -
+LYMap.obj, -
+LYMktime.obj, -
+LYNews.obj, -
+LYOptions.obj, -
+LYPrint.obj, -
+LYrcFile.obj, -
+LYReadCFG.obj, -
+LYSearch.obj, -
+LYSession.obj, -
+LYShowInfo.obj, -
+LYStrings.obj, -
+LYTraversal.obj, -
+LYUpload.obj, -
+LYUtils.obj, -
+Parsdate.obj, -
+TRSTable.obj, -
+UCAuto.obj, -
+UCAux.obj, -
+UCdomap.obj, -
+[-.WWW.Library.Implementation]WWWLib_'option'.olb/library 'optslibs
+$!
+$! Copy the executable to the top directory and restore the default.
+$!
+$ copy lynx.exe [-]
+$ set def [-]
+$!
+$ v1 = f$verify(v0)
+$!
+$! Issue message on how to include LYNX.HLP in the system HELP library
+$!
+$ write sys$output ""
+$ write sys$output " To install or update lynx.hlp in the system HELP library,"
+$ write sys$output " use:"
+$ write sys$output " library/replace sys$help:helplib.hlb lynx.hlp"
+$ write sys$output ""
+$!
+$ CLEANUP:
+$ v1 = f$verify(v0)
+$ set default 'where'
+$ write sys$output "Default directory:"
+$ show default
+$ v1 = f$verify(v)
+$ exit