xfstests: Clean up build output
authorDave Chinner <david@fromorbit.com>
Tue, 19 Jan 2010 23:26:01 +0000 (10:26 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 19 Jan 2010 23:26:01 +0000 (10:26 +1100)
We don't need to see every compiler command line for every file that
is compiled. This makes it hard to see warnings and errors during
compile. For progress notification, we really only need to see the
directory/file being operated on.

Turn down the verbosity of output by suppressing various make output
and provide better overall visibility of which directory is being
operated on, what the operation is and what is being done to the
files by the build/clean process.

This patch only addresses the top level makefile and build rules; it
does not clean up the subdirectories - these will be addressed by a
followup patch. It also does not touch the dmapi section of the
xfstests build system.

The old style verbose builds can still be run via "make V=1 ..."

Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Makefile
include/buildmacros
include/buildrules

index b017580d4935818d128d1d81b9171191e205e849..a4bb63f47ed6d2cdb82e39059912f9503c7eb6ef 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,21 @@
 # Copyright (c) 2000-2008 Silicon Graphics, Inc.  All Rights Reserved.
 #
 
+ifeq ("$(origin V)", "command line")
+  BUILD_VERBOSE = $(V)
+endif
+ifndef BUILD_VERBOSE
+  BUILD_VERBOSE = 0
+endif
+
+ifeq ($(BUILD_VERBOSE),1)
+  Q =
+else
+  Q = @
+endif
+
+MAKEOPTS = --no-print-directory Q=$(Q)
+
 TOPDIR = .
 HAVE_BUILDDEFS = $(shell test -f $(TOPDIR)/include/builddefs && echo yes || echo no)
 
@@ -11,11 +26,14 @@ endif
 
 TESTS = $(shell sed -n -e '/^[0-9][0-9][0-9]*/s/ .*//p' group)
 CONFIGURE = configure include/builddefs include/config.h
-DMAPI_MAKEFILE = dmapi/Makefile
 LSRCFILES = configure configure.in aclocal.m4 README VERSION
 LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \
        check.log check.time
 
+ifeq ($(HAVE_DMAPI), true)
+DMAPI_MAKEFILE = dmapi/Makefile
+endif
+
 LIB_SUBDIRS = include lib
 TOOL_SUBDIRS = ltp src m4
 
@@ -23,13 +41,13 @@ SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
 
 default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS)
 ifeq ($(HAVE_BUILDDEFS), no)
-       $(MAKE) $@
+       $(Q)$(MAKE) $(MAKEOPTS) $@
 else
-       $(MAKE) $(SUBDIRS)
+       $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS)
        # automake doesn't always support "default" target 
        # so do dmapi make explicitly with "all"
 ifeq ($(HAVE_DMAPI), true)
-       $(MAKE) -C $(TOPDIR)/dmapi all
+       $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all
 endif
 endif
 
@@ -76,7 +94,7 @@ install: default $(addsuffix -install,$(SUBDIRS))
 install-dev install-lib:
 
 %-install:
-       $(MAKE) -C $* install
+       $(MAKE) $(MAKEOPTS) -C $* install
 
 realclean distclean: clean
        rm -f $(LDIRT) $(CONFIGURE)
index 276d2c800e73f1860e31f1d5cba6d986b81c8c62..026ca4b376eed2ce971342725912d25ec5f41677 100644 (file)
@@ -12,7 +12,7 @@ BUILDRULES = $(TOPDIR)/include/buildrules
 LDFLAGS += $(LOADERFLAGS) $(LLDFLAGS)
 LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB)
 
-MAKEOPTS = --no-print-directory
+MAKEOPTS = --no-print-directory Q=$(Q)
 SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $(YFILES)
 
 DEPDIRT = dep dep.bak
@@ -41,10 +41,10 @@ LIBNAME = $(basename $(LTLIBRARY))
 LTOBJECTS = $(OBJECTS:.o=.lo)
 LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
 
-LTLINK = $(LIBTOOL) --tag=CC --mode=link $(CC)
-LTEXEC = $(LIBTOOL) --mode=execute
-LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL)
-LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CCF)
+LTLINK = $(LIBTOOL) --quiet --tag=CC --mode=link $(CC)
+LTEXEC = $(LIBTOOL) --quiet --mode=execute
+LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL)
+LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF)
 
 ifeq ($(ENABLE_SHARED),yes)
 LTLDFLAGS += -rpath $(PKG_LIB_DIR)
index e509833d00c00462ba0df7e2dffd4fbd76cbb5ae..54283911f6446a0bd5619cc15875e99ea0b12e59 100644 (file)
@@ -7,11 +7,12 @@ _BUILDRULES_INCLUDED_ = 1
 include $(TOPDIR)/include/builddefs
 
 clean clobber : $(addsuffix -clean,$(SUBDIRS))
-       rm -f $(DIRT)
-       @rm -fr .libs
+       $(Q)rm -f $(DIRT)
+       $(Q)rm -fr .libs
 
 %-clean:
-       $(MAKE) -C $* clean
+       @echo "Cleaning $*"
+       $(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || $(MAKE) $(MAKEOPTS) -C $* clean
 
 # Never blow away subdirs
 ifdef SUBDIRS
@@ -19,7 +20,8 @@ ifdef SUBDIRS
 .PHONY: $(SUBDIRS)
 
 $(SUBDIRS):
-       $(MAKE) -C $@
+       @echo "Building $@"
+       $(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
 endif
 
 #
@@ -28,15 +30,23 @@ endif
 
 ifdef LTCOMMAND
 $(LTCOMMAND) : $(SUBDIRS) $(OBJECTS) $(LTDEPENDENCIES)
-       $(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
+       @echo "    [LD] $*"
+       $(Q)$(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
 endif
 
 ifdef LTLIBRARY
 $(LTLIBRARY) : $(SUBDIRS) $(LTOBJECTS)
-       $(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)
+       @echo "    [LD] $*"
+       $(Q)$(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)
 
 %.lo: %.c
-       $(LTCOMPILE) -c $<
+       @echo "    [CC] $@"
+       $(Q)$(LTCOMPILE) -c $<
+else
+%.o: %.c
+       @echo "    [CC] $@"
+       $(Q)$(CC) $(CFLAGS) -c $<
+
 endif
 
 ifdef POTHEAD