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 <yann.gautier@st.com> Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
This commit is contained in:
parent
07a2fd6af6
commit
077b3e9afc
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue