toolchain.mk 913 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. CC = $(PREFIX)gcc -std=gnu17
  10. CPP = $(PREFIX)g++ -std=gnu++17
  11. LD = $(PREFIX)g++
  12. AS = $(PREFIX)gcc -x assembler-with-cpp
  13. CP = $(PREFIX)objcopy
  14. SZ = $(PREFIX)size
  15. HEX = $(CP) -O ihex
  16. BIN = $(CP) -O binary -S
  17. ifeq ($(OS), Darwin)
  18. GDB = gdb
  19. else
  20. GDB = $(PREFIX)gdb-py
  21. endif
  22. DEBUG ?= 1
  23. COMPACT ?= 0
  24. ifeq ($(DEBUG), 1)
  25. CFLAGS += -DFURI_DEBUG -DNDEBUG -Og -g
  26. else ifeq ($(COMPACT), 1)
  27. CFLAGS += -DFURI_NDEBUG -DNDEBUG -Os -g
  28. else
  29. CFLAGS += -DFURI_NDEBUG -DNDEBUG -Og -g
  30. endif
  31. CFLAGS += -fdata-sections -ffunction-sections -fno-math-errno -fstack-usage -MMD -MP -MF"$(@:%.o=%.d)"
  32. CPPFLAGS += -fno-threadsafe-statics -fno-use-cxa-atexit -fno-exceptions -fno-rtti
  33. LDFLAGS += -Wl,-Map=$(OBJ_DIR)/$(PROJECT).map,--cref -Wl,--gc-sections -Wl,--undefined=uxTopUsedPriority -n