Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6725 siemargl 1
#                                               1 March 2009.  SMS.
2
#
3
#    UnZip 6.0 for VMS - MMS (or MMK) Description File.
4
#
5
# Usage:
6
#
7
#    MMS /DESCRIP = [.VMS]DESCRIP.MMS [/MACRO = ()] [target]
8
#
9
# Note that this description file must be used from the main
10
# distribution directory, not from the [.VMS] subdirectory.
11
#
12
# Optional macros:
13
#
14
#    USEBZ2=1       Build with optional BZIP2 support.  This macro
15
#                   is a shortcut for IZ_BZIP2=SYS$DISK:[.BZIP2].
16
#                   Additionally, it forces invokation of the UnZip-supplied
17
#                   bzip2 make script provided in [.bzip2]descrbz2.mms.
18
#                   This results in a "single-command" build of UnZip with
19
#                   bzip2 support directly from the sources.
20
#
21
#    IZ_BZIP2=dev:[dir]  Build with optional BZIP2 support.  The value
22
#                        of the MMS macro, ("dev:[dir]", or a suitable
23
#                   logical name) tells where to find "bzlib.h".  The
24
#                   BZIP2 object library (LIBBZ2_NS.OLB) is expected to
25
#                   be in a "[.dest]" directory under that one
26
#                   ("dev:[dir.ALPHAL]", for example), or in that
27
#                   directory itself.
28
#                   By default, the SFX programs are built without BZIP2
29
#                   support.  Add "BZIP2_SFX=1" to the LOCAL_UNZIP C
30
#                   macros to enable it.  (See LOCAL_UNZIP, below.)
31
#
32
#    IZ_ZLIB=dev:[dir]  Use ZLIB compression library instead of internal
33
#                       compression routines.  The value of the MMS
34
#                   macro ("dev:[dir]", or a suitable logical name)
35
#                   tells where to find "zlib.h".  The ZLIB object
36
#                   library (LIBZ.OLB) is expected to be in a
37
#                   "[.dest]" directory under that one
38
#                   ("dev:[dir.ALPHAL]", for example), or in that
39
#                   directory itself.
40
#
41
#    CCOPTS=xxx     Compile with CC options xxx.  For example:
42
#                   CCOPTS=/ARCH=HOST
43
#
44
#    DBG=1          Compile with /DEBUG /NOOPTIMIZE.
45
#                   Link with /DEBUG /TRACEBACK.
46
#                   (Default is /NOTRACEBACK.)
47
#
48
#    LARGE=1        Enable large-file (>2GB) support.  Non-VAX only.
49
#
50
#    LINKOPTS=xxx   Link with LINK options xxx.  For example:
51
#                   LINKOPTS=/NOINFO
52
#
53
#    LIST=1         Compile with /LIST /SHOW = (ALL, NOMESSAGES).
54
#                   Link with /MAP /CROSS_REFERENCE /FULL.
55
#
56
#    NOSHARE=1      Link /NOSYSSHR (not using shareable images).
57
#    NOSHARE=OLDVAX Link /NOSYSSHR on VAX for:
58
#                      DEC C with VMS before V7.3.
59
#                      VAX C without DEC C RTL (DEC C not installed).
60
#
61
#    "LOCAL_UNZIP= c_macro_1=value1 [, c_macro_2=value2 [...]]"
62
#                   Compile with these additional C macros defined.
63
#
64
# VAX-specific optional macros:
65
#
66
#    VAXC=1         Use the VAX C compiler, assuming "CC" runs it.
67
#                   (That is, DEC C is not installed, or else DEC C is
68
#                   installed, but VAX C is the default.)
69
#
70
#    FORCE_VAXC=1   Use the VAX C compiler, assuming "CC /VAXC" runs it.
71
#                   (That is, DEC C is installed, and it is the
72
#                   default, but you want VAX C anyway, you fool.)
73
#
74
#    GNUC=1         Use the GNU C compiler.  (Seriously under-tested.)
75
#
76
#
77
# The default target, ALL, builds the selected product executables and
78
# help files.
79
#
80
# Other targets:
81
#
82
#    CLEAN      deletes architecture-specific files, but leaves any
83
#               individual source dependency files and the help files.
84
#
85
#    CLEAN_ALL  deletes all generated files, except the main (collected)
86
#               source dependency file.
87
#
88
#    CLEAN_EXE  deletes only the architecture-specific executables.
89
#               Handy if all you wish to do is re-link the executables.
90
#
91
# Example commands:
92
#
93
# To build the conventional small-file product using the DEC/Compaq/HP C
94
# compiler (Note: DESCRIP.MMS is the default description file name.):
95
#
96
#    MMS /DESCRIP = [.VMS]
97
#
98
# To get the large-file executables (on a non-VAX system):
99
#
100
#    MMS /DESCRIP = [.VMS] /MACRO = (LARGE=1)
101
#
102
# To delete the architecture-specific generated files for this system
103
# type:
104
#
105
#    MMS /DESCRIP = [.VMS] /MACRO = (LARGE=1) CLEAN     ! Large-file.
106
# or
107
#    MMS /DESCRIP = [.VMS] CLEAN                        ! Small-file.
108
#
109
# To build a complete small-file product for debug with compiler
110
# listings and link maps:
111
#
112
#    MMS /DESCRIP = [.VMS] CLEAN
113
#    MMS /DESCRIP = [.VMS] /MACRO = (DBG=1, LIST=1)
114
#
115
########################################################################
116
 
117
# Include primary product description file.
118
 
119
INCL_DESCRIP_SRC = 1
120
.INCLUDE [.VMS]DESCRIP_SRC.MMS
121
 
122
# Object library names.
123
 
124
LIB_UNZIP = SYS$DISK:[.$(DEST)]UNZIP.OLB
125
LIB_UNZIP_CLI = SYS$DISK:[.$(DEST)]UNZIPCLI.OLB
126
LIB_UNZIPSFX = SYS$DISK:[.$(DEST)]UNZIPSFX.OLB
127
LIB_UNZIPSFX_CLI = SYS$DISK:[.$(DEST)]UNZSFXCLI.OLB
128
 
129
# Help file names.
130
 
131
UNZIP_HELP = UNZIP.HLP UNZIP_CLI.HLP
132
 
133
# Message file names.
134
 
135
UNZIP_MSG_MSG = [.VMS]UNZIP_MSG.MSG
136
UNZIP_MSG_EXE = [.$(DEST)]UNZIP_MSG.EXE
137
UNZIP_MSG_OBJ = [.$(DEST)]UNZIP_MSG.OBJ
138
 
139
 
140
# TARGETS.
141
 
142
# Default target, ALL.  Build All executables,
143
# and help files.
144
 
145
ALL : $(UNZIP) $(UNZIP_CLI) $(UNZIPSFX) $(UNZIPSFX_CLI) $(UNZIP_HELP) \
146
      $(UNZIP_MSG_EXE)
147
	@ write sys$output "Done."
148
 
149
# CLEAN target.  Delete the [.$(DEST)] directory and everything in it.
150
 
151
CLEAN :
152
	if (f$search( "[.$(DEST)]*.*") .nes. "") then -
153
	 delete [.$(DEST)]*.*;*
154
	if (f$search( "$(DEST).dir") .nes. "") then -
155
	 set protection = w:d $(DEST).dir;*
156
	if (f$search( "$(DEST).dir") .nes. "") then -
157
	 delete $(DEST).dir;*
158
 
159
# CLEAN_ALL target.  Delete:
160
#    The [.$(DEST)] directories and everything in them.
161
#    All help-related derived files,
162
#    All individual C dependency files.
163
# Also mention:
164
#    Comprehensive dependency file.
165
#
166
CLEAN_ALL :
167
	if (f$search( "[.ALPHA*]*.*") .nes. "") then -
168
	 delete [.ALPHA*]*.*;*
169
	if (f$search( "ALPHA*.dir", 1) .nes. "") then -
170
	 set protection = w:d ALPHA*.dir;*
171
	if (f$search( "ALPHA*.dir", 2) .nes. "") then -
172
	 delete ALPHA*.dir;*
173
	if (f$search( "[.IA64*]*.*") .nes. "") then -
174
	 delete [.IA64*]*.*;*
175
	if (f$search( "IA64*.dir", 1) .nes. "") then -
176
	 set protection = w:d IA64*.dir;*
177
	if (f$search( "IA64*.dir", 2) .nes. "") then -
178
	 delete IA64*.dir;*
179
	if (f$search( "[.VAX*]*.*") .nes. "") then -
180
	 delete [.VAX*]*.*;*
181
	if (f$search( "VAX*.dir", 1) .nes. "") then -
182
	 set protection = w:d VAX*.dir;*
183
	if (f$search( "VAX*.dir", 2) .nes. "") then -
184
	 delete VAX*.dir;*
185
	if (f$search( "[.VMS]UNZIP_CLI.RNH") .nes. "") then -
186
	 delete [.VMS]UNZIP_CLI.RNH;*
187
	if (f$search( "UNZIP_CLI.HLP") .nes. "") then -
188
	 delete UNZIP_CLI.HLP;*
189
	if (f$search( "UNZIP.HLP") .nes. "") then -
190
	 delete UNZIP.HLP;*
191
	if (f$search( "*.MMSD") .nes. "") then -
192
	 delete *.MMSD;*
193
	if (f$search( "[.VMS]*.MMSD") .nes. "") then -
194
	 delete [.VMS]*.MMSD;*
195
	@ write sys$output ""
196
	@ write sys$output "Note:  This procedure will not"
197
	@ write sys$output "   DELETE [.VMS]DESCRIP_DEPS.MMS;*"
198
	@ write sys$output -
199
 "You may choose to, but a recent version of MMS (V3.5 or newer?) is"
200
	@ write sys$output -
201
 "needed to regenerate it.  (It may also be recovered from the original"
202
	@ write sys$output -
203
 "distribution kit.)  See [.VMS]DESCRIP_MKDEPS.MMS for instructions on"
204
	@ write sys$output -
205
 "generating [.VMS]DESCRIP_DEPS.MMS."
206
        @ write sys$output ""
207
 
208
# CLEAN_EXE target.  Delete the executables in [.$(DEST)].
209
 
210
CLEAN_EXE :
211
        if (f$search( "[.$(DEST)]*.EXE") .nes. "") then -
212
         delete [.$(DEST)]*.EXE;*
213
 
214
 
215
# Object library module dependencies.
216
 
217
$(LIB_UNZIP) : $(LIB_UNZIP)($(MODS_OBJS_LIB_UNZIP))
218
	@ write sys$output "$(MMS$TARGET) updated."
219
 
220
$(LIB_UNZIP_CLI) : $(LIB_UNZIP_CLI)($(MODS_OBJS_LIB_UNZIP_CLI))
221
	@ write sys$output "$(MMS$TARGET) updated."
222
 
223
$(LIB_UNZIPSFX) : $(LIB_UNZIPSFX)($(MODS_OBJS_LIB_UNZIPSFX))
224
	@ write sys$output "$(MMS$TARGET) updated."
225
 
226
$(LIB_UNZIPSFX_CLI) : $(LIB_UNZIPSFX_CLI)($(MODS_OBJS_LIB_UNZIPSFX_CLI))
227
	@ write sys$output "$(MMS$TARGET) updated."
228
 
229
 
230
# Module ID options files.
231
 
232
OPT_ID = SYS$DISK:[.VMS]UNZIP.OPT
233
OPT_ID_SFX = SYS$DISK:[.VMS]UNZIPSFX.OPT
234
 
235
# Default C compile rule.
236
 
237
.C.OBJ :
238
        $(CC) $(CFLAGS) $(CDEFS_UNX) $(MMS$SOURCE)
239
 
240
 
241
# Normal sources in [.VMS].
242
 
243
[.$(DEST)]VMS.OBJ : [.VMS]VMS.C
244
 
245
# Command-line interface files.
246
 
247
[.$(DEST)]CMDLINE.OBJ : [.VMS]CMDLINE.C
248
	$(CC) $(CFLAGS) $(CDEFS_CLI) $(MMS$SOURCE)
249
 
250
[.$(DEST)]UNZIPCLI.OBJ : UNZIP.C
251
	$(CC) $(CFLAGS) $(CDEFS_CLI) $(MMS$SOURCE)
252
 
253
[.$(DEST)]UNZ_CLI.OBJ : [.VMS]UNZ_CLI.CLD
254
 
255
# SFX variant sources.
256
 
257
[.$(DEST)]CRC32_.OBJ : CRC32.C
258
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
259
 
260
[.$(DEST)]CRYPT_.OBJ : CRYPT.C
261
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
262
 
263
[.$(DEST)]EXTRACT_.OBJ : EXTRACT.C
264
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
265
 
266
[.$(DEST)]FILEIO_.OBJ : FILEIO.C
267
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
268
 
269
[.$(DEST)]GLOBALS_.OBJ : GLOBALS.C
270
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
271
 
272
[.$(DEST)]INFLATE_.OBJ : INFLATE.C
273
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
274
 
275
[.$(DEST)]MATCH_.OBJ : MATCH.C
276
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
277
 
278
[.$(DEST)]PROCESS_.OBJ : PROCESS.C
279
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
280
 
281
[.$(DEST)]TTYIO_.OBJ : TTYIO.C
282
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
283
 
284
[.$(DEST)]UBZ2ERR_.OBJ : UBZ2ERR.C
285
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
286
 
287
[.$(DEST)]VMS_.OBJ : [.VMS]VMS.C
288
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
289
 
290
[.$(DEST)]UNZIPSFX.OBJ : UNZIP.C
291
	$(CC) $(CFLAGS) $(CDEFS_SFX) $(MMS$SOURCE)
292
 
293
# SFX CLI variant sources.
294
 
295
[.$(DEST)]CMDLINE_.OBJ : [.VMS]CMDLINE.C
296
	$(CC) $(CFLAGS) $(CDEFS_SFX_CLI) $(MMS$SOURCE)
297
 
298
[.$(DEST)]UNZSFXCLI.OBJ : UNZIP.C
299
	$(CC) $(CFLAGS) $(CDEFS_SFX_CLI) $(MMS$SOURCE)
300
 
301
# VAX C LINK options file.
302
 
303
.IFDEF OPT_FILE
304
$(OPT_FILE) :
305
	open /write opt_file_ln  $(OPT_FILE)
306
	write opt_file_ln "SYS$SHARE:VAXCRTL.EXE /SHARE"
307
	close opt_file_ln
308
.ENDIF
309
 
310
# Local BZIP2 object library.
311
 
312
$(LIB_BZ2_LOCAL) :
313
	$(MMS) $(MMSQUALIFIERS) /DESCR=$(IZ_BZIP2)descrbz2.mms'macro' -
314
	   /MACRO = (SRCDIR=$(IZ_BZIP2), DSTDIR=$(BZ2DIR_BIN), -
315
	   DEST=$(IZ_BZIP2)$(DESTM)) $(MMSTARGETS)
316
 
317
# Normal UnZip executable.
318
 
319
$(UNZIP) : [.$(DEST)]UNZIP.OBJ \
320
           $(LIB_UNZIP) $(LIB_BZ2_DEP) $(OPT_FILE) $(OPT_ID)
321
	$(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
322
	 $(LIB_UNZIP) /library, -
323
	 $(LIB_BZIP2_OPTS) -
324
	 $(LIB_UNZIP) /library, -
325
	 $(LIB_ZLIB_OPTS) -
326
	 $(LFLAGS_ARCH) -
327
	 $(OPT_ID) /options -
328
	 $(NOSHARE_OPTS)
329
 
330
# CLI UnZip executable.
331
 
332
$(UNZIP_CLI) : [.$(DEST)]UNZIPCLI.OBJ \
333
               $(LIB_UNZIP_CLI) $(LIB_BZ2_DEP) $(OPT_FILE) $(OPT_ID)
334
	$(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
335
	 $(LIB_UNZIP_CLI) /library, -
336
	 $(LIB_UNZIP) /library, -
337
	 $(LIB_BZIP2_OPTS) -
338
	 $(LIB_UNZIP) /library, -
339
	 $(LIB_ZLIB_OPTS) -
340
	 $(LFLAGS_ARCH) -
341
	 $(OPT_ID) /options -
342
	 $(NOSHARE_OPTS)
343
 
344
# SFX UnZip executable.
345
 
346
$(UNZIPSFX) : [.$(DEST)]UNZIPSFX.OBJ \
347
              $(LIB_UNZIPSFX) $(LIB_BZ2_DEP) $(OPT_FILE) $(OPT_ID_SFX)
348
	$(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
349
	 $(LIB_UNZIPSFX) /library, -
350
	 $(LIB_BZIP2_OPTS) -
351
	 $(LIB_UNZIPSFX) /library, -
352
	 $(LIB_ZLIB_OPTS) -
353
	 $(LFLAGS_ARCH) -
354
	 $(OPT_ID_SFX) /options -
355
	 $(NOSHARE_OPTS)
356
 
357
# SFX CLI UnZip executable.
358
 
359
$(UNZIPSFX_CLI) : [.$(DEST)]UNZSFXCLI.OBJ \
360
                  $(LIB_UNZIPSFX_CLI) $(LIB_UNZIPSFX) $(LIB_BZ2_DEP) \
361
                  $(OPT_FILE) $(OPT_ID_SFX)
362
	$(LINK) $(LINKFLAGS) $(MMS$SOURCE), -
363
	 $(LIB_UNZIPSFX_CLI) /library, -
364
	 $(LIB_UNZIPSFX) /library, -
365
	 $(LIB_BZIP2_OPTS) -
366
	 $(LIB_UNZIPSFX) /library, -
367
	 $(LIB_ZLIB_OPTS) -
368
	 $(LFLAGS_ARCH) -
369
	 $(OPT_ID_SFX) /options -
370
	 $(NOSHARE_OPTS)
371
 
372
 
373
# Help files.
374
 
375
UNZIP.HLP : [.VMS]UNZIP_DEF.RNH
376
	runoff /output = $(MMS$TARGET) $(MMS$SOURCE)
377
 
378
UNZIP_CLI.HLP : [.VMS]UNZIP_CLI.HELP [.VMS]CVTHELP.TPU
379
	edit /tpu /nosection /nodisplay /command = [.VMS]CVTHELP.TPU -
380
	 $(MMS$SOURCE)
381
	rename UNZIP_CLI.RNH [.VMS]
382
        purge /nolog /keep = 1 [.VMS]UNZIP_CLI.RNH
383
	runoff /output = $(MMS$TARGET) [.VMS]UNZIP_CLI.RNH
384
 
385
# Message file.
386
 
387
$(UNZIP_MSG_EXE) : $(UNZIP_MSG_OBJ)
388
        link /shareable = $(MMS$TARGET) $(UNZIP_MSG_OBJ)
389
 
390
$(UNZIP_MSG_OBJ) : $(UNZIP_MSG_MSG)
391
        message /object = $(MMS$TARGET) /nosymbols $(UNZIP_MSG_MSG)
392
 
393
# Include generated source dependencies.
394
 
395
INCL_DESCRIP_DEPS = 1
396
.INCLUDE [.VMS]DESCRIP_DEPS.MMS
397