BINPATH = ../bin
HPATH = /usr/local/opt/ViennaRNA2/include/ViennaRNA/
LPATH = /usr/local/opt/ViennaRNA2/lib/libRNA.a

# Targets
all:		$(BINPATH)/PETfold $(BINPATH)/drawdot $(BINPATH)/drawphyl
petfold:    	$(BINPATH)/PETfold
pfold: 		$(BINPATH)/drawdot $(BINPATH)/drawphyl

$(BINPATH)/PETfold:	petfold.c file.o llist.o col.o grammar.o edouble.o matrix.o align.o phyl.o optimize.o inout.o newcolprob.o search.o
			gcc -Wall -o $(BINPATH)/PETfold petfold.c petfoldlibs.c thermodynamic.c evolutionary.c file.o llist.o col.o grammar.o edouble.o matrix.o align.o phyl.o optimize.o inout.o newcolprob.o search.o -I$(HPATH) $(LPATH) -lm -fopenmp

$(BINPATH)/drawphyl:	drawphyl.c file.o llist.o phyl.o grammar.o optimize.o col.o align.o matrix.o edouble.o
			gcc -O3 -o $(BINPATH)/drawphyl drawphyl.c file.o llist.o phyl.o grammar.o optimize.o col.o align.o matrix.o edouble.o -lm

$(BINPATH)/drawdot:	drawdot.c file.o llist.o
			gcc -O3 -o $(BINPATH)/drawdot drawdot.c file.o llist.o


align.o:	align.c align.h file.o
		gcc -O3 -c align.c

col.o:		col.c col.h file.o
		gcc -O3 -c col.c

edouble.o:	edouble.c edouble.h file.o
		gcc -O3 -c edouble.c

file.o: 	file.c file.h
		gcc -O3 -c file.c

grammar.o:	grammar.c grammar.h
		gcc -O3 -c grammar.c

inout.o:	inout.c inout.h
		gcc -O3 -c inout.c
		 
llist.o: 	llist.c llist.h
		gcc -O3 -c llist.c

matrix.o:	matrix.c matrix.h file.o
		gcc -O3 -c matrix.c

newcolprob.o:	newcolprob.c newcolprob.h phyl.o llist.o col.o matrix.o edouble.o search.o
		gcc -O3 -c newcolprob.c

optimize.o:	optimize.c optimize.h
		gcc -O3 -c optimize.c

phyl.o:		phyl.c phyl.h
		gcc -O3 -c phyl.c

search.o:	search.c search.h
		gcc -O3 -c search.c

clean:
		rm -f *.o $(BINPATH)/PETfold $(BINPATH)/drawdot $(BINPATH)/drawphyl
