PROGRAM=lights SRC=lights.c OBJ=$(SRC:.c=.o) MCU=attiny861a # AVRDUDE_MCU=$(MCU) AVRDUDE_MCU=attiny861 AVRDUDE_PROGRAMMER=usbasp CFLAGS=-Os -mmcu=$(MCU) LDFLAGS= AVRDUDE_FLAGS= -p$(AVRDUDE_MCU) -c $(AVRDUDE_PROGRAMMER) FORMAT=ihex CC=avr-gcc OBJCOPY=avr-objcopy AVRDUDE=avrdude all: $(PROGRAM).hex $(PROGRAM).eep program: $(PROGRAM).hex $(PROGRAM).eep $(AVRDUDE) $(AVRDUDE_FLAGS) -U flash:w:$(PROGRAM).hex:i -U eeprom:w:$(PROGRAM).eep:i .PRECIOUS : $(OBJ) $(PROGRAM).elf %.hex: %.elf $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@ %.eep: %.elf $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 -O $(FORMAT) $< $@ %.elf: $(OBJ) $(CC) $(CFLAGS) $(OBJ) -o $@ $(LDFLAGS) %.o: %.c $(CC) -c $(CFLAGS) $< -o $@ %.s: %.c $(CC) -S -c $(CFLAGS) $< -o $@ %.o: %.S $(CC) -c $(CFLAGS) $< -o $@ clean: rm -f $(PROGRAM).hex $(PROGRAM).eep $(PROGRAM).elf *.o *.s .PHONY: all clean