FORMATTER = clang-format -i ROOT_FILE_NAME = blink SRC_FILE = $(ROOT_FILE_NAME).c OBJ_FILE = $(ROOT_FILE_NAME).o EXE_FILE = $(ROOT_FILE_NAME) HEX_FILE = $(ROOT_FILE_NAME).hex default: @echo 'Targets:' @echo ' compile' @echo ' link' @echo ' hex' @echo ' upload' @echo ' format' @echo ' clean' $(OBJ_FILE): $(SRC_FILE) avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -c -o $(OBJ_FILE) $(SRC_FILE) compile: $(OBJ_FILE) $(EXE_FILE): $(OBJ_FILE) avr-gcc -mmcu=atmega328p $(OBJ_FILE) -o $(EXE_FILE) link: $(EXE_FILE) $(HEX_FILE): $(EXE_FILE) avr-objcopy -O ihex -R .eeprom $(EXE_FILE) $(HEX_FILE) hex: $(HEX_FILE) upload: $(HEX_FILE) avrdude -F -V -c arduino -p ATMEGA328P -P /dev/ttyACM0 -b 115200 -U flash:w:$(HEX_FILE) format: $(FORMATTER) $(SRC_FILE) clean: -rm -f $(OBJ_FILE) $(EXE_FILE) $(HEX_FILE) $(SRC_FILE).orig