#Lattice Make File for COMMAND.COM 
#

RASMFLG	 = $$szpznc
LINKFLG  = /MAP
CODEVIEW = #/CO

MSG=.		# Default Message File

#.page
#	Configuration parameters for MicroSoft C
#
#DBGCFLG = /Od /Zi /Zp /J /DMSC /DLINT_ARGS /DDEBUG
#PRDCFLG = /Ox /Gs /Zp /J /DMSC /DLINT_ARGS /DDEBUG
#MSCFLG	= $(PRDCFLG)
#MASMFLG  = /MX /DPASCAL /DDEBUG /DMSC
#INC	= $(MSCINC)		# MSC Include sub-directory
#CSLIB	=

.SET:	INCLUDE=$(INC);$(APPS)
.SET:	TMP=$(TMP)
.SET:	LIB=$(MSCLIB)

#.page
#	Configuration parameters for MetaWare C
#
#INC	= $(MWCINC)
#CSLIB	= $(MWCLIB)\SMALL\HCSE.LIB
#MASMFLG  = /MX /DPASCAL /DDEBUG /DMWC
#MWCFLG	= -def MWC -def DEBUG
#MWCFLG	= -def MWC 
#
#.SET:	IPATH=$(INC)\;$(APPS)\\
#
#	Configuration parameters for Borland Turbo C
#
INC	= $(TCCINC)
CSLIB	= $(TCCLIB)\CS.LIB
MASMFLG = /MX /DPASCAL /DDEBUG /DTURBOC
TCCFLG	= -mt -d -f- -K -O -Z -N -c -I$(TCCINC)
TCCSTART= $(TCCLIB)\c0s.obj+

#.page
#	
.c.obj:
#       $(MSC) $(MSCFLG) /DCDOS $*.C,$@;
#       $(MSC) $(DBGCFLG) /DCDOS $*.C,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOS -obj $@
	$(TCC) $(TCCFLG) -DCDOS -o$@ $*.c 

.c.nw:
#       $(MSC) $(MSCFLG) /DCDOS /DNETWARE $*.C,$@;
#       $(MSC) $(DBGCFLG) /DCDOS /DNETWARE $*.C,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOS -def NETWARE -obj $@
	$(TCC) $(TCCFLG) -DCDOS -DNETWARE -o$@ $*.c 

.c.dp:
#       $(MSC) $(MSCFLG) /DDOSPLUS $*.C,$@;
#       $(MSC) $(DBGCFLG) /DDOSPLUS $*.C,$@;
#       $(MWC) $*.C $(MWCFLG) -def DOSPLUS -obj $@
	$(TCC) $(TCCFLG) -DDOSPLUS -o$@ $*.c 

.c.tmp:
#       $(MSC) $(MSCFLG) /DCDOSTMP  $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOSTMP -obj $@
	$(TCC) $(TCCFLG) -DCDOSTMP -o$@ $*.c 

.c.cpm:
#       $(MSC) $(MSCFLG) /DCPM $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def CPM -obj $@
	$(TCC) $(TCCFLG) -DCPM -o$@ $*.c 

.c.exe:
#       $(MSC) $(MSCFLG) $*.C;
        $(MWC) $*.C $(MWCFLG)
        $(LINK) $(LINKFLG) $*.OBJ,$@;


.asm.tmp:
        $(MASM) /DCDOSTMP $(MASMFLG) $*,$@;

.asm.obj:
        $(MASM) /DCDOS $(MASMFLG) $*,$@;

.asm.nw:
        $(MASM) /DCDOS /DNETWARE $(MASMFLG) $*,$@;

.asm.dp:
        $(MASM) /DDOSPLUS $(MASMFLG) $*,$@;

.pcm.dp:
	$(MASM) /DDOSPLUS /DCDOS $(MASMFLG) $*.pcm,$@;
#				define CDOS = 0
#.page
#
#	
all:	$(SYSMSG)\cdos.com com2cmd.exe $(SYSMSG)\tmp.rsp\
	$(SYSMSG)\cpm.exe $(SYSMSG)\dosplus.com $(SYSMSG)\netware.com

cdos:	$(SYSMSG)\cdos.com

netware: $(SYSMSG)\netware.com

tmp:	$(SYSMSG)\tmp.rsp

cpm:	$(SYSMSG)\cpm.exe

dosplus: $(SYSMSG)\dosplus.com

$(SYSMSG)\tmp.rsp:	message.h $(SYSMSG)\message.tmp com.tmp comint.tmp batch.tmp comcpy.obj
$(SYSMSG)\tmp.rsp:	csup.obj support.tmp printf.obj dosif.tmp cstart.tmp
$(SYSMSG)\tmp.rsp:	global.obj config.tmp cmdlist.tmp error.tmp network.tmp
        $(LINK) $(LINKFLG) @tmp.inp <<!(tmp.inp)
cstart.tmp+com.tmp+csup.obj+dosif.tmp+comint.tmp+support.tmp+comcpy.obj+
printf.obj+$(SYSMSG)\message.tmp+batch.tmp+global+config.tmp+cmdlist.tmp+
error.tmp+network.tmp
temp.exe,tmp.map,$(CSLIB);
<
	$(TOOLS)\exe2bin temp.exe temp.com
	COM2CMD.EXE temp.com $@
#	&del temp.*

$(SYSMSG)\cdos.com:	message.h $(SYSMSG)\message.obj com.obj comint.obj batch.obj
$(SYSMSG)\cdos.com:	global.obj csup.obj support.obj printf.obj dosif.obj
$(SYSMSG)\cdos.com:	cstart.obj config.obj comcpy.obj cmdlist.obj network.obj
$(SYSMSG)\cdos.com:	$(SYSMSG)\loadmsg.obj
        $(LINK) $(LINKFLG) @cdos.inp <<!(cdos.inp)
cstart+com+csup+dosif+comint+support+cmdlist+
printf+$(SYSMSG)\message+batch+global+config+comcpy+network+$(SYSMSG)\loadmsg.obj
temp.exe,cdos.map,$(CSLIB);
<
	$(TOOLS)\EXE2BIN.EXE temp.exe $@

$(SYSMSG)\netware.com:	message.h $(SYSMSG)\message.obj com.nw comint.obj batch.obj
$(SYSMSG)\netware.com:	global.dp csup.obj support.obj printf.obj dosif.nw
$(SYSMSG)\netware.com:	cstart.obj config.obj comcpy.obj cmdlist.nw
$(SYSMSG)\netware.com:	$(SYSMSG)\loadmsg.obj
        $(LINK) $(LINKFLG) @netware.inp <<!(netware.inp)
cstart+com.nw+csup+dosif.nw+comint+support+cmdlist.nw+
printf+$(SYSMSG)\message+batch+global.dp+config+comcpy+$(SYSMSG)\loadmsg.obj
temp.exe,netware.map,$(CSLIB);
<
	$(TOOLS)\EXE2BIN.EXE temp.exe $@
	$(PIFED) $@ /I BANKED=N IDLE=Y MATH=Y MAX=256

$(SYSMSG)\dosplus.com:	message.h $(SYSMSG)\message.dp com.dp comint.dp batch.dp
$(SYSMSG)\dosplus.com:	global.dp csup.obj support.dp printf.obj dosif.dp
$(SYSMSG)\dosplus.com:	cstart.dp config.dp comcpy.obj cmdlist.dp $(SYSMSG)\loadmsg.obj
$(SYSMSG)\dosplus.com:	crit.dp $(SYSMSG)\critmsg.dp
        $(LINK) $(LINKFLG) $(CODEVIEW) @dosplus.inp <<!(dosplus.inp)
cstart.dp+com.dp+csup+dosif.dp+comint.dp+support.dp+cmdlist.dp+
printf+$(SYSMSG)\message.dp+batch.dp+global.dp+config.dp+comcpy.obj+$(SYSMSG)\loadmsg.obj+
crit.dp+$(SYSMSG)\critmsg.dp
$(SYSMSG)\dosplus.exe,,$(CSLIB);
<
	$(TOOLS)\EXE2BIN.EXE $(SYSMSG)\dosplus.exe $@
#	&del $(SYSMSG)\dosplus.exe

	
copy.exe:	message.h $(SYSMSG)\message.obj copy.obj comcpy.obj cstart.obj
copy.exe:	support.obj printf.obj dosif.obj global.obj csup.obj
copy.exe:	$(SYSMSG)\loadmsg.obj
        $(LINK) $(LINKFLG) $(CODEVIEW) @com.inp <<!(com.inp)
cstart+copy+dosif+support+printf+$(SYSMSG)\message+comcpy+
global.obj+csup.obj+$(SYSMSG)\loadmsg.obj
$@,,$(CSLIB);
<

$(SYSMSG)\cpm.exe:	message.h $(SYSMSG)\message.cpm com.cpm comint.cpm batch.cpm
$(SYSMSG)\cpm.exe:	global.obj csup.obj support.cpm printf.obj dosif.obj
$(SYSMSG)\cpm.exe:	cstart.obj config.cpm comcpy.cpm cmdlist.cpm
$(SYSMSG)\cpm.exe:	nbios.obj chkmedia.obj cpmbdos.obj error.cpm $(SYSMSG)\loadmsg.obj
        $(LINK) $(LINKFLG) /EXEPACK $(CODEVIEW) @cpm.inp <<!(cpm.inp)
cstart+com.cpm+csup+comint.cpm+support.cpm+cmdlist.cpm+
printf+$(SYSMSG)\message.cpm+batch.cpm+global+config.cpm+comcpy.cpm+error.cpm+
dosif.obj+nbios.obj+chkmedia.obj+cpmbdos.obj+$(SYSMSG)\loadmsg.obj
$@,,$(CSLIB);
<

#       The following dependancy is regenerated using the TRANS tool which
#       replaces the search pattern with the replace pattern. Below we are
#       extracting the message names and declaring them as external in
#       the file message.h
#
$(SYSMSG)\message.obj:	$(SYSMSG)\message.c i:portab.h
#       $(MSC) $(MSCFLG) /DCDOS /DMESSAGE $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOS -def MESSAGE -obj $@
#	$(TCC) $(TCCFLG) -DCDOS -DMESSAGE -o$@ $*.c 
	$(TCC) -o$@ $*.c  <<!(turboc.cfg)
$(TCCFLG) -DCDOS -DMESSAGE -zSCGROUP -zTCODE -zR_MSG 
<


$(SYSMSG)\message.dp:	$(SYSMSG)\message.c i:portab.h
#       $(MSC) $(MSCFLG) /DDOSPLUS /DMESSAGE $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def DOSPLUS -def MESSAGE -obj $@
#	$(TCC) $(TCCFLG) -DDOSPLUS -DMESSAGE -o$@ $*.c 
	$(TCC) -o$@ $*.c  <<!(turboc.cfg)
$(TCCFLG) -DDOSPLUS -DMESSAGE  -zSCGROUP -zTCODE -zR_MSG 
<


$(SYSMSG)\message.cpm:	$(SYSMSG)\message.c i:portab.h
#       $(MSC) $(MSCFLG) /DCDOS /DCPM /DMESSAGE $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOS -def CPM -def MESSAGE -obj $@
#	$(TCC) $(TCCFLG) -DCDOS -DCPM -DMESSAGE -o$@ $*.c 
	$(TCC) -o$@ $*.c  <<!(turboc.cfg)
$(TCCFLG) -DCDOS -DCPM -DMESSAGE  -zSCGROUP -zTCODE -zR_MSG 
<


$(SYSMSG)\message.tmp:	$(SYSMSG)\message.c i:portab.h
#       $(MSC) $(MSCFLG) /DCDOSTMP /DMESSAGE $*,$@;
#       $(MWC) $*.C $(MWCFLG) -def CDOSTMP -def MESSAGE -obj $@
#	$(TCC) $(TCCFLG) -DCDOSTMP -DMESSAGE  -o$@ $*.c 
	$(TCC) -o$@ $*.c <<!(turboc.cfg)
$(TCCFLG) -DCDOSTMP -DMESSAGE  -zSCGROUP -zTCODE -zR_MSG
<

batch.cpm\
batch.dp\
batch.tmp\
batch.obj:	batch.c i:portab.h $(INC)\string.h i:ccpm.h command.h\
		support.h dosif.h global.h

com.nw\
com.dp\
com.cpm\
com.tmp\
com.obj:	com.c i:portab.h i:ccpm.h i:sysdat.h $(INC)\setjmp.h\
		$(INC)\string.h command.h support.h dos.h dosif.h\
		global.h i:mserror.h

comint.dp\
comint.cpm\
comint.tmp\
comint.obj:	comint.c i:portab.h $(INC)\string.h i:ccpm.h i:sysdat.h\
		command.h dos.h dosif.h message.h support.h global.h\
		i:mserror.h


config.dp\
config.cpm\
config.tmp\
config.obj:	config.c i:portab.h $(INC)\string.h i:ccpm.h i:sysdat.h\
		i:pd.h command.h support.h dosif.h global.h

network.tmp\
network.obj:	network.c i:portab.h $(INC)\string.h i:ccpm.h i:sysdat.h\
		i:pd.h command.h support.h dosif.h global.h

cmdlist.nw\
cmdlist.dp\
cmdlist.cpm\
cmdlist.obj\
cmdlist.tmp:	cmdlist.c i:portab.h command.h message.h

test.obj:	test.c

error.cpm\
error.tmp:	error.c i:portab.h i:mserror.h command.h dosif.h\
		message.h support.h global.h

support.dp\
support.cpm\
support.tmp\
support.obj:	support.c i:portab.h $(INC)\string.h $(INC)\setjmp.h i:ccpm.h\
		dos.h command.h dosif.h global.h i:mserror.h i:sysdat.h

copy.obj:	copy.c $(INC)\setjmp.h $(INC)\string.h i:portab.h
copy.obj:	command.h support.h message.h dos.h global.h dosif.h

global.dp\
global.obj:	global.c i:portab.h command.h i:pd.h

chkmedia.obj:	chkmedia.c $(INC)\setjmp.h i:portab.h i:ccpm.h\
		i:mserror.h struct.h

cpmbdos.obj:	cpmbdos.c i:portab.h i:mserror.h command.h dosif.h struct.h

nbios.obj:	nbios.a86 i:ccpm.equ i:system.def i:pd.def i:sysdat.equ

comcpy.cpm\
comcpy.obj:	comcpy.c i:portab.h i:ccpm.h dos.h dosif.h command.h\
		support.h global.h i:mserror.h

printf.obj:	printf.c i:portab.h $(INC)\string.h

message.h:	$(SYSMSG)\..\MSG\message.c
        XCOPY.EXE $*.C $@
        $(TOOLS)\TRANS.EXE /c "{^BYTE?*}{:i}{?*\[\]?*$$}" "EXTERN BYTE $$2[];" $@
        -$(TOOLS)\EXP.EXE

dosif.nw\
dosif.dp\
dosif.obj\
dosif.tmp:	dosif.asm i:msdos.equ i:ccpm.equ i:system.def\
		i:pd.def i:udaa.def i:mserror.equ i:net.def i:f52data.def

cstart.dp\
cstart.obj\
cstart.tmp:	cstart.asm i:msdos.equ i:ccpm.equ i:mserror.equ i:f52data.def

csup.obj:	csup.asm

$(SYSMSG)\loadmsg.obj:	$(SYSMSG)\loadmsg.asm

crit.dp:	crit.asm i:msdos.equ i:mserror.equ i:driver.equ i:system.def
crit.dp:	i:char.def

$(SYSMSG)\critmsg.dp:	$(SYSMSG)\critmsg.pcm

com2cmd.exe:	com2cmd.obj
        $(LINK) $(LINKFLG) $(CODEVIEW) @com2cmd.inp <<!(com2cmd.inp)
$(TCCSTART)com2cmd.obj
$@,,$(CSLIB);
<

com2cmd.obj:	com2cmd.c i:portab.h

#.page
#	The following targets control the archival system. Targets have
#	been declared to ARCHIVE, EXTRACT, VERSION and REPORT on the
#	COMMAND.COM product and its history.
#
GETFLAGS = -OWRlatest
ARCLIST = ..\*.*
#
archive:
        $(DGEN) -LnCUSQ $(ARCLIST)

extract:
        $(DGEN) -LQ $(GETFLAGS) $(ARCLIST)

report:
        $(TOOLS)\dlist -PL60 -PO00 -FF -FOOTER=COMMAND.COM -AD:01/01/86\
		-FMT=comment $(ARCLIST)
