From 50b4a2a7e180b242a6f016737629e56e2d5bc4a3 Mon Sep 17 00:00:00 2001 From: Will McVicker Date: Tue, 7 Dec 2021 09:41:37 -0800 Subject: [PATCH] ANDROID: kbuild: add support for compiling external device trees Similar to external modules, the device tree should also be allowed to be compiled using out-of-tree source. This would allow one to further separate the core kernel from the vendor-specific device trees. To do this, we just need to allow the user to set the "dtstree" and "DTC_INCLUDE" build properties in the build environment. To setup the external device tree, you can follow these steps: 1) Move the device tree to your out-of-tree project. 2) Move the dt-bindings to your out-of-tree project. 3) Configure your build environment to set the following variables: dtstree=/path/to/device/tree DTC_INCLUDE=/path/to/device/tree/dtc/include-prefixes If you are using build.sh, then you can use DTS_EXT_DIR to define the dtstree. Bug: 210036798 Signed-off-by: Will McVicker Change-Id: Ibf05544ee8250a68b882328817a267518ae478b5 --- Makefile | 4 +++- scripts/Makefile.lib | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8daf3713f1d5..6de9e725daa8 100644 --- a/Makefile +++ b/Makefile @@ -1460,7 +1460,9 @@ kselftest-merge: # Devicetree files ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),) -dtstree := arch/$(SRCARCH)/boot/dts +# ANDROID: allow this to be overridden by the build environment. This allows +# one to compile a device tree that is located out-of-tree. +dtstree ?= arch/$(SRCARCH)/boot/dts endif ifneq ($(dtstree),) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 657e8488b5c4..3470710c068d 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -228,7 +228,9 @@ cpp_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ ld_flags = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F)) -DTC_INCLUDE := $(srctree)/scripts/dtc/include-prefixes +# ANDROID: Allow DTC_INCLUDE to be set by the BUILD_CONFIG. This allows one to +# compile an out-of-tree device tree. +DTC_INCLUDE += $(srctree)/scripts/dtc/include-prefixes dtc_cpp_flags = -Wp,-MMD,$(depfile).pre.tmp -nostdinc \ $(addprefix -I,$(DTC_INCLUDE)) \