54 lines
956 B
Makefile
54 lines
956 B
Makefile
TARGET := test_auto_vectorize
|
|
|
|
OBJS := main.o test1.o test2.o test3.o
|
|
|
|
CC := clang
|
|
|
|
CFLAGS := -O3 -std=c11 -Wall -D_POSIX_C_SOURCE=200809L
|
|
|
|
ifeq ($(ASSEMBLE),1)
|
|
CFLAGS += -S
|
|
endif
|
|
ifeq ($(VECTORIZE),1)
|
|
CFLAGS += -Rpass=loop-vectorize -Rpass-missed=loop-vectorize -Rpass-analysis=loop-vectorize
|
|
SUFFIX := .vec
|
|
else
|
|
CFLAGS += -fno-vectorize
|
|
SUFFIX := .novec
|
|
endif
|
|
ifeq ($(RESTRICT),1)
|
|
SUFFIX := $(SUFFIX).restr
|
|
endif
|
|
ifeq ($(ALIGN),1)
|
|
SUFFIX := $(SUFFIX).align
|
|
endif
|
|
ifeq ($(AVX2),1)
|
|
CFLAGS += -mavx2
|
|
SUFFIX := $(SUFFIX).avx2
|
|
endif
|
|
ifeq ($(FASTMATH),1)
|
|
CFLAGS += -ffast-math
|
|
SUFFIX := $(SUFFIX).fmath
|
|
endif
|
|
|
|
all: $(TARGET)
|
|
|
|
%.o: %.c test.h
|
|
ifeq ($(ASSEMBLE),1)
|
|
mkdir -p "./assembly"
|
|
$(CC) $(CFLAGS) -c $< -o assembly/$(basename $<)$(SUFFIX).s
|
|
else
|
|
$(CC) $(CFLAGS) -c $<
|
|
endif
|
|
|
|
$(TARGET): $(OBJS)
|
|
ifneq ($(ASSEMBLE),1)
|
|
$(CC) $(CFLAGS) $(OBJS) -o $@
|
|
endif
|
|
|
|
clean:
|
|
$(RM) *.o *.s $(TARGET) *~
|
|
|
|
cleanall:
|
|
$(RM) -r *.o *.s $(TARGET) *~ assembly
|