TARGET  = main.elf
FILES   = main yaMBSiavr
MCU     = atxmega32a4 
PROGC	= x32a4
CC      = avr-gcc
TOOL    = atmelice_pdi

BUILDDIR = build

DEFINES = -DF_CPU=32000000UL -DBOARDTYPE=9ch_pt100
 
CFLAGS  =-mmcu=$(MCU) -O2 -Wall $(DEFINES) -std=c99 -ffunction-sections -fdata-sections
LDFLAGS =-mmcu=$(MCU) -Wl,--gc-sections

LDFILES = $(foreach FILE,$(FILES),$(BUILDDIR)/$(FILE).o)

all: clean $(BUILDDIR)/$(TARGET).elf

$(BUILDDIR)/%.o: %.c
	@mkdir -p $(BUILDDIR)
	$(CC) $(CFLAGS) -c $< -o $(BUILDDIR)/$*.o

$(BUILDDIR)/$(TARGET).elf: $(LDFILES)
	mkdir -p $(BUILDDIR)
	$(CC) $(LDFLAGS) $(LDFILES) -o $(BUILDDIR)/$(TARGET).elf

$(BUILDDIR)/$(TARGET).hex : $(BUILDDIR)/$(TARGET).elf
	 avr-objcopy -j .data -j .text -O ihex $< $@

fuse: 
	avrdude -p $(PROGC) -c $(TOOL) -U lfuse:w:0xE8:m -U hfuse:w:0xD1:m

load: $(BUILDDIR)/$(TARGET).hex
	avrdude -p $(PROGC) -c $(TOOL) -U flash:w:$(BUILDDIR)/$(TARGET).hex -v -B 2
	
size: $(BUILDDIR)/$(TARGET).elf
	avr-size -C --mcu=$(MCU) $(BUILDDIR)/$(TARGET).elf

clean:
	rm -rf $(BUILDDIR)
