diff options
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | include/subdir.mk | 13 | ||||
-rw-r--r-- | include/toplevel.mk | 3 | ||||
-rwxr-xr-x | scripts/metadata.pl | 3 | ||||
-rw-r--r-- | toolchain/Makefile | 4 | ||||
-rw-r--r-- | tools/Makefile | 2 |
6 files changed, 28 insertions, 8 deletions
@@ -46,9 +46,8 @@ $(package/stamp-install): $(package/stamp-compile) $(package/stamp-rootfs-prepare): $(package/stamp-install) $(target/stamp-install): $(package/stamp-compile) $(package/stamp-install) $(package/stamp-rootfs-prepare) -$(BUILD_DIR)/.prepared: Makefile - @mkdir -p $$(dirname $@) - @touch $@ +printdb: + @true prepare: $(target/stamp-compile) @@ -60,6 +59,11 @@ dirclean: clean rm -rf $(STAGING_DIR) $(STAGING_DIR_HOST) $(STAGING_DIR_TOOLCHAIN) $(TOOLCHAIN_DIR) $(BUILD_DIR_HOST) $(BUILD_DIR_TOOLCHAIN) rm -rf $(TMP_DIR) +ifndef DUMP_TARGET_DB +$(BUILD_DIR)/.prepared: Makefile + @mkdir -p $$(dirname $@) + @touch $@ + tmp/.prereq_packages: .config unset ERROR; \ for package in $(sort $(prereq-y) $(prereq-m)); do \ @@ -70,6 +74,7 @@ tmp/.prereq_packages: .config false; \ fi touch $@ +endif # check prerequisites before starting to build prereq: $(target/stamp-prereq) tmp/.prereq_packages diff --git a/include/subdir.mk b/include/subdir.mk index b8094afb2e..afc95a4427 100644 --- a/include/subdir.mk +++ b/include/subdir.mk @@ -39,16 +39,18 @@ define subdir +$(if $(BUILD_LOG),set -o pipefail;) $$(SUBMAKE) -C $(1)/$(bd) $(target) BUILD_VARIANT="$(filter-out __default,$(variant))" $(if $(BUILD_LOG),SILENT= 2>&1 | tee $(BUILD_LOG_DIR)/$(1)/$(bd)/$(target).txt) $(if $(findstring $(bd),$($(1)/builddirs-ignore-$(target))), || $(call MESSAGE, ERROR: $(1)/$(bd) failed to build$(if $(filter-out __default,$(variant)), (build variant: $(variant))).)) ) $$(if $(call debug,$(1)/$(bd),v),,.SILENT: $(1)/$(bd)/$(target)) - - # legacy targets - $(call warn_eval,$(1)/$(bd),l,T,$(1)/$(bd)-$(target): $(1)/$(bd)/$(target)) - # aliases - $(if $(call diralias,$(bd)),$(call warn_eval,$(1)/$(bd),l,T,$(1)/$(call diralias,$(bd))/$(target): $(1)/$(bd)/$(target))) + $(if $(DUMP_TARGET_DB),, + # legacy targets + $(call warn_eval,$(1)/$(bd),l,T,$(1)/$(bd)-$(target): $(1)/$(bd)/$(target)) + # aliases + $(if $(call diralias,$(bd)),$(call warn_eval,$(1)/$(bd),l,T,$(1)/$(call diralias,$(bd))/$(target): $(1)/$(bd)/$(target))) + ) ) ) $(foreach target,$(SUBTARGETS),$(call subtarget,$(1),$(target))) endef +ifndef DUMP_TARGET_DB # Parameters: <subdir> <name> <target> <depends> <config options> <stampfile location> define stampfile $(1)/stamp-$(3):=$(if $(6),$(6),$(STAGING_DIR))/stamp/.$(2)_$(3)$(if $(5),_$(call confvar,$(5))) @@ -67,3 +69,4 @@ define stampfile @rm -f $$($(1)/stamp-$(3)) endef +endif diff --git a/include/toplevel.mk b/include/toplevel.mk index 1b72f5443e..dee43cba98 100644 --- a/include/toplevel.mk +++ b/include/toplevel.mk @@ -114,6 +114,9 @@ tmp/.prereq-build: include/prereq-build.mk } touch $@ +printdb: FORCE + @$(_SINGLE)$(NO_TRACE_MAKE) -p $@ V=99 DUMP_TARGET_DB=1 2>&1 + download: .config FORCE @+$(SUBMAKE) tools/download @+$(SUBMAKE) toolchain/download diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 7902dec3ef..a9242d0a7f 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -763,6 +763,7 @@ sub gen_package_mk() { next unless $cmds; print <<EOF +ifndef DUMP_TARGET_DB \$(TARGET_DIR)/etc/uci-defaults/$preconfig: FORCE ( \\ $cmds \\ @@ -771,6 +772,8 @@ $cmds \\ ifneq (\$(IMAGEOPT)\$(CONFIG_IMAGEOPT),) package/preconfig: \$(TARGET_DIR)/etc/uci-defaults/$preconfig endif +endif + EOF } } diff --git a/toolchain/Makefile b/toolchain/Makefile index 3d8ba4c4ba..7c96c85e29 100644 --- a/toolchain/Makefile +++ b/toolchain/Makefile @@ -51,6 +51,7 @@ ifdef CONFIG_GCC_VERSION_LLVM $(curdir)/gcc/minimal/compile += $(curdir)/llvm/install endif +ifndef DUMP_TARGET_DB ifneq ($(ARCH),) $(TOOLCHAIN_DIR)/info.mk: .config @for dir in $(TOOLCHAIN_DIR); do ( \ @@ -62,6 +63,7 @@ ifneq ($(ARCH),) @grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) $(TOPDIR)/toolchain/info.mk $@ @touch $@ endif +endif # prerequisites for the individual targets $(curdir)/ := .config prereq @@ -69,7 +71,9 @@ $(curdir)//prepare = $(STAGING_DIR)/.prepared $(TOOLCHAIN_DIR)/info.mk $(curdir)//compile = $(1)/prepare $(curdir)//install = $(1)/compile +ifndef DUMP_TARGET_DB $(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed: +endif $(eval $(call stampfile,$(curdir),toolchain,install,$(TOOLCHAIN_DIR)/stamp/.gcc-initial_installed,,$(TOOLCHAIN_DIR))) $(eval $(call subdir,$(curdir))) diff --git a/tools/Makefile b/tools/Makefile index 6e364af7a9..5a5c728ab7 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -54,6 +54,7 @@ $(curdir)/upslug2/compile := $(curdir)/automake/install $(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-) $(curdir)/builddirs-default := $(tools-y) +ifndef DUMP_TARGET_DB define PrepareStaging @for dir in $(1); do ( \ set -x; \ @@ -84,6 +85,7 @@ $(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR)/.prepared }; ln -s "$$$$FILE" "$$@" endef +endif $(eval $(call PrepareCommand,find,gfind find)) $(eval $(call PrepareCommand,md5sum,md5sum $(SCRIPT_DIR)/md5sum)) |