CC = gcc -O3
CPP = g++ -O4

all: glocal anchors chaos order mlagan utils/bin2mf utils/bin2bl utils/cextract utils/cstat utils/contigorder utils/getbounds utils/getlength utils/getoverlap utils/rc utils/seqmerge utils/scorealign utils/scorecontigs utils/getcontigpos utils/fa2xfa utils/Glue utils/dotplot
clean: 
	rm -f chaos anchors order utils/bin2bl mlagan glocal utils/cstat utils/bin2mf utils/rc *~  utils/contigorder utils/getbounds utils/cextract utils/seqmerge utils/getlength utils/getoverlap utils/*~ utils/scorealign utils/scorecontigs mlagan.purify utils/getcontigpos utils/fa2xfa utils/Glue utils/dotplot
anchors: anchors.c skiplist.c
	$(CC) -o anchors anchors.c skiplist.c
chaos: fchaos.c thrtrie.c skiplist.c global.c translate.c mempage.c filebuffer.c
	$(CC) -o chaos fchaos.c thrtrie.c skiplist.c global.c translate.c filebuffer.c -lm -DCHAOS__FLAG
order: order.c diagmatrix.c filebuffer.c
	$(CC) -o order order.c diagmatrix.c filebuffer.c
mlagan: mlagan.c diagmatrix.c multial.c skiplist.c filebuffer.c
	$(CC) -o mlagan mlagan.c multial.c diagmatrix.c skiplist.c filebuffer.c -lm -DMULTIAL__FLAG
glocal: glocal.c glocal.h
	$(CPP) -o glocal glocal.c 
pure: mlagan.c diagmatrix.c multial.c skiplist.c filebuffer.c
	purify -cache-dir=/tmp/$(USER) $(CC) -o mlagan.purify mlagan.c multial.c diagmatrix.c skiplist.c filebuffer.c -lm -DMULTIAL__FLAG
utils/bin2mf: utils/bin2mf.c
	$(CC) -o utils/bin2mf utils/bin2mf.c
utils/bin2bl: utils/bin2bl.c
	$(CC) -o utils/bin2bl utils/bin2bl.c
utils/cextract: utils/cextract.c
	$(CC) -o utils/cextract utils/cextract.c
utils/cstat: utils/cstat.c
	$(CC) -o utils/cstat utils/cstat.c
utils/contigorder: utils/contigorder.c
	$(CC) -o utils/contigorder utils/contigorder.c
utils/getbounds: utils/getbounds.c
	$(CC) -o utils/getbounds utils/getbounds.c
utils/getcontigpos: utils/getcontigpos.c
	$(CC) -o utils/getcontigpos utils/getcontigpos.c
utils/getlength: utils/getlength.c
	$(CC) -o utils/getlength utils/getlength.c
utils/getoverlap: utils/getoverlap.c
	$(CC) -o utils/getoverlap utils/getoverlap.c
utils/rc: utils/rc.c
	$(CC) -o utils/rc utils/rc.c
utils/seqmerge: utils/seqmerge.c
	$(CC) -o utils/seqmerge utils/seqmerge.c
utils/scorealign: utils/scorealign.c
	$(CC) -o utils/scorealign utils/scorealign.c -lm
utils/scorecontigs: utils/scorecontigs.c
	$(CC) -o utils/scorecontigs utils/scorecontigs.c -lm
utils/fa2xfa: utils/fa2xfa.c
	$(CC) -o utils/fa2xfa utils/fa2xfa.c
utils/Glue: utils/Glue.cpp
	$(CPP) -o utils/Glue utils/Glue.cpp
utils/dotplot: utils/dotplot.cpp
	$(CPP) -o utils/dotplot utils/dotplot.cpp

