target = blink obj = \ $(target).o \ lcd.o \ serial.o avrhome = /opt/avr serport = /dev/ttyUSB0 serrate = 57600 mcu = atmega328p CFLAGS = \ -DF_CPU=16000000 \ -I$(avrhome)/include \ -Wall -Wstrict-prototypes \ -mmcu=$(mcu) \ -gstabs -save-temps \ -Os \ -std=gnu99 \ -Wall LDFLAGS = \ -L$(avrhome)/lib/avr4 CC = avr-gcc OBJCOPY = avr-objcopy SIZE = avr-size AVRDUDE = avrdude all: $(target).hex .SUFFIXES: .c .o .elf .hex .c.o: $(CC) -c $(CFLAGS) -o $@ $< $(target).elf: $(obj) $(CC) $(CFLAGS) $(obj) -o $@ $(LDFLAGS) $(SIZE) $@ .elf.hex: $(OBJCOPY) -O ihex -R .eeprom $< $@ upload: $(target).hex $(AVRDUDE) \ -F -p $(mcu) -P $(serport) -c stk500 -b $(serrate) \ -U flash:w:$(target).hex clean: rm -f $(obj) $(target).hex $(target).elf