Advertisement
Guest User

Untitled

a guest
Apr 7th, 2015
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.88 KB | None | 0 0
  1. ###############################################################################
  2. # Makefile for the project prog
  3. ###############################################################################
  4.  
  5. ## General Flags
  6. PROJECT = prog
  7. MCU = atmega128
  8. TARGET = prog.elf
  9. CC = avr-gcc
  10.  
  11. CPP = avr-g++
  12.  
  13. ## Options common to compile, link and assembly rules
  14. COMMON = -mmcu=$(MCU)
  15.  
  16. ## Compile options common for all C compilation units.
  17. CFLAGS = $(COMMON)
  18. CFLAGS += -Wall -gdwarf-2 -std=gnu99             -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
  19. CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
  20.  
  21. ## Assembly specific flags
  22. ASMFLAGS = $(COMMON)
  23. ASMFLAGS += $(CFLAGS)
  24. ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
  25.  
  26. ## Linker flags
  27. LDFLAGS = $(COMMON)
  28. LDFLAGS +=  -Wl,-Map=prog.map
  29.  
  30.  
  31. ## Intel Hex file production flags
  32. HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
  33.  
  34. HEX_EEPROM_FLAGS = -j .eeprom
  35. HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
  36. HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
  37.  
  38.  
  39. ## Objects that must be built in order to link
  40. OBJECTS = prog.o bus.o
  41.  
  42. ## Objects explicitly added by the user
  43. LINKONLYOBJECTS =
  44.  
  45. ## Build
  46. all: $(TARGET) prog.hex prog.eep prog.lss## Compile
  47. prog.o: ../prog.c
  48.     $(CC) $(INCLUDES) $(CFLAGS) -c  $<
  49.  
  50. bus.o: ../bus.c
  51.     $(CC) $(INCLUDES) $(CFLAGS) -c  $<
  52.  
  53. ##Link
  54. $(TARGET): $(OBJECTS)
  55.      $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
  56.  
  57. %.hex: $(TARGET)
  58.     avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@
  59.  
  60. %.eep: $(TARGET)
  61.     -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
  62.  
  63. %.lss: $(TARGET)
  64.     avr-objdump -h -S $< > $@
  65.  
  66. ## Clean target
  67. .PHONY: clean
  68. clean:
  69.     -rm -rf $(OBJECTS) prog.elf dep/* prog.hex prog.eep prog.lss prog.map
  70.  
  71.  
  72. ## Other dependencies
  73. -include $(shell mkdir dep 2>NUL) $(wildcard dep/*)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement