CXX=g++
CXXFLAGS=-std=c++11 -march=native -Wall -Wextra -Werror -pedantic -O3
LD=g++

all: test h2combustion h2combustion_dbg

test: test.o reactionparser.o reaction.o substance.o compound.o
	$(LD) $(LDFLAGS) -o $@ $^

h2combustion: main.o rk4integrator.o rk3adaptive.o combustionprocess.o compound.o reactionparser.o reaction.o  substance.o commandlineoptions.o
	$(LD) $(LDFLAGS) -o $@ $^
	
h2combustion_dbg: main.o rk4integrator.o rk3adaptive.o combustionprocess_dbg.o  compound.o reactionparser.o reaction.o  substance.o commandlineoptions.o
	$(LD) $(LDFLAGS) -o $@ $^
	
combustionprocess_dbg.o: combustionprocess.cpp
	$(CXX) -DDEBUG -c -o combustionprocess_dbg.o $(CXXFLAGS) combustionprocess.cpp

%.o: %.cpp $(DEPS)
	$(CXX) $(CXXFLAGS) -MMD -c -o $@ $<

-include *.d

dok:
	doxygen
	-cd latex/;pdflatex refman.tex;bibtex refman

.PHONY : clean
clean :
	-rm *.o h2combustion_dbg h2combustion test *~ *.d