Restructure AVR compilation with Makefile
This commit is contained in:
+11
-31
@@ -1,41 +1,21 @@
|
|||||||
PROJECT = plant-manager
|
PROJECT = plant-manager
|
||||||
|
|
||||||
# Flags
|
|
||||||
MCU = atmega328p
|
MCU = atmega328p
|
||||||
F_CPU = 16000000UL
|
F_CPU = 16000000UL
|
||||||
|
PROGRAMMER = arduino
|
||||||
|
PORT ?= /dev/ttyACM0
|
||||||
|
|
||||||
CC = avr-gcc
|
CC = avr-gcc
|
||||||
OBJCOPY = avr-objcopy
|
LD = avr-ld
|
||||||
AVRDUDE = avrdude
|
OC = avr-objcopy
|
||||||
|
AD = avrdude
|
||||||
CFLAGS = -Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)
|
CFLAGS = -Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)
|
||||||
|
|
||||||
PROGRAMMER = arduino
|
SRCS = main.c moisture.cpp
|
||||||
PORT = /dev/ttyACM0
|
HDRS = moisture.h config.h
|
||||||
|
OBJS = main.o moisture.o config.o
|
||||||
|
EXEC = moisture
|
||||||
|
|
||||||
SRC = main.c
|
TARGET = moisture.hex
|
||||||
OBJ = $(SRC:.c=.o)
|
|
||||||
|
|
||||||
# Default target
|
$(TARGET) :$(OBJS)
|
||||||
all: $(PROJECT).hex
|
|
||||||
|
|
||||||
# Compiler
|
|
||||||
%.o: %.c
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
# Linker
|
|
||||||
$(PROJECT).elf: $(OBJ)
|
|
||||||
$(CC) $(CFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
# Create hex file
|
|
||||||
$(PROJECT).hex: $(PROJECT).elf
|
|
||||||
$(OBJCOPY) -O ihex -R .eeprom $< $@
|
|
||||||
|
|
||||||
# Uploader
|
|
||||||
upload: $(PROJECT).hex
|
|
||||||
$(AVRDUDE) -p $(MCU) -c $(PROGRAMMER) -P $(PORT) -U flash:w:$<:i
|
|
||||||
|
|
||||||
# Cleaner
|
|
||||||
clean:
|
|
||||||
rm -f *.o *.elf *.hex
|
|
||||||
|
|
||||||
.PHONY: all upload clean
|
|
||||||
|
|||||||
Reference in New Issue
Block a user