summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-11-02 10:47:28 +0100
committerStephan Bergmann <sbergman@redhat.com>2015-11-02 10:49:59 +0100
commit4e4ea4bc733dc62e6c06eb42574ea0c5b0e5b826 (patch)
tree947948e6fe449f05726c8b86f9bed8b93e10660d /solenv
parentb004bf7f54b31f1b2eab01ed8b21a2c605be55d4 (diff)
Improve gb_Helper_print_on_error, and use in a CustomTarget
* always wrap the sub-command in ( ... ) * if no 2nd arg is given, use a temp file Change-Id: I7b43214dda1e4f8ee5e9b9a7310d58adee2a6500
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/Helper.mk8
1 files changed, 7 insertions, 1 deletions
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index bdc8e30d4297..da6a9afe4ec9 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -286,7 +286,13 @@ $(if $(filter $(1),$(BUILD_TYPE_FOR_HOST)),$(2))
endef
define gb_Helper_print_on_error
-$(if $(gb_QUIET_EXTERNAL),( $(1) ) > $(2) 2>&1 || ( cat $(2) && false ),$(1) )
+$(if $(gb_QUIET_EXTERNAL), \
+ $(if $(2), \
+ ( ( $(1) ) > $(2) 2>&1 || ( cat $(2) && false ) ), \
+ ( TEMPFILE=$(shell $(gb_MKTEMP)) && ( $(1) ) > $$TEMPFILE 2>&1 \
+ && rm $$TEMPFILE \
+ || ( cat $$TEMPFILE && rm $$TEMPFILE && false ) )), \
+ ( $(1) ))
endef
# vim: set noet sw=4 ts=4: