APP			= 3LS363
DEVICE		= attiny406

LKR			= lkr.ld
OPT			= -Os
CC_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICE) -I/usr/lib/avr/include $(OPTS) -ffunction-sections -DF_CPU=20000000 -funsigned-char
LD_FLAGS	=  -Wall -Wextra $(OPT) -mmcu=$(DEVICE) -Wl,--gc-sections -lm -lc -Wl,-T $(LKR)
CC			= avr-gcc
LD			= avr-gcc

OBJS		= main.o crt.o

all: $(APP).hex $(APP).update.bin

$(APP).update.bin: $(APP).elf
	avr-objcopy -j .text -j .rodata -j .data -O binary $(APP).elf $(APP).update.bin

$(APP).hex: $(APP).elf
	avr-size -Ax $(APP).elf
	avr-objcopy -j .text -j .bootload -j .rodata -j .data -O ihex $(APP).elf $(APP).hex

$(APP).elf: $(OBJS) Makefile $(LKR)
	$(LD) $(LD_FLAGS) -o $(APP).elf $(OBJS)

AVR: $(APP).hex
	sudo pyupdi -d tiny406 -c /dev/ttyUSB0 -f $(APP).hex

fuses:
	sudo pyupdi -c /dev/ttyUSB0 -d tiny406 -v -fs 0:0x00 1:0x00 2:0x02 7:0x08 8:0x01 -v
	#APPEND = 8, BOOTEND = 1, making bootloader 256 bytes, app 0x700 bytes, and the rest of space appdata (that app can write to)


%.o : %.c
	$(CC) $(CC_FLAGS) -c $< -o $@

%.o : %.S
	$(CC) $(CC_FLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(APP).elf $(APP).hex

.PHONY: $(APP).hex $(APP).update.bin



