CC       = g++
SDIR     = ../snpsrc
ISCL     = ../lib/libscl/gpp
LSCL     = ../lib/libscl/gpp
ISNP     = ../lib/libsnp/gpp
LSNP     = ../lib/libsnp/gpp
CFLAGS   = -O2 -Wall -c -I$(SDIR) -I$(ISNP) -I$(ISCL)
LFLAGS   = -L$(LSNP) -lsnp -L$(LSCL) -lscl -lm 

HEADERS  = $(LSNP)/libsnp.h \
	$(SDIR)/snp_base.h $(SDIR)/snp.h $(SDIR)/snpusr.h \
	$(LSCL)/libscl.h

OBJECTS = snp.o snpcode1.o snpcode2.o snpcode3.o snpusr.o

snp :  $(HEADERS) $(OBJECTS)
	$(CC) -o snp $(OBJECTS) $(LFLAGS)

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

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

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

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

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

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

veryclean	:
	rm -f *.o core core.*
	rm -f snp snp_gsl
