PROGRAM = wektor.exe
SOURCES = wektor.cpp wektor_test.cpp
CXXFLAGS_RELEASE = -O2 -DNDEBUG -march=athlon-xp
CXXFLAGS_DEBUG = -g
CXXFLAGS_WARNING = -Wall -W  -Wno-deprecated
LIBS =  -lm
CXX = g++

OBJS = $(SOURCES:.cpp=.o) 
ifeq ($(MAKECMDGOALS),release)
CXXFLAGS = $(CXXFLAGS_WARNING) $(CXXFLAGS_RELEASE)
else
CXXFLAGS = $(CXXFLAGS_WARNING) $(CXXFLAGS_DEBUG)
endif

.PHONY: release debug clean install

debug: $(PROGRAM)

release: $(PROGRAM)

$(PROGRAM): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@
	
%.d: %.cpp
	@set -e; rm -f $@; \
	$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

clean: 
	@rm -f *.o *.d
	@rm -f $(PROGRAM)

install:
	cp $(PROGRAM) ~/bin/$(PROGRAM)

include $(SOURCES:.cpp=.d)
