BUILD=DEBUG

LANG=ENGLISH
PILOT_COUNTRY=COUNTRY_UNITED_STATES
PILOT_LANG=LANGUAGE_ENGLISH

PROJECT = LaunchPad
APPID   = LcPd
OUT     = .

OBJS =	$(OUT)/launchpad.o \
	$(OUT)/about.o \
	$(OUT)/appman.o \
	$(OUT)/database.o \
	$(OUT)/mainform.o \
	$(OUT)/prefs.o \
	$(OUT)/tabforms.o \
	$(OUT)/tabman.o \
	$(OUT)/winman.o
RESS =
LIBS =

DEFCOPTS = -O2 -Wall -W -fno-inline-functions -Wlarger-than-32 -Wcast-align \
	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls \
	-fno-unroll-loops -fno-builtin \
	-DMEMORY_FORCE_LOCK=MEMORY_FORCE_LOCK_ON \
	-DCMD_LINE_BUILD \
	-DCOUNTRY=PILOT_COUNTRY -DLANGUAGE=PILOT_LANG
DEFLOPTS = -O2 -Wall -W

COPTS = $(DEFCOPTS) -DERROR_CHECK_LEVEL=ERROR_CHECK_NONE -DNDEBUG=1 \
	-fstrength-reduce -frerun-cse-after-loop -fexpensive-optimizations \
	-fomit-frame-pointer
LOPTS = $(DEFLOPTS)

CC = m68k-palmos-coff-gcc
LK = m68k-palmos-coff-gcc
STRIP = m68k-palmos-coff-strip

#$(OBJS): mainform.c appman.c prefs.c about.c launchpad.c winman.c tabforms.c database.c tabman.c
#	echo --- Compiling $(*B).c
#	$(CC) $(COPTS) -c -o $@ $<

All: $(OUT) $(OUT)/$(PROJECT).prc

$(OUT):
	mkdir $(OUT)

$(OUT)/$(PROJECT).prc: $(OUT)/$(PROJECT) $(OUT)/bin.res $(OUT)/code0005.Hack.grc
	echo --- Building $(PROJECT).prc
	cd $(OUT)
	build-prc $(PROJECT).prc $(PROJECT) $(APPID) \
	code0001.$(PROJECT).grc code0000.$(PROJECT).grc \
	code0005.hack.grc \
	data0000.$(PROJECT).grc \
	*bin \
	pref0000.$(PROJECT).grc
	cd $(MAKEDIR)

$(OUT)/code0005.Hack.grc: hack.c
	echo --- Building hack resource
	$(CC) $(COPTS) hack.c -c -o $(OUT)/hack.o
	$(LK) $(LOPTS) -nostartfiles -o $(OUT)/hack $(OUT)/hack.o
	$(STRIP) $(OUT)/hack
	cd $(OUT)
	m68k-palmos-coff-obj-res hack
	rm -f $(OUT)/code0005.hack.grc
	mv $(OUT)/code0001.hack.grc $(OUT)/code0005.hack.grc
	cd $(MAKEDIR)

$(OUT)/$(PROJECT): $(OBJS) $(RESS)
	echo --- Building $(PROJECT)
	$(LK) $(LOPTS) -o $(OUT)/$(PROJECT) $(LIBS) $(OBJS) $(RESS)
	$(STRIP) $(OUT)/$(PROJECT)
	cd $(OUT)
	m68k-palmos-coff-obj-res $(PROJECT)
	cd $(MAKEDIR)

$(OUT)/bin.res: $(PROJECT).rcp *bmp
	echo --- Compiling resources
	pilrc -q -L $(LANG) $(PROJECT).rcp $(OUT)
	
$(OUT)/hack.o: hack.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/mainform.o: mainform.c
	$(CC) $(COPTS) -c -o $@ $<
	
$(OUT)/appman.o: appman.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/prefs.o: prefs.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/about.o: about.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/launchpad.o: launchpad.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/winman.o: winman.c
	$(CC) $(COPTS) -c -o $@ $<
	
$(OUT)/tabforms.o: tabforms.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/database.o: database.c
	$(CC) $(COPTS) -c -o $@ $<

$(OUT)/tabman.o: tabman.c
	$(CC) $(COPTS) -c -o $@ $<

hack.c : launchpad.h res.h

mainform.c : launchpad.h res.h

appman.c : launchpad.h

prefs.c : launchpad.h res.h

about.c : launchpad.h

launchpad.c : launchpad.h res.h

winman.c : launchpad.h

tabforms.c : launchpad.h res.h

database.c : launchpad.h

tabman.c : launchpad.h res.h

clean: 
	rm -f *.bin *.grc $(PROJECT).prc $(PROJECT) hack *.o
