aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 9bba45541afa085260bdb0a1b9173f76c23c4ea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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