# adjust according to your needs AS = avr-as LD = avr-ld OBJ = avr-obj MCU ?= atmega328p MCUPATH ?= /dev/ttyACM0 DUDE ?= avrdude PROGRAMMER ?= arduino LDFLAGS += -m avr5 DUDEFLAGS += -c $(PROGRAMMER) -p $(MCU) -P $(MCUPATH) # timer.s file TARGET ?= timer all: $(TARGET).hex .PHONY: flash dump clean all .SUFFIXES: .PRECIOUS: $(TARGET).o $(TARGET).elf flash: $(TARGET).hex test $(shell id -u) = 0 $(DUDE) $(DUDEFLAGS) -U flash:w:$< %.o: %.s $(AS) -mmcu=$(MCU) -o $@ $< %.elf: %.o $(LD) $(LDFLAGS) -o $@ $< %.hex: %.elf $(OBJ)copy -O ihex $< $@ dump: $(TARGET).elf $(OBJ)dump -d clean: $(RM) *.o *.hex *.elf *.bin timer