about summary refs log blame commit diff stats
path: root/build.com
blob: c60993401509e0661d0a1370c2e2212c97b3fb56 (plain) (tree)
1
2
3
4
5
6
7
8
9
10






                                                   


                                                                     

                                                                     










































                                                                           





                                                                   
            






                                                                


















                                                                           
                                                                                       






                                                                             





                                                             


                                                                       
                           



                       









                                                                   
                









                                                        
        


                                         
        
                     











                                                                           
                                







                                
                                         


                     
























                                                                              
                 




                                














                                                        
                                                                          
                                    
                                                            

                   
                                               
                                                              
                                                                        








                                                        
                        
                                                   
                                                                          




                      
                       
                                                  
                                                                         















                      
             


























                
             


            


                                      
                                          










                   
               


























                  
               


              
                                                            
                                                                      

















                                                                                
                        



                                          
$ v = 'f$verify(0)'
$!			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.
$!
$!   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 = ""
$!
$!	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"
$ 	read sys$command/prompt="Agent [1,2,3,4,5,6] (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 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 = extra + ",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 = ""
$!
$ if p2 .nes. ""
$ then
$   ssl_arg = "openssl"
$   extra = extra + ",USE_SSL,USE_OPENSSL_INCL"
$   ssl_libs = ",ssllib:libssl/LIB,ssllib:libcrypto/LIB"
$ else
$   ssl_arg = ""
$   ssl_libs = ""
$ endif
$!
$ 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(0)'
$ @libmake 'option' 'ssl_arg' 'debug_arg'
$ v1 = f$verify(1)
$ set default [-.-.-]
$ v1 = 'f$verify(0)'
$ 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(0)'
$ @build-chrtrans
$ v1 = f$verify(1)
$ set default [-.-]
$ v1 = 'f$verify(0)'
$ 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(0)'
$ IF 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 option .eqs. "TCPWARE" then optfile = "TCPWARESHR"
$  if option .eqs. "SOCKETSHR_TCP" then extra = extra + ",_DECC_V4_SOURCE"
$  if option .eqs. "MULTINET" then -
	extra = extra + ",_DECC_V4_SOURCE,__SOCKET_TYPEDEFS"
$  v1 = f$verify(1)
$! DECC:
$  cc := cc/decc/prefix=all/nomember'cc_opts' -
	   /DEFINE=(ACCESS_AUTH,'option''extra',__VMS_CURSES)-
	   /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]) 
$  v1 = 'f$verify(0)'
$ ELSE
$  if option .eqs. "UCX" then optfile = "UCXOLB"
$  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')-
	     /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]) 
$   v1 = 'f$verify(0)'
$  ELSE
$   compiler := "VAXC"
$   v1 = f$verify(1)
$! VAXC:
$   cc := cc'cc_opts' -
	    /DEFINE=(ACCESS_AUTH,'option''extra')-
	    /INCLUDE=([],[-],[-.WWW.Library.Implementation],[.chrtrans]) 
$   v1 = 'f$verify(0)'
$  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 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 LYNews
$ cc LYOptions
$ cc LYPrint
$ cc LYrcFile
$ cc LYReadCFG
$ cc LYSearch
$ cc LYShowInfo
$ cc LYStrings
$ cc LYTraversal
$ cc LYUpload
$ cc LYUtils
$ cc TRSTable
$ cc UCAuto
$ cc UCAux
$ cc UCdomap
$!
$!	Link the objects and libaries.
$!
$ 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, -
LYNews.obj, -
LYOptions.obj, -
LYPrint.obj, -
LYrcFile.obj, -
LYReadCFG.obj, -
LYSearch.obj, -
LYShowInfo.obj, -
LYStrings.obj, -
LYTraversal.obj, -
LYUpload.obj, -
LYUtils.obj, -
TRSTable.obj, -
UCAuto.obj, -
UCAux.obj, -
UCdomap.obj, -
[-.WWW.Library.Implementation]WWWLib_'option'.olb/library, -
sys$disk:[]'optfile'.opt/opt, sys$disk:[]'compiler'.opt/opt 'ssl_libs'
$!
$!	Copy the executable to the top directory and restore the default.
$!
$ copy lynx.exe [-]
$ set def [-]
$!
$ v1 = 'f$verify(0)'
$!
$!  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(0)'
$    set default 'where'
$    write sys$output "Default directory:"
$    show default
$    v1 = f$verify(v)
$ exit