]> sjero.net Git - wget/blobdiff - vms/VMS-WGET.COM
Steven Schweda's VMS patch.
[wget] / vms / VMS-WGET.COM
diff --git a/vms/VMS-WGET.COM b/vms/VMS-WGET.COM
new file mode 100644 (file)
index 0000000..94e1321
--- /dev/null
@@ -0,0 +1,308 @@
+$!                                              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'
+$!