CC=gcc
CFLAGS= -Wall -O6
LIBS= -lm #-DDMALLOC -ldmalloc -g

all: main graphclustA graphclustB graphclustA_S graphclustB_S

main: main.c
	$(CC) $(CFLAGS) main.c -o graphclust_main
graphclustA: Worst-Tree1.08A.o distancesA.o loadA.o BuildA.o
	$(CC) $(CFLAGS) Worst-Tree1.08A.o distancesA.o loadA.o BuildA.o -o graphclustA $(LIBS)
graphclustB: Worst-Tree1.08B.o distancesB.o loadB.o BuildB.o
	$(CC) $(CFLAGS) Worst-Tree1.08B.o distancesB.o loadB.o BuildB.o -o graphclustB $(LIBS)
graphclustA_S: Worst-Tree1.08A_S.o distancesA_S.o loadA_S.o BuildA_S.o
	$(CC) $(CFLAGS) Worst-Tree1.08A_S.o distancesA_S.o loadA_S.o BuildA_S.o -o graphclustA_S $(LIBS)
graphclustB_S: Worst-Tree1.08B_S.o distancesB_S.o loadB_S.o BuildB_S.o
	$(CC) $(CFLAGS) Worst-Tree1.08B_S.o distancesB_S.o loadB_S.o BuildB_S.o -o graphclustB_S $(LIBS)
	mv graphclustA ../
	mv graphclustB ../
	mv graphclustA_S ../
	mv graphclustB_S ../
	mv graphclust_main ../
Worst-Tree1.08A.o: Worst-Tree1.08A.c structA.h functionA.h
	$(CC) $(CFLAGS) -c Worst-Tree1.08A.c 
distancesA.o: distancesA.c structA.h functionA.h
	$(CC) $(CFLAGS) -c distancesA.c 
loadA.o: loadA.c structA.h functionA.h
	$(CC) $(CFLAGS) -c loadA.c
BuildA.o: BuildA.c structA.h functionA.h
	$(CC) $(CFLAGS) -c BuildA.c
Worst-Tree1.08B.o: Worst-Tree1.08B.c structB.h functionB.h
	$(CC) $(CFLAGS) -c Worst-Tree1.08B.c
distancesB.o: distancesB.c structB.h functionB.h
	$(CC) $(CFLAGS) -c distancesB.c
loadB.o: loadB.c structB.h functionB.h
	$(CC) $(CFLAGS) -c loadB.c
BuildB.o: BuildB.c structB.h functionB.h
	$(CC) $(CFLAGS) -c BuildB.c
Worst-Tree1.08A_S.o: Worst-Tree1.08A_S.c structA_S.h functionA_S.h
	$(CC) $(CFLAGS) -c Worst-Tree1.08A_S.c 
distancesA_S.o: distancesA_S.c structA_S.h functionA_S.h
	$(CC) $(CFLAGS) -c distancesA_S.c 
loadA_S.o: loadA_S.c structA_S.h functionA_S.h
	$(CC) $(CFLAGS) -c loadA_S.c
BuildA_S.o: BuildA_S.c structA_S.h functionA_S.h
	$(CC) $(CFLAGS) -c BuildA_S.c
Worst-Tree1.08B_S.o: Worst-Tree1.08B_S.c structB_S.h functionB_S.h
	$(CC) $(CFLAGS) -c Worst-Tree1.08B_S.c
distancesB_S.o: distancesB_S.c structB_S.h functionB_S.h
	$(CC) $(CFLAGS) -c distancesB_S.c
loadB_S.o: loadB_S.c structB_S.h functionB_S.h
	$(CC) $(CFLAGS) -c loadB_S.c
BuildB_S.o: BuildB_S.c structB_S.h functionB_S.h
	$(CC) $(CFLAGS) -c BuildB_S.c

clean:
	rm -f *.o graphclustA graphClustB graphClustA_S graphClustB_S
clean_old:
	rm -f *~
