CC = g++ 
CFLAGS = -O3 -Wall
#CFLAGS = -O0 -g

SOURCE_FILES = $(shell find | grep .cxx$$)

all: obj MicroTrace

clean:
	rm -rf obj MicroTrace
.PHONY: clean

obj:
	mkdir -p $@

obj/%.dep: src/%.cxx
	mkdir -p `dirname $@`
	echo -n `dirname $@`/ > $@
	$(CC) $< -MM | sed -r -e 's,^(.*)\.o\s*\:,\1.o $@ :,g' >> $@

ifneq ($(MAKECMDGOALS),clean)
-include $(SOURCE_FILES:./src/%.cxx=./obj/%.dep)
endif

OBJ_FILES=$(SOURCE_FILES:./src/%.cxx=./obj/%.o)

obj/%.o: src/%.cxx
	mkdir -p `dirname $@`
	$(CC) $(CFLAGS) -c $< -o $@

MicroTrace: $(OBJ_FILES)
	mkdir -p `dirname $@`
	$(CC) $(OBJ_FILES) -o $@

