CXX      = g++
SDIR     = .
PESRC    = ../pesrc.1
TREESRC  = ../treesrc
ISCL     = $(HOME)/lib/libscl/gpp
LSCL     = $(HOME)/lib/libscl/gpp
CXXFLAGS = -O2 -Wall -c -I$(SDIR) -I$(TREESRC) -I$(PESRC) -I$(ISCL)
LDFLAGS  = -lm -L$(LSCL) -lscl             

HEADERS = $(PESRC)/rom.h $(PESRC)/preimage_norm.h $(PESRC)/moment_norm.h

OBJECTS  = tree_policy.o tree_sim.o rom.o

PROGRAMS = moments 

all: $(PROGRAMS)

moments : moments.o $(OBJECTS)
	$(CXX) -o moments moments.o $(OBJECTS) $(LDFLAGS) 

moments.o : $(SDIR)/moments.cpp
	$(CXX) $(CXXFLAGS) $(SDIR)/moments.cpp

rom.o : $(PESRC)/rom.cpp 
	$(CXX) $(CXXFLAGS) $(PESRC)/rom.cpp

tree_policy.o : $(TREESRC)/tree_policy.cpp
	$(CXX) $(CXXFLAGS) $(TREESRC)/tree_policy.cpp

tree_sim.o : $(TREESRC)/tree_sim.cpp 
	$(CXX) $(CXXFLAGS) $(TREESRC)/tree_sim.cpp

clean :
	rm -f *.o
	rm -f core core.*

dirclean :
	rm -f *.o
	rm -f core core.*
	rm -f $(PROGRAMS)

veryclean :
	rm -f *.o
	rm -f core core.*
	rm -f $(PROGRAMS)
