$! 16 November 2006. SMS. $! $! Attempt to build Wget 1.10 automatically, using MMK or MMS. $! $! Usage: $! $! @ wget_kit_device:[wget_kit_dir.VMS]VMS-WGET.COM - $! [DASHD] [DBG] [HPSSL|NOSSL] [LARGE] [LIST] [MMS] - $! [CLEAN] [CLEAN_ALL] [CLEAN_EXE] [HELP] [MULTINET] $! $! To enable the "-d" (diagnostics) Wget command-line option, add $! "DASHD" to the command line. $! $! To enable large-file (>2GB) support (non-VAX systems), add "LARGE" $! to the command line. $! $! To build a debug executable, add "DBG" to the command line. $! $! To get compiler listing files, add "LIST" to the command line. $! $! This procedure prefers MMK to MMS. $! To use MMS when both work, add "MMS" to the command line. $! $! To prevent automatic detection and use of OpenSSL, add "NOSSL" $! to the command line. This procedure prefers a generic SSL kit to HP $! SSL. If the generic logical names OPENSSL and SSLLIB are defined, $! they will be used instead of the the HP SSL logical names SSL$INCLUDE $! and SYS$SHARE. To use HP SSL when these generic logical names are $! defined, add "HPSSL" to the command line. $! $! To build the "CLEAN" target (which deletes all object and $! executable files for the current CPU type, add "CLEAN" to the command $! line. Similarly, the "CLEAN_ALL", "CLEAN_EXE" or "HELP" target may be $! specified. For details, see [.VMS]DESCRIP.MMS. $! $! The source code contains some old Multinet-specific code which may $! be useful for building the program with Multinet on old VMS versions $! (probably VMS before V7.x). With more modern VMS and Multinet, there $! should be no need to use any of the old Multinet-specific code. If $! Multinet build problems occur, try adding "MULTINET" to the command $! line. The source code contains no special code for PathWay or $! TCPware IP software (or for the DEC/Compaq/HP UCX or TCPIP software). $! $! $! Special usage for automatic dependency generation (MMS only): $! $! @ wget_kit_device:[wget_kit_dir.VMS]VMS-WGET.COM - $! DEPS [DASHD] [HPSSL|NOSSL] [NOSKIP] [CLEAN|PURGE] $! $! See the [.VMS]DESCRIP_MKDEPS.MMS description file for more $! details. Specifying the CLEAN target here deletes the dependency $! files, not the usual objects and executables. $! $! Note that by default, DESCRIP_MKDEPS.MMS will delete the $! intermediate *.MMSD dependency files, leaving only the comprehensive $! dependency file, DESCRIP_DEPS.MMS. To preserve the intermediate $! files, specify "NOSKIP". $! $! Specifying the PURGE target here deletes the intermediate *.MMSD $! dependency files, and purges the comprehensive dependency file, $! DESCRIP_DEPS.MMS. $! $!---------------------------------------------------------------------- $! $! Sense the current default directory. $! $ def_orig = f$environment( "DEFAULT") $! $! Arrange for clean-up. $! $ on error then goto clean_up $ on control_y then goto clean_up $! $! Set default to the kit [.SRC] directory. $! $ proc = f$environment( "PROCEDURE") $ proc_dev_dir = - f$parse( proc, , , "DEVICE")+ f$parse( proc, , , "DIRECTORY") $ set default 'proc_dev_dir' $ set default [-.src] $! $! Sense the VMS version. $! $ VMS_VERS = f$edit( f$getsyi( "version"), "trim") $! $! $! Analyze the command-line parameters. $! $ CMD = "" $ DASHD = "" $ DBG = "" $ DEPS = "" $ HPSSL = "" $ IP = "" $ LARGE = "" $ LIST = "" $ NOSKIP = "" $ NOSSL = "" $ TARGET = "" $! $ I = 0 $ p_loop_top: $! $ I = I+ 1 $ P = P'I' $ P = f$edit( P, "TRIM, UPCASE") $! $ if (P .eqs. "DASHD") $ then $ DASHD = "DASHD" $ else $ if (P .eqs. "DBG") $ then $ DBG = "DBG" $ else $ if (P .eqs. "DEPS") $ then $ DEPS = "DEPS" $ else $ if (P .eqs. "MMS") $ then $ CMD = "MMS" $ else $ if (P .eqs. "LARGE") $ then $ LARGE = "LARGE" $ else $ if (P .eqs. "LIST") $ then $ LIST = "LIST" $ else $ if (P .eqs. "MULTINET") $ then $ IP = "MULTINET" $ else $ if (P .eqs. "NOSKIP") $ then $ NOSKIP = "NOSKIP" $ else $ if (P .eqs. "NOSSL") $ then $ NOSSL = "NOSSL" $ else $ if (P .eqs. "HPSSL") $ then $ HPSSL = "HPSSL" $ else $ if (P .nes. "") $ then $ TARGET = P $ else $ goto p_loop_bottom $ endif $ endif $ endif $ endif $ endif $ endif $ endif $ endif $ endif $ endif $ endif $! $ goto p_loop_top $ p_loop_bottom: $! $! Verify MMK, if not intending to use MMS. DEPS rquires MMS. $! Accept a (non-blank) foreign command symbol "MMK", or the presence of $! MMK.EXE on DCL$PATH. $! $ if (DEPS .eqs. "") $ then $ if ((CMD .eqs. "") .and. (DEPS .eqs. "")) $ then $ CMD = "MMS" $ M_ = f$type( MMK) $ if (M_ .eqs. "") $ then $ if (f$search( "DCL$PATH:MMK.EXE") .nes. "") then CMD = "MMK" $ else $ if (f$edit( MMK, "TRIM") .nes. "") then CMD = "MMK" $ endif $ endif $ endif $! $! Set MMK or MMS macros. $! $ MACROS = """""VMS_VERS=''VMS_VERS'""""" $! $ if (DASHD .nes. "") $ then $ MACROS = MACROS+ ", """"''DASHD'=1""""" $ endif $! $ if (DBG .nes. "") $ then $ MACROS = MACROS+ ", """"''DBG'=1""""" $ endif $! $ if (LARGE .nes. "") $ then $ MACROS = MACROS+ ", """"''LARGE'=1""""" $ endif $! $ if (LIST .nes. "") $ then $ MACROS = MACROS+ ", """"''LIST'=1""""" $ endif $! $ if (IP .nes. "") $ then $ MACROS = MACROS+ ", """"''IP'=1""""" $ endif $! $ if (NOSKIP .nes. "") $ then $ MACROS = MACROS+ ", """"''NOSKIP'=1""""" $ endif $! $ NEED_HP_OPENSSL = 0 $ if (NOSSL .eqs. "") $ then $ if (HPSSL .nes. "") $ then $ if (f$search( "ssl$include:ssl.h") .nes. "") $ then $ MACROS = MACROS+ ", """"HPSSL=1""""" $ endif $ else $ if (f$search( "openssl:ssl.h") .nes. "") $ then $ if (f$trnlnm( "OPENSSL") .eqs. "SSL$INCLUDE:") $ then $ MACROS = MACROS+ ", """"HPSSL=1""""" $ else $ MACROS = MACROS+ ", """"SSL=1""""" $ endif $ else $ if (f$search( "ssl$include:ssl.h") .nes. "") $ then $ NEED_HP_OPENSSL = 1 $ MACROS = MACROS+ ", """"HPSSL=1""""" $ endif $ endif $ endif $ endif $! $ if (MACROS .nes. "") $ then $ MACROS = "/MACRO = (''MACROS')" $ endif $! $! Compose the MMK or MMS command with the appropriate options. $! $ if (DEPS .eqs. "") $ then $ X := 'CMD' /DESCRIPTION = [-.vms]descrip.mms 'MACROS' 'TARGET' $ else $ CMD = "MMS" $ if (NOSKIP .eqs. "") $ then $ CMD = CMD+ " /SKIP_INTERMEDIATE" $ endif $ X := 'CMD' /EXTENDED_SYNTAX - /DESCRIPTION = [-.vms]descrip_mkdeps.mms 'MACROS' 'TARGET' $ endif $! $! If using HP SSL, define the logical name OPENSSL. $! $ if (NEED_HP_OPENSSL) $ then $ define openssl ssl$include $ endif $! $! If using any SSL, show the openssl definition. $! $ if (NOSSL .eqs. "") $ then $ lnm = f$trnlnm( "OPENSSL") $ if (lnm .eqs. "") $ then $ lnm = "(none)" $ endif $ write sys$output "OPENSSL = "+ lnm $ endif $! $! Show the MMK or MMS command. $! $ write sys$output X $! $! Run MMK or MMS with the appropriate options. $! $ 'X' $! $ clean_up: $! $! If using HP SSL, deassign the logical name OPENSSL. $! $ if (NEED_HP_OPENSSL) $ then $ deassign openssl $ endif $! $! Restore the original default directory. $! $ set default 'def_orig' $!