Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Makefile comments and always MODE= #314

Merged
merged 9 commits into from
Dec 28, 2021
123 changes: 80 additions & 43 deletions src/Makefile
Original file line number Diff line number Diff line change
@@ -1,12 +1,31 @@
# Tag on this commit
# @file Makefile
# @author Otso Jousimaa <otso@ojousima.net>
# @date 2021-03-30
# @brief Setup compile of sources for BOARDS and Variants.
# Set up directory names and call targets/ruuvitag_b/armgcc/Makefile
# which sets up options and calls Makefile.common which does compile & link
#
# There is a seperate version of the project configuration for the
# Segger Embedded Studio at ruuvi.firmware.c.emProject.
# Changes to this makefile should be made there as well.
#
# The -Dxxx generates a #define xxx in C preprocessor.
#
# @copyright Ruuvi Innovations Ltd, license BSD-3-Clause.

# For example v3.31.1
TAG := $(shell git describe --tags --exact-match)
# Commit hash from git

# For example 24cbe77 (the hash)
COMMIT := $(shell git rev-parse --short HEAD)

# VERSION will be the tag if one exists for current commit, otherwise the commit hash.
VERSION := $(if $(TAG),\\\"$(TAG)\\\",\\\"$(COMMIT)\\\")

BOARDS = ruuvitag_b kaarle kalervo keijo
VARIANTS = default test

.PHONY: all sync ${BOARDS} analysis publish clean
.PHONY: all sync ${BOARDS} analysis publish clean

all: clean ${BOARDS}

Expand All @@ -19,60 +38,78 @@ sync:


ruuvitag_b:
@echo build FW ${VERSION}
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/ruuvitag_b/armgcc DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/ruuvitag_b/armgcc/package.sh -n ruuvifw_default
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/ruuvitag_b/armgcc MODE=-DAPPLICATION_MODE_LONGLIFE DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/ruuvitag_b/armgcc/package.sh -n ruuvifw_longlife
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/ruuvitag_b/armgcc MODE=-DAPPLICATION_MODE_LONGMEM DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/ruuvitag_b/armgcc/package.sh -n ruuvifw_longmem
@echo build FW ${VERSION} for board $@

@echo + Calling targets/ruuvitag_b/armgcc/Makefile
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/ruuvitag_b/armgcc DEBUG=-DDEBUG RUN_TESTS=-DRUUVI_RUN_TESTS FW_VERSION=-DAPP_FW_VERSION=${VERSION} OPT="-Og -g3"
targets/ruuvitag_b/armgcc/package.sh -n ruuvifw_test
$(MAKE) -C targets/ruuvitag_b/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_DEFAULT
@echo + package next
targets/$@/armgcc/package.sh -n ruuvifw_default

$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_LONGLIFE
@echo + package next
targets/$@/armgcc/package.sh -n ruuvifw_longlife

$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_LONGMEM
@echo + package next
targets/$@/armgcc/package.sh -n ruuvifw_longmem

$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DDEBUG MODE=-DAPPLICATION_MODE_DEBUG \
RUN_TESTS=-DRUUVI_RUN_TESTS OPT="-Og -g3" # gdb information included
@echo + package next
targets/$@/armgcc/package.sh -n ruuvifw_test

kaarle:
$(MAKE) -C targets/kaarle/armgcc clean
$(MAKE) -C targets/kaarle/armgcc DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/kaarle/armgcc/package.sh -n ruuvifw_default
$(MAKE) -C targets/kaarle/armgcc clean
$(MAKE) -C targets/kaarle/armgcc MODE=-DAPPLICATION_MODE_LONGLIFE DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/kaarle/armgcc/package.sh -n ruuvifw_longlife
$(MAKE) -C targets/kaarle/armgcc clean
$(MAKE) -C targets/kaarle/armgcc DEBUG=-DDEBUG RUN_TESTS=-DRUUVI_RUN_TESTS FW_VERSION=-DAPP_FW_VERSION=${VERSION} OPT="-Og -g3"
targets/kaarle/armgcc/package.sh -n ruuvifw_test
@echo build FW ${VERSION} for board $@
$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_DEFAULT
targets/$@/armgcc/package.sh -n ruuvifw_default

kalervo:
$(MAKE) -C targets/kalervo/armgcc clean
$(MAKE) -C targets/kalervo/armgcc DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/kalervo/armgcc/package.sh -n ruuvifw_default
$(MAKE) -C targets/kalervo/armgcc clean
$(MAKE) -C targets/kalervo/armgcc MODE=-DAPPLICATION_MODE_LONGLIFE DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/kalervo/armgcc/package.sh -n ruuvifw_longlife
$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_LONGLIFE
targets/$@/armgcc/package.sh -n ruuvifw_longlife

keijo:
$(MAKE) -C targets/keijo/armgcc clean
$(MAKE) -C targets/keijo/armgcc DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/keijo/armgcc/package.sh -n ruuvifw_default
$(MAKE) -C targets/keijo/armgcc clean
$(MAKE) -C targets/keijo/armgcc MODE=-DAPPLICATION_MODE_LONGLIFE DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION}
targets/keijo/armgcc/package.sh -n ruuvifw_longlife
$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DDEBUG MODE=-DAPPLICATION_MODE_DEBUG \
RUN_TESTS=-DRUUVI_RUN_TESTS OPT="-Og -g3"
targets/$@/armgcc/package.sh -n ruuvifw_test

kalervo:
@echo build FW ${VERSION} for board $@
$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_DEFAULT
targets/$@/armgcc/package.sh -n ruuvifw_default

$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_LONGLIFE
targets/$@/armgcc/package.sh -n ruuvifw_longlife

keijo:
@echo build FW ${VERSION} for board $@
$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_DEFAULT
targets/$@/armgcc/package.sh -n ruuvifw_default

$(MAKE) -C targets/$@/armgcc clean
$(MAKE) -C targets/$@/armgcc FW_VERSION=-DAPP_FW_VERSION=${VERSION} DEBUG=-DNDEBUG MODE=-DAPPLICATION_MODE_LONGLIFE
targets/$@/armgcc/package.sh -n ruuvifw_longlife

analysis:
@echo build FW ${VERSION}
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/ruuvitag_b/armgcc DEBUG=-DNDEBUG FW_VERSION=-DAPP_FW_VERSION=${VERSION} OPT="-Og -g3" VERBOSE=1 ABSOLUTE_PATHS=1
@echo analysis FW ${VERSION}
$(MAKE) -C targets/ruuvitag_b/armgcc clean FW_VERSION=-DAPP_FW_VERSION=${VERSION}
$(MAKE) -C targets/ruuvitag_b/armgcc OPT="-Og -g3" VERBOSE=1 ABSOLUTE_PATHS=1 DEBUG=-DNDEBUG

# https://medium.com/@systemglitch/continuous-integration-with-jenkins-and-github-release-814904e20776
publish:
@echo Publishing $(TAG)
./release.sh

clean:
@echo cleaning build files
@echo Cleaning build files
$(MAKE) -C targets/ruuvitag_b/armgcc clean
$(MAKE) -C targets/kaarle/armgcc clean
$(MAKE) -C targets/kalervo/armgcc clean
$(MAKE) -C targets/keijo/armgcc clean
$(MAKE) -C targets/keijo/armgcc clean