Makefile 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. GIT_SHA=$(shell git rev-parse --short HEAD)
  2. DISABLED_WARNINGS=-Wno-switch -Wno-macro-redefined -Wno-unused-value
  3. LDFLAGS=-pthread -ldl -lm -lstdc++
  4. CFLAGS=-std=c++14 -DGIT_SHA=\"$(GIT_SHA)\"
  5. CFLAGS:=$(CFLAGS) -DODIN_VERSION_RAW=\"dev-$(shell date +"%Y-%m")\"
  6. CC=clang
  7. OS=$(shell uname)
  8. ifeq ($(OS), Darwin)
  9. LLVM_CONFIG=llvm-config
  10. ifneq ($(shell llvm-config --version | grep '^11\.'),)
  11. LLVM_CONFIG=llvm-config
  12. else
  13. $(error "Requirement: llvm-config must be version 11")
  14. endif
  15. LDFLAGS:=$(LDFLAGS) -liconv
  16. CFLAGS:=$(CFLAGS) $(shell $(LLVM_CONFIG) --cxxflags --ldflags)
  17. LDFLAGS:=$(LDFLAGS) -lLLVM-C
  18. endif
  19. ifeq ($(OS), Linux)
  20. LLVM_CONFIG=llvm-config-11
  21. ifneq ($(shell which llvm-config-11 2>/dev/null),)
  22. LLVM_CONFIG=llvm-config-11
  23. else
  24. ifneq ($(shell llvm-config --version | grep '^11\.'),)
  25. LLVM_CONFIG=llvm-config
  26. else
  27. $(error "Requirement: llvm-config must be version 11")
  28. endif
  29. endif
  30. CFLAGS:=$(CFLAGS) $(shell $(LLVM_CONFIG) --cxxflags --ldflags)
  31. LDFLAGS:=$(LDFLAGS) $(shell $(LLVM_CONFIG) --libs core native --system-libs)
  32. endif
  33. all: debug demo
  34. demo:
  35. ./odin run examples/demo/demo.odin
  36. debug:
  37. $(CC) src/main.cpp src/libtommath.cpp $(DISABLED_WARNINGS) $(CFLAGS) -g $(LDFLAGS) -o odin
  38. release:
  39. $(CC) src/main.cpp src/libtommath.cpp $(DISABLED_WARNINGS) $(CFLAGS) -O3 $(LDFLAGS) -o odin
  40. release_native:
  41. $(CC) src/main.cpp src/libtommath.cpp $(DISABLED_WARNINGS) $(CFLAGS) -O3 -march=native $(LDFLAGS) -o odin
  42. nightly:
  43. $(CC) src/main.cpp src/libtommath.cpp $(DISABLED_WARNINGS) $(CFLAGS) -DNIGHTLY -O3 $(LDFLAGS) -o odin