1#                                               1 March 2009.  SMS.
2#
3#    UnZip 6.0 for VMS - MMS (or MMK) Source Description File.
4#
5
6# This description file is included by other description files.  It is
7# not intended to be used alone.  Verify proper inclusion.
8
9.IFDEF INCL_DESCRIP_SRC
10.ELSE
11$$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY.
12.ENDIF
13
14
15# Define MMK architecture macros when using MMS.
16
17.IFDEF __MMK__                  # __MMK__
18.ELSE                           # __MMK__
19ALPHA_X_ALPHA = 1
20IA64_X_IA64 = 1
21VAX_X_VAX = 1
22.IFDEF $(MMS$ARCH_NAME)_X_ALPHA     # $(MMS$ARCH_NAME)_X_ALPHA
23__ALPHA__ = 1
24.ENDIF                              # $(MMS$ARCH_NAME)_X_ALPHA
25.IFDEF $(MMS$ARCH_NAME)_X_IA64      # $(MMS$ARCH_NAME)_X_IA64
26__IA64__ = 1
27.ENDIF                              # $(MMS$ARCH_NAME)_X_IA64
28.IFDEF $(MMS$ARCH_NAME)_X_VAX       # $(MMS$ARCH_NAME)_X_VAX
29__VAX__ = 1
30.ENDIF                              # $(MMS$ARCH_NAME)_X_VAX
31.ENDIF                          # __MMK__
32
33# Combine command-line VAX C compiler macros.
34
35.IFDEF VAXC                     # VAXC
36VAXC_OR_FORCE_VAXC = 1
37.ELSE                           # VAXC
38.IFDEF FORCE_VAXC                   # FORCE_VAXC
39VAXC_OR_FORCE_VAXC = 1
40.ENDIF                              # FORCE_VAXC
41.ENDIF                          # VAXC
42
43# Analyze architecture-related and option macros.
44
45.IFDEF __ALPHA__                # __ALPHA__
46DECC = 1
47DESTM = ALPHA
48.ELSE                           # __ALPHA__
49.IFDEF __IA64__                     # __IA64__
50DECC = 1
51DESTM = IA64
52.ELSE                               # __IA64__
53.IFDEF __VAX__                          # __VAX__
54.IFDEF VAXC_OR_FORCE_VAXC                   # VAXC_OR_FORCE_VAXC
55DESTM = VAXV
56.ELSE                                       # VAXC_OR_FORCE_VAXC
57.IFDEF GNUC                                     # GNUC
58CC = GCC
59DESTM = VAXG
60.ELSE                                           # GNUC
61DECC = 1
62DESTM = VAX
63.ENDIF                                          # GNUC
64.ENDIF                                      # VAXC_OR_FORCE_VAXC
65.ELSE                                   # __VAX__
66DESTM = UNK
67UNK_DEST = 1
68.ENDIF                                  # __VAX__
69.ENDIF                              # __IA64__
70.ENDIF                          # __ALPHA__
71
72.IFDEF LARGE                    # LARGE
73.IFDEF __VAX__                      # __VAX__
74.ELSE                               # __VAX__
75DESTL = L
76.ENDIF                              # __VAX__
77.ENDIF                          # LARGE
78
79DEST = $(DESTM)$(DESTL)
80SEEK_BZ = $(DESTM)
81
82# Library module name suffix for XXX_.OBJ with GNU C.
83
84.IFDEF GNUC                     # GNUC
85GCC_ = _
86.ELSE                           # GNUC
87GCC_ =
88.ENDIF                          # GNUC
89
90# Check for option problems.
91
92.IFDEF __VAX__                  # __VAX__
93.IFDEF LARGE                        # LARGE
94LARGE_VAX = 1
95.ENDIF                              # LARGE
96.IFDEF VAXC_OR_FORCE_VAXC           # VAXC_OR_FORCE_VAXC
97.IFDEF GNUC                             # GNUC
98VAX_MULTI_CMPL = 1
99.ENDIF                                  # GNUC
100.ENDIF                              # VAXC_OR_FORCE_VAXC
101.ELSE                           # __VAX__
102.IFDEF VAXC_OR_FORCE_VAXC           # VAXC_OR_FORCE_VAXC
103NON_VAX_CMPL = 1
104.ELSE                               # VAXC_OR_FORCE_VAXC
105.IFDEF GNUC                             # GNUC
106NON_VAX_CMPL = 1
107.ENDIF                                  # GNUC
108.ENDIF                              # VAXC_OR_FORCE_VAXC
109.ENDIF                          # __VAX__
110
111# Shortcut to include BZIP2 support from the optional bzip2 source subdir
112# in the UnZip source location.
113
114BZ2DIR_BIN = SYS$DISK:[.BZIP2.$(DESTM)]
115BZ2_OLB = LIBBZ2_NS.OLB
116LIB_BZ2_LOCAL = $(BZ2DIR_BIN)$(BZ2_OLB)
117
118.IFDEF USEBZ2                   # USEBZ2
119.IFDEF IZ_BZIP2                     # IZ_BZIP2
120.ELSE                               # IZ_BZIP2
121IZ_BZIP2 = SYS$DISK:[.BZIP2]
122LIB_BZ2_DEP = $(LIB_BZ2_LOCAL)
123BUILD_BZIP2 = 1
124.ENDIF                              # IZ_BZIP2
125.ENDIF                          # USEBZ2
126
127# Complain about any problems (and die) if warranted.  Otherwise, show
128# optional package directories being used, and the destination
129# directory.  Make the destination directory, if necessary.
130
131.FIRST
132.IFDEF __MMK__                  # __MMK__
133	@ write sys$output ""
134.ENDIF                          # __MMK__
135.IFDEF UNK_DEST                 # UNK_DEST
136	@ write sys$output -
137 "   Unknown system architecture."
138.IFDEF __MMK__                      # __MMK__
139	@ write sys$output -
140 "   MMK on IA64?  Try adding ""/MACRO = __IA64__""."
141.ELSE                               # __MMK__
142	@ write sys$output -
143 "   MMS too old?  Try adding ""/MACRO = MMS$ARCH_NAME=ALPHA"","
144	@ write sys$output -
145 "   or ""/MACRO = MMS$ARCH_NAME=IA64"", or ""/MACRO = MMS$ARCH_NAME=VAX"","
146	@ write sys$output -
147 "   as appropriate.  (Or try a newer version of MMS.)"
148.ENDIF                              # __MMK__
149	@ write sys$output ""
150	I_WILL_DIE_NOW.  /$$$$INVALID$$$$
151.ELSE                           # UNK_DEST
152.IFDEF VAX_MULTI_CMPL               # VAX_MULTI_CMPL
153	@ write sys$output -
154 "   Macro ""GNUC"" is incompatible with ""VAXC"" or ""FORCE_VAXC""."
155	@ write sys$output ""
156	I_WILL_DIE_NOW.  /$$$$INVALID$$$$
157.ELSE                               # VAX_MULTI_CMPL
158.IFDEF NON_VAX_CMPL                     # NON_VAX_CMPL
159	@ write sys$output -
160 "   Macros ""GNUC"", ""VAXC"", and ""FORCE_VAXC"" are valid only on VAX."
161	@ write sys$output ""
162	I_WILL_DIE_NOW.  /$$$$INVALID$$$$
163.ELSE                                   # NON_VAX_CMPL
164.IFDEF LARGE_VAX                            # LARGE_VAX
165	@ write sys$output -
166 "   Macro ""LARGE"" is invalid on VAX."
167	@ write sys$output ""
168	I_WILL_DIE_NOW.  /$$$$INVALID$$$$
169.ELSE                                       # LARGE_VAX
170.IFDEF IZ_BZIP2                                 # IZ_BZIP2
171.IFDEF BUILD_BZIP2                                  # BUILD_BZIP2
172	@ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
173	   write sys$output "   Can not find header file $(IZ_BZIP2)bzlib.h"
174	@ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
175	   write sys$output ""
176	@ if (f$search( "$(IZ_BZIP2)bzlib.h") .eqs. "") then -
177	   I_WILL_DIE_NOW.  /$$$$INVALID$$$$
178	@ write sys$output "   BZIP2 dir: $(BZ2DIR_BIN)"
179	@ define lib_bzip2 $(BZ2DIR_BIN)
180	@ if (f$search( "$(IZ_BZIP2)$(DESTM).dir") .eqs. "") then -
181	   create /directory $(BZ2DIR_BIN)
182.ELSE                                               # BUILD_BZIP2
183	@ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_BZIP2) $(SEEK_BZ) $(BZ2_OLB) lib_bzip2
184	@ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
185	   write sys$output "   Can not find BZIP2 object library."
186	@ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
187	   write sys$output ""
188	@ if (f$trnlnm( "lib_bzip2") .eqs. "") then -
189	   I_WILL_DIE_NOW.  /$$$$INVALID$$$$
190	@ write sys$output "   BZIP2 dir: ''f$trnlnm( "lib_bzip2")'"
191.ENDIF                                              # BUILD_BZIP2
192	@ write sys$output ""
193	@ define incl_bzip2 $(IZ_BZIP2)
194.ENDIF                                          # IZ_BZIP2
195.IFDEF IZ_ZLIB                                  # IZ_ZLIB
196	@ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_ZLIB) $(SEEK_BZ) LIBZ.OLB lib_zlib
197	@ if (f$trnlnm( "lib_zlib") .eqs. "") then -
198	   write sys$output "   Can not find ZLIB object library."
199	@ if (f$trnlnm( "lib_zlib") .eqs. "") then -
200	   write sys$output ""
201	@ if (f$trnlnm( "lib_zlib") .eqs. "") then -
202	   I_WILL_DIE_NOW.  /$$$$INVALID$$$$
203	@ write sys$output "   ZLIB dir:  ''f$trnlnm( "lib_zlib")'"
204	@ write sys$output ""
205	@ define incl_zlib $(IZ_ZLIB)
206	@ @[.VMS]FIND_BZIP2_LIB.COM $(IZ_ZLIB) -
207	   contrib.infback9 infback9.h incl_zlib_contrib_infback9
208.ENDIF                                          # IZ_ZLIB
209	@ write sys$output "   Destination: [.$(DEST)]"
210	@ write sys$output ""
211	if (f$search( "$(DEST).DIR;1") .eqs. "") then -
212	 create /directory [.$(DEST)]
213.ENDIF                                      # LARGE_VAX
214.ENDIF                                  # NON_VAX_CMPL
215.ENDIF                              # VAX_MULTI_CMPL
216.ENDIF                          # UNK_DEST
217
218# BZIP2 options.
219
220.IFDEF IZ_BZIP2                 # IZ_BZIP2
221CDEFS_BZ = , USE_BZIP2
222CFLAGS_INCL = /include = ([], [.VMS])
223LIB_BZIP2_OPTS = lib_bzip2:$(BZ2_OLB) /library,
224.ENDIF                          # IZ_BZIP2
225
226# ZLIB options.
227
228.IFDEF IZ_ZLIB                  # IZ_ZLIB
229CDEFS_ZL = , USE_ZLIB
230.IFDEF CFLAGS_INCL                  # CFLAGS_INCL
231.ELSE                               # CFLAGS_INCL
232CFLAGS_INCL = /include = ([], [.VMS])
233.ENDIF                              # CFLAGS_INCL
234LIB_ZLIB_OPTS = LIB_ZLIB:LIBZ.OLB /library,
235.ELSE                           # IZ_ZLIB
236.IFDEF CFLAGS_INCL                  # CFLAGS_INCL
237.ELSE                               # CFLAGS_INCL
238CFLAGS_INCL = /include = []
239.ENDIF                              # CFLAGS_INCL
240.ENDIF                          # IZ_ZLIB
241
242# DBG options.
243
244.IFDEF DBG                      # DBG
245CFLAGS_DBG = /debug /nooptimize
246LINKFLAGS_DBG = /debug /traceback
247.ELSE                           # DBG
248CFLAGS_DBG =
249LINKFLAGS_DBG = /notraceback
250.ENDIF                          # DBG
251
252# Large-file options.
253
254.IFDEF LARGE                    # LARGE
255CDEFS_LARGE = , LARGE_FILE_SUPPORT
256.ENDIF                          # LARGE
257
258# C compiler defines.
259
260.IFDEF LOCAL_UNZIP
261C_LOCAL_UNZIP = , $(LOCAL_UNZIP)
262.ENDIF
263
264CDEFS = VMS $(CDEFS_BZ) $(CDEFS_LARGE) $(CDEFS_ZL) $(C_LOCAL_UNZIP)
265
266CDEFS_UNX = /define = ($(CDEFS))
267
268CDEFS_CLI = /define = ($(CDEFS), VMSCLI)
269
270CDEFS_SFX = /define = ($(CDEFS), SFX)
271
272CDEFS_SFX_CLI = /define = ($(CDEFS), SFX, VMSCLI)
273
274# Other C compiler options.
275
276.IFDEF DECC                             # DECC
277CFLAGS_ARCH = /decc /prefix = (all)
278.ELSE                                   # DECC
279.IFDEF FORCE_VAXC                           # FORCE_VAXC
280CFLAGS_ARCH = /vaxc
281.IFDEF VAXC                                     # VAXC
282.ELSE                                           # VAXC
283VAXC = 1
284.ENDIF                                          # VAXC
285.ELSE                                       # FORCE_VAXC
286CFLAGS_ARCH =
287.ENDIF                                      # FORCE_VAXC
288.ENDIF                                  # DECC
289
290# LINK (share) library options.
291# Omit shareable image options file for NOSHARE.
292
293.IFDEF VAXC_OR_FORCE_VAXC               # VAXC_OR_FORCE_VAXC
294.IFDEF NOSHARE                              # NOSHARE
295OPT_FILE =
296LFLAGS_ARCH =
297.ELSE                                       # NOSHARE
298OPT_FILE = [.$(DEST)]VAXCSHR.OPT
299LFLAGS_ARCH = $(OPT_FILE) /options,
300.ENDIF                                      # NOSHARE
301.ELSE                                   # VAXC_OR_FORCE_VAXC
302.IFDEF GNUC                                 # GNUC
303LFLAGS_GNU = GNU_CC:[000000]GCCLIB.OLB /LIBRARY
304.IFDEF NOSHARE                                  # NOSHARE
305OPT_FILE =
306LFLAGS_ARCH = $(LFLAGS_GNU),
307.ELSE                                           # NOSHARE
308OPT_FILE = [.$(DEST)]VAXCSHR.OPT
309LFLAGS_ARCH = $(LFLAGS_GNU), SYS$DISK:$(OPT_FILE) /options,
310.ENDIF                                          # NOSHARE
311.ELSE                                       # GNUC
312OPT_FILE =
313LFLAGS_ARCH =
314.ENDIF                                      # GNUC
315.ENDIF                                  # VAXC_OR_FORCE_VAXC
316
317# LINK NOSHARE options.
318
319.IFDEF NOSHARE                  # NOSHARE
320.IFDEF __ALPHA__                    # __ALPHA__
321NOSHARE_OPTS = , SYS$LIBRARY:STARLET.OLB /LIBRARY\
322 /INCLUDE = CMA$TIS /NOSYSSHR
323.ELSE                               # __ALPHA__
324.IFDEF __IA64__                         # __IA64__
325NOSHARE_OPTS = , SYS$LIBRARY:STARLET.OLB /LIBRARY\
326 /INCLUDE = CMA$TIS /NOSYSSHR
327.ELSE                                   # __IA64__
328OLDVAX_OLDVAX = 1
329.IFDEF DECC                                 # DECC
330.IFDEF OLDVAX_$(NOSHARE)                        # OLDVAX_$(NOSHARE)
331NOSHARE_OPTS = , SYS$LIBRARY:DECCRTL.OLB /LIBRARY\
332 /INCLUDE = CMA$TIS /NOSYSSHR
333.ELSE                                           # OLDVAX_$(NOSHARE)
334NOSHARE_OPTS = , SYS$LIBRARY:DECCRTL.OLB /LIBRARY\
335 /INCLUDE = (CMA$TIS, CMA$TIS_VEC) /NOSYSSHR
336.ENDIF                                          # OLDVAX_$(NOSHARE)
337.ELSE                                       # DECC
338.IFDEF OLDVAX_$(NOSHARE)                        # OLDVAX_$(NOSHARE)
339NOSHARE_OPTS = , SYS$LIBRARY:VAXCRTL.OLB /LIBRARY,\
340 SYS$LIBRARY:IMAGELIB.OLB /LIBRARY /NOSYSSHR
341.ELSE                                           # OLDVAX_$(NOSHARE)
342NOSHARE_OPTS = , SYS$LIBRARY:VAXCRTL.OLB /LIBRARY,\
343 SYS$LIBRARY:DECCRTL.OLB /LIBRARY /INCLUDE = CMA$TIS,\
344 SYS$LIBRARY:IMAGELIB.OLB /LIBRARY /NOSYSSHR
345.ENDIF                                          # OLDVAX_$(NOSHARE)
346.ENDIF                                      # DECC
347.ENDIF                                  # __IA64__
348.ENDIF                              # __ALPHA__
349.ELSE                           # NOSHARE
350NOSHARE_OPTS =
351.ENDIF                          # NOSHARE
352
353# LIST options.
354
355.IFDEF LIST                     # LIST
356.IFDEF DECC                         # DECC
357CFLAGS_LIST = /list = $*.LIS /show = (all, nomessages)
358.ELSE                               # DECC
359CFLAGS_LIST = /list = $*.LIS /show = (all)
360.ENDIF                              # DECC
361LINKFLAGS_LIST = /map = $*.MAP /cross_reference /full
362.ELSE                           # LIST
363CFLAGS_LIST =
364LINKFLAGS_LIST =
365.ENDIF                          # LIST
366
367# Common CFLAGS and LINKFLAGS.
368
369CFLAGS = \
370 $(CFLAGS_ARCH) $(CFLAGS_DBG) $(CFLAGS_INCL) $(CFLAGS_LIST) $(CCOPTS) \
371 /object = $(MMS$TARGET)
372
373LINKFLAGS = \
374 $(LINKFLAGS_DBG) $(LINKFLAGS_LIST) $(LINKOPTS) \
375 /executable = $(MMS$TARGET)
376
377# Object library module=object lists.
378
379#    Primary object library, [].
380
381MODS_OBJS_LIB_UNZIP_N = \
382 CRC32=[.$(DEST)]CRC32.OBJ \
383 CRYPT=[.$(DEST)]CRYPT.OBJ \
384 ENVARGS=[.$(DEST)]ENVARGS.OBJ \
385 EXPLODE=[.$(DEST)]EXPLODE.OBJ \
386 EXTRACT=[.$(DEST)]EXTRACT.OBJ \
387 FILEIO=[.$(DEST)]FILEIO.OBJ \
388 GLOBALS=[.$(DEST)]GLOBALS.OBJ \
389 INFLATE=[.$(DEST)]INFLATE.OBJ \
390 LIST=[.$(DEST)]LIST.OBJ \
391 MATCH=[.$(DEST)]MATCH.OBJ \
392 PROCESS=[.$(DEST)]PROCESS.OBJ \
393 TTYIO=[.$(DEST)]TTYIO.OBJ \
394 UBZ2ERR=[.$(DEST)]UBZ2ERR.OBJ \
395 UNREDUCE=[.$(DEST)]UNREDUCE.OBJ \
396 UNSHRINK=[.$(DEST)]UNSHRINK.OBJ \
397 ZIPINFO=[.$(DEST)]ZIPINFO.OBJ
398
399#    Primary object library, [.VMS].
400
401MODS_OBJS_LIB_UNZIP_V = \
402 VMS=[.$(DEST)]VMS.OBJ
403
404MODS_OBJS_LIB_UNZIP = $(MODS_OBJS_LIB_UNZIP_N) $(MODS_OBJS_LIB_UNZIP_V)
405
406#    CLI object library, [.VMS].
407
408MODS_OBJS_LIB_UNZIPCLI_C_V = \
409 CMDLINE=[.$(DEST)]CMDLINE.OBJ
410
411MODS_OBJS_LIB_UNZIPCLI_CLD_V = \
412 VMS_UNZIP_CLD=[.$(DEST)]UNZ_CLI.OBJ
413
414MODS_OBJS_LIB_UNZIP_CLI = \
415 $(MODS_OBJS_LIB_UNZIPCLI_C_V) \
416 $(MODS_OBJS_LIB_UNZIPCLI_CLD_V)
417
418# SFX object library, [].
419
420MODS_OBJS_LIB_UNZIPSFX_N = \
421 CRC32$(GCC_)=[.$(DEST)]CRC32_.OBJ \
422 CRYPT$(GCC_)=[.$(DEST)]CRYPT_.OBJ \
423 EXTRACT$(GCC_)=[.$(DEST)]EXTRACT_.OBJ \
424 FILEIO$(GCC_)=[.$(DEST)]FILEIO_.OBJ \
425 GLOBALS$(GCC_)=[.$(DEST)]GLOBALS_.OBJ \
426 INFLATE$(GCC_)=[.$(DEST)]INFLATE_.OBJ \
427 MATCH$(GCC_)=[.$(DEST)]MATCH_.OBJ \
428 PROCESS$(GCC_)=[.$(DEST)]PROCESS_.OBJ \
429 TTYIO$(GCC_)=[.$(DEST)]TTYIO_.OBJ \
430 UBZ2ERR$(GCC_)=[.$(DEST)]UBZ2ERR_.OBJ
431
432# SFX object library, [.VMS].
433
434MODS_OBJS_LIB_UNZIPSFX_V = \
435 VMS$(GCC_)=[.$(DEST)]VMS_.OBJ
436
437MODS_OBJS_LIB_UNZIPSFX = \
438 $(MODS_OBJS_LIB_UNZIPSFX_N) \
439 $(MODS_OBJS_LIB_UNZIPSFX_V)
440
441# SFX object library, [.VMS] (no []).
442
443MODS_OBJS_LIB_UNZIPSFX_CLI_C_V = \
444 CMDLINE$(GCC_)=[.$(DEST)]CMDLINE_.OBJ
445
446MODS_OBJS_LIB_UNZIPSFX_CLI_CLD_V = \
447 VMS_UNZIP_CLD=[.$(DEST)]UNZ_CLI.OBJ
448
449MODS_OBJS_LIB_UNZIPSFX_CLI = \
450 $(MODS_OBJS_LIB_UNZIPSFX_CLI_C_V) \
451 $(MODS_OBJS_LIB_UNZIPSFX_CLI_CLD_V)
452
453# Executables.
454
455UNZIP = [.$(DEST)]UNZIP.EXE
456
457UNZIP_CLI = [.$(DEST)]UNZIP_CLI.EXE
458
459UNZIPSFX = [.$(DEST)]UNZIPSFX.EXE
460
461UNZIPSFX_CLI = [.$(DEST)]UNZIPSFX_CLI.EXE
462
463