TEKKOTSU_TARGET_MODEL?=TGT_ERS210

SRCS=$(sort $(shell find . -name "*.cc") ./SoundPlayStub.cc)

OBJS=${SRCS:.cc=.o}
DEPENDS=${SRCS:.cc=.d}

OPENRSDK_ROOT?=/usr/local/OPEN_R_SDK
CXX=$(OPENRSDK_ROOT)/bin/mipsel-linux-g++
LD=$(OPENRSDK_ROOT)/bin/mipsel-linux-ld
STUBGEN=$(OPENRSDK_ROOT)/OPEN_R/bin/stubgen2
FILTERSYSWARN=../tools/filtersyswarn/filtersyswarn
CURDIR:=$(shell pwd | sed 's/.*\///')
CXXFLAGS= \
	-O2 \
	-g \
	-I. -I.. \
	-I$(OPENRSDK_ROOT)/OPEN_R/include/R4000 \
	-I$(OPENRSDK_ROOT)/OPEN_R/include \
	-DPLATFORM_APERIOS -DDEBUG -DOPENR_DEBUG -DCONSOLE_VT100 \
	-D$(TEKKOTSU_TARGET_MODEL) $(GLOBAL_MAP) 

.PHONY: all clean

all: $(CURDIR)Lib.o

$(CURDIR)Lib.o : $(OBJS)
	@echo Linking object files...
	@echo "$@ <- $(OBJS)"
	@$(LD) -i $(OBJS) -o $@

%.o: %.cc %.d $(FILTERSYSWARN)
	@echo Compiling $< into $@...
	@$(CXX) $(CXXFLAGS) -o $@ -c $< > $*.log 2>&1; \
	retval=$$?; \
	cat $*.log | $(FILTERSYSWARN); \
	test $$retval -eq 0;

SoundPlayStub.cc: stub.cfg
	$(STUBGEN) stub.cfg	

%.d : %.cc
	@echo Building $@ for $<
	@$(CXX) $(CXXFLAGS) -MP -MG -MT $@ -MT $*.o -MM $< > $@

$(FILTERSYSWARN):
	(cd ../tools && $(MAKE));

ifneq ($(MAKECMDGOALS),clean)
-include $(DEPENDS)
endif


clean:
	rm -f $(CURDIR)Lib.o $(OBJS) $(DEPENDS) ${SRCS:.cc=.log} *~
	rm -f *.o SoundPlayStub.* def.h entry.h
