X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=vms%2FDESCRIP.MMS;h=11c9fd8a8bf310929f76e98bba1b0943ef72b7a3;hp=a746b2f9b15401437b7bbb9a40fbdf56fd760016;hb=3450481772898cb948207635fa3343f7ba56a7f2;hpb=d5361eca21c683bd28d0351cdb9bb7cb0de8d75a diff --git a/vms/DESCRIP.MMS b/vms/DESCRIP.MMS index a746b2f9..11c9fd8a 100644 --- a/vms/DESCRIP.MMS +++ b/vms/DESCRIP.MMS @@ -1,140 +1,535 @@ -# 29 January 2008. SMS. +# 23 September 2009. SMS. # -# MMS or MMK description file for Wget 1.11. +# Wget 1.12 for VMS - MMS (or MMK) Description File. # -# The default target, EXE, builds the architecture-specific Wget -# executable (and the DECC_VER.EXE diagnostic executable). +# Usage: # -# Other targets: +# SET DEFAULT [.directory] ! [.VMS] to build all products. +# MMS /DESCRIPTION = [-.VMS] [/MACRO = ()] target +# +# Optional macros: +# +# CCOPTS=xxx Compile with CC options xxx. For example: +# "CCOPTS=/ARCH=HOST" +# +# CDEFS_USER=xxx Compile with C macro definition(s) xxx. +# +# DASHD=1 Compile with "-d" option enabled. +# +# DBG=1 Compile with /DEBUG /NOOPTIMIZE. +# Link with /DEBUG /TRACEBACK. +# (Default is /NOTRACEBACK.) +# +# HPSSL=1 Enable HTTPS (and NTLM) support using HP SSL. +# +# LARGE=1 Enable large-file (>2GB) support. Non-VAX only. +# +# LINKOPTS=xxx Link with LINK options xxx. For example: +# "LINKOPTS=/NOINFO" # -# HELP [.VMS]WGET.HLB help library. +# LIST=1 Compile with /LIST /SHOW = (ALL, NOMESSAGES). +# Link with /MAP /CROSS_REFERENCE /FULL. +# +# ODS2DU=1 Look for multi-dot file names (like +# "[.lib]getopt^.in.h") using VMSTAR-compatible, +# dot-under, ODS2-conforming names (like +# "[.lib]getopt.in_h"). See also ODS2Z, below. +# +# ODS2UD=1 Look for multi-dot file names (like +# "[.lib]getopt^.in.h") using [Un]Zip-compatible, +# under-dot ODS2-conforming names (like +# "[.lib]getopt_in.h"). Also use this macro if the +# source kit was extracted using VMSTAR with the +# /UNDERDOT ("-u") option. +# +# OSSL=1 Enable HTTPS (and NTLM) support using OpenSSL. +# +# +# The default target, ALL, builds all the product executables. +# +# Other targets: # # CLEAN deletes architecture-specific files, but leaves any -# individual source dependency files and the help library. +# individual source dependency files. # # CLEAN_ALL deletes all generated files, except the main (collected) -# source dependency file. +# source dependency files. +# +# CLEAN_EXE deletes only the architecture-specific executables. +# Handy if all you wish to do is re-link the executables. # -# CLEAN_EXE deletes only the architecture-specific executable. -# Handy if all you wish to do is re-link the executable. +# CLEAN_OLB deletes only the architecture-specific object libraries. # +# HELP creates the HELP library, [.vms]WGET.HLB. +# +# Example commands: +# +# To build the conventional small-file product using the DEC/Compaq/HP C +# compiler (Note: DESCRIP.MMS is the default description file name.): +# +# MMS +# +# To get the large-file executables (on a non-VAX system): +# +# MMS /MACRO = (DASHD=1, LARGE=1) +# +# To delete the architecture-specific generated files for this system +# type: +# +# MMS /MACRO = (LARGE=1) CLEAN ! Large-file. +# or +# MMS CLEAN ! Small-file. +# +# To build a complete small-file product for debug with compiler +# listings and link maps: +# +# MMS CLEAN +# MMS /MACRO = (DBG=1, LIST=1) +# +######################################################################## -# Include the source file lists (among other data). +# Include primary product description file. INCL_DESCRIP_SRC = 1 -.INCLUDE [-.VMS]descrip_src.mms +.INCLUDE descrip_src.mms + +# Required command procedures. + +CONFIG_EXTRACT_COM = [-.$(DIR_VMS)]CONFIG_EXTRACT.COM + +# Generated header files. + +# Products. + +LIB_GETOPT_H = $(DIR_LIB_DEST)GETOPT.H +SRC_CONFIG_H = $(DIR_SRC_DEST)CONFIG.H + +# Sources. + +LIB_GETOPT_H_SRC_DD = [-.$(DIR_LIB)]getopt^.in.h +LIB_GETOPT_H_SRC_DU = [-.$(DIR_LIB)]getopt.in_h +LIB_GETOPT_H_SRC_UD = [-.$(DIR_LIB)]getopt_in.h -# DECC_VER diagnostic program. -DECC_VER_OBJ = [.$(DEST)]DECC_VER.OBJ +.IFDEF ODS2DU # ODS2DU +LIB_GETOPT_H_SRC = $(LIB_GETOPT_H_SRC_DU) +.ELSE # ODS2DU +.IFDEF ODS2UD # ODS2UD +LIB_GETOPT_H_SRC = $(LIB_GETOPT_H_SRC_UD) +.ELSE # ODS2UD +LIB_GETOPT_H_SRC = $(LIB_GETOPT_H_SRC_DD) +.ENDIF # ODS2UD [else] +.ENDIF # ODS2DU [else] +SRC_CONFIG_H_SRC = [-.$(DIR_VMS)]CONFIG.H_VMS -# Executables. -WGET_EXE = [.$(DEST)]WGET.EXE -DECC_VER_EXE = [.$(DEST)]DECC_VER.EXE +# TARGETS. -EXE = $(WGET_EXE) $(DECC_VER_EXE) +# Default subsidiary targets. -# HELP library and source file. +# Build LIB object library (default target). -HLB = [-.VMS]WGET.HLB -HLP = [-.VMS]WGET.HLP +.IFDEF TARGET_LIB # TARGET_LIB -# Link the executables (default target). +SUBSIDIARY = 1 -EXE : $(EXE) +LIBLIB : $(LIB_LIB) @ write sys$output "" - @ write sys$output " ""$<"" is ready." + @ write sys$output " LIBLIB done." @ write sys$output "" -$(WGET_EXE) : $(OBJS) $(MAIN_OPT) $(IP_OPT) - define /user_mode odir [.$(DEST)] - $(LINK) $(LINKFLAGS) $(MAIN_OPT) /options $(IP_LINK_OPT) - - $(SSL_LINK_OPT) +$(LIB_LIB) : $(LIB_LIB)($(MODS_OBJS_LIB_LIB)) + @ write sys$output "$(MMS$TARGET) updated." + +.ENDIF # TARGET_LIB + + +# Build MD5 object library (default target). + +.IFDEF TARGET_MD5 # TARGET_MD5 + +SUBSIDIARY = 1 + +LIBMD5 : $(LIB_MD5) + @ write sys$output "" + @ write sys$output " LIBMD5 done." + @ write sys$output "" + +$(LIB_MD5) : $(LIB_MD5)($(MODS_OBJS_LIB_MD5)) + @ write sys$output "$(MMS$TARGET) updated." + +# Special rules for MD5.C on VAX where Compaq C V6.4-005 +# (like, probably, other versions) loops with /optimize = disjoint. + +.IFDEF __VAX__ # __VAX__ + +[.$(DEST)]MD5.OBJ : MD5.C + @ write sys$output "***************************************" + @ write sys$output "* Note: Exceptional rule in use here: *" + @ write sys$output "***************************************" + $(CC) $(CFLAGS) /optimize = nodisjoint /define = ($(CDEFS)) - + $(MMS$SOURCE) + +.ENDIF # __VAX__ + +.ENDIF # TARGET_MD5 + -$(DECC_VER_OBJ) : [-.VMS]DECC_VER.C +# Build Wget executable or SRC object library (default target). + +.IFDEF TARGET_SRC # TARGET_SRC + +SUBSIDIARY = 1 + +EXES : $(EXES) + @ write sys$output "" + @ write sys$output " Wget done." + @ write sys$output "" + +$(LIB_SRC) : $(LIB_SRC)($(MODS_OBJS_LIB_SRC)) + @ write sys$output "$(MMS$TARGET) updated." + +$(WGET_EXE) : $(LIB_MD5) $(LIB_LIB) $(LIB_SRC) + $(LINK) $(LINKFLAGS) - + $(LIB_SRC) /library /include = (main), - + $(LIB_LIB) /library, - + $(LIB_MD5) /library - + $(SSL_LINK_OPT) + $(LFLAGS_ARCH) $(DECC_VER_EXE) : $(DECC_VER_OBJ) - $(LINK) $(LINKFLAGS) $(MMS$SOURCE) + $(LINK) $(LINKFLAGS) - + $(DECC_VER_OBJ) - + $(LFLAGS_ARCH) + +$(DECC_VER_OBJ) : [-.$(DIR_SRC)]DECC_VER.C -# Create the HELP library (HELP target). +.ENDIF # TARGET_SRC -HELP : $(HLB) + +# Default global target. + +ALL : $(EXES) + @ show time @ write sys$output "" - @ write sys$output " ""$<"" is ready." + @ write sys$output " ALL done." + @ write sys$output "" + +# Global rules for executables and object libraries. + +.IFDEF TARGET_LIB # TARGET_LIB +.ELSE # TARGET_LIB + +$(LIB_LIB) : + dev_dir = f$environment( "DEFAULT") + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(LIB_LIB) + set default 'dev_dir' + show default @ write sys$output "" -$(HLB) : $(HLP) - LIBRARY /CREATE /HELP $@ $< +.ENDIF # TARGET_LIB [else] + +.IFDEF TARGET_MD5 # TARGET_MD5 +.ELSE # TARGET_MD5 + +$(LIB_MD5) : + dev_dir = f$environment( "DEFAULT") + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(LIB_MD5) + set default 'dev_dir' + show default + @ write sys$output "" + +.ENDIF # TARGET_MD5 [else] + +.IFDEF TARGET_SRC # TARGET_SRC +.ELSE # TARGET_SRC + +$(LIB_SRC) : + dev_dir = f$environment( "DEFAULT") + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(LIB_SRC) + set default 'dev_dir' + show default + @ write sys$output "" + +$(WGET_EXE) : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(WGET_EXE) + +$(DECC_VER_EXE) : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(DECC_VER_EXE) + +.ENDIF # TARGET_SRC [else] + + # CLEAN target. Delete the [.$(DEST)] directory and everything in it. +.IFDEF SUBSIDIARY # SUBSIDIARY + CLEAN : if (f$search( "[.$(DEST)]*.*") .nes. "") then - delete [.$(DEST)]*.*;* - if (f$search( "$(DEST).dir") .nes. "") then - + if (f$search( "$(DEST).dir", 1) .nes. "") then - set protection = w:d $(DEST).dir;* - if (f$search( "$(DEST).dir") .nes. "") then - + if (f$search( "$(DEST).dir", 2) .nes. "") then - delete $(DEST).dir;* # CLEAN_ALL target. Delete: -# The [.$(DEST)] directories and everything in them. -# All help-related derived files, -# CONFIG.H. +# The [...$(DEST)] directories and everything in them. # All individual C dependency files. # Also mention: # Comprehensive dependency file. CLEAN_ALL : - if (f$search( "[.ALPHA*]*.*") .nes. "") then - - delete [.ALPHA*]*.*;* - if (f$search( "ALPHA*.dir", 1) .nes. "") then - - set protection = w:d ALPHA*.dir;* - if (f$search( "ALPHA*.dir", 2) .nes. "") then - - delete ALPHA*.dir;* - if (f$search( "[.IA64*]*.*") .nes. "") then - - delete [.IA64*]*.*;* - if (f$search( "IA64*.dir", 1) .nes. "") then - - set protection = w:d IA64*.dir;* - if (f$search( "IA64*.dir", 2) .nes. "") then - - delete IA64*.dir;* - if (f$search( "[.VAX*]*.*") .nes. "") then - - delete [.VAX*]*.*;* - if (f$search( "VAX*.dir", 1) .nes. "") then - - set protection = w:d VAX*.dir;* - if (f$search( "VAX*.dir", 2) .nes. "") then - - delete VAX*.dir;* - if (f$search( "$(CONFIG_H)") .nes. "") then - - delete /log /noconfirm $(CONFIG_H);* - if (f$search( "$(HLB)") .nes. "") then - - delete /log /noconfirm $(HLB);* - if (f$search( "*.MMSD") .nes. "") then - - delete *.MMSD;* + @ write sys$output " SUBS - CLEAN_ALL" + show default + @ write sys$output "" + if (f$search( "[...ALPHA*]*.*") .nes. "") then - + delete [...ALPHA*]*.*;* + if (f$search( "[...]ALPHA*.dir", 1) .nes. "") then - + set protection = w:d [...]ALPHA*.dir;* + if (f$search( "[...]ALPHA*.dir", 2) .nes. "") then - + delete [...]ALPHA*.dir;* + if (f$search( "[...IA64*]*.*") .nes. "") then - + delete [...IA64*]*.*;* + if (f$search( "[...]IA64*.dir", 1) .nes. "") then - + set protection = w:d [...]IA64*.dir;* + if (f$search( "[...]IA64*.dir", 2) .nes. "") then - + delete [...]IA64*.dir;* + if (f$search( "[...VAX*]*.*") .nes. "") then - + delete [...VAX*]*.*;* + if (f$search( "[...]VAX*.dir", 1) .nes. "") then - + set protection = w:d [...]VAX*.dir;* + if (f$search( "[...]VAX*.dir", 2) .nes. "") then - + delete [...]VAX*.dir;* + if (f$search( "[...]*.MMSD") .nes. "") then - + delete [...]*.MMSD;* @ write sys$output "" @ write sys$output "Note: This procedure will not" - @ write sys$output " DELETE [.VMS]DESCRIP_DEPS.MMS;*" + @ write sys$output " DELETE DESCRIP_DEPS.MMS;*" @ write sys$output - "You may choose to, but a recent version of MMS (V3.5 or newer?) is" @ write sys$output - "needed to regenerate it. (It may also be recovered from the original" @ write sys$output - - "distribution kit.) See [.VMS]DESCRIP_MKDEPS.MMS for instructions on" + "distribution kit.) See DESCRIP_MKDEPS.MMS for instructions on" @ write sys$output - - "generating [.VMS]DESCRIP_DEPS.MMS." + "generating DESCRIP_DEPS.MMS." + @ write sys$output "" + +# CLEAN_EXE target. Delete the executables in [.$(DEST)]. + +CLEAN_EXE : + if (f$search( "[.$(DEST)]*.EXE") .nes. "") then - + delete [.$(DEST)]*.EXE;* + +# CLEAN_OLB target. Delete the object libraries in [.$(DEST)]. + +CLEAN_OLB : + if (f$search( "[.$(DEST)]*.OLB") .nes. "") then - + delete [.$(DEST)]*.OLB;* + +.ELSE # SUBSIDIARY + +.IFDEF MMSTARGETS # MMSTARGETS + +# +# MMS (or MMK) with the MMSTARGETS macro needs only one real CLEAN rule. +# + +CLEAN, CLEAN_ALL, CLEAN_EXE, CLEAN_OLB : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(MMSTARGETS) + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(MMSTARGETS) + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + $(MMSTARGETS) + +.ELSE # MMSTARGETS + +# +# MMK without the MMSTARGETS macro needs more rules. +# + +CLEAN : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN + set default [-.$(DIR_SRC)] + show default @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN -# CLEAN_EXE target. Delete the executable in [.$(DEST)]. +CLEAN_ALL : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_ALL + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_ALL + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_ALL CLEAN_EXE : - if (f$search( "[.$(DEST)]*.exe") .nes. "") then - - delete [.$(DEST)]*.exe;* + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_EXE + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_EXE + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_EXE + +CLEAN_OLB : + set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")' + set default [-.$(DIR_LIB)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_OLB + set default [-.$(DIR_MD5)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_OLB + set default [-.$(DIR_SRC)] + show default + @ write sys$output "" + $(MMS) /description = $(MMSDESCRIPTION_FILE) $(MMSQUALIFIERS) - + CLEAN_OLB + +.ENDIF # MMSTARGETS [else] -# Include CONFIG.H dependency and rule. +.ENDIF # SUBSIDIARY -INCL_CONFIG_SRC = 1 -.INCLUDE [-.VMS]descrip_config.mms +DEFAULT : + @ write sys$output "No target, specified or default." + +HELP : $(WGET_HLB) + @ write sys$output "" + @ write sys$output " ""$<"" is ready." + @ write sys$output "" + +$(WGET_HLB) : $(WGET_HLP) + LIBRARY /CREATE /HELP $(MMS$TARGET) $(MMS$SOURCE) + +# Default C compile rule. + +.C.OBJ : + $(CC) $(CFLAGS) /define = ($(CDEFS)) $(MMS$SOURCE) + + +# Generated header files. + +GENERATED_HEADERS : $(LIB_GETOPT_H) $(SRC_CONFIG_H) + @ write sys$output "$(MMS$TARGET) updated." + +# Simply copy "lib/getopt.in.h". + +$(LIB_GETOPT_H) : $(LIB_GETOPT_H_SRC) + copy $(LIB_GETOPT_H_SRC) $(MMS$TARGET) + +# Copy "vms/config.h_vms", and append: +# Wget version, and other information extracted from "configure.ac", +# Current OS ("VMS"), host architecture, and OS version. + +$(SRC_CONFIG_H) : $(SRC_CONFIG_H_SRC) $(CONFIG_EXTRACT_COM) + @ @$(CONFIG_EXTRACT_COM) [-]CONFIGURE.AC wget_name wget_vers wget_email + @ copy $(SRC_CONFIG_H_SRC) $(MMS$TARGET) + @ open /append config_h $(MMS$TARGET) + @ write config_h "" + @ write config_h "/* Data extracted from ""configure.ac"": */" + @ write config_h "" + @ write config_h "#define PACKAGE "+ - + """''f$trnlnm( "wget_name")'""" + @ write config_h "#define PACKAGE_BUGREPORT "+ - + """''f$trnlnm( "wget_email")'""" + @ write config_h "#define PACKAGE_NAME "+ - + """''f$trnlnm( "wget_name")'""" + @ write config_h "#define PACKAGE_STRING "+ - + """''f$trnlnm( "wget_name")' ''f$trnlnm( "wget_vers")'""" + @ write config_h "#define PACKAGE_TARNAME "+ - + """''f$trnlnm( "wget_name")'""" + @ write config_h "#define PACKAGE_VERSION "+ - + """''f$trnlnm( "wget_vers")'""" + @ write config_h "#define VERSION "+ - + """''f$trnlnm( "wget_vers")'""" + @ write config_h "" + @ write config_h "/* Build-time info: */" + @ write config_h "" + @ if (f$getsyi( "hw_model") .lt. 1024) then arch_name = "VAX" + @ if (f$getsyi( "hw_model") .ge. 1024) then - + arch_name = f$getsyi( "arch_name") + @ write config_h "#define OS_TYPE "+ - + """VMS ''arch_name' ''f$edit( f$getsyi( ""version""), ""trim"")'""" + @ write config_h "" + @ close config_h # Include generated source dependencies. +.IFDEF SUBSIDIARY # SUBSIDIARY + INCL_DESCRIP_DEPS = 1 -.INCLUDE [-.VMS]descrip_deps.mms + +.INCLUDE descrip_deps.mms + +.ENDIF # SUBSIDIARY