OSTYPE:=@$(shell uname)@

DEBUG:= 1


ifeq ($(OSTYPE),linux)
OSTYPE:=Linux
endif

ifeq ($(OSTYPE),LINUX)
OSTYPE:=Linux
endif


ifeq ($(OSTYPE),@Linux@)

OPT:=$(subst 1,-g,$(DEBUG))
OPT:=$(subst 0,-O2,$(OPT))
COMPILE= g++ $(OPT) -I. -c
LINK=g++ $(OPT) -o$@ 
O=o
else


OPT:=$(subst 1,/Zi,$(DEBUG))
OPT:=$(subst 0,/O2,$(OPT))
COMPILE= cl $(OPT) -I. /GX /GR -c
LINK=cl $(OPT) /GX /GR -Fe$@
O=obj
endif

.SUFFIXES:  .cpp .$O .exe

.cpp.$O:
	$(COMPILE) $<

junk.exe: junk.$O 
	$(LINK) $(filter %.$O,$+)


CLEANLIST= *.tmp *.o* *.exe *.i* *.p* log.xml log.make errors *.s* junk trash crap *.log *.out *~ *.bak

clean:
	rm -f $(CLEANLIST)

backup:
	zip -ur ../classTraits.zip * -x $(CLEANLIST) ; true

tests:  junk.exe
	@echo Running test
	@junk.exe >trash
	@diff -Bbwh expect trash
	@rm -f trash
	@echo Test Passed!

depend:
	makedepend '-o.$$(O)' -I. $(patsubst %,-I%, $(EXTERNAL_INCLUDE_DIRS)) -Y *.cpp 2>/dev/null

# DO NOT DELETE

junk.$(O): classTraits.h
