CC = avr-gcc OBJCOPY = avr-objcopy SIZE = avr-size F_CPU = 16000000UL MCU = atmega328p CFLAGS += -DF_CPU=$(F_CPU) -mmcu=$(MCU) CFLAGS += -I. -Os --std=c11 CFLAGS += -ffunction-sections -fdata-sections #CFLAGS += -save-temps CFLAGS += -Wall LDFLAGS += -s -mmcu=$(MCU) LDFLAGS += -Wl,--gc-sections LDFLAGS += -Wl,-u,vfprintf -lprintf_flt -lm MAIN_OBJS += main.o MAIN_OBJS += adc.o MAIN_OBJS += button.o MAIN_OBJS += contr.o MAIN_OBJS += disp.o MAIN_OBJS += eeprom.o MAIN_OBJS += i2c.o MAIN_OBJS += timer.o MAIN_OBJS += tool.o MAIN_OBJS += radio.o MAIN_ELF = main.elf MAIN_HEX = main.hex all: $(MAIN_HEX) $(MAIN_ELF): $(MAIN_OBJS) $(CC) $(LDFLAGS) -o $(MAIN_ELF) $(MAIN_OBJS) $(SIZE) --format=berkeley $@ DEPENDS_DIR = .dep %.o: %.c @mkdir -p $(DEPENDS_DIR) $(CC) $(CFLAGS) -c $*.c -o $*.o @$(CC) -MM $(CFLAGS) $*.c > $(DEPENDS_DIR)/$*.d $(MAIN_HEX): $(MAIN_ELF) $(OBJCOPY) -O ihex -R .eeprom $< $@ AVRDUDE = sudo avrdude TTY_PORT = /dev/ttyUSB0 TTY_SPEED = 115200 BACKUP = $(MAIN_HEX).bak upload: $(MAIN_HEX) $(AVRDUDE) -qq -c arduino -p m328p -P $(TTY_PORT) -b $(TTY_SPEED) -U flash:w:$< download: $(AVRDUDE) -F -V -c arduino -p m328p -P $(TTY_PORT) -b $(TTY_SPEED) -U flash:r:$(BACKUP):i clean: rm -f *.i *.o *.s rm -f *.hex *.elf *.bin rm -f *~ *.d rm -rf $(DEPENDS_DIR) -include $(DEPENDS_DIR)/$(MAIN_OBJS:.o=.d) #EOF