GCC = gcc
#GCCFLAGS = -g
GCCFLAGS = -g -pg -std=c99
#GCCFLAGS = -g -O3 -pg -std=c99
#LIBS = -lm
LIBS = -lm -lgslcblas -lgsl
LIBPATH = -L/pkg/gsl/1.12/lib

all: main_resample main_sample

main_resample: checksum.o alloc.o graph.o node.o sampler.o init.o myio.o sparse.o mylib.h main_resample.c
	$(GCC) $(GCCFLAGS) main_resample.c -o main_resample checksum.o alloc.o graph.o node.o sampler.o init.o myio.o sparse.o cokus.c $(LIBPATH) $(LIBS)

main_sample: checksum.o alloc.o graph.o node.o sampler.o init.o myio.o sparse.o mylib.h main_sample.c
	$(GCC) $(GCCFLAGS) main_sample.c -o main_sample checksum.o alloc.o graph.o node.o sampler.o init.o myio.o sparse.o cokus.c $(LIBPATH) $(LIBS)

eval.o: eval.c eval.h mylib.h
	$(GCC) $(GCCFLAGS) -c eval.c

checksum.o: checksum.c checksum.h mylib.h
	$(GCC) $(GCCFLAGS) -c checksum.c
	
alloc.o: alloc.c alloc.h mylib.h
	$(GCC) $(GCCFLAGS) -c alloc.c
		
graph.o: graph.c graph.h mylib.h alloc.h node.h
	$(GCC) $(GCCFLAGS) -c graph.c
	
node.o: node.c node.h alloc.h mylib.h 
	$(GCC) $(GCCFLAGS) -c node.c
	
sampler.o: sampler.c sampler.h alloc.h graph.h node.h mylib.h 
	$(GCC) $(GCCFLAGS) -c sampler.c
	
init.o: init.c init.h sampler.h mylib.h alloc.h node.h graph.h
	$(GCC) $(GCCFLAGS) -c init.c
	
myio.o: myio.c myio.h alloc.h mylib.h graph.h node.h sparse.h 
	$(GCC) $(GCCFLAGS) -c myio.c
	
sparse.o: sparse.c sparse.h mylib.h 
	$(GCC) $(GCCFLAGS) -c sparse.c
	
clean:
	rm -rf *.o main