CC       = g++
SDIR     = ../src
LIBSCL   = ../../libscl/gpp
LIBMCMC  = ../../libmcmc
IDIRS    = -I. -I$(SDIR) -I$(LIBMCMC) -I$(LIBSCL)
LDIRS    = -L$(LIBMCMC) -L$(LIBSCL)
CFLAGS   = -O -Wall -c  $(IDIRS)
LFLAGS   = $(LDIRS) -lmcmc -lscl -lm

OBJECTS = habit_usrmod.o prop_defs.o

HEADERS = habit_main.h $(SDIR)/habit_usrmod.h $(SDIR)/prop_defs.h

LIBRARIES = libscl.a libmcmc.a

PROGRAMS = habit_main summary

all: $(LIBRARIES) $(PROGRAMS)

libscl.a :
	make -C $(LIBSCL)

libmcmc.a :
	make -C $(LIBMCMC)

habit_main	: habit_main.o $(OBJECTS) $(HEADERS) $(LIBRARIES)
	$(CC) -o habit_main habit_main.o $(OBJECTS) $(LFLAGS)

summary	: summary.o $(OBJECTS) $(HEADERS) $(LIBRARIES)
	$(CC) -o summary summary.o $(OBJECTS) $(LFLAGS)

habit_main.o : $(SDIR)/habit_main.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(SDIR)/habit_main.cpp

summary.o : $(SDIR)/summary.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(SDIR)/summary.cpp

habit_usrmod.o : $(SDIR)/habit_usrmod.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(SDIR)/habit_usrmod.cpp

prop_defs.o : $(SDIR)/prop_defs.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(SDIR)/prop_defs.cpp

clean :
	rm -f *.o core core.* 
	make -C $(LIBSCL) clean
	make -C $(LIBMCMC) clean

veryclean	:
	rm -f *.o core core.* 
	rm -f $(PROGRAMS)
	make -C $(LIBSCL) veryclean
	make -C $(LIBMCMC) veryclean
dirclean	:
	rm -f *.o core core.* 
	rm -f $(PROGRAMS)
