<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 10c20ea..50c7bbd 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 56ed978..7c8deb8 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: ;