HEADERS=triangle.h linalg.h queue.h

#SPECIAL_OPTIONS=-O0 -g -D_DEBUG
#SPECIAL_OPTIONS=-O3 -pg -funroll-loops -fno-inline
SPECIAL_OPTIONS=-O3 -flto -funroll-loops -Winline
#SPECIAL_OPTIONS=

OPTIONS=-m64 -march=native -mtune=native -std=gnu99 -D_GNU_SOURCE $(SPECIAL_OPTIONS)

all: hyperbolic

hyperbolic: hyperbolic.o triangle.o linalg.o
	gcc $(OPTIONS) -o hyperbolic hyperbolic.o triangle.o linalg.o -lm -lgsl -lcblas

linalg.o: linalg.c $(HEADERS)
	gcc $(OPTIONS) -c linalg.c

triangle.o: triangle.c $(HEADERS)
	gcc $(OPTIONS) -c triangle.c

hyperbolic.o: hyperbolic.c $(HEADERS)
	gcc $(OPTIONS) -c hyperbolic.c

clean:
	rm -f hyperbolic triangle.o linalg.o hyperbolic.o