CC=gcc


#flags for different builds 
BASE_CFLAGS:=-Wall -std=gnu99 -mmmx -msse  -D_GNU_SOURCE 
DEBUG_CFLAGS:=-g 
FINAL_CFLAGS:= -O3 -ffast-math 

LDLIBS=-lm

CFLAGS+=$(BASE_CFLAGS) -g $(FINAL_CFLAGS) 

COMMONSOURCES= argon_init.c argon_io.c argon_step.c random.c 

SOURCES=$(COMMONSOURES) $(TARGETS:%=%.c)

TARGETS=argon argonGL argonHD_naive argonHD

%.d: %.c
	$(CC) -MM $(CFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o \1.lo $@ :,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

all: $(TARGETS) 

argon: argon.o $(COMMONSOURCES:%.c=%.o)
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) 

argonGL: argonGL.o $(COMMONSOURCES:%.c=%.o) zpr.o GL_helper.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lglut -lGL -lGLU 

argonHD_naive: argonHD_naive.o $(COMMONSOURCES:%.c=%.o) zpr.o calibration.o GL_helper.o HD_helper.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lglut -lGL -lGLU  -lHD -lHDU

argonHD: argonHD.o $(COMMONSOURCES:%.c=%.o) zpr.o calibration.o GL_helper.o HD_helper.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lglut -lGL -lGLU  -lHD -lHDU

argonHD_new: argonHD_new.o $(COMMONSOURCES:%.c=%.o) zpr.o calibration.o GL_helper.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) -lglut -lGL -lGLU  -lHD -lHDU

clean:
	rm -fr $(TARGETS) *.o *.d 


include $(SOURCES:.c=.d)
