145 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
PRG            = demo
 | 
						|
OBJ            = demo.o
 | 
						|
#MCU_TARGET     = at90s2313
 | 
						|
#MCU_TARGET     = at90s2333
 | 
						|
#MCU_TARGET     = at90s4414
 | 
						|
#MCU_TARGET     = at90s4433
 | 
						|
#MCU_TARGET     = at90s4434
 | 
						|
#MCU_TARGET     = at90s8515
 | 
						|
#MCU_TARGET     = at90s8535
 | 
						|
#MCU_TARGET     = atmega128
 | 
						|
#MCU_TARGET     = atmega1280
 | 
						|
#MCU_TARGET     = atmega1281
 | 
						|
#MCU_TARGET     = atmega1284p
 | 
						|
#MCU_TARGET     = atmega16
 | 
						|
#MCU_TARGET     = atmega163
 | 
						|
#MCU_TARGET     = atmega164p
 | 
						|
#MCU_TARGET     = atmega165
 | 
						|
#MCU_TARGET     = atmega165p
 | 
						|
#MCU_TARGET     = atmega168
 | 
						|
#MCU_TARGET     = atmega169
 | 
						|
#MCU_TARGET     = atmega169p
 | 
						|
#MCU_TARGET     = atmega2560
 | 
						|
#MCU_TARGET     = atmega2561
 | 
						|
#MCU_TARGET     = atmega32
 | 
						|
#MCU_TARGET     = atmega324p
 | 
						|
#MCU_TARGET     = atmega325
 | 
						|
#MCU_TARGET     = atmega3250
 | 
						|
#MCU_TARGET     = atmega329
 | 
						|
#MCU_TARGET     = atmega3290
 | 
						|
#MCU_TARGET     = atmega48
 | 
						|
#MCU_TARGET     = atmega64
 | 
						|
#MCU_TARGET     = atmega640
 | 
						|
#MCU_TARGET     = atmega644
 | 
						|
#MCU_TARGET     = atmega644p
 | 
						|
#MCU_TARGET     = atmega645
 | 
						|
#MCU_TARGET     = atmega6450
 | 
						|
#MCU_TARGET     = atmega649
 | 
						|
#MCU_TARGET     = atmega6490
 | 
						|
MCU_TARGET     = atmega8
 | 
						|
#MCU_TARGET     = atmega8515
 | 
						|
#MCU_TARGET     = atmega8535
 | 
						|
#MCU_TARGET     = atmega88
 | 
						|
#MCU_TARGET     = attiny2313
 | 
						|
#MCU_TARGET     = attiny24
 | 
						|
#MCU_TARGET     = attiny25
 | 
						|
#MCU_TARGET     = attiny26
 | 
						|
#MCU_TARGET     = attiny261
 | 
						|
#MCU_TARGET     = attiny44
 | 
						|
#MCU_TARGET     = attiny45
 | 
						|
#MCU_TARGET     = attiny461
 | 
						|
#MCU_TARGET     = attiny84
 | 
						|
#MCU_TARGET     = attiny85
 | 
						|
#MCU_TARGET     = attiny861
 | 
						|
OPTIMIZE       = -O2
 | 
						|
 | 
						|
DEFS           =
 | 
						|
LIBS           =
 | 
						|
 | 
						|
# You should not have to change anything below here.
 | 
						|
 | 
						|
CC             = avr-gcc
 | 
						|
 | 
						|
# Override is only needed by avr-lib build system.
 | 
						|
 | 
						|
override CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
 | 
						|
override LDFLAGS       = -Wl,-Map,$(PRG).map
 | 
						|
 | 
						|
OBJCOPY        = avr-objcopy
 | 
						|
OBJDUMP        = avr-objdump
 | 
						|
 | 
						|
all: $(PRG).elf lst text eeprom
 | 
						|
 | 
						|
$(PRG).elf: $(OBJ)
 | 
						|
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)
 | 
						|
 | 
						|
# dependency:
 | 
						|
demo.o: demo.c iocompat.h
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak 
 | 
						|
	rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
 | 
						|
 | 
						|
lst:  $(PRG).lst
 | 
						|
 | 
						|
%.lst: %.elf
 | 
						|
	$(OBJDUMP) -h -S $< > $@
 | 
						|
 | 
						|
# Rules for building the .text rom images
 | 
						|
 | 
						|
text: hex bin srec
 | 
						|
 | 
						|
hex:  $(PRG).hex
 | 
						|
bin:  $(PRG).bin
 | 
						|
srec: $(PRG).srec
 | 
						|
 | 
						|
%.hex: %.elf
 | 
						|
	$(OBJCOPY) -j .text -j .data -O ihex $< $@
 | 
						|
 | 
						|
%.srec: %.elf
 | 
						|
	$(OBJCOPY) -j .text -j .data -O srec $< $@
 | 
						|
 | 
						|
%.bin: %.elf
 | 
						|
	$(OBJCOPY) -j .text -j .data -O binary $< $@
 | 
						|
 | 
						|
# Rules for building the .eeprom rom images
 | 
						|
 | 
						|
eeprom: ehex ebin esrec
 | 
						|
 | 
						|
ehex:  $(PRG)_eeprom.hex
 | 
						|
ebin:  $(PRG)_eeprom.bin
 | 
						|
esrec: $(PRG)_eeprom.srec
 | 
						|
 | 
						|
%_eeprom.hex: %.elf
 | 
						|
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@ \
 | 
						|
	|| { echo empty $@ not generated; exit 0; }
 | 
						|
 | 
						|
%_eeprom.srec: %.elf
 | 
						|
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@ \
 | 
						|
	|| { echo empty $@ not generated; exit 0; }
 | 
						|
 | 
						|
%_eeprom.bin: %.elf
 | 
						|
	$(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@ \
 | 
						|
	|| { echo empty $@ not generated; exit 0; }
 | 
						|
 | 
						|
# Every thing below here is used by avr-libc's build system and can be ignored
 | 
						|
# by the casual user.
 | 
						|
 | 
						|
FIG2DEV                 = fig2dev
 | 
						|
EXTRA_CLEAN_FILES       = *.hex *.bin *.srec
 | 
						|
 | 
						|
dox: eps png pdf
 | 
						|
 | 
						|
eps: $(PRG).eps
 | 
						|
png: $(PRG).png
 | 
						|
pdf: $(PRG).pdf
 | 
						|
 | 
						|
%.eps: %.fig
 | 
						|
	$(FIG2DEV) -L eps $< $@
 | 
						|
 | 
						|
%.pdf: %.fig
 | 
						|
	$(FIG2DEV) -L pdf $< $@
 | 
						|
 | 
						|
%.png: %.fig
 | 
						|
	$(FIG2DEV) -L png $< $@
 | 
						|
 |