]> sjero.net Git - wget/blobdiff - vms/DESCRIP_MKDEPS.MMS
Steven Schweda's VMS patch.
[wget] / vms / DESCRIP_MKDEPS.MMS
diff --git a/vms/DESCRIP_MKDEPS.MMS b/vms/DESCRIP_MKDEPS.MMS
new file mode 100644 (file)
index 0000000..2c69500
--- /dev/null
@@ -0,0 +1,156 @@
+#                                               28 January 2008.  SMS.
+#
+#    Wget 1.11 for VMS - MMS Dependency Description File.
+#
+#    MMS /EXTENDED_SYNTAX description file to generate a C source
+#    dependencies file.  Unsightly errors result when /EXTENDED_SYNTAX
+#    is not specified.  Typical usage (from the [...src] directory):
+#
+#    $ @ [-.VMS]VMS-WGET.COM DEPS [DASHD] [HPSSL|NOSSL] [NOSKIP] [CLEAN|PURGE]
+#
+# This description file uses this command procedure:
+#
+#    [-.VMS]COLLECT_DEPS.COM
+#
+# MMK users without MMS will be unable to generate the dependencies file
+# using this description file, however there should be one supplied in
+# the kit.  If this file has been deleted, users in this predicament
+# will need to recover it from the original distribution kit.
+#
+# Note:  This dependency generation scheme assumes that the dependencies
+# do not depend on host architecture type or other such variables. 
+# Therefore, no "#include" directive in the C source itself should be
+# conditional on such variables.
+#
+# Note:  For no apparent reason, Wget code uses "system include"
+# brackets (<>) for "config.h", so /MMS_DEPENDENCIES =
+# NOSYSTEM_INCLUDE_FILES is useless here.  Thus, we rely on
+# COLLECT_DEPS.COM to filter out the system includes from the
+# dependencies.
+#
+
+# Required command procedures.
+
+COMS = [-.VMS]COLLECT_DEPS.COM
+
+# Include the source file lists (among other data).
+
+INCL_DESCRIP_SRC = 1
+.INCLUDE [-.VMS]descrip_src.mms
+
+# The ultimate product, a comprehensive dependency list.
+
+DEPS_FILE = [-.VMS]descrip_deps.mms 
+
+# Detect valid qualifier and/or macro options.
+
+.IF $(FINDSTRING Skip, $(MMSQUALIFIERS)) .eq Skip
+DELETE_MMSD = 1
+.ELSIF NOSKIP
+PURGE_MMSD = 1
+.ELSE
+UNK_MMSD = 1
+.ENDIF
+
+# Dependency suffixes and rules.
+#
+# .FIRST is assumed to be used already, so the MMS qualifier/macro check
+# is included in each rule (one way or another).
+
+.SUFFIXES_BEFORE .C .MMSD
+
+.C.MMSD :
+.IF UNK_MMSD
+       @ write sys$output -
+ "   /SKIP_INTERMEDIATES is expected on the MMS command line."
+       @ write sys$output -
+ "   For normal behavior (delete .MMSD files), specify ""/SKIP""."
+       @ write sys$output -
+ "   To retain the .MMSD files, specify ""/MACRO = NOSKIP=1""."
+       @ exit %x00000004
+.ENDIF
+       $(CC) /NOOBJECT -
+        /define = ($(CDEFINES)) -
+        $(CFLAGS_INCL) -
+        $(CFLAGS_LIST) -
+        $(CFLAGS_PREFIX) -
+        $(MMS$SOURCE) -
+        /MMS_DEPENDENCIES = (FILE = $(MMS$TARGET))
+
+# List of MMS dependency files.
+# [.$(DEST)]XXX.obj -> XXX
+
+MODS_SRC = $(FILTER-OUT *], $(PATSUBST *]*.obj, *] *, $(OBJS_SRC)))
+MODS_VMS = $(FILTER-OUT *], $(PATSUBST *]*.obj, *] [-.vms]*, $(OBJS_VMS)))
+
+MODS = $(MODS_SRC) $(MODS_VMS)
+
+# Complete list of C object dependency file names.
+# XXX -> XXX.mmsd
+
+DEPS = $(FOREACH NAME, $(MODS), $(NAME).mmsd)
+
+# Default target is the comprehensive dependency list.
+
+$(DEPS_FILE) : $(CONFIG_H) $(DEPS) $(COMS)
+.IF UNK_MMSD
+       @ write sys$output -
+ "   /SKIP_INTERMEDIATES is expected on the MMS command line."
+       @ write sys$output -
+ "   For normal behavior (delete individual .MMSD files), specify ""/SKIP""."
+       @ write sys$output -
+ "   To retain the individual .MMSD files, specify ""/MACRO = NOSKIP=1""."
+       @ exit %x00000004
+.ENDIF
+#
+#       Note that the space in P3, which prevents immediate macro
+#       expansion, is removed by COLLECT_DEPS.COM.
+#
+        @[-.VMS]collect_deps.com -
+         "$(MMS$TARGET)" "[-...]*.mmsd" "[.$ (DEST)]" -
+        $(MMSDESCRIPTION_FILE)
+        @ write sys$output -
+         "Created a new dependency file: $(MMS$TARGET)"
+.IF DELETE_MMSD
+       @ write sys$output -
+         "Deleting intermediate .MMSD files..."
+       if (f$search( "*.mmsd;*") .nes. "") then -
+        delete /log *.mmsd;*
+       if (f$search( "[-.vms]*.mmsd;*") .nes. "") then -
+        delete /log [-.vms]*.mmsd;*
+.ELSE
+       @ write sys$output -
+         "Purging intermediate .MMSD files..."
+       purge /log *.mmsd, [-.vms]*.mmsd
+.ENDIF
+
+# CLEAN target.
+
+CLEAN :
+       if (f$search( "$(CONFIG_H)") .nes. "") then -
+        delete /log $(CONFIG_H);*
+       if (f$search( "*.mmsd;*") .nes. "") then -
+        delete /log *.mmsd;*
+       if (f$search( "[-.vms]*.mmsd;*") .nes. "") then -
+        delete /log [-.vms]*.mmsd;*
+       if (f$search( "$(DEPS_FILE);*") .nes. "") then -
+        delete /log $(DEPS_FILE);*
+
+# PURGE target.
+
+PURGE :
+       if (f$search( "$(CONFIG_H);-1") .nes. "") then -
+        purge /log $(CONFIG_H)
+       if (f$search( "*.mmsd;*") .nes. "") then -
+        delete /log *.mmsd;*
+       if (f$search( "[-.vms]*.mmsd;*") .nes. "") then -
+        delete /log [-.vms]*.mmsd;*
+       if (f$search( "$(DEPS_FILE);-1") .nes. "") then -
+        purge /log $(DEPS_FILE)
+
+
+# Include CONFIG.H dependency and rule.
+
+INCL_CONFIG_SRC = 1
+.INCLUDE [-.VMS]descrip_config.mms
+