CC = gcc
CFLAGS = -O3 -march=native -std=c99 -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes

all: test_float test_double fast_copy.o fht.o

OBJ := dumb_fht.o fast_copy.o fht.o

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

test_%: test_%.c $(OBJ)
	$(CC) $< $(OBJ) -o $@ $(CFLAGS)

test_double_header_only: test_double_header_only.c
	$(CC) $< -o $@ $(CFLAGS)

test_float_header_only: test_double_header_only.c
	$(CC) $< -o $@ $(CFLAGS)

clean:
	rm -f test_float test_double test_float_header_only test_double_header_only $(OBJ)
