SRCS:=$(wildcard *.cc)

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

PREFIX=/usr/local/OPEN_R_SDK
CXX=$(PREFIX)/bin/mipsel-linux-g++
LD=$(PREFIX)/bin/mipsel-linux-ld
FILTERSYSWARN=../tools/filtersyswarn/filtersyswarn
LIBS=-lObjectComm -lOPENR -lInternet -lantMCOOP
CURDIR:=$(shell pwd | sed 's/.*\///')
CXXFLAGS= \
	-g \
	-Wall -W -Wshadow -Wlarger-than-8192 -Wpointer-arith -Wcast-qual \
	-Wunreachable-code -Woverloaded-virtual -Weffc++ -Winline -Wdeprecated \
	-I. -I.. -I../MMCombo -isystem $(PREFIX)/OPEN_R/include/MCOOP \
	-isystem $(PREFIX)/OPEN_R/include/R4000 -isystem $(PREFIX)/OPEN_R/include \
	-DPLATFORM_APERIOS -DDEBUG -DOPENR_DEBUG -DCONSOLE_VT100 $(GLOBAL_MAP) \

.PHONY: all

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; \
	retval=$$?; \
	cat $*.log | $(FILTERSYSWARN); \
	test $$retval -eq 0;

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

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

-include $(DEPENDS)

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