From 01d237cb70f00b4647a9dbef7301801071626b35 Mon Sep 17 00:00:00 2001 From: Yann Gautier Date: Mon, 18 Jun 2018 16:00:23 +0200 Subject: [PATCH] Build: add cpp build processing for dtb This is an add-on feature that allows processing device tree with external includes. "-Iinclude" is also added to INCLUDES. It allows inclusion of dt-bindings files either in dts files or drivers, as those files will be in include/dt-bindings/. "-i fdts" is added to the DTC command line. As the pre-processed files are in build directory, the DT source directory has to be explicitely included, to manages /include/ directives. fixes arm-software/tf-issues#595 Signed-off-by: Lionel Debieve Signed-off-by: Yann Gautier --- Makefile | 3 ++- make_helpers/build_macros.mk | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 17630fbf3..f230f4af3 100644 --- a/Makefile +++ b/Makefile @@ -198,7 +198,8 @@ BL_COMMON_SOURCES += common/bl_common.c \ ${COMPILER_RT_SRCS} \ ${STDLIB_SRCS} -INCLUDES += -Iinclude/bl1 \ +INCLUDES += -Iinclude \ + -Iinclude/bl1 \ -Iinclude/bl2 \ -Iinclude/bl2u \ -Iinclude/bl31 \ diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index cac9dfc44..2a6ded497 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -372,11 +372,14 @@ endef define MAKE_DTB $(eval DOBJ := $(addprefix $(1)/,$(call SOURCES_TO_DTBS,$(2)))) +$(eval DPRE := $(addprefix $(1)/,$(patsubst %.dts,%.pre.dts,$(notdir $(2))))) $(eval DEP := $(patsubst %.dtb,%.d,$(DOBJ))) $(DOBJ): $(2) $(filter-out %.d,$(MAKEFILE_LIST)) | fdt_dirs + @echo " CPP $$<" + $$(Q)$$(CPP) $$(CPPFLAGS) -x assembler-with-cpp -o $(DPRE) $$< @echo " DTC $$<" - $$(Q)$$(DTC) $$(DTC_FLAGS) -d $(DEP) -o $$@ $$< + $$(Q)$$(DTC) $$(DTC_FLAGS) -i fdts -d $(DEP) -o $$@ $(DPRE) -include $(DEP)