From 316cc4443005ce8add968352dec20d2f1d2a02ee Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 29 Apr 2026 15:58:19 +0200 Subject: [PATCH] new makefile and avr-build --- .gitea/workflows/avr-build.yaml | 2 +- makefile | 60 +++++++++++---------------------- 2 files changed, 20 insertions(+), 42 deletions(-) diff --git a/.gitea/workflows/avr-build.yaml b/.gitea/workflows/avr-build.yaml index 2bd859c..c373ba9 100644 --- a/.gitea/workflows/avr-build.yaml +++ b/.gitea/workflows/avr-build.yaml @@ -9,7 +9,7 @@ on: jobs: build: - runs-on: alpine + runs-on: linux steps: - name: Version Checkout diff --git a/makefile b/makefile index 05149e4..2945874 100644 --- a/makefile +++ b/makefile @@ -1,50 +1,28 @@ -name: AVR Build +MCU ?= atmega644pa +F_CPU ?= 8000000UL -on: - push: - branches: - - dev - - live - - main - pull_request: +BUILD_TYPE ?= dev +VERSION ?= 0.1 +PREFIX ?= ENO -jobs: - build: - runs-on: ubuntu-latest +CC = avr-gcc +OBJCOPY = avr-objcopy - steps: - - name: Checkout - uses: actions/checkout@v4 +SRC = src/main.c - - name: Install AVR toolchain - run: | - apt-get update - apt-get install -y gcc-avr avr-libc binutils-avr make cppcheck +OUTDIR = build/$(BUILD_TYPE) +TARGET = $(OUTDIR)/$(PREFIX)_$(VERSION) - - name: Set build type from branch - id: vars - run: | - BRANCH="${GITHUB_REF_NAME}" +CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -Os -Wall -DVERSION=\"$(VERSION)\" - if [ "$BRANCH" = "dev" ]; then - echo "BUILD_TYPE=dev" >> $GITHUB_ENV - echo "PREFIX=DEV_ENO" >> $GITHUB_ENV - else - echo "BUILD_TYPE=live" >> $GITHUB_ENV - echo "PREFIX=ENO" >> $GITHUB_ENV - fi +all: $(TARGET).hex - echo "VERSION=${GITHUB_SHA::7}" >> $GITHUB_ENV +$(TARGET).elf: $(SRC) + @mkdir -p $(OUTDIR) + $(CC) $(CFLAGS) $< -o $@ - - name: Code check - run: cppcheck --enable=all --error-exitcode=1 src/ +$(TARGET).hex: $(TARGET).elf + $(OBJCOPY) -O ihex -R .eeprom $< $@ - - name: Build firmware - run: | - make BUILD_TYPE=$BUILD_TYPE PREFIX=$PREFIX VERSION=$VERSION - - - name: Upload hex - uses: actions/upload-artifact@v4 - with: - name: firmware-${{ env.BUILD_TYPE }} - path: build/**/*.hex \ No newline at end of file +size: $(TARGET).elf + avr-size $< \ No newline at end of file