build: Add separate DTS target

This patch adds an actual dts target for builds.  This required moving the
rules from Kbuild to Makefile and adding the correct dependencies to targets
requiring the dts files.

JIRA: ZEP-1979

Change-Id: I6ad568e2a821630911623cb227aa303fbf388515
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This commit is contained in:
Andy Gross 2017-04-18 23:43:58 -05:00 committed by Kumar Gala
commit c8112aaeec
3 changed files with 31 additions and 27 deletions

26
Kbuild
View file

@ -32,12 +32,10 @@ misc/generated/configs.c: include/config/auto.conf FORCE
$(call filechk,configs.c) $(call filechk,configs.c)
targets := misc/generated/configs.c targets := misc/generated/configs.c
targets += include/generated/generated_dts_board.h
targets += include/generated/offsets.h targets += include/generated/offsets.h
always := misc/generated/configs.c always := misc/generated/configs.c
always += include/generated/generated_dts_board.h
always += include/generated/offsets.h always += include/generated/offsets.h
define rule_cc_o_c_1 define rule_cc_o_c_1
@ -69,28 +67,4 @@ include/generated/offsets.h: arch/$(ARCH)/core/offsets/offsets.o \
include/config/auto.conf FORCE include/config/auto.conf FORCE
$(call offsetchk,arch/$(ARCH)/core/offsets/offsets.o) $(call offsetchk,arch/$(ARCH)/core/offsets/offsets.o)
ifeq ($(CONFIG_HAS_DTS),y)
define filechk_generated_dts_board.h
(echo "/* WARNING. THIS FILE IS AUTO-GENERATED. DO NOT MODIFY! */"; \
$(ZEPHYR_BASE)/scripts/extract_dts_includes.py dts/$(ARCH)/$(BOARD_NAME).dts_compiled $(ZEPHYR_BASE)/dts/$(ARCH)/yaml; \
if test -e $(ZEPHYR_BASE)/dts/$(ARCH)/$(BOARD_NAME).fixup; then \
echo; echo; \
echo "/* Following definitions fixup the generated include */"; \
echo; \
cat $(ZEPHYR_BASE)/dts/$(ARCH)/$(BOARD_NAME).fixup; \
fi; \
)
endef
else
define filechk_generated_dts_board.h
(echo "/* WARNING. THIS FILE IS AUTO-GENERATED. DO NOT MODIFY! */";)
endef
endif
include/generated/generated_dts_board.h: include/config/auto.conf FORCE
ifeq ($(CONFIG_HAS_DTS),y)
$(Q)$(MAKE) $(build)=dts/$(ARCH)
endif
$(call filechk,generated_dts_board.h)

View file

@ -919,6 +919,33 @@ rom_report: $(KERNEL_STAT_NAME)
zephyr: $(zephyr-deps) $(KERNEL_BIN_NAME) zephyr: $(zephyr-deps) $(KERNEL_BIN_NAME)
ifeq ($(CONFIG_HAS_DTS),y)
define filechk_generated_dts_board.h
(echo "/* WARNING. THIS FILE IS AUTO-GENERATED. DO NOT MODIFY! */"; \
$(ZEPHYR_BASE)/scripts/extract_dts_includes.py dts/$(ARCH)/$(BOARD_NAME).dts_compiled $(ZEPHYR_BASE)/dts/$(ARCH)/yaml; \
if test -e $(ZEPHYR_BASE)/dts/$(ARCH)/$(BOARD_NAME).fixup; then \
echo; echo; \
echo "/* Following definitions fixup the generated include */"; \
echo; \
cat $(ZEPHYR_BASE)/dts/$(ARCH)/$(BOARD_NAME).fixup; \
fi; \
)
endef
else
define filechk_generated_dts_board.h
(echo "/* WARNING. THIS FILE IS AUTO-GENERATED. DO NOT MODIFY! */";)
endef
endif
include/generated/generated_dts_board.h: include/config/auto.conf FORCE
ifeq ($(CONFIG_HAS_DTS),y)
$(Q)$(MAKE) $(build)=dts/$(ARCH)
endif
$(call filechk,generated_dts_board.h)
dts: include/generated/generated_dts_board.h
# The actual objects are generated when descending, # The actual objects are generated when descending,
# make sure no implicit rule kicks in # make sure no implicit rule kicks in
$(sort $(zephyr-deps)): $(zephyr-dirs) zephyr-app-dir ; $(sort $(zephyr-deps)): $(zephyr-dirs) zephyr-app-dir ;
@ -976,7 +1003,7 @@ archprepare = $(strip \
) )
# All the preparing.. # All the preparing..
prepare: $(archprepare) FORCE prepare: $(archprepare) dts FORCE
$(Q)$(MAKE) $(build)=. $(Q)$(MAKE) $(build)=.
# Generate some files # Generate some files

View file

@ -122,6 +122,9 @@ rom_report: initconfig
outputexports: initconfig outputexports: initconfig
$(Q)$(call zephyrmake,$(O),$@) $(Q)$(call zephyrmake,$(O),$@)
dts: initconfig
$(Q)$(call zephyrmake,$(O),$@)
menuconfig: initconfig menuconfig: initconfig
$(Q)$(call zephyrmake,$(O),$@) $(Q)$(call zephyrmake,$(O),$@)