mirror of
https://github.com/mirror/wget.git
synced 2024-12-28 05:40:08 +08:00
536 lines
15 KiB
Plaintext
536 lines
15 KiB
Plaintext
# 23 September 2009. SMS.
|
|
#
|
|
# Wget 1.12 for VMS - MMS (or MMK) Description File.
|
|
#
|
|
# Usage:
|
|
#
|
|
# SET DEFAULT [.directory] ! [.VMS] to build all products.
|
|
# MMS /DESCRIPTION = [-.VMS] [/MACRO = (<see_below>)] 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"
|
|
#
|
|
# 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.
|
|
#
|
|
# CLEAN_ALL deletes all generated files, except the main (collected)
|
|
# source dependency files.
|
|
#
|
|
# CLEAN_EXE deletes only the architecture-specific executables.
|
|
# Handy if all you wish to do is re-link the executables.
|
|
#
|
|
# 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 primary product description file.
|
|
|
|
INCL_DESCRIP_SRC = 1
|
|
.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
|
|
|
|
.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
|
|
|
|
|
|
# TARGETS.
|
|
|
|
# Default subsidiary targets.
|
|
|
|
# Build LIB object library (default target).
|
|
|
|
.IFDEF TARGET_LIB # TARGET_LIB
|
|
|
|
SUBSIDIARY = 1
|
|
|
|
LIBLIB : $(LIB_LIB)
|
|
@ write sys$output ""
|
|
@ write sys$output " LIBLIB done."
|
|
@ write sys$output ""
|
|
|
|
$(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
|
|
|
|
|
|
# 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) -
|
|
$(DECC_VER_OBJ) -
|
|
$(LFLAGS_ARCH)
|
|
|
|
$(DECC_VER_OBJ) : [-.$(DIR_SRC)]DECC_VER.C
|
|
|
|
.ENDIF # TARGET_SRC
|
|
|
|
|
|
# Default global target.
|
|
|
|
ALL : $(EXES)
|
|
@ show time
|
|
@ write sys$output ""
|
|
@ 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 ""
|
|
|
|
.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", 1) .nes. "") then -
|
|
set protection = w:d $(DEST).dir;*
|
|
if (f$search( "$(DEST).dir", 2) .nes. "") then -
|
|
delete $(DEST).dir;*
|
|
|
|
# CLEAN_ALL target. Delete:
|
|
# The [...$(DEST)] directories and everything in them.
|
|
# All individual C dependency files.
|
|
# Also mention:
|
|
# Comprehensive dependency file.
|
|
|
|
CLEAN_ALL :
|
|
@ 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 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 DESCRIP_MKDEPS.MMS for instructions on"
|
|
@ write sys$output -
|
|
"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_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 :
|
|
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]
|
|
|
|
.ENDIF # SUBSIDIARY
|
|
|
|
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 descrip_deps.mms
|
|
|
|
.ENDIF # SUBSIDIARY
|
|
|