1
2  VMS (OpenVMS):
3
4     On VMS, two build methods are provided: a command procedure, and
5     description files for MMS or MMK.  Both methods must be run from
6     the main directory, not the [.VMS] subdirectory.
7
8     A simple build using the command procedure looks like this:
9          @ [.VMS]BUILD_UNZIP.COM
10
11     A simple build using MMS or MMK looks like this:
12          MMS /DESCRIP = [.VMS]DESCRIP.MMS      ! Or, with MMK, ...
13          MMK /DESCRIP = [.VMS]DESCRIP.MMS
14
15     Various options for each build method are explained in comments in
16     the main builder file, either BUILD_UNZIP.COM or DESCRIP.MMS.
17
18     Here are some more complex build examples:
19
20     o Build with the large-file option enabled (non-VAX only):
21
22          @ [.VMS]BUILD_UNZIP LARGE
23       or:
24          MMS /DESC = [.VMS] /MACRO = LARGE=1
25
26     o Re-link the executables (small-file and large-file):
27
28          @ [.VMS]BUILD_UNZIP LINK
29          @ [.VMS]BUILD_UNZIP LARGE LINK
30       or
31          MMK /DESC = [.VMS] CLEAN_EXE  ! Deletes existing executables.
32          MMK /DESC = [.VMS]            ! Builds new executables.
33          MMK /DESC = [.VMS] /MACRO = LARGE=1 CLEAN_EXE
34          MMK /DESC = [.VMS] /MACRO = LARGE=1
35
36     o Build a large-file product from scratch, for debug, getting
37       compiler listings and link maps:
38
39          MMS /DESC = [.VMS] CLEAN
40          MMS /DESC = [.VMS] /MACRO = (DBG=1, LARGE=1. LIST=1)
41
42     On VAX, the builders attempt to cope with the various available C
43     compilers, DEC/Compaq/HP C, VAX C, or GNU C.  If DEC/Compaq/HP C is
44     not available or not desired, comments in the relevant builder file
45     explain the command-line options used to select a different
46     compiler.
47
48     By default, Zip uses (and UnZip supports) the "deflate" compression
49     method.  To add support for the optional "bzip2" compression method,
50     first obtain and build the bzip2 software (http://www.bzip.org/ or,
51     for a more VMS-friendly kit, http://antinode.info/dec/sw/bzip2.html).
52     Then, define the macro IZ_BZIP2 on the BUILD_UNZIP.COM or MMS/MMK
53     command line to specify the directory where the bzip2 files may be
54     found.  For example:
55
56          @ [.VMS]BUILD_UNZIP LARGE -
57           IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS]
58     or:
59          MMS /DESC = [.VMS] /MACRO = (LARGE=1, -
60           IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS])
61
62     Note that historically, UnZip has been built with the default
63     compiler option, /NAMES = UPPERCASE, while bzip2 is normally built
64     with /NAMES = AS_IS, to avoid name collisions.  With modern
65     compilers, the "#pragma names" directives in [.VMS]BZLIB.H will
66     handle these differences without user intervention.  An old
67     compiler (for example, DEC C V4.0-000) will emit complaints
68     %CC-I-UNKNOWNPRAGMA, and will mishandle the bzip2 library function
69     names, which will cause the link to fail.  To solve this problem,
70     either build the bzip2 BZ_NO_STDIO object library with /NAMES =
71     UPPERCASE, or else build UnZip with /NAMES = AS_IS.  For example:
72
73          @ [.VMS]BUILD_UNZIP LARGE "CCOPTS=/NAMES=AS_IS" -
74           IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS]
75     or:
76          MMS /DESC = [.VMS] /MACRO = (LARGE=1, "CCOPTS=/NAMES=AS_IS", -
77           IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS])
78
79     System-architecture-specific files (like objects and executables)
80     are placed in separate directories, such as [.ALPHA], [.IA64], or
81     [.VAX].  Large-file products get their own directories, [.ALPHAL]
82     or [.IA64L].  On VAX, VAX C products are placed in [.VAXV], GNU C
83     products in [.VAXG].  Each product builder announces what the
84     destination directory will be when it is run.
85
86     Common files, such as the help libraries (UNZIP.HLP for the default
87     UNIX-like command-line interface, UNZIP_CLI.HLP for the VMS-like
88     command-line interface), are placed in the main directory.  With a
89     mixed-architecture VMS cluster, the same main directory on a shared
90     disk may may be used by all system types.  (Using the NOHELP option
91     with BUILD_UNZIP.COM can keep it from making the same help files
92     repeatedly.)  Building the help files is detailed below.
93
94  Completing installation:
95
96     To complete the installation, the executables may be left in place,
97     or moved (or copied) to a convenient place.  While other methods
98     (like DCL$PATH) exist, most users define symbols to make the UnZip
99     executables available as foreign commands.  These symbol definitions
100     may be placed in a user's SYS$LOGIN:LOGIN.COM, or in a more central
101     location, like SYS$MANAGER:SYLOGIN.COM.  Typical symbol definitions
102     might look like these:
103
104          UNZIP :== $ dev:[dir]UNZIP.EXE        ! UNIX-like command line.
105     or:
106          UNZIP :== $ dev:[dir]UNZIP_CLI.EXE    ! VMS-like command line.
107
108     On a non-VAX system, different symbols could be defined for the
109     small-file and large-file programs.  For example:
110
111          UNZIPS  :== $ dev:[dir.ALPHA]UNZIP.EXE  ! UNZIPS = small-file UnZip.
112          UNZIP*L :== $ dev:[dir.ALPHAL]UNZIP.EXE !UNZIP[L] = large-file UnZip.
113
114     The builders create help text files, UNZIP.HLP and UNZIP_CLI.HLP.
115     These may be incorporated into an existing help library, or a separate
116     UnZip help library may be created using commands like these, using
117     either UNZIP.HLP (as shown) or UNZIP_CLI.HLP:
118
119          LIBRARY /HELP dev:[dir]existing_library.HLB UNZIP.HLP
120
121          LIBRARY /CREATE /HELP UNZIP.HLB UNZIP.HLP
122
123     UnZip help may then be accessed from a separate UnZip help library
124     using a command like:
125
126          HELP /LIBRARY = device:[directory]UNZIP.HLB
127
128     For greater ease, the user (or system manager) may define a
129     HLP$LIBRARY logical name to allow the HELP utility to find the UnZip
130     help library automatically.  See HELP HELP /USERLIBRARY for more
131     details.   The command procedure HLP_LIB_NEXT.COM may be used to
132     determine the next available HLP$LIBRARY logical name, and could be
133     adapted to define a HLP$LIBRARY logical name for a UnZip help library.
134
135     The builders also create VMS message files, UNZIP_MSG.EXE, in the
136     destination directory with the program executables.  A user may
137     gain DCL access to the UnZip error messages using a command like:
138
139          SET MESSAGE device:[directory]UNZIP_MSG.EXE
140
141     For system-wide access, the system manager may move or copy this
142     file to SYS$MESSAGE, although this could cause some confusion if
143     multiple versions of UnZip are used on the system, and their error
144     message source files differ.
145
146