25 lines
767 B
Makefile
25 lines
767 B
Makefile
|
|
CFLAGS := -mmacosx-version-min=10.12 -fno-vectorize -fno-slp-vectorize
|
||
|
|
|
||
|
|
parameters := O0 O1 O2 O3
|
||
|
|
|
||
|
|
.PHONY: all
|
||
|
|
all: factorialO0 factorialO1 factorialO2 factorialO3
|
||
|
|
|
||
|
|
LIBPATH := /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
|
||
|
|
|
||
|
|
|
||
|
|
define COMPILE_WITH_OPT
|
||
|
|
$(info DEFINING $1)
|
||
|
|
factorial$(1): factorial64.c
|
||
|
|
gcc $$(CFLAGS) -$(1) -emit-llvm -S -o factorial-$(1).ll factorial.c
|
||
|
|
gcc $$(CFLAGS) -$(1) -S -o factorial-$(1).s factorial-$(1).ll
|
||
|
|
as -o factorial-$(1).o factorial-$(1).s
|
||
|
|
ld -macosx_version_min 12.0 -L $(LIBPATH) -lSystem -o factorial-$(1) factorial-$(1).o
|
||
|
|
endef
|
||
|
|
|
||
|
|
$(foreach P, $(parameters), $(eval $(call COMPILE_WITH_OPT,$(P))))
|
||
|
|
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -rf a.out factorial*.s factorial*.ll factorial*.o factorial-O?
|