CXX		:= `root-config --cxx`
CXXFLAGS	:= -O3 -Wall `root-config --cflags`
LDFLAGS		:= `root-config --ldflags`
SRC		:=./src
INC		:=./include
INCLUDES	:=-I./$(INC) -I`root-config --incdir`
OBJ		:=./obj/
LIB		:=-lm `root-config --glibs`

MAIN		:= $(OBJ)/main.o
CLASSES		:= EquationSolver ImplicitMidpointEquationSolver ODEIntegrator 
HEADERS		:= $(CLASSES:%=$(INC)/%.h)
SOURCES		:= $(CLASSES:%=$(SRC)/%.cpp)
OBJECTS		:= $(CLASSES:%=$(OBJ)/%.o)

default: main

$(OBJ)%.o: $(SRC)/%.cxx
	@echo Compiling $< ...
	@if ! [ -d $(OBJ) ] ; then mkdir -pv $(OBJ); fi
	$(CXX) $(CXXFLAGS) $(INCLUDES) -c -o $@ $<

main: $(OBJECTS) $(MAIN)
	@echo Linking $^ to $@
	$(CXX) $(LDFLAGS) $(LIB) $^ -o $@

clean:
	@rm -rfv $(OBJ)
	@rm -fv main
	@rm -fv ODE.zip

zippa:
	@rm -f ODE.zip
	@zip -r --exclude=*~ ODE.zip src include Makefile
