Skip to contentSkip to conversation

xfsdump: Clean up build output

PATCH In review Dave Chinner 2 participants 2 messages Jan 14, 2010 – Jan 17, 2010 Kbuild

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xfsdump: Clean up build output

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

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

---
 Makefile            |   43 +++++++++++++++++++++++++++++--------------
 doc/Makefile        |    3 ++-
 dump/Makefile       |    6 ++++--
 include/buildmacros |   10 +++++-----
 include/buildrules  |   30 +++++++++++++++++++++---------
 invutil/Makefile    |    6 ++++--
 restore/Makefile    |    6 ++++--
 7 files changed, 69 insertions(+), 35 deletions(-)
Makefile +29 -14
index 13c8834..a044512 100644
@@ -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/config.h
 
@@ -31,9 +46,9 @@ SUBDIRS = include $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
 
 default: include/builddefs include/config.h
 ifeq ($(HAVE_BUILDDEFS), no)
-	$(MAKE) -C . $@
+	$(Q)$(MAKE) $(MAKEOPTS) -C . $@
 else
-	$(MAKE) $(SUBDIRS)
+	$(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS)
 endif
 
 # tool/lib dependencies
@@ -74,13 +89,13 @@ install: default $(addsuffix -install,$(SUBDIRS))
 install-dev: default $(addsuffix -install-dev,$(SUBDIRS))
 
 %-install:
-	$(MAKE) -C $* install
+	$(Q)$(MAKE) -C $* install
 
 %-install-dev:
-	$(MAKE) -C $* install-dev
+	$(Q)$(MAKE) -C $* install-dev
 
 distclean: clean
-	rm -f $(LDIRT)
+	rm -f $(DISTDIRT)
 
 realclean: distclean
 	rm -f $(CONFIGURE)
@@ -90,19 +105,19 @@ realclean: distclean
 #
 dist: include/builddefs include/config.h default
 ifeq ($(HAVE_BUILDDEFS), no)
-	$(MAKE) -C . $@
+	$(Q)$(MAKE) $(MAKEOPTS) -C . $@
 else
-	$(MAKE) $(SRCTAR)
+	$(Q)$(MAKE) $(MAKEOPTS) $(SRCTAR)
 endif
 
 deb: include/builddefs include/config.h
 ifeq ($(HAVE_BUILDDEFS), no)
-	$(MAKE) -C . $@
+	$(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)
@@ -110,6 +125,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: $@
doc/Makefile +2 -1
index 8567172..dac0401 100644
@@ -17,7 +17,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)
dump/Makefile +4 -2
index a24fde3..a0c74dc 100644
@@ -106,7 +106,9 @@ install: default
 install-dev:
 
 $(COMMINCL) $(COMMON):
-	$(RM) $@; $(LN_S) ../common/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../common/$@ $@
 
 $(INVINCL) $(INVCOMMON):
-	$(RM) $@; $(LN_S) ../inventory/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../inventory/$@ $@
include/buildmacros +5 -5
index ea769fa..a7eebe6 100644
@@ -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)
 
 DEPDIRT = dep dep.bak
@@ -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)
include/buildrules +21 -9
index 2e3d3bb..a9eb092 100644
@@ -7,10 +7,11 @@ _BUILDRULES_INCLUDED_ = 1
 include $(TOPDIR)/include/builddefs
 
 clean clobber : $(addsuffix -clean,$(SUBDIRS))
-	rm -f $(DIRT)
-	rm -fr $(DIRDIRT)
+	@rm -f $(DIRT)
+	@rm -fr $(DIRDIRT)
 %-clean:
-	$(MAKE) -C $* clean
+	@echo "Cleaning $*"
+	$(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || $(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_
invutil/Makefile +4 -2
index 5ea0719..9e361f1 100644
@@ -71,7 +71,9 @@ install: default
 install-dev:
 
 $(COMMINCL) $(COMMON):
-	$(RM) $@; $(LN_S) ../common/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../common/$@ $@
 
 $(INVINCL) $(INVCOMMON):
-	$(RM) $@; $(LN_S) ../inventory/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../inventory/$@ $@
restore/Makefile +4 -2
index 3890af5..a587632 100644
@@ -118,7 +118,9 @@ install: default
 install-dev:
 
 $(COMMINCL) $(COMMON):
-	$(RM) $@; $(LN_S) ../common/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../common/$@ $@
 
 $(INVINCL) $(INVCOMMON):
-	$(RM) $@; $(LN_S) ../inventory/$@ $@
+	@echo "    [LN]     $@"
+	$(Q)$(RM) $@; $(LN_S) ../inventory/$@ $@
Signature · 6 lines
1.6.5

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Reviewed-by on v1 1/1
#1 lore raw
Quoted 5 lines · Dave Chinner

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.

Quoted 8 lines

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.

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

Looks good except that the make clean changes really should be separate as in xfsprogs.

For the both bits, although they should be separate.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs