

DEVICE = atmega8
F_CPU = 7372800
# default: 0xE1
FUSE_L  = 0xEF
# default: 0xD9
FUSE_H  = 0xD9
ISPPORT = /dev/ttyACM0
ISPBAUD = 9600
PROGRAMMER = stk500v2

#UART_BAUD = 9600
UART_BAUD = 38400

AVRDUDE = avrdude
CC=avr-gcc
LD=avr-objcopy
CFLAGS = -Wall -Os -mmcu=$(DEVICE) -DF_CPU=$(F_CPU) -DUART_BAUD=$(UART_BAUD)
LDFLAGS=-j .text -O ihex

HEX = main.hex
OBJS = main.o

ALL = $(HEX)

.PHONY: all clean nothing

all: $(ALL)

.PHONY: install uninstall

nothing: ;

clean:
	@rm -f *.o *.hex *.bin

write: $(HEX)
	$(AVRDUDE) -p $(DEVICE) -F -b $(ISPBAUD) -c $(PROGRAMMER) -P $(ISPPORT) -U flash:w:$(HEX)

writefuse:
	$(AVRDUDE) -v -p $(DEVICE) -F -b $(ISPBAUD) -c $(PROGRAMMER) -P $(ISPPORT) -U lfuse:w:$(FUSE_L):m

readfuse:
	$(AVRDUDE) -v -p $(DEVICE) -F -b $(ISPBAUD) -c $(PROGRAMMER) -P $(ISPPORT) -U hfuse:r:fuse_high.txt:i -U lfuse:r:fuse_low.txt:i

%.o: %.c %.h Makefile
	$(CC) $(CFLAGS) -c $< -o $@

%.bin: $(OBJS) Makefile
	$(CC) $(CFLAGS) $(OBJS) -o $@

%.hex: %.bin $(OBJS) Makefile
	$(LD) $(LDFLAGS) $< $@
