Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  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 = (<see_below>)] [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.  
  398.