# makefile for fgibbs
#CC = cc
#CC = cc -signed
#CC = cc -signed -ansi -fullwarn
CC = gcc
#CC = acc
CFLAGS = -O 
INCDIRS = -I. 
LIBS = -lm -ll
STDINC = stdinc.h residues.h

OBJS = main.o gibbs.o fmodel.o betaprior.o mtfsamp.o sitesamp.o \
	columns.o options.o map.o init.o shift.o wilcoxon.o \
	sites.o dheap.o mheap.o seqset.o histogram.o probability.o\
	order.o random.o afnio.o alphabet.o olist.o sequence.o \
	karlin.o smatrix.o

INC = gibbs.h fmodel.h betaprior.h sites.h dheap.h mheap.h seqset.h \
	histogram.h probability.h order.h random.h afnio.h alphabet.h \
	olist.h sequence.h karlin.h smatrix.h

POBJS = purge.o pmain.o dheap.o seqset.o afnio.o alphabet.o mlist.o \
	sequence.o gblast.o pairaln.o block.o mheap.o karlin.o random.o

PINC = purge.h dheap.h seqset.h afnio.h alphabet.h mlist.h sequence.h \
	gblast.h pairaln.h block.h mheap.h karlin.h random.h

SOBJS = smain.o afnio.o histogram.o probability.o sequence.o smatrix.o \
	smodel.o mheap.o sites.o alphabet.o karlin.o dheap.o scan.o \
	seqset.o random.o olist.o 

SINC = afnio.h histogram.h probability.h sequence.h smatrix.h smodel.h \
	mheap.h sites.h residues.h alphabet.h karlin.h dheap.h scan.h \
	seqset.h random.h olist.h

all: gibbs purge scan

.c.o: 
	${CC} ${CFLAGS} -c $*.c

gibbs: ${INC} ${OBJS}
	${CC} ${CFLAGS} -o gibbs ${OBJS} ${LIBS}
	\mv gibbs ..

purge: ${PINC} ${POBJS}
	${CC} ${CFLAGS} -o purge ${POBJS} ${LIBS}
	\mv purge ..

scan: ${SINC} ${SOBJS}
	${CC} ${CFLAGS} -o scan ${SOBJS} ${LIBS}
	\mv scan ..

gibbs.o: ${INC} 
mtfsamp.o: ${INC} 
sitesamp.o: ${INC} 
columns.o: ${INC} 
options.o: ${INC} 
init.o: ${INC} 
map.o: ${INC} 
shift.o: ${INC} 
wilcoxon.o: ${INC} 
segibbs.o: ${INC} 
fmodel.o: fmodel.h $(INC)
betaprior.o: betaprior.h $(INC)

afnio.o: afnio.h $(STDINC)
alphabet.o: alphabet.h $(STDINC)
dheap.o: dheap.h $(STDINC)
gblast.o: gblast.h random.h alphabet.h dheap.h sequence.h mlist.h \
	afnio.h 
histogram.o: histogram.h $(STDINC)
karlin.o: alphabet.h karlin.h $(STDINC)
model.o: model.h alphabet.h $(STDINC)
mlist.o: mlist.h $(STDINC)
mheap.o: dheap.h mheap.h $(STDINC)
olist.o: olist.h $(STDINC)
order.o: order.h $(STDINC)
pairaln.o: pairaln.h alphabet.h sequence.h mheap.h $(STDINC)
probability.o: probability.h $(STDINC)
purge.o: $(PINC) $(STDINC)
random.o: random.h 
seqset.o: alphabet.h sequence.h seqset.h $(STDINC)
sequence.o: alphabet.h sequence.h dheap.h $(STDINC)
sites.o: sites.h random.h dheap.h olist.h seqset.h $(STDINC)
smatrix.o: probability.h alphabet.h smatrix.h $(STDINC)
smodel.o: smatrix.h smodel.h alphabet.h $(STDINC)
swaln.o: swaln.h alphabet.h sequence.h $(STDINC)

main.o: ${INC} 

clean: 
	@ \rm *.o 

