aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2019-04-08 10:18:01 -0400
committerMarcoFalke <falke.marco@gmail.com>2019-04-08 10:19:14 -0400
commitb4e74f938b753f87449e4f1bc64df197832e56b2 (patch)
tree1a9c19a20d3f5f705cb0678ab4f177de18c4cf95
parent327d2746fb9240ff0751a7c8f501c9745ba55bba (diff)
parent6d44c5ebf97af4b357079fe4bc2130f98e1d0fd2 (diff)
Merge #15446: Improve depends debuggability
6d44c5ebf9 depends: Add commands for each package for each stage (Carl Dong) 80f0e05b70 depends: Preprocessing doesn't care about deps (Carl Dong) Pull request description: Adds make targets for each package for each stage, e.g. ```sh make zeromq_configured ``` ACKs for commit 6d44c5: MarcoFalke: ACK 6d44c5ebf97af4b357079fe4bc2130f98e1d0fd2 (Haven't looked at the code changes, but adding this feature makes sense) ryanofsky: ACK 6d44c5ebf97af4b357079fe4bc2130f98e1d0fd2 Tree-SHA512: f1ac0aecfd2372aed09ca63603e2634552cb3f6ff9d610f958e2a66952d7d9e870b4c32b7d996886879e6d3016532272e8b1a10c13ed7b31009c6c96f786db9f
-rw-r--r--depends/Makefile2
-rw-r--r--depends/funcs.mk12
2 files changed, 12 insertions, 2 deletions
diff --git a/depends/Makefile b/depends/Makefile
index 50cc77ddeb..dc2a1e626c 100644
--- a/depends/Makefile
+++ b/depends/Makefile
@@ -192,4 +192,6 @@ download-win:
@$(MAKE) -s HOST=x86_64-w64-mingw32 download-one
download: download-osx download-linux download-win
+$(foreach package,$(all_packages),$(eval $(call ext_add_stages,$(package))))
+
.PHONY: install cached clean clean-all download-one download-osx download-linux download-win download check-packages check-sources
diff --git a/depends/funcs.mk b/depends/funcs.mk
index 9ff68f6f3c..8f03c5f37a 100644
--- a/depends/funcs.mk
+++ b/depends/funcs.mk
@@ -171,13 +171,13 @@ $($(1)_extracted): | $($(1)_fetched)
$(AT)mkdir -p $$(@D)
$(AT)cd $$(@D); $(call $(1)_extract_cmds,$(1))
$(AT)touch $$@
-$($(1)_preprocessed): | $($(1)_dependencies) $($(1)_extracted)
+$($(1)_preprocessed): | $($(1)_extracted)
$(AT)echo Preprocessing $(1)...
$(AT)mkdir -p $$(@D) $($(1)_patch_dir)
$(AT)$(foreach patch,$($(1)_patches),cd $(PATCHES_PATH)/$(1); cp $(patch) $($(1)_patch_dir) ;)
$(AT)cd $$(@D); $(call $(1)_preprocess_cmds, $(1))
$(AT)touch $$@
-$($(1)_configured): | $($(1)_preprocessed)
+$($(1)_configured): | $($(1)_dependencies) $($(1)_preprocessed)
$(AT)echo Configuring $(1)...
$(AT)rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), tar --no-same-owner -xf $($(package)_cached); )
$(AT)mkdir -p $$(@D)
@@ -214,6 +214,14 @@ $(1): | $($(1)_cached_checksum)
endef
+stages = fetched extracted preprocessed configured built staged postprocessed cached cached_checksum
+
+define ext_add_stages
+$(foreach stage,$(stages),
+ $(1)_$(stage): $($(1)_$(stage))
+ .PHONY: $(1)_$(stage))
+endef
+
# These functions create the build targets for each package. They must be
# broken down into small steps so that each part is done for all packages
# before moving on to the next step. Otherwise, a package's info