toolchain.mk 819 B

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