Subversion Repositories Kolibri OS

Rev

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

  1. #                                               1 February 2008.  SMS.
  2. #
  3. #    UnZip 6.0 for VMS - MMS Dependency Description File.
  4. #
  5. #    MMS /EXTENDED_SYNTAX description file to generate a C source
  6. #    dependencies file.  Unsightly errors result when /EXTENDED_SYNTAX
  7. #    is not specified.  Typical usage:
  8. #
  9. #    $ MMS /EXTEND /DESCRIP = [.VMS]DESCRIP_MKDEPS.MMS /SKIP
  10. #
  11. # Note that this description file must be used from the main
  12. # distribution directory, not from the [.VMS] subdirectory.
  13. #
  14. # This description file uses these command procedures:
  15. #
  16. #    [.VMS]MOD_DEP.COM
  17. #    [.VMS]COLLECT_DEPS.COM
  18. #
  19. # MMK users without MMS will be unable to generate the dependencies file
  20. # using this description file, however there should be one supplied in
  21. # the kit.  If this file has been deleted, users in this predicament
  22. # will need to recover it from the original distribution kit.
  23. #
  24. # Note:  This dependency generation scheme assumes that the dependencies
  25. # do not depend on host architecture type or other such variables.
  26. # Therefore, no "#include" directive in the C source itself should be
  27. # conditional on such variables.
  28. #
  29. # The default target is the comprehensive source dependency file,
  30. # DEPS_FILE = [.VMS]DESCRIP_DEPS.MMS.
  31. #
  32. # Other targets:
  33. #
  34. #    CLEAN      deletes the individual source dependency files,
  35. #               *.MMSD;*, but leaves the comprehensive source dependency
  36. #               file.
  37. #
  38. #    CLEAN_ALL  deletes all source dependency files, including the
  39. #               individual *.MMSD;* files and the comprehensive file,
  40. #               DESCRIP_DEPS.MMS.*.
  41. #
  42.  
  43. # Required command procedures.
  44.  
  45. COMS = [.VMS]MOD_DEP.COM [.VMS]COLLECT_DEPS.COM
  46.  
  47. # Include the source file lists (among other data).
  48.  
  49. INCL_DESCRIP_SRC = 1
  50. .INCLUDE [.VMS]DESCRIP_SRC.MMS
  51.  
  52. # The ultimate product, a comprehensive dependency list.
  53.  
  54. DEPS_FILE = [.VMS]DESCRIP_DEPS.MMS
  55.  
  56. # Detect valid qualifier and/or macro options.
  57.  
  58. .IF $(FINDSTRING Skip, $(MMSQUALIFIERS)) .eq Skip
  59. DELETE_MMSD = 1
  60. .ELSIF NOSKIP
  61. PURGE_MMSD = 1
  62. .ELSE
  63. UNK_MMSD = 1
  64. .ENDIF
  65.  
  66. # Dependency suffixes and rules.
  67. #
  68. # .FIRST is assumed to be used already, so the MMS qualifier/macro check
  69. # is included in each rule (one way or another).
  70.  
  71. .SUFFIXES_BEFORE .C .MMSD
  72.  
  73. .C.MMSD :
  74. .IF UNK_MMSD
  75.         @ write sys$output -
  76.  "   /SKIP_INTERMEDIATES is expected on the MMS command line."
  77.         @ write sys$output -
  78.  "   For normal behavior (delete .MMSD files), specify ""/SKIP""."
  79.         @ write sys$output -
  80.  "   To retain the .MMSD files, specify ""/MACRO = NOSKIP=1""."
  81.         @ exit %x00000004
  82. .ENDIF
  83.         $(CC) $(CFLAGS_INCL) $(MMS$SOURCE) /NOLIST /NOOBJECT -
  84.          /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  85.  
  86. # List of MMS dependency files.
  87.  
  88. # In case it's not obvious...
  89. # To extract module name lists from object library module=object lists:
  90. # 1.  Transform "module=[.dest]name.OBJ" into "module=[.dest] name".
  91. # 2.  For [.VMS], add [.VMS] to name.
  92. # 3.  Delete "*]" words.
  93. #
  94. # A similar scheme works for executable lists.
  95.  
  96. MODS_LIB_UNZIP_N = $(FILTER-OUT *], \
  97.  $(PATSUBST *]*.OBJ, *] *, $(MODS_OBJS_LIB_UNZIP_N)))
  98.  
  99. MODS_LIB_UNZIP_V = $(FILTER-OUT *], \
  100.  $(PATSUBST *]*.OBJ, *] [.VMS]*, $(MODS_OBJS_LIB_UNZIP_V)))
  101.  
  102. MODS_LIB_UNZIPCLI_V = $(FILTER-OUT *], \
  103.  $(PATSUBST *]*.OBJ, *] [.VMS]*, $(MODS_OBJS_LIB_UNZIPCLI_C_V)))
  104.  
  105. MODS_LIB_UNZIPSFX_N = $(FILTER-OUT *], \
  106.  $(PATSUBST *]*.OBJ, *] *, $(MODS_OBJS_LIB_UNZIPSFX_N)))
  107.  
  108. MODS_LIB_UNZIPSFX_V = $(FILTER-OUT *], \
  109.  $(PATSUBST *]*.OBJ, *] [.VMS]*, $(MODS_OBJS_LIB_UNZIPSFX_V)))
  110.  
  111. MODS_UNZIP = $(FILTER-OUT *], \
  112.  $(PATSUBST *]*.EXE, *] *, $(UNZIP)))
  113.  
  114. MODS_UNZIP_CLI = $(FILTER-OUT *], \
  115.  $(PATSUBST *]*.EXE, *] *, $(UNZIP_CLI)))
  116.  
  117. MODS_UNZIPSFX = $(FILTER-OUT *], \
  118.  $(PATSUBST *]*.EXE, *] *, $(UNZIPSFX)))
  119.  
  120. MODS_UNZIPSFX_CLI = $(FILTER-OUT *], \
  121.  $(PATSUBST *]*.EXE, *] *, $(UNZIPSFX_CLI)))
  122.  
  123. # Complete list of C object dependency file names.
  124. # Note that the CLI UnZip main program object file is a special case.
  125.  
  126. DEPS = $(FOREACH NAME, \
  127.  $(MODS_LIB_UNZIP_N) $(MODS_LIB_UNZIP_V) \
  128.  $(MODS_LIB_UNZIPCLI_V) \
  129.  $(MODS_LIB_UNZIPSFX_N) $(MODS_LIB_UNZIPSFX_V) \
  130.  $(MODS_UNZIP) $(MODS_UNZIP_CLI) \
  131.  $(MODS_UNZIPSFX) $(MODS_UNZIPSFX_CLI), \
  132.  $(NAME).mmsd)
  133.  
  134. # Default target is the comprehensive dependency list.
  135.  
  136. $(DEPS_FILE) : $(DEPS) $(COMS)
  137. .IF UNK_MMSD
  138.         @ write sys$output -
  139.  "   /SKIP_INTERMEDIATES is expected on the MMS command line."
  140.         @ write sys$output -
  141.  "   For normal behavior (delete individual .MMSD files), specify ""/SKIP""."
  142.         @ write sys$output -
  143.  "   To retain the individual .MMSD files, specify ""/MACRO = NOSKIP=1""."
  144.         @ exit %x00000004
  145. .ENDIF
  146. #
  147. #       Note that the space in P4, which prevents immediate macro
  148. #       expansion, is removed by COLLECT_DEPS.COM.
  149. #
  150.         @[.VMS]COLLECT_DEPS.COM "UnZip" -
  151.          "$(MMS$TARGET)" "[...]*.mmsd" "[.$ (DEST)]" $(MMSDESCRIPTION_FILE)
  152.         @ write sys$output -
  153.          "Created a new dependency file: $(MMS$TARGET)"
  154. .IF DELETE_MMSD
  155.         @ write sys$output -
  156.          "Deleting intermediate .MMSD files..."
  157.         delete /log *.MMSD;*, [.VMS]*.MMSD;*
  158. .ELSE
  159.         @ write sys$output -
  160.          "Purging intermediate .MMSD files..."
  161.         purge /log *.MMSD, [.VMS]*.MMSD
  162. .ENDIF
  163.  
  164. # CLEAN target.  Delete the individual C dependency files.
  165.  
  166. CLEAN :
  167.         if (f$search( "*.MMSD") .nes. "") then -
  168.          delete /log *.MMSD;*
  169.         if (f$search( "[.VMS]*.MMSD") .nes. "") then -
  170.          delete /log [.VMS]*.MMSD;*
  171.  
  172. # CLEAN_ALL target.  Delete:
  173. #    The individual C dependency files.
  174. #    The collected source dependency file.
  175.  
  176. CLEAN_ALL :
  177.         if (f$search( "*.MMSD") .nes. "") then -
  178.          delete /log *.MMSD;*
  179.         if (f$search( "[.VMS]*.MMSD") .nes. "") then -
  180.          delete /log [.VMS]*.MMSD;*
  181.         if (f$search( "[.VMS]DESCRIP_DEPS.MMS") .nes. "") then -
  182.          delete /log [.VMS]DESCRIP_DEPS.MMS;*
  183.  
  184. # Explicit dependencies and rules for utility variant modules.
  185. #
  186. # The extra dependency on the normal dependency file obviates including
  187. # the /SKIP warning code in each rule here.
  188.  
  189. CRC32_.MMSD : CRC32.C CRC32.MMSD
  190.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  191.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  192.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  193.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  194.  
  195. CRYPT_.MMSD : CRYPT.C CRYPT.MMSD
  196.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  197.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  198.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  199.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  200.  
  201. EXTRACT_.MMSD : EXTRACT.C EXTRACT.MMSD
  202.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  203.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  204.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  205.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  206.  
  207. FILEIO_.MMSD : FILEIO.C FILEIO.MMSD
  208.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  209.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  210.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  211.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  212.  
  213. GLOBALS_.MMSD : GLOBALS.C GLOBALS.MMSD
  214.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  215.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  216.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  217.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  218.  
  219. INFLATE_.MMSD : INFLATE.C INFLATE.MMSD
  220.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  221.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  222.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  223.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  224.  
  225. MATCH_.MMSD : MATCH.C MATCH.MMSD
  226.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  227.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  228.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  229.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  230.  
  231. PROCESS_.MMSD : PROCESS.C PROCESS.MMSD
  232.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  233.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  234.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  235.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  236.  
  237. TTYIO_.MMSD : TTYIO.C TTYIO.MMSD
  238.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  239.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  240.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  241.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  242.  
  243. UBZ2ERR_.MMSD : UBZ2ERR.C UBZ2ERR.MMSD
  244.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  245.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  246.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  247.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  248.  
  249. [.VMS]VMS_.MMSD : [.VMS]VMS.C [.VMS]VMS.MMSD
  250.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  251.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  252.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  253.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  254.  
  255. UNZIP_CLI.MMSD : UNZIP.C UNZIP.MMSD
  256.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  257.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  258.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  259.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  260.  
  261. UNZIPSFX.MMSD : UNZIP.C UNZIP.MMSD
  262.         $(CC) $(CFLAGS_INCL) $(CFLAGS_SFX) $(MMS$SOURCE) -
  263.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  264.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  265.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  266.  
  267. UNZIPSFX_CLI.MMSD : UNZIP.C UNZIP.MMSD
  268.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(CFLAGS_SFX) $(MMS$SOURCE) -
  269.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  270.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  271.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  272.  
  273. # Special case.  No normal (non-CLI) version.
  274.  
  275. [.VMS]CMDLINE.MMSD : [.VMS]CMDLINE.C
  276. .IF UNK_MMSD
  277.         @ write sys$output -
  278.  "   /SKIP_INTERMEDIATES is expected on the MMS command line."
  279.         @ write sys$output -
  280.  "   For normal behavior (delete .MMSD files), specify ""/SKIP""."
  281.         @ write sys$output -
  282.  "   To retain the .MMSD files, specify ""/MACRO = NOSKIP=1""."
  283.         @ exit %x00000004
  284. .ENDIF
  285.         $(CC) $(CFLAGS_INCL) $(CFLAGS_CLI) $(MMS$SOURCE) -
  286.          /NOLIST /NOOBJECT /MMS_DEPENDENCIES = -
  287.          (FILE = $(MMS$TARGET), NOSYSTEM_INCLUDE_FILES)
  288.         @[.VMS]MOD_DEP.COM $(MMS$TARGET) $(MMS$TARGET_NAME).OBJ $(MMS$TARGET)
  289.  
  290.