toolchain.mk 969 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. OS := $(shell uname -s)
  2. # Compiller
  3. ifeq ($(TOOLCHAIN), arm)
  4. PREFIX = arm-none-eabi-
  5. ifdef GCC_PATH
  6. PREFIX := $(GCC_PATH)/$(PREFIX)
  7. endif
  8. endif
  9. CCACHE := $(shell which ccache)
  10. CC = $(CCACHE) $(PREFIX)gcc -std=gnu17
  11. CPP = $(CCACHE) $(PREFIX)g++ -std=gnu++17
  12. LD = $(PREFIX)g++
  13. AS = $(PREFIX)gcc -x assembler-with-cpp
  14. CP = $(PREFIX)objcopy
  15. SZ = $(PREFIX)size
  16. HEX = $(CP) -O ihex
  17. BIN = $(CP) -O binary -S
  18. ifeq ($(OS), Darwin)
  19. GDB = gdb
  20. else
  21. GDB = $(PREFIX)gdb-py
  22. endif
  23. DEBUG ?= 1
  24. COMPACT ?= 0
  25. ifeq ($(DEBUG), 1)
  26. CFLAGS += -DFURI_DEBUG -DNDEBUG -Og -g
  27. else ifeq ($(COMPACT), 1)
  28. CFLAGS += -DFURI_NDEBUG -DNDEBUG -Os -g
  29. else
  30. CFLAGS += -DFURI_NDEBUG -DNDEBUG -Og -g
  31. endif
  32. CFLAGS += -fdata-sections -ffunction-sections -fno-math-errno -fstack-usage -MMD -MP -MF "$(@:%.o=%.d)"
  33. CPPFLAGS += -fno-threadsafe-statics -fno-use-cxa-atexit -fno-exceptions -fno-rtti
  34. LDFLAGS += -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority -n