TARGET=mclock

CC=avr-gcc
SIZE=avr-size
STRIP=avr-strip
OBJCOPY=avr-objcopy

MCU=attiny2313

CFLAGS=-Os -Wall -g -mmcu=$(MCU) -ffunction-sections -fdata-sections -fno-inline-small-functions

LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += -Wl,--relax
LDFLAGS += -Wl,--gc-sections

OBJS=$(TARGET).o

all: $(TARGET).hex

$(TARGET).hex: $(OBJS)
	$(CC) $(CFLAGS) -o $(TARGET).elf $(OBJS) $(LDFLAGS)
	$(STRIP) $(TARGET).elf
	$(SIZE) --format=sysv $(TARGET).elf
	$(OBJCOPY) -j .text -j .data -O ihex $(TARGET).elf $(TARGET).hex

flash: $(TARGET).hex
	avrdude -c usbtiny -B 12	\
	 -p t2313 -P /dev/ttyUSB0 -e	\
	 -V -U flash:w:$(TARGET).hex -U eeprom:w:$(TARGET).ee.hex 

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

clean:
	rm -rf $(TARGET).elf $(OBJS) $(TARGET).map

