Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gcc.mk 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # based on Makefile exported form mbed.org
  2. # see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
  3. GCC_BIN =
  4. AS = $(GCC_BIN)arm-none-eabi-as
  5. CC = $(GCC_BIN)arm-none-eabi-gcc
  6. CPP = $(GCC_BIN)arm-none-eabi-g++
  7. LD = $(GCC_BIN)arm-none-eabi-gcc
  8. OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
  9. OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
  10. SIZE = $(GCC_BIN)arm-none-eabi-size
  11. CHKSUM = $(TMK_DIR)/tool/mbed/lpc-vector-checksum
  12. CC_FLAGS += \
  13. $(CPU) \
  14. -c \
  15. -g \
  16. -fno-common \
  17. -fmessage-length=0 \
  18. -Wall \
  19. -fno-exceptions \
  20. -ffunction-sections \
  21. -fdata-sections \
  22. -fomit-frame-pointer
  23. CC_FLAGS += -MMD -MP
  24. CC_FLAGS += $(OPT_DEFS)
  25. LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs
  26. #LD_FLAGS += -u _printf_float -u _scanf_float
  27. LD_FLAGS += -Wl,-Map=$(OBJDIR)/$(PROJECT).map,--cref
  28. LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
  29. ifeq ($(DEBUG), 1)
  30. CC_FLAGS += -DDEBUG -O0
  31. else
  32. CC_FLAGS += -DNDEBUG -Os
  33. endif
  34. all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex
  35. clean:
  36. rm -f $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).elf $(OBJDIR)/$(PROJECT).hex $(OBJDIR)/$(PROJECT).map $(OBJDIR)/$(PROJECT).lst $(OBJECTS) $(DEPS)
  37. rm -fr $(OBJDIR)
  38. $(OBJDIR)/%.o: %.s
  39. mkdir -p $(@D)
  40. $(AS) $(CPU) -o $@ $<
  41. $(OBJDIR)/%.o: %.c
  42. mkdir -p $(@D)
  43. $(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
  44. $(OBJDIR)/%.o: %.cpp
  45. mkdir -p $(@D)
  46. $(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $<
  47. $(OBJDIR)/$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
  48. $(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
  49. $(SIZE) $@
  50. $(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf
  51. @$(OBJCOPY) -O binary $< $@
  52. ifneq (,$(findstring TARGET_NXP,$(CC_SYMBOLS)))
  53. @echo
  54. @echo "For NXP writing vector checksum value into $@ ..."
  55. @$(CHKSUM) $@
  56. @echo
  57. endif
  58. $(OBJDIR)/$(PROJECT).hex: $(OBJDIR)/$(PROJECT).elf
  59. @$(OBJCOPY) -O ihex $< $@
  60. $(OBJDIR)/$(PROJECT).lst: $(OBJDIR)/$(PROJECT).elf
  61. @$(OBJDUMP) -Sdh $< > $@
  62. lst: $(OBJDIR)/$(PROJECT).lst
  63. size:
  64. $(SIZE) $(OBJDIR)/$(PROJECT).elf
  65. prog: $(OBJDIR)/$(PROJECT).bin
  66. @echo "Program..."
  67. ifneq ($(shell mount | grep 'CRP DISABLD'),)
  68. umount /dev/nxpisp >/dev/null 2>&1
  69. endif
  70. dd if=$< of=/dev/nxpisp seek=4
  71. DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
  72. -include $(DEPS)