
NAME = clock_led

TOOLBIN = /usr/local/avr/bin

CC = $(TOOLBIN)/avr-gcc
AS = $(TOOLBIN)/avr-as
OBJCOPY = $(TOOLBIN)/avr-objcopy

CFLAGS = -mmcu=attiny2313 -Os
ASFLAGS = -mmcu=attiny2313

all: $(NAME)_sec.hex $(NAME)_min.hex $(NAME)_hour.hex $(NAME)_day.hex $(NAME)_year.hex


waitloop.o: waitloop.c
	$(CC) $(CFLAGS) -Os -c $^ -o $@



main_sec.o: main.c
	$(CC) $(CFLAGS) $^ -DLOWER_BOUND=0 -DUPPER_BOUND=1 -c -o $@

main_min.o: main.c
	$(CC) $(CFLAGS) $^ -DLOWER_BOUND=2 -DUPPER_BOUND=3 -c -o $@

main_hour.o: main.c
	$(CC) $(CFLAGS) $^ -DLOWER_BOUND=4 -DUPPER_BOUND=5 -c -o $@

main_day.o: main.c
	$(CC) $(CFLAGS) $^ -DLOWER_BOUND=6 -DUPPER_BOUND=9 -c -o $@

main_year.o: main.c
	$(CC) $(CFLAGS) $^ -DLOWER_BOUND=10 -DUPPER_BOUND=13 -c -o $@



$(NAME)_sec.elf: main_sec.o waitloop.o
	$(CC) $(CFLAGS) $^ -o $@

$(NAME)_min.elf: main_min.o waitloop.o
	$(CC) $(CFLAGS) $^ -o $@

$(NAME)_hour.elf: main_hour.o waitloop.o
	$(CC) $(CFLAGS) $^ -o $@

$(NAME)_day.elf: main_day.o waitloop.o
	$(CC) $(CFLAGS) $^ -o $@

$(NAME)_year.elf: main_year.o waitloop.o
	$(CC) $(CFLAGS) $^ -o $@



$(NAME)_sec.hex: $(NAME)_sec.elf
	$(OBJCOPY) -O ihex $< $@

$(NAME)_min.hex: $(NAME)_min.elf
	$(OBJCOPY) -O ihex $< $@

$(NAME)_hour.hex: $(NAME)_hour.elf
	$(OBJCOPY) -O ihex $< $@

$(NAME)_day.hex: $(NAME)_day.elf
	$(OBJCOPY) -O ihex $< $@

$(NAME)_year.hex: $(NAME)_year.elf
	$(OBJCOPY) -O ihex $< $@



clean:
	-rm *.o
	-rm *.s
	-rm *.elf
	-rm *.hex

release: all
	-rm *.o
	-rm *.s
	-rm *.elf


write_sec: $(NAME)_sec.hex
	xp -d attiny2313 -w -i $^
	xp --avr-write-fuse-l=e4

write_min: $(NAME)_min.hex
	xp -d attiny2313 -w -i $^
	xp --avr-write-fuse-l=e4

write_hour: $(NAME)_hour.hex
	xp -d attiny2313 -w -i $^
	xp --avr-write-fuse-l=e4

write_day: $(NAME)_day.hex
	xp -d attiny2313 -w -i $^
	xp --avr-write-fuse-l=e4

write_year: $(NAME)_year.hex
	xp -d attiny2313 -w -i $^
	xp --avr-write-fuse-l=e4

