# MSDOS DMAKE startup file. Customize to suit your needs. # Assumes MKS toolkit for the tool commands, and Turbo-C. Change as req'd. # See the documentation for a description of internally defined macros. # # Disable warnings for macros redefined here that were given # on the command line. __.SILENT := $(.SILENT) .SILENT := yes # Configuration parameters for DMAKE startup.mk file # Set these to NON-NULL if you wish to turn the parameter on. _HAVE_RCS := yes # yes => RCS is installed. _HAVE_SCCS := # yes => SCCS is installed. # Applicable suffix definitions A := .lib # Libraries E := .exe # Executables F := .for # Fortran O := .obj # Objects P := .pas # Pascal S := .asm # Assembler sources V := # RCS suffix # See if these are defined TMPDIR := $(ROOTDIR)/tmp .IMPORT .IGNORE : TMPDIR SHELL COMSPEC # Recipe execution configurations # First set SHELL, If it is not defined, use COMSPEC, otherwise # it is assumed to be MKS Korn SHELL. .IF $(SHELL) == $(NULL) .IF $(COMSPEC) == $(NULL) SHELL := $(ROOTDIR)/bin/sh$E .ELSE SHELL := $(COMSPEC) .END .END GROUPSHELL := $(SHELL) # Now set remaining arguments depending on which SHELL we # are going to use. COMSPEC (assumed to be command.com) or # MKS Korn Shell. .IF $(SHELL)==$(COMSPEC) SHELLFLAGS := $(SWITCHAR)c GROUPFLAGS := $(SHELLFLAGS) SHELLMETAS := *"?<> GROUPSUFFIX := .bat DIRSEPSTR := \\ DIVFILE = $(TMPFILE:s,/,\) .ELSE SHELLFLAGS := -c GROUPFLAGS := SHELLMETAS := *"?<>|()&][$$\#`' GROUPSUFFIX := .ksh .MKSARGS := yes DIVFILE = $(TMPFILE:s,/,${DIVSEP_shell_${USESHELL}}) DIVSEP_shell_yes := \\\ DIVSEP_shell_no := \\ .END # Standard C-language command names and flags CC := bcc # C-compiler and flags CFLAGS += AS := tasm # Assembler and flags ASFLAGS += LD = tlink # Loader and flags LDFLAGS += LDLIBS = # Definition of $(MAKE) macro for recursive makes. MAKE = $(MAKECMD) $(MFLAGS) # Language and Parser generation Tools and their flags YACC := yacc # standard yacc YFLAGS += YTAB := ytab # yacc output files name stem. LEX := lex # standard lex LFLAGS += LEXYY := lex_yy # lex output file # Other Compilers, Tools and their flags PC := tpc # pascal compiler RC := anyf77 # ratfor compiler FC := anyf77 # fortran compiler CO := co # check out for RCS COFLAGS += -q AR := ar # archiver ARFLAGS+= ruv RM := rm # remove a file command RMFLAGS += # Implicit generation rules for making inferences. # We don't provide .yr or .ye rules here. They're obsolete. # Rules for making *$O %$O .SWAP: %.c ; $(CC) $(CFLAGS) -c $< %$O .SWAP: %$P ; $(PC) $(PFLAGS) -c $< %$O .SWAP: %$S ; $(AS) $(ASFLAGS) $(<:s,/,\); %$O : %.cl ; class -c $< %$O .SWAP: %.e %.r %.F %$F ; $(FC) $(RFLAGS) $(EFLAGS) $(FFLAGS) -c $< # Executables %$E .SWAP: %$O ; $(CC) $(LDFLAGS) -e$@ $< # lex and yacc rules %.c .SWAP: %.y ; $(YACC) $(YFLAGS) $<; mv $(YTAB).c $@ %.c .SWAP: %.l ; $(LEX) $(LFLAGS) $<; mv $(LEXYY).c $@ # RCS support .IF $(_HAVE_RCS) % : $$(@:d)RCS/$$(@:f)$V;- $(CO) $(COFLAGS) $@ .NOINFER : $$(@:d)RCS/$$(@:f)$V .END # SCCS support .IF $(_HAVE_SCCS) % : s.% ; get $< .NOINFER : s.% .END # Recipe to make archive files. %$A .SWAP: [ $(AR) $(ARFLAGS) $@ $? $(RM) $(RMFLAGS) $? ] # DMAKE uses this recipe to remove intermediate targets .REMOVE :; $(RM) -f $< # AUGMAKE extensions for SYSV compatibility @B = $(@:b) @D = $(@:d) @F = $(@:f) "*B" = $(*:b) "*D" = $(*:d) "*F" = $(*:f)