CFLAGS += -g -O2 -std=c99 -I../include

HEADERS = ../include/vec/vec.h \
	../include/vec/impl/ppc/altivec.h \
	../include/vec/impl/x86/avx2.h \
	../include/vec/impl/x86/avx512f.h \
	../include/vec/impl/x86/mmx.h \
	../include/vec/impl/x86/sse2.h \
	../include/vec/impl/x86/sse41.h \
	../include/vec/impl/cpu.h \
	../include/vec/impl/fallback.h \
	../include/vec/impl/generic.h
BINS = test-generic test-host
OBJS = vec-generic.o vec-host.o test.o

.PHONY: all clean test

all: $(BINS)

vec-generic.o: ../src/vec.c
	$(CC) $(CFLAGS) -DVEC_SUPPRESS_HW=1 -c -o $@ $<

vec-host.o: ../src/vec.c
	$(CC) $(CFLAGS) -c -o $@ $<

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

test-generic: vec-generic.o test.o
	$(CC) $(LDFLAGS) -o $@ $^

test-host: vec-host.o test.o
	$(CC) $(LDFLAGS) -o $@ $^

clean:
	$(RM) $(BINS) $(OBJS)

test: clean $(BINS)
	./test-generic
	./test-host
