CC       = mpic++
SDIR     = ../src
ISCL     = ../../libscl/gpp
LSCL     = ../../libscl/gpp
IMCMC    = ../../libmcmc
LMCMC    = ../../libmcmc
IDIRS    = -I. -I$(SDIR) -I$(IMCMC) -I$(ISCL)
LDIRS    = -L$(LMCMC) -L$(LSCL)
CFLAGS   = -O -Wall -c  $(IDIRS)
LFLAGS   = $(LDIRS) -lmcmc -lscl -lm

OBJECTS = habit_usrmod.o prop_defs.o

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

LIBRARIES = libscl.a libmcmc.a

PROGRAMS = habit_main_mpi summary

all: $(LIBRARIES) $(PROGRAMS)

libscl.a :
	make -C $(LSCL)

libmcmc.a :
	make -C $(LMCMC)

habit_main_mpi	: habit_main_mpi.o $(OBJECTS) $(LIBRARIES)
	$(CC) -o habit_main_mpi habit_main_mpi.o $(OBJECTS) $(LFLAGS)

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

habit_main_mpi.o : $(SDIR)/habit_main_mpi.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(SDIR)/habit_main_mpi.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 :
	make -C $(LSCL) clean
	make -C $(LMCMC) clean
	rm -f *.o core core.*

veryclean	:
	make -C $(LSCL) veryclean
	make -C $(LMCMC) veryclean
	rm -f *.o core core.*
	rm -f  habit_main_mpi

dirclean	:
	rm -f *.o core core.*
	rm -f  habit_main_mpi
