From 5b3d26453a44515901194f99fa77931fb6d36183 Mon Sep 17 00:00:00 2001 From: smlng Date: Tue, 25 Sep 2018 17:51:18 +0200 Subject: [PATCH] make: introduce BUILDOUT_DIR This introduces a new environment variable for a common directory that holds all output of the build process, such as application or package binaries. This would also allow to easily redirect output to any other location, e.g. for out-of-source builds. --- Makefile.include | 3 +++ makefiles/scan-build.inc.mk | 1 + makefiles/vars.inc.mk | 1 + 3 files changed, 5 insertions(+) diff --git a/Makefile.include b/Makefile.include index d85ce551da..dd31b6b2b0 100644 --- a/Makefile.include +++ b/Makefile.include @@ -23,6 +23,7 @@ RIOTTOOLS ?= $(RIOTBASE)/dist/tools RIOTPROJECT ?= $(shell git rev-parse --show-toplevel 2>/dev/null || pwd) GITCACHE ?= $(RIOTTOOLS)/git/git-cache GIT_CACHE_DIR ?= $(HOME)/.gitcache +BUILD_DIR ?= $(RIOTBASE)/build APPDIR ?= $(CURDIR) BINDIRBASE ?= $(APPDIR)/bin BINDIR ?= $(BINDIRBASE)/$(BOARD) @@ -39,6 +40,7 @@ __DIRECTORY_VARIABLES := \ RIOTTOOLS \ RIOTPROJECT \ APPDIR \ + BUILD_DIR \ BINDIRBASE \ BINDIR \ CCACHE_BASEDIR \ @@ -58,6 +60,7 @@ override RIOTTOOLS := $(abspath $(RIOTTOOLS)) override RIOTPROJECT := $(abspath $(RIOTPROJECT)) override GITCACHE := $(abspath $(GITCACHE)) override APPDIR := $(abspath $(APPDIR)) +override BUILD_DIR := $(abspath $(BUILD_DIR)) override BINDIRBASE := $(abspath $(BINDIRBASE)) override BINDIR := $(abspath $(BINDIR)) override PKGDIRBASE := $(abspath $(PKGDIRBASE)) diff --git a/makefiles/scan-build.inc.mk b/makefiles/scan-build.inc.mk index 5160971c7e..10fb376f06 100644 --- a/makefiles/scan-build.inc.mk +++ b/makefiles/scan-build.inc.mk @@ -7,6 +7,7 @@ SCANBUILD_ENV_VARS := \ BINDIR \ BINDIRBASE \ BOARD \ + BUILD_DIR \ BUILDRELPATH \ CC \ CFLAGS \ diff --git a/makefiles/vars.inc.mk b/makefiles/vars.inc.mk index 0dee732764..cff66ea75b 100644 --- a/makefiles/vars.inc.mk +++ b/makefiles/vars.inc.mk @@ -29,6 +29,7 @@ export RIOTPROJECT # Top level git root of the project being built, or export RIOTMAKE # Location of all supplemental Makefiles (such as this file) export BINDIRBASE # This is the folder where the application should be built in. For each BOARD a different subfolder is used. export BINDIR # This is the folder where the application should be built in. +export BUILD_DIR # This is the base folder to store common build files and artifacts, e.g. test results. export APPDIR # The base folder containing the application export PKGDIRBASE # The base folder for building packages