Makefile raw
1 .PHONY: all clean
2
3 CFLAGS := -mavx
4 CFLAGS += -mavx2
5 CFLAGS += -mno-bmi
6 CFLAGS += -mno-red-zone
7 CFLAGS += -fno-asynchronous-unwind-tables
8 CFLAGS += -fno-stack-protector
9 CFLAGS += -fno-exceptions
10 CFLAGS += -fno-builtin
11 CFLAGS += -fno-rtti
12 CFLAGS += -nostdlib
13 CFLAGS += -O3
14
15 NATIVE_ASM := $(wildcard native/*.S)
16 NATIVE_SRC := $(wildcard native/*.h)
17 NATIVE_SRC += $(wildcard native/*.c)
18
19 all: native_amd64.s
20
21 clean:
22 rm -vf native_text_amd64.go native_subr_amd64.go output/*.s
23
24 native_amd64.s: ${NATIVE_SRC} ${NATIVE_ASM} native_amd64.go
25 mkdir -p output
26 clang ${CFLAGS} -S -o output/native.s native/native.c
27 python3 tools/asm2asm/asm2asm.py -r native_amd64.go output/native.s ${NATIVE_ASM}
28 awk '{gsub(/Text__native_entry__/, "text__native_entry__")}1' native_text_amd64.go > native_text_amd64.go.tmp && mv native_text_amd64.go.tmp native_text_amd64.go
29 awk '{gsub(/Funcs/, "funcs")}1' native_subr_amd64.go > native_subr_amd64.go.tmp && mv native_subr_amd64.go.tmp native_subr_amd64.go
30