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

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

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

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 ds2480ut.obj owllu.obj ownetu.obj owsesu.obj owerr.obj crcutil.obj owtrnu.obj
	echo tstfindm.obj, ser550.obj, ds550lnk.obj, ds2480ut.obj, owllu.obj, ownetu.obj, owsesu.obj, owerr.obj, crcutil.obj, owtrnu.obj > objfile
	$(LNK) @objfile
	$(PCK) tstfindm

tempm.hex: tempm.obj ser550.obj ds550lnk.obj ds2480ut.obj owllu.obj ownetu.obj owsesu.obj owerr.obj crcutil.obj owtrnu.obj temp10.obj findtype.obj
	echo tempm.obj, ser550.obj, ds550lnk.obj, ds2480ut.obj, owllu.obj, ownetu.obj, owsesu.obj, owerr.obj, crcutil.obj, owtrnu.obj, temp10.obj, findtype.obj > objfile
	$(LNK) @objfile
	$(PCK) tempm

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

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

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

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

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

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

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

owtrnu.obj: $(SHARED)/owtrnu.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
