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: singular_values

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

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

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

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

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