From 1e7be9adb6cc65b6bd0bd3e0e8f0da2acc88d35a Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Mon, 12 May 2025 19:24:09 +0200 Subject: [PATCH] Restructure AVR compilation with Makefile --- src/Makefile | 42 +++++++++++----------------------------- src/{main.cpp => main.c} | 0 2 files changed, 11 insertions(+), 31 deletions(-) rename src/{main.cpp => main.c} (100%) diff --git a/src/Makefile b/src/Makefile index 25ba931..f20602e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,41 +1,21 @@ PROJECT = plant-manager -# Flags MCU = atmega328p F_CPU = 16000000UL +PROGRAMMER = arduino +PORT ?= /dev/ttyACM0 CC = avr-gcc -OBJCOPY = avr-objcopy -AVRDUDE = avrdude +LD = avr-ld +OC = avr-objcopy +AD = avrdude CFLAGS = -Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU) -PROGRAMMER = arduino -PORT = /dev/ttyACM0 +SRCS = main.c moisture.cpp +HDRS = moisture.h config.h +OBJS = main.o moisture.o config.o +EXEC = moisture -SRC = main.c -OBJ = $(SRC:.c=.o) +TARGET = moisture.hex -# Default target -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 +$(TARGET) :$(OBJS) diff --git a/src/main.cpp b/src/main.c similarity index 100% rename from src/main.cpp rename to src/main.c