From 077b3e9afc92927d9f81a188c244737435fe3189 Mon Sep 17 00:00:00 2001 From: Yann Gautier Date: Tue, 4 Sep 2018 10:44:00 +0200 Subject: MAKE_DTB: dependencies on device tree source files Fixes the dependencies issue for DTB image build. Use -MT $(DTBS) -MMD -MF $(DTSDEP) to generate the precompilation dependencies on DTS file(s). "-MT $(DTBS)" builds a dependency for the target DTS file. "-MMD" includes header file dependencies but not on system header files. "-MF $(DTSDEP)" generates a Makefile script to define the dependencies which is included afterward. This change renames existing variable DEP into DTBDEP. Signed-off-by: Yann Gautier Signed-off-by: Etienne Carriere --- make_helpers/build_macros.mk | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'make_helpers') diff --git a/make_helpers/build_macros.mk b/make_helpers/build_macros.mk index 92a0f6e8..44c537b4 100644 --- a/make_helpers/build_macros.mk +++ b/make_helpers/build_macros.mk @@ -450,17 +450,24 @@ endef # $(2) = input dts define MAKE_DTB +# List of DTB file(s) to generate, based on DTS file basename list $(eval DOBJ := $(addprefix $(1)/,$(call SOURCES_TO_DTBS,$(2)))) +# List of the pre-compiled DTS file(s) $(eval DPRE := $(addprefix $(1)/,$(patsubst %.dts,%.pre.dts,$(notdir $(2))))) -$(eval DEP := $(patsubst %.dtb,%.d,$(DOBJ))) +# Dependencies of the pre-compiled DTS file(s) on its source and included files +$(eval DTSDEP := $(patsubst %.dtb,%.o.d,$(DOBJ))) +# Dependencies of the DT compilation on its pre-compiled DTS +$(eval DTBDEP := $(patsubst %.dtb,%.d,$(DOBJ))) $(DOBJ): $(2) $(filter-out %.d,$(MAKEFILE_LIST)) | fdt_dirs @echo " CPP $$<" - $$(Q)$$(CPP) $$(CPPFLAGS) -x assembler-with-cpp -o $(DPRE) $$< + $(eval DTBS := $(addprefix $(1)/,$(call SOURCES_TO_DTBS,$(2)))) + $$(Q)$$(CPP) $$(CPPFLAGS) -x assembler-with-cpp -MT $(DTBS) -MMD -MF $(DTSDEP) -o $(DPRE) $$< @echo " DTC $$<" - $$(Q)$$(DTC) $$(DTC_FLAGS) -i fdts -d $(DEP) -o $$@ $(DPRE) + $$(Q)$$(DTC) $$(DTC_FLAGS) -i fdts -d $(DTBDEP) -o $$@ $(DPRE) --include $(DEP) +-include $(DTBDEP) +-include $(DTSDEP) endef -- cgit v1.2.3