<http://webkit.org/b/77717> Makefile should provide control over output verbosity
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Feb 2012 07:44:38 +0000 (07:44 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Feb 2012 07:44:38 +0000 (07:44 +0000)
Allow the filtering of the output of our Makefile to be configured via a user default
and overriden via a command-line argument to make.

The Makefile takes the verbosity from BuildTranscriptVerbosity default in the
org.webkit.BuildConfiguration domain. The supported values are "default", "quiet"
and "noisy". "default" maintains the existing behavior of only filtering out
the setenv lines from Xcode's shell script build phases. "quiet" filters all output
through filter-build-webkit. "noisy" provides unfiltered output. The verbosity can
be overriden for a single invocation of make by specifying the VERBOSITY variable
on the make command line.

To always get full output:
defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity noisy

To always get filtered ouptut:
defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity quiet

To get full output for a single build:
make VERBOSITY=noisy

Reviewed by Dan Bernstein.

* Makefile.shared:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106634 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Makefile.shared

index 10c20ea5a4f2d68c71912903867de948390bad26..50c7bbd89be4e0bc81f01702dc45c57466ded517 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2012-02-02  Mark Rowe  <mrowe@apple.com>
+
+        <http://webkit.org/b/77717> Makefile should provide control over output verbosity
+
+        Allow the filtering of the output of our Makefile to be configured via a user default
+        and overriden via a command-line argument to make.
+
+        The Makefile takes the verbosity from BuildTranscriptVerbosity default in the
+        org.webkit.BuildConfiguration domain. The supported values are "default", "quiet"
+        and "noisy". "default" maintains the existing behavior of only filtering out
+        the setenv lines from Xcode's shell script build phases. "quiet" filters all output
+        through filter-build-webkit. "noisy" provides unfiltered output. The verbosity can
+        be overriden for a single invocation of make by specifying the VERBOSITY variable
+        on the make command line.
+
+        To always get full output:
+        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity noisy
+
+        To always get filtered ouptut:
+        defaults write org.webkit.BuildConfiguration BuildTranscriptVerbosity quiet
+
+        To get full output for a single build:
+        make VERBOSITY=noisy
+
+        Reviewed by Dan Bernstein.
+
+        * Makefile.shared:
+
 2012-02-02  Rakesh KN  <rakesh.kn@motorola.com>
 
         hidden attribute on <input type=file /> suppresses the file selection dialog
index 56ed9784ee6ce6ee3f260c4fd6a52ef4a630cd2e..7c8deb83cb76bd6bd1bd2859d3afe4af7de620d7 100644 (file)
@@ -1,18 +1,31 @@
 SCRIPTS_PATH ?= ../Tools/Scripts
 XCODE_OPTIONS = `perl -I$(SCRIPTS_PATH) -Mwebkitdirs -e 'print XcodeOptionString()'` $(ARGS)
 
+DEFAULT_VERBOSITY := $(shell defaults read org.webkit.BuildConfiguration BuildTranscriptVerbosity 2>/dev/null || echo "default")
+VERBOSITY ?= $(DEFAULT_VERBOSITY)
+
+ifeq ($(VERBOSITY),default)
+OUTPUT_FILTER = grep -v setenv
+else
+ifeq ($(VERBOSITY),noisy)
+OUTPUT_FILTER = cat
+else
+OUTPUT_FILTER = $(SCRIPTS_PATH)/filter-build-webkit
+endif
+endif
+
 all:
-       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} )
+       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]} )
 
 debug d development dev develop: force
        $(SCRIPTS_PATH)/set-webkit-configuration --debug
-       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} )
+       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]} )
 
 release r deployment dep deploy: force
        $(SCRIPTS_PATH)/set-webkit-configuration --release
-       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} )
+       ( xcodebuild $(OTHER_OPTIONS) $(XCODE_OPTIONS) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]} )
 
 clean:
-       ( xcodebuild $(OTHER_OPTIONS) -alltargets clean $(XCODE_OPTIONS) | grep -v setenv && exit $${PIPESTATUS[0]} )
+       ( xcodebuild $(OTHER_OPTIONS) -alltargets clean $(XCODE_OPTIONS) | $(OUTPUT_FILTER) && exit $${PIPESTATUS[0]} )
 
 force: ;