include makefile.version

MACOS = -D FREEBSD 


CCFLAGS = -march=native -mtune=core2 ${MACOS} -O9 -Wall  -Wno-maybe-uninitialized -Wno-incompatible-pointer-types -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unused-result  -DMAKE_FOR_EXON  -D MAKE_STANDALONE -D SUBREAD_VERSION=\"${SUBREAD_VERSION}\"  
LDFLAGS = -pthread -lz -lm ${MACOS} -DMAKE_FOR_EXON -D MAKE_STANDALONE -l compat # -DREPORT_ALL_THE_BEST 
CC = gcc ${CCFLAGS} -ggdb -fomit-frame-pointer -ffast-math -funroll-loops -mmmx -msse -msse2 -msse3 -fmessage-length=0 


ALL_LIBS= core core-junction core-indel sambam-file sublog gene-algorithms hashtable input-files sorted-hashtable gene-value-index exon-algorithms HelperFunctions interval_merge core-bigtable seek-zlib long-hashtable

ALL_OBJECTS=$(addsuffix .o, ${ALL_LIBS})
ALL_H=$(addsuffix .h, ${ALL_LIBS})
ALL_C=$(addsuffix .c, ${ALL_LIBS})

all: sublong repair featureCounts removeDup exactSNP subread-buildindex subindel  subread-align subjunc  subtools qualityScores  subread-fullscan propmapped  
	mkdir -p ../bin/utilities
	mv longread-one/LRM longread-one/sublong
	mv longread-one/sublong subread-align subjunc featureCounts  subindel exactSNP subread-buildindex ../bin/
	mv repair subtools qualityScores propmapped subread-fullscan removeDup ../bin/utilities
	@echo
	@echo "###########################################################"
	@echo "#                                                         #"
	@echo "#  Installation successfully completed.                   #"
	@echo "#                                                         #"
	@echo "#  Generated executables were copied to directory ../bin/ #"
	@echo "#                                                         #"
	@echo "###########################################################"
	@echo

sublong: longread-one/longread-mapping.c  ${ALL_OBJECTS}
	echo "MACOS= -D FREEBSD  " > longread-one/make.version
	rm -f longread-one/*.o
	cd longread-one && $(MAKE)

repair: read-repair.c ${ALL_OBJECTS}
	${CC} -o repair read-repair.c ${ALL_OBJECTS} ${LDFLAGS}

propmapped: propmapped.c ${ALL_OBJECTS}
	${CC} -o propmapped propmapped.c ${ALL_OBJECTS} ${LDFLAGS}

exactSNP: SNPCalling.c SNPCalling.h  ${ALL_OBJECTS}
	${CC}  -o exactSNP SNPCalling.c  ${ALL_OBJECTS} ${LDFLAGS}

subread-buildindex: index-builder.c subread.h ${ALL_OBJECTS}
	${CC}  -o subread-buildindex  index-builder.c ${ALL_OBJECTS} ${LDFLAGS}

removeDup: removeDupReads.c removeDupReads.h subread.h ${ALL_OBJECTS}
	${CC} -o  removeDup removeDupReads.c  ${ALL_OBJECTS} ${LDFLAGS}

subindel: SUBindel.c core.h subread.h  ${ALL_OBJECTS}
	${CC} -o subindel SUBindel.c ${ALL_OBJECTS} ${LDFLAGS}

featureCounts: readSummary.c subread.h  ${ALL_OBJECTS}
	${CC} -o featureCounts readSummary.c ${ALL_OBJECTS} ${LDFLAGS}

subread-align: core-interface-aligner.c  ${ALL_OBJECTS}
	${CC} -o subread-align core-interface-aligner.c  ${ALL_OBJECTS} ${LDFLAGS} 

subjunc: core-interface-subjunc.c  ${ALL_OBJECTS}
	${CC} -o subjunc core-interface-subjunc.c  ${ALL_OBJECTS} ${LDFLAGS} 

qualityScores: qualityScores.c ${ALL_OBJECTS}
	${CC} -o qualityScores qualityScores.c  ${ALL_OBJECTS}  ${LDFLAGS}

subread-fullscan: fullscan.c  ${ALL_OBJECTS}
	${CC} -o subread-fullscan fullscan.c  ${ALL_OBJECTS}  ${LDFLAGS}

subtools: subtools.c ${ALL_OBJECTS}
	${CC} -o subtools subtools.c ${ALL_OBJECTS} ${LDFLAGS} 


clean:
	rm -f core featureCounts exactSNP removeDup subread-buildindex ${ALL_OBJECTS}
