From a048001e96811e681e5cc5087ea1f97eb0e588c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= Date: Wed, 14 Aug 2019 14:58:24 +0200 Subject: [PATCH] makefiles/buildtest: add a buildtest-indocker Add a 'buildtest-indocker' that forces executing 'buildtest' for loop completely inside the container. It prevents starting one container per compilation wich is slower but it could hide errors where the host toolchain would be used It is currently equivalent to `buildtest` but will change when the `buidtest` handling will be move outside of `BUILD_IN_DOCKER`. Display an error when executed without BUILD_IN_DOCKER=1. --- Makefile.include | 2 +- makefiles/buildtests.inc.mk | 16 +++++++++++++++- makefiles/docker.inc.mk | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Makefile.include b/Makefile.include index d3b2eb8d7cae..065326ff0724 100644 --- a/Makefile.include +++ b/Makefile.include @@ -110,7 +110,7 @@ include $(RIOTMAKE)/info-nproc.inc.mk # List of boards variables include $(RIOTMAKE)/boards.inc.mk -GLOBAL_GOALS += buildtest info-boards-supported info-boards-features-missing info-buildsizes info-buildsizes-diff +GLOBAL_GOALS += buildtest buildtest-indocker info-boards-supported info-boards-features-missing info-buildsizes info-buildsizes-diff ifneq (, $(filter $(GLOBAL_GOALS), $(MAKECMDGOALS))) BOARD=none endif diff --git a/makefiles/buildtests.inc.mk b/makefiles/buildtests.inc.mk index f9806302894f..77213c51c775 100644 --- a/makefiles/buildtests.inc.mk +++ b/makefiles/buildtests.inc.mk @@ -1,4 +1,4 @@ -.PHONY: buildtest +.PHONY: buildtest buildtest-indocker BUILDTEST_MAKE_REDIRECT ?= >/dev/null 2>&1 @@ -25,3 +25,17 @@ buildtest: done ; \ $${RESULT} endif # BUILD_IN_DOCKER + +# Define 'buildtest-indocker' completely executed inside the container. +# It prevents starting one container per compilation wich is slower but it +# could hide errors where the host toolchain would be used +ifeq ($(BUILD_IN_DOCKER),1) + buildtest-indocker: ..in-docker-container +else +ifeq ($(INSIDE_DOCKER),1) + buildtest-indocker: buildtest +else + buildtest-indocker: + $(error $@ must be run with `BUILD_IN_DOCKER=1`) +endif # INSIDE_DOCKER +endif # BUILD_IN_DOCKER diff --git a/makefiles/docker.inc.mk b/makefiles/docker.inc.mk index d7249b5f5313..d2a8ee5d7789 100644 --- a/makefiles/docker.inc.mk +++ b/makefiles/docker.inc.mk @@ -6,6 +6,7 @@ export DOCKER_FLAGS ?= --rm export DOCKER_MAKECMDGOALS_POSSIBLE = \ all \ buildtest \ + buildtest-indocker \ scan-build \ scan-build-analyze \ tests-% \