ifndef GBDK_HOME
	GBDK_HOME = ../../../../../../../../gb/gbdk/
endif

LCC = $(GBDK_HOME)bin/lcc
LCCFLAGS += -Wm-yc
# LCCFLAGS += -debug
SRC = ./src
OBJS = main.o \
	   balls.o \
	   letters.o \
	   gbcompo2c.o \
	   astar.o \
	   drawing.o \
	   definitions.o \
	   cursor.o \
	   tray.o \
	   combo.o \
	   saveproc.o \
	   shapes.o
	   
OBJSINBINDIR = $(patsubst %.o,$(BINDIR)/%.o,$(OBJS))
BINDIR = ./_bin

$(shell if [ ! -d $(BINDIR) ]; then mkdir $(BINDIR); fi;)

.PHONY: all
all: $(OBJSINBINDIR) $(BINDIR)/savedata.o
	$(LCC) $(LCCFLAGS) -Wm-yo2 -Wm-ya4 -Wm-yt0x1B $^ -o $(BINDIR)/qulqy.gbc
# -Wm-yo<N> number of ROM banks, -Wm-ya<N> SRAM banks, -Wm-yt<N> MBC type: 0x1B MBC5+SRAM+BATT


$(OBJSINBINDIR): %.o: %.s
	$(LCC) $(LCCFLAGS) -c $< -o $@

$(BINDIR)/savedata.o: $(SRC)/savedata.c
	$(LCC) $(LCCFLAGS) -Wf-ba0 -c $< -o $@
# -Wf-ba<N> - SRAM bank 0


$(BINDIR)/main.s: $(SRC)/main.c $(SRC)/main.h $(SRC)/tests.h
	$(LCC) $(LCCFLAGS) -S $< -o $@

$(BINDIR)/%.s: $(SRC)/%.c $(SRC)/%.h
	$(LCC) $(LCCFLAGS) -S $< -o $@

$(BINDIR)/%.s: $(SRC)/res/%.c $(SRC)/res/%.h
	$(LCC) $(LCCFLAGS) -S $< -o $@


.PHONY: clean
clean:
	rm -r _bin
