summaryrefslogtreecommitdiff
path: root/solenv
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2013-02-21 08:15:39 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2013-02-22 08:25:56 +0000
commited26c01be15ebc9031ee5ef709d88d524f0fc16d (patch)
tree1629e51b40fe52a3cc85795dd34c5f08b9483458 /solenv
parentc04c95958030bd4872fbbc0b3d4bc996fb041488 (diff)
quiet external module build log unless failure
ExternalProject usually involve a configure and a make step that produce a bunch of output usually irrelevant including a large number of warning and other mess. now that everything is pretty much in tail_build these output get interleaved with useful output from the build of the product and actually drown them in a logorrhea of messy noise. This store the output of external modules in a log file and only print them as a whole if the module failed do build. on a non-verbose build. Change-Id: I3abfcccd6d16821a9e061a71e031b427cc283647 Reviewed-on: https://gerrit.libreoffice.org/2304 Reviewed-by: Norbert Thiebaud <nthiebaud@gmail.com> Tested-by: Norbert Thiebaud <nthiebaud@gmail.com>
Diffstat (limited to 'solenv')
-rw-r--r--solenv/gbuild/ExternalProject.mk14
-rw-r--r--solenv/gbuild/Helper.mk4
-rw-r--r--solenv/gbuild/gbuild.mk6
3 files changed, 24 insertions, 0 deletions
diff --git a/solenv/gbuild/ExternalProject.mk b/solenv/gbuild/ExternalProject.mk
index ca49c7f10592..20c0973ac57b 100644
--- a/solenv/gbuild/ExternalProject.mk
+++ b/solenv/gbuild/ExternalProject.mk
@@ -180,4 +180,18 @@ $(call gb_ExternalProject_get_preparation_target,$(1)) : \
endef
+
+# Run a target command
+#
+# This provide a wrapper that cange to the right directory
+# touch the 'target' if sucessfull and also provide
+# the ability to hide the output if there is no failure
+# gb_ExternalProject_run,run_target,command,optional_extra_sub_directory,optional_log_filename)
+# default log_filename is <run_target>.log
+#
+
+define gb_ExternalProject_run
+$(call gb_Helper_print_on_error,cd $(EXTERNAL_WORKDIR)/$(3) && $(2) && touch $@,$(EXTERNAL_WORKDIR)/$(if $(3),$(3)/,)$(if $(4),$(4),$(1).log))
+endef
+
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk
index 8f49e20d2151..0a732c2270db 100644
--- a/solenv/gbuild/Helper.mk
+++ b/solenv/gbuild/Helper.mk
@@ -233,4 +233,8 @@ define gb_Helper_optional_for_host
$(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) )
+endef
+
# vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 9ef8d5322c8b..80a3f0cc5335 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -163,6 +163,12 @@ else
gb_KEEP_PRISTINE := $(false)
endif
+ifeq ($(findstring s,$(MAKEFLAGS)),)
+gb_QUIET_EXTERNAL := $(false)
+else
+gb_QUIET_EXTERNAL := $(true)
+endif
+
# save user-supplied flags for latter use
# TODO remove after the old build system is abolished
ifneq ($(strip $(ENVCFLAGS)),)