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

OBJECTS = var_usrmod.o prop_defs.o

HEADERS = var_main.h $(SDIR)/var_usrmod.h $(SDIR)/prop_defs.h

PROGRAMS = var_main ends regr meanvar

LIBARIES = libscl.a libmcmc.a

all: $(LIBRARIES) $(PROGRAMS)

libscl.a :
	make -C ../../libscl

libmcmc.a :
	make -C ../../libmcmc

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

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

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

meanvar : meanvar.o
	$(CC) -o meanvar meanvar.o $(LFLAGS)

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

ends.o : ends.cpp $(HEADERS)
	$(CC) $(CFLAGS) ends.cpp

regr.o : regr.cpp $(HEADERS)
	$(CC) $(CFLAGS) regr.cpp

meanvar.o : meanvar.cpp
	$(CC) $(CFLAGS) meanvar.cpp

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

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

clean :
	make -C ../../libscl  clean
	make -C ../../libmcmc clean
	rm -f *.o core core.* 

veryclean	:
	make -C ../../libscl  veryclean
	make -C ../../libmcmc veryclean
	rm -f *.o core core.* 
	rm -f *.o $(PROGRAMS)

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