                                                27 September 2009.  SMS.

                          Wget 1.12.X for VMS
                          ===================

------------------------------------------------------------------------

   Beginning with Wget version 1.12.X, VMS support is included in the
main Wget source kit.  This note describes the VMS-specific details
involved in building and using Wget on VMS.

------------------------------------------------------------------------

   Built and tested (slightly) in these environments:

OpenVMS Alpha V7.3-2, HP C V7.3-009, TCPIP V5.4 - ECO 6

OpenVMS IA64 V8.3, HP C V7.3-018, TCPIP V5.6.

OpenVMS VAX V7.3, Compaq C V6.4-005, TCPIP V5.1.

(__CRTL_VER >= 70000000 is probably required.)

------------------------------------------------------------------------

      Instructions
      ------------

   Extract the files from the distribution kit.

      Note:
      The Wget builders should work on either an ODS2 or ODS5 disk,
      although any original multi-dot file names will be adjusted for
      storage on an ODS2 disk when they are extracted from the kit
      archive.  Depending on the tools used, an original file named
      "a.b.c" may be extracted as "A.B_C" ("dot-under" form) or "A_B.C"
      ("under-dot" form), but the builders should work either way.

      The source kit may contain one or more files in the "tests"
      directory which have names which are too long for an ODS2 disk. 
      They will cause errors when the kit is unpacked, but these files
      are not required on VMS.

   When starting with an official "tar" source kit, the downloaded
bzip2- or gzip-compressed "tar" archive must be expanded using a bzip2
or gzip program, and then a program like VMSTAR can be used to extract
the source tree.  The official source kits tend to have multi-dot file
names, so the exact file names to use in these steps will depend on how
the kit was downloaded, whether the work is done on an ODS2 or an ODS5
disk, and so on.  Thus, the example commands shown below may need some
adjustment to work in different environments. For example, starting with
an official ".tar.bz2" kit named "wget-1_12_X_tar.bz2":

      bzip2 -d wget-1_12_X_tar.bz2
      vmstar xf wget-1_12_X_tar

Or, starting with a Zip archive named "wget-1_12_X.zip":

      unzip wget-1_12_X.zip

   The MMS/MMK builders typically need some help from the user to enable
the desired optional features, and/or to deal with differences between
MMK and MMS features.

   The builder options (MMS/MMK macros) are described in the main
builder file, "[.vms]descrip.mms".  Normally, "DASHD=1" is specified, to
enable the "-d" ("--debug") option.  On a reasonably modern non-VAX
system, specify "LARGE=1" to enable large-file support.  If HTTPS
support is desired, then specify either "HPSSL=1" (to use HP's SSL
product) or "OSSL=1" (to use OpenSSL).

   MMK or an old version of MMS may need a definition of
"MMSDESCRIPTION_FILE".  An error message should explain this, if needed.

   On non-VAX systems, the C compiler may emit some %CC-I-INTCONSTTRUNC
complaints when compiling "[.src]hash.c", but these should be harmless.

   Executables in VMS kits are normally built using "DASHD=1" and
"LARGE=1" (except VAX), and with no HTTPS (SSL) support.  Output from
"wget --version" should reveal which SSL product was used to build Wget. 
"-https" implies no SSL.  "+https" with "-openssl" implies HP SSL, and
"+https" with "+openssl" implies OpenSSL.

   Example build commands:

      SET DEFAULT [.wget-1_12_X_vms.vms]    ! Required.

      MMS CLEAN                             ! Delete all product files
                                            ! for the current (small-file)
                                            ! architecture.

      MMS /MACRO = LARGE=1 CLEAN            ! Delete all product files
                                            ! for the current (large-file)
                                            ! architecture.

      MMS CLEAN_ALL                         ! Delete all product files
                                            ! for all architectures.

      MMS /MACRO = (DASHD=1, LARGE=1)       ! Large-file, no-SSL build.

      MMS /MACRO = (DASHD=1, LARGE=1, HPSSL=1)  ! Add HTTPS support using
                                                ! HP SSL.

      MMS /MACRO = (DASHD=1, LARGE=1, OSSL=1)   ! Add HTTPS support using
                                                ! OpenSSL.

      DFLT = F$ENVIRONMENT( "DEFAULT")          ! Basic MMK build, with
      MMK /MACRO = (MMSDESCRIPTION_FILE='DFLT') ! explicit definition of
      DELETE /SYMBOL DFLT                       ! MMSDESCRIPTION_FILE.
                                                ! ("dev:[dir]" is enough.)

      MMS HELP                              ! Create a help library.
                                            ! (Optional.  See below.)
                                            


   Set the symbol for the foreign command:

      WGET :== $ actual_device:[actual.directory]WGET.EXE

   A very basic VMS HELP file is supplied in [.VMS]WGET.HLP.  To be
used, it must be added to a HELP library, either an existing library or
one just for Wget.  As shown in the example above, a new Wget help
library may be created using the MMS/MMK target "HELP".

   When a new HELP library is created, a logical name "HLP$LIBRARY_n"
may be defined to allow the HELP utility to find it.  See "HELP HELP
/USERLIBRARY" for details.

   Try to read the original documentation to learn how to use Wget.  The
principal differences in this VMS adaptation are:

   The "-b" ("background") option is ignored.  ("-b" uses "fork()".)

   Excess dots are replaced by underscores in URL-derived file
specifications on ODS2 file systems.  For example, on a UNIX system, the
URL "ftp://ftp.anywhere.org/x.y.z/a.b.c" could produce the local file
"ftp.anywhere.org/x.y.z/a.b.c".  With this VMS adaptation, the local
ODS2 file would be "[.FTP_ANYWHERE_ORG.X_Y_Z]A_B.C".  On an ODS5 file
system, the file would be [.ftp^.anywhere^.org.x^.y^.z]a^.b.c".

