MACHINE = msc
CDEFS = #-DPD #-DDEBUG
CFLAGS = -AL -G2 -Za -W3 -I..\lib -I..\regexp $(CDEFS) -D$(MACHINE) -Ox -Ge #-Zi
LDFLAGS = #-Zi
PROGS = cbascii.exe cbcheck.exe cbdump.exe cbepd.exe cbfbk.exe cbgen.exe cbkey.exe \
cblist.exe cbmerge.exe cbsort.exe cbsplit.exe cbtidy.exe ckdump.exe fbkdump.exe
# CBKEY.EXE flags
CBKOBJS = cbkey.obj kparse.obj kscan.obj kcompile.obj ktests.obj
CBKLIBS = ..\lib\cb.lib ..\regexp\regexp.lib
# CBASCII.EXE flags
CBAOBJS = cbascii.obj aexport.obj aimport.obj ascan.obj nag.obj
CBALIBS = ..\lib\cb.lib
LIBS = ..\lib\cb.lib
HDRS = ..\lib\global.h ..\lib\machine.h ..\lib\cb.h ..\lib\extern.h
INSTDIR = c:\utils
.SUFFIXES: .y .l

.y.c:
	bison -dy $<
	rm /f $*.c $*.h
	-rename y_tab.c $*.c
	-rename y_tab.h $*.h

.l.c:
	flex $<
	rm /f $*.c
	-rename lexyy.c $*.c

all:	$(PROGS)

cbascii.exe:	$(CBAOBJS) $(CBALIBS)
	$(CC) -F 4000 $(LDFLAGS) -o cbascii.exe $(CBAOBJS) $(CBALIBS)

cbcheck.exe:	cbcheck.obj $(LIBS)
	$(CC) -F 4000 $(LDFLAGS) -o cbcheck.exe cbcheck.obj $(LIBS)

cbdump.exe:	cbdump.obj $(LIBS)
	$(CC) -F 4000 $(LDFLAGS) -o cbdump.exe cbdump.obj $(LIBS)

cbepd.exe:	cbepd.obj $(LIBS)
	$(CC) -F 4000 $(LDFLAGS) -o cbepd.exe cbepd.obj $(LIBS)

cbfbk.exe:	cbfbk.obj $(LIBS)
	$(CC) -F F000 $(LDFLAGS) -o cbfbk.exe cbfbk.obj $(LIBS)

cbgen.exe:	cbgen.obj $(LIBS)
	$(CC) -F e000 $(LDFLAGS) -o cbgen.exe cbgen.obj $(LIBS)

# without -DDEBUG: -F c000
# with    -DDEBUG: -F b000
cbkey.exe: 	$(CBKOBJS) $(CBKLIBS)
	$(CC) -F bd00 $(LDFLAGS) -o cbkey.exe $(CBKOBJS) $(CBKLIBS)

cblist.exe:	cblist.obj $(LIBS)
	$(CC) $(LDFLAGS) -o cblist.exe cblist.obj $(LIBS)

cbmerge.exe:	cbmerge.obj $(LIBS)
	$(CC) $(LDFLAGS) -o cbmerge.exe cbmerge.obj $(LIBS)

cbsort.exe:	cbsort.obj $(LIBS)
	$(CC) $(LDFLAGS) -o cbsort.exe cbsort.obj $(LIBS)

cbsplit.exe:	cbsplit.obj $(LIBS)
	$(CC) $(LDFLAGS) -o cbsplit.exe cbsplit.obj $(LIBS)

cbtidy.exe:	cbtidy.obj $(LIBS)
	$(CC) $(LDFLAGS) -o cbtidy.exe cbtidy.obj $(LIBS)

ckdump.exe:	ckdump.obj $(LIBS)
	$(CC) -F 4000 $(LDFLAGS) -o ckdump.exe ckdump.obj $(LIBS)

fbkdump.exe:	fbkdump.obj $(LIBS)
	$(CC) -F 4000 $(LDFLAGS) -o fbkdump.exe fbkdump.obj $(LIBS)


install:	$(PROGS)
	copy *.exe $(INSTDIR)

clean:
	rm /f *.exe *.obj out *.out err *.err

kclean:
	rm /f kparse.c kparse.h kscan.c

aclean:
	rm /f ascan.c

backup:
	copy makefile mkfiles\$(MACHINE)

aexport.obj:	$(HDRS) aexport.h aimport.h cbascii.h nag.h
aimport.obj:	$(HDRS) aimport.h ascan.h cbascii.h nag.h
ascan.obj:	$(HDRS) ascan.h
ascan.c:	ascan.l
nag.obj:	$(HDRS) nag.h
cbascii.obj:	$(HDRS) aexport.h cbascii.h
cbcheck.obj:	$(HDRS)
cbdump.obj:	$(HDRS)
cbepd.obj:	$(HDRS)
cbfbk.obj:	$(HDRS)
cbgen.obj:	$(HDRS)
cbkey.obj:	$(HDRS) kcompile.h
kparse.obj:	$(HDRS) kcompile.h
kparse.c:	kparse.y
kparse.h:	kparse.y
kscan.obj:	$(HDRS) kparse.h kcompile.h
kscan.c:	kscan.l
kcompile.obj:	$(HDRS) kcompile.h ..\regexp\regexp.h
ktest.obj:	$(HDRS) kcompile.h ..\regexp\regexp.h
cblist.obj:	$(HDRS)
cbmerge.obj:	$(HDRS)
cbsort.obj:	$(HDRS)
cbsplit.obj:	$(HDRS)
cbtidy.obj:	$(HDRS)
ckdump.obj:	$(HDRS)
fbkdump.obj:	$(HDRS)

