Makefile
上传用户:ayjyok
上传日期:2020-04-12
资源大小:27k
文件大小:2k
源码类别:

多显示器编程

开发平台:

C/C++

  1. ###############################################################################
  2. # Makefile for the project text
  3. ###############################################################################
  4. ## General Flags
  5. PROJECT = text
  6. MCU = atmega16
  7. TARGET = text.elf
  8. CC = avr-gcc.exe
  9. ## Options common to compile, link and assembly rules
  10. COMMON = -mmcu=$(MCU)
  11. ## Compile options common for all C compilation units.
  12. CFLAGS = $(COMMON)
  13. CFLAGS += -Wall -gdwarf-2 -O0
  14. CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d 
  15. ## Assembly specific flags
  16. ASMFLAGS = $(COMMON)
  17. ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
  18. ## Linker flags
  19. LDFLAGS = $(COMMON)
  20. LDFLAGS += 
  21. ## Intel Hex file production flags
  22. HEX_FLASH_FLAGS = -R .eeprom
  23. HEX_EEPROM_FLAGS = -j .eeprom
  24. HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
  25. HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0
  26. ## Objects that must be built in order to link
  27. OBJECTS = text.o 
  28. ## Objects explicitly added by the user
  29. LINKONLYOBJECTS = 
  30. ## Build
  31. all: $(TARGET) text.hex text.eep size
  32. ## Compile
  33. text.o: ../text.c
  34. $(CC) $(INCLUDES) $(CFLAGS) -c  $<
  35. ##Link
  36. $(TARGET): $(OBJECTS)
  37.  $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
  38. %.hex: $(TARGET)
  39. avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@
  40. %.eep: $(TARGET)
  41. avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@
  42. %.lss: $(TARGET)
  43. avr-objdump -h -S $< > $@
  44. size: ${TARGET}
  45. @echo
  46. @avr-size -C --mcu=${MCU} ${TARGET}
  47. ## Clean target
  48. .PHONY: clean
  49. clean:
  50. -rm -rf $(OBJECTS) text.elf dep/* text.hex text.eep
  51. ## Other dependencies
  52. -include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)