###############################################################################
# Makefile for WinAVR project
###############################################################################

PROJECT = program
TARGET = $(PROJECT).elf
MCU = atmega168
CC = avr-gcc.exe
COMMON = -mmcu=$(MCU)
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -O0
CFLAGS += -MD -MP -MT $(*F).o -MF $(@F).d 
LDFLAGS = $(COMMON)
LDFLAGS +=  -Wl,-Map=$(PROJECT).map
HEX_FLASH_FLAGS = -R .eeprom

OBJECTS = main.o uart.o

all: $(TARGET) $(PROJECT).hex $(PROJECT).lss size

$(TARGET): $(OBJECTS)
	 $(CC) $(LDFLAGS) $(OBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)

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

%.hex: $(TARGET)
	avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@

%.lss: $(TARGET)
	avr-objdump -h -S $< > $@

size: ${TARGET}
	@echo
	@avr-size -C --mcu=${MCU} ${TARGET}

clean:
	-rm -rf $(OBJECTS) *.elf *.hex *.lss *.map

