# This is the Makefile for my area-interaction coupling from the 
# past algorithm.  My first ever makefile, so it's a bit basic!
# A great intro to 'make' is at 
# http://www.delorie.com/djgpp/doc/ug/larger/makefiles.html

USER = magka
CC = gcc
OUTFILE1 = testk
OUTFILE2 = tork
OUTFILE3 = testmipd
OUTFILE4 = tormipd
OUTFILE5 = testg
OUTFILE6 = torg
OUTFILE7 = testf
OUTFILE8 = torf
OUTFILE9 = tort
OBJECTS = readpts.o fgetword.o dist.o
OBJECTS1 = testk.o k_est.o $(OBJECTS)
OBJECTS2 = tork.o k_est.o $(OBJECTS)
OBJECTS3 = testmipd.o minint.o $(OBJECTS)
OBJECTS4 = tormipd.o minint.o $(OBJECTS)
OBJECTS5 = testg.o g_est.o $(OBJECTS)
OBJECTS6 = torg.o g_est.o $(OBJECTS)
OBJECTS7 = testf.o rand41.o f_est.o $(OBJECTS)
OBJECTS8 = torf.o rand41.o f_est.o $(OBJECTS)
OBJECTS9 = tort.o t_est.o $(OBJECTS)
SOURCES = readpts.c fgetword.c dist.c
SOURCES1 = testk.c k_est.c $(SOURCES)
SOURCES2 = tork.c k_est.c $(SOURCES)
SOURCES3 = testmipd.c minint.c $(SOURCES)
SOURCES4 = tormipd.c minint.c $(SOURCES)
SOURCES5 = testg.c g_est.c $(SOURCES)
SOURCES6 = torg.c g_est.c $(SOURCES)
SOURCES7 = testf.c rand41.c f_est.c $(SOURCES)
SOURCES8 = torf.c rand41.c f_est.c $(SOURCES)
SOURCES9 = tort.c t_est.c $(SOURCES)
HEADERS = test.h readpts.h fgetword.h dist.h
HEADERS1 = k_est.h $(HEADERS)
HEADERS2 = $(HEADERS1)
HEADERS3 = minint.h $(HEADERS)
HEADERS4 = $(HEADERS3)
HEADERS5 = g_est.h $(HEADERS)
HEADERS6 = $(HEADERS5)
HEADERS7 = f_est.h $(HEADERS)
HEADERS8 = $(HEADERS7)
HEADERS9 = t_est.h $(HEADERS)
CFLAGS = -march=i686 -malign-double -O2 -ffast-math -Wall -I$(HPATH)
LOADLIBES = -lm
VPATH = ../random:../tree
HPATH = /home/$(USER)/Cfiles/include

$(OUTFILE1) : $(OBJECTS1) $(HEADERS1) Makefile
	$(CC) $(CFLAGS) $(OBJECTS1) -o $(OUTFILE1) $(LOADLIBES)

$(OUTFILE2) : $(OBJECTS2) $(HEADERS2) Makefile
	$(CC) $(CFLAGS) $(OBJECTS2) -o $(OUTFILE2) $(LOADLIBES)

$(OUTFILE3) : $(OBJECTS3) $(HEADERS3) Makefile
	$(CC) $(CFLAGS) $(OBJECTS3) -o $(OUTFILE3) $(LOADLIBES)

$(OUTFILE4) : $(OBJECTS4) $(HEADERS4) Makefile
	$(CC) $(CFLAGS) $(OBJECTS4) -o $(OUTFILE4) $(LOADLIBES)

$(OUTFILE5) : $(OBJECTS5) $(HEADERS5) Makefile
	$(CC) $(CFLAGS) $(OBJECTS5) -o $(OUTFILE5) $(LOADLIBES)

$(OUTFILE6) : $(OBJECTS6) $(HEADERS6) Makefile
	$(CC) $(CFLAGS) $(OBJECTS6) -o $(OUTFILE6) $(LOADLIBES)

$(OUTFILE7) : $(OBJECTS7) $(HEADERS7) Makefile
	$(CC) $(CFLAGS) $(OBJECTS7) -o $(OUTFILE7) $(LOADLIBES)

$(OUTFILE8) : $(OBJECTS8) $(HEADERS8) Makefile
	$(CC) $(CFLAGS) $(OBJECTS8) -o $(OUTFILE8) $(LOADLIBES)

$(OUTFILE9) : $(OBJECTS9) $(HEADERS9) Makefile
	$(CC) $(CFLAGS) $(OBJECTS9) -o $(OUTFILE9) $(LOADLIBES)

%.o : %.c %.h
	$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

.PHONY : clean1 clean2 cleanall
clean1 :
	rm $(OBJECTS1) $(OUTFILE1)

clean2 :
	rm $(OBJECTS2) $(OUTFILE2)

cleanall :
	rm *.o $(OUTFILE1) $(OUTFILE2) $(OUTFILE3) $(OUTFILE4) $(OUTFILE5) $(OUTFILE6) $(OUTFILE7) $(OUTFILE8) $(OUTFILE9)

.PHONY : all
all : $(OUTFILE1) $(OUTFILE2) $(OUTFILE3) $(OUTFILE4) $(OUTFILE5) $(OUTFILE6) $(OUTFILE7) $(OUTFILE8) $(OUTFILE9)
