341 lines
12 KiB
Plaintext
341 lines
12 KiB
Plaintext
# 5 December 2006. SMS.
|
|
#
|
|
# CDRTOOLS 2.0 for VMS - MMS (or MMK) Common Source Description File.
|
|
#
|
|
|
|
# This description file is included by other description files. It is
|
|
# not intended to be used alone. Verify proper inclusion.
|
|
|
|
.IFDEF INCL_DESCRIP_SRC
|
|
.ELSE
|
|
$$$$ THIS DESCRIPTION FILE IS NOT INTENDED TO BE USED THIS WAY.
|
|
.ENDIF # INCL_DESCRIP_SRC
|
|
|
|
|
|
# Define MMK architecture macros when using MMS.
|
|
|
|
.IFDEF __MMK__ # __MMK__
|
|
.ELSE # __MMK__
|
|
ALPHA_X_ALPHA = 1
|
|
IA64_X_IA64 = 1
|
|
VAX_X_VAX = 1
|
|
.IFDEF $(MMS$ARCH_NAME)_X_ALPHA # $(MMS$ARCH_NAME)_X_ALPHA
|
|
__ALPHA__ = 1
|
|
.ENDIF # $(MMS$ARCH_NAME)_X_ALPHA
|
|
.IFDEF $(MMS$ARCH_NAME)_X_IA64 # $(MMS$ARCH_NAME)_X_IA64
|
|
__IA64__ = 1
|
|
.ENDIF # $(MMS$ARCH_NAME)_X_IA64
|
|
.IFDEF $(MMS$ARCH_NAME)_X_VAX # $(MMS$ARCH_NAME)_X_VAX
|
|
__VAX__ = 1
|
|
.ENDIF # $(MMS$ARCH_NAME)_X_VAX
|
|
.ENDIF # __MMK__ [else]
|
|
|
|
# Analyze architecture-related and option macros.
|
|
|
|
.IFDEF __ALPHA__ # __ALPHA__
|
|
DESTM = ALPHA
|
|
.ELSE # __ALPHA__
|
|
.IFDEF __IA64__ # __IA64__
|
|
DESTM = IA64
|
|
.ELSE # __IA64__
|
|
.IFDEF __VAX__ # __VAX__
|
|
DESTM = VAX
|
|
.ELSE # __VAX__
|
|
DESTM = UNK
|
|
UNK_DEST = 1
|
|
.ENDIF # __VAX__ [else]
|
|
.ENDIF # __IA64__ [else]
|
|
.ENDIF # __ALPHA__ [else]
|
|
|
|
.IFDEF LARGE # LARGE
|
|
.IFDEF __VAX__ # __VAX__
|
|
DESTL =
|
|
.ELSE # __VAX__
|
|
DESTL = L
|
|
.ENDIF # __VAX__ [else]
|
|
.ELSE # LARGE
|
|
DESTL =
|
|
.ENDIF # LARGE [else]
|
|
|
|
DEST = $(DESTM)$(DESTL)
|
|
|
|
# Check for option problems.
|
|
|
|
.IFDEF __VAX__ # __VAX__
|
|
.IFDEF FIND # FIND
|
|
FIND_VAX = 1
|
|
.ENDIF # FIND
|
|
.IFDEF LARGE # LARGE
|
|
LARGE_VAX = 1
|
|
.ENDIF # LARGE
|
|
.ENDIF # __VAX__
|
|
|
|
# DBG options.
|
|
|
|
.IFDEF DBG # DBG
|
|
CFLAGS_DBG = /debug /nooptimize
|
|
LINKFLAGS_DBG = /debug /traceback
|
|
.ELSE # DBG
|
|
CFLAGS_DBG =
|
|
LINKFLAGS_DBG = /traceback ##### SMSd /notraceback
|
|
.ENDIF # DBG [else]
|
|
|
|
# Large-file options.
|
|
|
|
.IFDEF LARGE # LARGE
|
|
CDEFS_LARGE = , HAVE_LARGEFILES, USE_LONGLONG, _LARGEFILE
|
|
.ELSE # LARGE
|
|
CDEFS_LARGE =
|
|
.ENDIF # LARGE [else]
|
|
|
|
# User-specified options.
|
|
|
|
.IFDEF CDEFS_USER # CDEFS_USER
|
|
CDEFS_USR = , $(CDEFS_USER)
|
|
.ELSE # CDEFS_USER
|
|
CDEFS_USR =
|
|
.ENDIF # CDEFS_USER [else]
|
|
|
|
# Absence of MMSDESCRIPTION_FILE.
|
|
.IFDEF MMSDESCRIPTION_FILE # MMSDESCRIPTION_FILE
|
|
.ELSE # MMSDESCRIPTION_FILE
|
|
NO_MMSDESCRIPTION_FILE = 1
|
|
.ENDIF # MMSDESCRIPTION_FILE [else]
|
|
|
|
|
|
# Subsidiary directory names. (Note: DEST must be defined first.)
|
|
|
|
DIR_CDDA2WAV = cdda2wav
|
|
DIR_CDRECORD = cdrecord
|
|
DIR_DEFLT = libdeflt
|
|
DIR_EDC = libedc
|
|
DIR_FILE = libfile
|
|
DIR_FIND = libfind
|
|
DIR_HFS_ISO = libhfs_iso
|
|
DIR_INC = inc
|
|
DIR_INC_DEST = [-.$(DIR_INC).$(DEST)]
|
|
DIR_INC_DEST_FILE = [-.$(DIR_INC)]$(DEST).DIR;1
|
|
DIR_MKISOFS = mkisofs
|
|
DIR_MKISOFS_DIAG = mkisofs.diag
|
|
DIR_PARANOIA = libparanoia
|
|
DIR_READCD = readcd
|
|
DIR_SCG = libscg
|
|
DIR_SCGCHECK = scgcheck
|
|
DIR_SCHILY = libschily
|
|
DIR_UNLS = libunls
|
|
DIR_VMS = libvms
|
|
|
|
# Object library names.
|
|
|
|
LIB_CDDA2WAV = [-.$(DIR_CDDA2WAV).$(DEST)]LIBCDDA2WAV.OLB
|
|
LIB_CDRECORD = [-.$(DIR_CDRECORD).$(DEST)]LIBCDRECORD.OLB
|
|
LIB_DEFLT = [-.$(DIR_DEFLT).$(DEST)]LIBDEFLT.OLB
|
|
LIB_EDC = [-.$(DIR_EDC).$(DEST)]LIBEDC.OLB
|
|
LIB_FILE = [-.$(DIR_FILE).$(DEST)]LIBFILE.OLB
|
|
LIB_FIND = [-.$(DIR_FIND).$(DEST)]LIBFIND.OLB
|
|
LIB_HFS_ISO = [-.$(DIR_HFS_ISO).$(DEST)]LIBHFS_ISO.OLB
|
|
LIB_MKISOFS = [-.$(DIR_MKISOFS).$(DEST)]LIBMKISOFS.OLB
|
|
LIB_MKISOFS_DIAG = [-.$(DIR_MKISOFS).$(DEST)]LIBMKISOFS_DIAG.OLB
|
|
LIB_PARANOIA = [-.$(DIR_PARANOIA).$(DEST)]LIBPARANOIA.OLB
|
|
LIB_READCD = [-.$(DIR_READCD).$(DEST)]LIBREADCD.OLB
|
|
LIB_SCG = [-.$(DIR_SCG).$(DEST)]LIBSCG.OLB
|
|
LIB_SCGCHECK = [-.$(DIR_SCGCHECK).$(DEST)]LIBSCGCHECK.OLB
|
|
LIB_SCHILY = [-.$(DIR_SCHILY).$(DEST)]LIBSCHILY.OLB
|
|
LIB_UNLS = [-.$(DIR_UNLS).$(DEST)]LIBUNLS.OLB
|
|
LIB_VMS = [-.$(DIR_VMS).$(DEST)]LIBVMS.OLB
|
|
|
|
# Executable names.
|
|
|
|
CDDA2WAV_EXE = [-.$(DIR_CDDA2WAV).$(DEST)]CDDA2WAV.EXE
|
|
CDRECORD_EXE = [-.$(DIR_CDRECORD).$(DEST)]CDRECORD.EXE
|
|
DECC_VER_EXE = [-.$(DIR_VMS).$(DEST)]DECC_VER.EXE
|
|
ISODEBUG_EXE = [-.$(DIR_MKISOFS).$(DEST)]ISODEBUG.EXE
|
|
ISOINFO_EXE = [-.$(DIR_MKISOFS).$(DEST)]ISOINFO.EXE
|
|
ISOVFY_EXE = [-.$(DIR_MKISOFS).$(DEST)]ISOVFY.EXE
|
|
MKISOFS_EXE = [-.$(DIR_MKISOFS).$(DEST)]MKISOFS.EXE
|
|
READCD_EXE = [-.$(DIR_READCD).$(DEST)]READCD.EXE
|
|
SCGCHECK_EXE = [-.$(DIR_SCGCHECK).$(DEST)]SCGCHECK.EXE
|
|
|
|
EXES = $(CDDA2WAV_EXE) \
|
|
$(CDRECORD_EXE) \
|
|
$(DECC_VER_EXE) \
|
|
$(ISODEBUG_EXE) \
|
|
$(ISOINFO_EXE) \
|
|
$(ISOVFY_EXE) \
|
|
$(MKISOFS_EXE) \
|
|
$(READCD_EXE) \
|
|
$(SCGCHECK_EXE)
|
|
|
|
|
|
# Find options.
|
|
|
|
.IFDEF FIND # FIND
|
|
.IFDEF STD_STAT # STD_STAT
|
|
CDEFS_FIND = , _USE_STD_STAT, USE_FIND
|
|
.ELSE # STD_STAT
|
|
CDEFS_FIND = , VMS_OLD_STAT, USE_FIND
|
|
.ENDIF # STD_STAT [else]
|
|
LIB_FIND_DEP = $(LIB_FIND)
|
|
LIB_FIND_OPTS = $(LIB_FIND) /library,
|
|
.ELSE # FIND
|
|
CDEFS_FIND =
|
|
LIB_FIND_DEP =
|
|
LIB_FIND_OPTS =
|
|
.ENDIF # FIND [else]
|
|
|
|
|
|
# Complain if warranted. Otherwise, show destination directory.
|
|
# Make the destination directories, if necessary.
|
|
|
|
.IFDEF UNK_DEST # UNK_DEST
|
|
.FIRST
|
|
@ write sys$output -
|
|
" Unknown system architecture."
|
|
.IFDEF __MMK__ # __MMK__
|
|
@ write sys$output -
|
|
" MMK on IA64? Try adding ""/MACRO = __IA64__""."
|
|
.ELSE # __MMK__
|
|
@ write sys$output -
|
|
" MMS too old? Try adding ""/MACRO = MMS$ARCH_NAME=ALPHA"","
|
|
@ write sys$output -
|
|
" or ""/MACRO = MMS$ARCH_NAME=IA64"", or ""/MACRO = MMS$ARCH_NAME=VAX"","
|
|
@ write sys$output -
|
|
" as appropriate. (Or try a newer version of MMS.)"
|
|
.ENDIF # __MMK__ [else]
|
|
@ write sys$output ""
|
|
I_WILL_DIE_NOW. /$$$$INVALID$$$$
|
|
.ELSE # UNK_DEST
|
|
.IFDEF LARGE_VAX # LARGE_VAX
|
|
.FIRST
|
|
@ write sys$output -
|
|
" Macro ""LARGE"" is invalid on VAX."
|
|
@ write sys$output ""
|
|
I_WILL_DIE_NOW. /$$$$INVALID$$$$
|
|
.ELSE # LARGE_VAX
|
|
.IFDEF FIND_VAX # FIND_VAX
|
|
@ write sys$output -
|
|
" Macro ""FIND"" is invalid on VAX."
|
|
@ write sys$output ""
|
|
I_WILL_DIE_NOW. /$$$$INVALID$$$$
|
|
.ELSE # FIND_VAX
|
|
|
|
.IFDEF NO_MMSDESCRIPTION_FILE # NO_MMSDESCRIPTION_FILE
|
|
.FIRST
|
|
@ write sys$output -
|
|
" Macro ""MMSDESCRIPTION_FILE"" is not defined as required."
|
|
@ write sys$output -
|
|
" MMK, or MMS too old? Try adding:"
|
|
@ write sys$output -
|
|
" ""/MACRO = MMSDESCRIPTION_FILE=dev:[dir]description_file"","
|
|
@ write sys$output -
|
|
" as appropriate, where ""dev:[dir]description_file"" is the full path"
|
|
@ write sys$output -
|
|
" to the MMS/MMK description file being used (typically ""DESCRIP.MMS"")."
|
|
@ write sys$output ""
|
|
I_WILL_DIE_NOW. /$$$$INVALID$$$$
|
|
.ELSE # NO_MMSDESCRIPTION_FILE
|
|
.FIRST
|
|
@ show time
|
|
@ write sys$output " Destination: [.$(DEST)]"
|
|
@ write sys$output ""
|
|
.IFDEF ALL_DEST_DIRS_NEEDED # ALL_DEST_DIRS_NEEDED
|
|
@ ! Create all destination directories first.
|
|
if (f$search( "[-.$(DIR_CDDA2WAV)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_CDDA2WAV).$(DEST)]
|
|
if (f$search( "[-.$(DIR_CDRECORD)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_CDRECORD).$(DEST)]
|
|
if (f$search( "[-.$(DIR_DEFLT)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_DEFLT).$(DEST)]
|
|
if (f$search( "[-.$(DIR_EDC)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_EDC).$(DEST)]
|
|
if (f$search( "[-.$(DIR_FILE)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_FILE).$(DEST)]
|
|
if (f$search( "[-.$(DIR_FIND)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_FIND).$(DEST)]
|
|
if (f$search( "[-.$(DIR_HFS_ISO)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_HFS_ISO).$(DEST)]
|
|
if (f$search( "[-.$(DIR_INC)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_INC).$(DEST)]
|
|
if (f$search( "[-.$(DIR_MKISOFS)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_MKISOFS).$(DEST)]
|
|
if (f$search( "[-.$(DIR_PARANOIA)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_PARANOIA).$(DEST)]
|
|
if (f$search( "[-.$(DIR_READCD)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_READCD).$(DEST)]
|
|
if (f$search( "[-.$(DIR_SCG)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_SCG).$(DEST)]
|
|
if (f$search( "[-.$(DIR_SCGCHECK)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_SCGCHECK).$(DEST)]
|
|
if (f$search( "[-.$(DIR_SCHILY)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_SCHILY).$(DEST)]
|
|
if (f$search( "[-.$(DIR_UNLS)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_UNLS).$(DEST)]
|
|
if (f$search( "[-.$(DIR_VMS)]$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [-.$(DIR_VMS).$(DEST)]
|
|
.ELSE # ALL_DEST_DIRS_NEEDED
|
|
@ ! Create this specific destination directory first.
|
|
if (f$search( "$(DEST).DIR;1") .eqs. "") then -
|
|
create /directory [.$(DEST)]
|
|
.ENDIF # ALL_DEST_DIRS_NEEDED [else]
|
|
@ ! Define SCHILY and SCG logical names for "#include <schily/X.h>"
|
|
@ ! and "#include <scg/X.h>" directives.
|
|
def_dev_dir = f$environment( "DEFAULT")
|
|
set default 'f$parse( "$(MMSDESCRIPTION_FILE)", , , "DIRECTORY")'
|
|
set default [-]
|
|
schily_dev_dir = f$environment( "DEFAULT")- "]"+ ".include.schily]"
|
|
if (f$trnlnm( "schily", "LNM$PROCESS_TABLE") .eqs. "") then -
|
|
define schily 'schily_dev_dir'
|
|
scg_dev_dir = f$environment( "DEFAULT")- "]"+ ".libscg.scg]"
|
|
if (f$trnlnm( "scg", "LNM$PROCESS_TABLE") .eqs. "") then -
|
|
define scg 'scg_dev_dir'
|
|
set default 'def_dev_dir'
|
|
@ ! Define "backport" C RTL logical names as needed, that is,
|
|
@ ! VMS version < 7.0, and logical name not already defined.
|
|
v_v = f$getsyi( "VERSION")
|
|
v_v = f$extract( 1, (f$locate( ".", v_v)- 1), v_v)
|
|
if ((v_v .lt. 7) .and. (f$trnlnm( "DECC$CRTLMAP") .eqs. "")) then -
|
|
define DECC$CRTLMAP SYS$LIBRARY:DECC$CRTL.EXE
|
|
if ((v_v .lt. 7) .and. (f$trnlnm( "LNK$LIBRARY") .eqs. "")) then -
|
|
define LNK$LIBRARY SYS$LIBRARY:DECC$CRTL.OLB
|
|
.IFDEF TARGET_LIBEDC # TARGET_LIBEDC
|
|
@ ! Define logical names for dotless file names. Sigh.
|
|
define edc_code_tables edc_code_tables.
|
|
define encoder_tables encoder_tables.
|
|
define l2sq_table l2sq_table.
|
|
define scramble_table scramble_table.
|
|
.ENDIF # TARGET_LIBEDC
|
|
.ENDIF # NO_MMSDESCRIPTION_FILE [else]
|
|
.ENDIF # FIND_VAX [else]
|
|
.ENDIF # LARGE_VAX [else]
|
|
.ENDIF # UNK_DEST [else]
|
|
|
|
|
|
# Specific DESCRIP_SRC.MMS defines:
|
|
# CDEFS
|
|
# CFLAGS_SPEC
|
|
# CFLAGS_INCL
|
|
|
|
CDEFS_CMN = VMS, USE_STATIC_CONF
|
|
|
|
# Architecture-specific CC and LINK flags.
|
|
|
|
.IFDEF __VAX__ # __VAX__
|
|
CFLAGS_ARCH = /decc
|
|
.ELSE # __VAX__
|
|
CFLAGS_ARCH = /float = ieee_float
|
|
.ENDIF # __VAX__ [else]
|
|
|
|
LFLAGS_ARCH =
|
|
|
|
# LIST options.
|
|
|
|
.IFDEF LIST # LIST
|
|
# Note: Before DEC C V6.0, "/show = [no]messages" will cause trouble.
|
|
CFLAGS_LIST = /list = $*.LIS /show = (all, nomessages)
|
|
LINKFLAGS_LIST = /map = $*.MAP /cross_reference /full
|
|
.ELSE # LIST
|
|
CFLAGS_LIST =
|
|
LINKFLAGS_LIST =
|
|
.ENDIF # LIST [else]
|
|
|