CC       = gpp
SNPSRC   = ../snpsrc
EMMSRC   = ../emmsrc
USRSRC   = ../svfx
ISCL     = ../lib/libscl/gpp
LSCL     = ../lib/libscl/gpp
ISNP     = ../lib/libsnp/gpp
LSNP     = ../lib/libsnp/gpp
ISMM     = ../lib/libsmm/gpp
LSMM     = ../lib/libsmm/gpp
CFLAGS   = -O -Wall -c \
	   -I$(SNPSRC) -I$(EMMSRC) -I$(USRSRC) -I$(ISMM) -I$(ISNP) -I$(ISCL)
LFLAGS   = -L$(LSMM) -lsmm -L$(LSNP) -lsnp -L$(LSCL) -lscl -lm 

HEADERS  = $(ISNP)/libsnp.h $(ISMM)/libsmm.h \
	$(EMMSRC)/emm_base.h $(EMMSRC)/emm.h $(USRSRC)/emmusr.h \
	$(SNPSRC)/snp_base.h $(SNPSRC)/snp.h $(SNPSRC)/snpusr.h \
	$(ISCL)/libscl.h
	
OBJECTS = emm.o emmcode1.o emmcode2.o emmcode3.o emmusr.o\
	  snpcode1.o snpcode2.o snpcode3.o snpusr.o

emm.exe :  $(OBJECTS) $(HEADERS)
	$(CC) -o emm.exe $(OBJECTS) $(LFLAGS)

emm.o : $(EMMSRC)/emm.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(EMMSRC)/emm.cpp

emmcode1.o : $(EMMSRC)/emmcode1.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(EMMSRC)/emmcode1.cpp

emmcode2.o : $(EMMSRC)/emmcode2.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(EMMSRC)/emmcode2.cpp

emmcode3.o : $(EMMSRC)/emmcode3.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(EMMSRC)/emmcode3.cpp

emmusr.o : $(USRSRC)/emmusr.cpp $(HEADERS)
	$(CC) $(CFLAGS) $(USRSRC)/emmusr.cpp

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

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

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

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

clean	:
	rm -f *.o 

veryclean	:
	rm -f *.o 
	rm -f emm emm.exe

