33 lines
692 B
Makefile
33 lines
692 B
Makefile
|
PREFIX := avr-
|
||
|
CFLAGS_COMMON := -I/usr/avr/include/
|
||
|
CFLAGS_CPU := -DF_CPU=20000000UL -mmcu=atmega328p -Os
|
||
|
CFLAGS := $(CFLAGS_COMMON) $(CFLAGS_CPU)
|
||
|
LDFLAGS_COMMON := -I/usr/avr/include/
|
||
|
LDFLAGS_CPU := -mmcu=atmega328p
|
||
|
LDFLAGS := $(LDFLAGS_COMMON) $(LDFLAGS_CPU)
|
||
|
CC := $(PREFIX)gcc
|
||
|
|
||
|
build: main.hex
|
||
|
|
||
|
flash: main.hex
|
||
|
sudo avrdude -FV -c arduino -p ATmega328p -P /dev/ttyUSB0 -b 57600 -U flash:w:$<
|
||
|
|
||
|
clean:
|
||
|
$(RM) *.hex *.elf *.o
|
||
|
|
||
|
bear: compile_commands.json
|
||
|
|
||
|
compile_commands.json: clean
|
||
|
bear -- make build
|
||
|
|
||
|
main.hex: main.elf
|
||
|
$(PREFIX)objcopy -O ihex -R .eeprom $< $@
|
||
|
|
||
|
main.elf: main.o
|
||
|
$(CC) -w $(LDFLAGS) -o $@ $<
|
||
|
|
||
|
%.o: %.c %.h
|
||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||
|
|
||
|
.PHONY: build flash clean bear
|