[PATCH] xfsprogs: Make the compile output cleaner V2
Eric Sandeen
sandeen at sandeen.net
Wed Jan 13 08:50:29 CST 2010
On Jan 13, 2010, at 4:03 AM, Dave Chinner <david at fromorbit.com> 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 at fromorbit.com>
Reviewed-by: Eric Sandeen <sandeen at sandeen.net>
> ---
> 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 at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>
More information about the xfs
mailing list