# makefile for gibbs
CC = gcc
#CC = acc
# for profiles 
#CFLAGS = -p -g $(INCDIRS) $(LIBDIRS)
#CFLAGS = -g $(INCDIRS) $(LIBDIRS)
#CFLAGS = -p -O2 $(INCDIRS) $(LIBDIRS)
CFLAGS = -O2 $(INCDIRS) $(LIBDIRS) -fsigned-char
BIN = ${HOME}/bin
INCDIRS = -I. 
LIBS = -lm
STDINC = stdinc.h

OBJS = gibbs.o main.o afnio.o alphabet.o dheap.o data.o random.o \
sequence.o model.o sites.o order.o finalsites.o metropolis.o olist.o

INC = gibbs.h stdinc.h afnio.h alphabet.h dheap.h random.h \
data.h sequence.h model.h sites.h order.h olist.h

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

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

pure: gibbs.h ${INC} ${OBJS}
	purify ${CC} ${CFLAGS} -o gibbs ${OBJS} ${LIBS}

afnio.o: afnio.h $(STDINC)
random.o: random.h $(STDINC)
alphabet.o: alphabet.h $(STDINC)
dheap.o: dheap.h $(STDINC)
sequence.o: alphabet.h sequence.h dheap.h $(STDINC)
model.o: model.h alphabet.h $(STDINC)
order.o: order.h $(STDINC)
sites.o: sites.h olist.h $(STDINC)
olist.o: olist.h $(STDINC)
data.o: alphabet.h sequence.h data.h $(STDINC)
finalsites.o: ${INC}
gibbs.o: ${INC}
metropolis.o: ${INC} 
main.o: ${INC} 

clean: 
	@ \rm *.o 

