Makefile 985 B

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