#might need to use "make -i" after successfully compiling since Keil's
#linker v5.10 returns error status for mere warning messages.
# (i.e. "uncalled segments ignored")

CC = c51
LNK = bl51
PCK = oh51
ASM = a51

# directories
APPS = ../../apps
COMMON = ../../common
LINK = ../../lib/general/link/DS87C550
SHARED = ../../lib/general/shared
SERIAL = ../../lib/userial/link/DS87C550

DEFINES = MAX_PORTNUM=1,DEBUG
CFLAGS = INCDIR\($(COMMON), $(SERIAL), $(LINK)\) MODDP2 LARGE OT\(6,SIZE\) DF\($(DEFINES)\) CODE DEBUG OBJECTEXTEND

all: tstfindm.hex tempm.hex

tstfindm.hex: tstfindm.obj ser550.obj ds550lnk.obj ds550ses.obj ownet.obj owerr.obj crcutil.obj owtran.obj
	$(LNK) tstfindm.obj, ser550.obj, ds550lnk.obj, ds550ses.obj, ownet.obj, owerr.obj, crcutil.obj, owtran.obj
	$(PCK) tstfindm

tempm.hex: tempm.obj temp10.obj findtype.obj ser550.obj ds550lnk.obj ds550ses.obj ownet.obj owerr.obj crcutil.obj owtran.obj
	echo tempm.obj, temp10.obj, findtype.obj, ser550.obj, ds550lnk.obj, ds550ses.obj, ownet.obj, owerr.obj, crcutil.obj, owtran.obj > objfile
	$(LNK) @objfile
	$(PCK) tempm

ds550lnk.obj: ds550lnk.a51
	$(ASM) $<

ds550lnk.a51: $(LINK)/ds550lnk.c
	$(CC) $< $(CFLAGS)

ds550ses.obj: $(LINK)/ds550ses.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

ser550.obj: $(SERIAL)/ser550.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

ownet.obj: $(SHARED)/ownet.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

owtran.obj: $(SHARED)/owtran.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

owerr.obj: $(COMMON)/owerr.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

crcutil.obj: $(COMMON)/crcutil.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

temp10.obj: $(COMMON)/temp10.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

findtype.obj: $(COMMON)/findtype.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

tstfindm.obj: $(APPS)/tstfind/tstfindm.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)

tempm.obj: $(APPS)/tstfind/tstfindm.c
	$(CC) $< $(CFLAGS) OBJECT\($@\)


%.hex: %.obj
	$(LNK) $<
	$(PCK) $*

%.a51: %.c
	$(CC) $< $(CFLAGS)

%.obj: %.c
	$(CC) $< $(CFLAGS)

clean:
	rm TEMPM TSTFINDM
	rm -f *~ \#* *.asm *.cdb *.rel *.hex *.ihx *.lst *.map *.a51 *.rst *.sym *.lnk *.obj *.OBJ *.LST *.HEX *.A51 *.M51 objfile
	rm -f apps/tstfind/*.LST apps/temp/*.LST */*.LST
