xfs
[Top] [All Lists]

Re: [PATCH] xfsprogs: Make the compile output cleaner V2

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH] xfsprogs: Make the compile output cleaner V2
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Wed, 13 Jan 2010 08:50:29 -0600
Cc: "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>
In-reply-to: <1263377007-4500-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1263377007-4500-1-git-send-email-david@xxxxxxxxxxxxx>
On Jan 13, 2010, at 4:03 AM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:

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
diretory/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. Also fix the top level clean rule
so that we don't run configure scripts after a make clean, only after
a make distclean.

Sample output from a build:

....
Building libxlog
   [CC] xfs_log_recover.c
   [CC] util.c
   [LD] libxlog.la
Building libxcmd
   [CC] command.c
   [CC] input.c
   [CC] paths.c
   [CC] projects.c
   [CC] help.c
   [CC] quit.c
   [LD] libxcmd.la
....

Sample output from cleaning:

$ make clean
Cleaning include
Cleaning libxfs
Cleaning libxlog
Cleaning libxcmd
Cleaning libhandle
Cleaning libdisk
Cleaning copy
Cleaning db
....

If you want to see a noisy build (i.e. every command), use:

$ make Q=

and that will output all the commands that are now suppressed by
default.

Portions of this patch were contributed by Eric Sandeen.

Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx>

Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxxx>

---
Makefile            |   43 +++++++++++++++++++++++++++++--------------
doc/Makefile        |    3 ++-
include/Makefile    |    3 ++-
include/buildmacros |   10 +++++-----
include/buildrules  |   30 +++++++++++++++++++++---------
mkfs/Makefile       |    3 ++-
6 files changed, 61 insertions(+), 31 deletions(-)

diff --git a/Makefile b/Makefile
index 2d394e4..62c4258 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,21 @@
# Copyright (c) 2000-2006 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)

@@ -15,7 +30,7 @@ SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz
CONFIGURE = aclocal.m4 configure config.guess config.sub install-sh ltmain.sh
LSRCFILES = configure.in release.sh README VERSION $(CONFIGURE)

-LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \ +DISTDIRT = config.log .dep config.status config.cache confdefs.h conftest* \ built .census install.* install-dev.* *.gz autom4te.cache/* libtool \
   include/builddefs include/platform_defs.h

@@ -36,9 +51,9 @@ SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)

default: include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), no)
-    $(MAKE) -C . $@
+    $(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
-    $(MAKE) $(SUBDIRS)
+    $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS)
endif

# tool/lib dependencies
@@ -80,7 +95,7 @@ include/platform_defs.h: include/builddefs
## Recover from the removal of $@
   @if test -f $@; then :; else \
       rm -f include/builddefs; \
-        $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \
+        $(MAKE) $(MAKEOPTS) $(AM_MAKEFLAGS) include/builddefs; \
   fi

install: default $(addsuffix -install,$(SUBDIRS))
@@ -101,29 +116,29 @@ install-qa: install $(addsuffix -install-qa,$ (SUBDIRS))
   $(MAKE) -C $* install-qa

distclean: clean
-    rm -f $(LDIRT)
+    $(Q)rm -f $(DISTDIRT)

realclean: distclean
-    rm -f $(CONFIGURE)
+    $(Q)rm -f $(CONFIGURE)

#
# All this gunk is to allow for a make dist on an unconfigured tree
#
dist: include/builddefs include/platform_defs.h default
ifeq ($(HAVE_BUILDDEFS), no)
-    $(MAKE) -C . $@
+    $(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
-    $(MAKE) $(SRCTAR)
+    $(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR)
endif

deb: include/builddefs include/platform_defs.h
ifeq ($(HAVE_BUILDDEFS), no)
-    $(MAKE) -C . $@
+    $(Q)$(MAKE) $(MAKEOPTS) -C . $@
else
-    $(MAKE) $(SRCDIR)
-    $(MAKE) -C po
-    $(MAKE) source-link
-    cd $(SRCDIR) && dpkg-buildpackage
+    $(Q)$(MAKE) $(MAKEOPTS) $(SRCDIR)
+    $(Q)$(MAKE) $(MAKEOPTS) -C po
+    $(Q)$(MAKE) $(MAKEOPTS) source-link
+    $(Q)cd $(SRCDIR) && dpkg-buildpackage
endif

$(SRCDIR) : $(_FORCE)
@@ -131,6 +146,6 @@ $(SRCDIR) : $(_FORCE)
   mkdir -p $@

$(SRCTAR) : default $(SRCDIR)
-    $(MAKE) source-link
+    $(Q)$(MAKE) $(MAKEOPTS) source-link
   unset TAPE; $(TAR) -cf - $(SRCDIR) | $(ZIP) --best > $@ && \
   echo Wrote: $@
diff --git a/doc/Makefile b/doc/Makefile
index 8f65b66..86ac2ca 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -13,7 +13,8 @@ default: CHANGES.gz
include $(BUILDRULES)

CHANGES.gz:
-    $(ZIP) --best -c < CHANGES > $@
+    @echo "    [ZIP]    $@"
+    $(Q)$(ZIP) --best -c < CHANGES > $@

install: default
   $(INSTALL) -m 755 -d $(PKG_DOC_DIR)
diff --git a/include/Makefile b/include/Makefile
index d89480e..bc787db 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -43,7 +43,8 @@ LDIRT = xfs disk
default install: xfs disk

xfs disk:
-    $(LN_S) . $@
+    @echo "    [LN]     $@"
+    $(Q)$(LN_S) . $@

include $(BUILDRULES)

diff --git a/include/buildmacros b/include/buildmacros
index 099570f..62babca 100644
--- a/include/buildmacros
+++ b/include/buildmacros
@@ -13,7 +13,7 @@ LDFLAGS += $(LOADERFLAGS) $(LLDFLAGS)
LTLDFLAGS += $(LOADERFLAGS)
LDLIBS = $(LLDLIBS) $(PLDLIBS) $(MALLOCLIB)

-MAKEOPTS = --no-print-directory
+MAKEOPTS = --no-print-directory Q=$(Q)
SRCFILES = Makefile $(HFILES) $(CFILES) $(LSRCFILES) $(LFILES) $ (YFILES)
SRCFILES += $(QAHFILES)

@@ -45,10 +45,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_ROOT_LIB_DIR)
diff --git a/include/buildrules b/include/buildrules
index a06d480..464dfe3 100644
--- a/include/buildrules
+++ b/include/buildrules
@@ -7,10 +7,11 @@ _BUILDRULES_INCLUDED_ = 1
include $(TOPDIR)/include/builddefs

clean clobber : $(addsuffix -clean,$(SUBDIRS))
-    rm -f $(DIRT)
-    rm -fr $(DIRDIRT)
+    $(Q)rm -f $(DIRT)
+    $(Q)rm -fr $(DIRDIRT)
%-clean:
-    $(MAKE) -C $* clean
+    @echo "Cleaning $*"
+    $(Q)$(MAKE) $(MAKEOPTS) -C $* clean

# Never blow away subdirs
ifdef SUBDIRS
@@ -18,7 +19,8 @@ ifdef SUBDIRS
.PHONY: $(SUBDIRS)

$(SUBDIRS):
-    $(MAKE) -C $@
+    @echo "Building $@"
+    $(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
endif

source-link:
@@ -38,20 +40,29 @@ source-link:

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
$(POTHEAD): $(XGETTEXTFILES)
- $(XGETTEXT) --language=C --keyword=_ --keyword=N_ -o $@ $ (XGETTEXTFILES)
+    @echo "    [GETTXT] $@"
+ $(Q)$(XGETTEXT) --language=C --keyword=_ --keyword=N_ -o $@ $ (XGETTEXTFILES)

# Update translations
update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
@@ -70,7 +81,8 @@ update-po: $(POTHEAD) $(wildcard $(TOPDIR)/po/*.po)
   done

%.mo: %.po
-    $(MSGFMT) -c --statistics -o $@ $<
+    @echo "    [MSGFMT] $@"
+    $(Q)$(MSGFMT) -c --statistics -o $@ $<
endif

endif # _BUILDRULES_INCLUDED_
diff --git a/mkfs/Makefile b/mkfs/Makefile
index 9fcadf2..a749262 100644
--- a/mkfs/Makefile
+++ b/mkfs/Makefile
@@ -36,7 +36,8 @@ endif
include $(BUILDRULES)

$(FSTYP):
-    $(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LIBDISK) $(PLDLIBS)
+    @echo "    [CC]     $@"
+ $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LIBDISK) $ (PLDLIBS)

install: default
   $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
--
1.6.5

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


<Prev in Thread] Current Thread [Next in Thread>