xfstests: Clean up build output
PATCH 1/1 xfstests: 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.
While doing this, remove explicit target-per-file rules in the subdirectories being built and replace them with target based rules using the buildrules hooks for doing this. This results in the makefiles being simpler, smaller and more consistent.
This patch does not address the dmapi subdirectory of the xfstests build system.
The old style verbose builds can still be run via "make V=1 ..."
--- Makefile | 28 ++++++++++-- include/buildmacros | 10 ++-- include/buildrules | 24 +++++++--- ltp/Makefile | 31 +++---------- src/Makefile | 101 +++++++----------------------------------- src/aio-dio-regress/Makefile | 7 ++- 6 files changed, 74 insertions(+), 127 deletions(-)
Makefile +23 -5
@@ -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)
include/buildmacros +5 -5
@@ -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)
include/buildrules +17 -7
@@ -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
ltp/Makefile +8 -23
@@ -10,47 +10,32 @@ CFILES = $(TARGETS:=.c) HFILES = doio.h LDIRT = $(TARGETS) LCFLAGS = -DXFS -IFLAG = -I$(TOPDIR)/src #Used for including $(TOPDIR)/src/global.h +LCFLAGS += -I$(TOPDIR)/src #Used for including $(TOPDIR)/src/global.h ifeq ($(HAVE_ATTR_LIST), true) LCFLAGS += -DHAVE_ATTR_LIST +LLDLIBS += $(LIBATTR) endif ifeq ($(PKG_PLATFORM),irix) LCFLAGS += -DHAVE_ATTR_LIST +LLDLIBS += $(LIBATTR) endif ifeq ($(HAVE_AIO), true) TARGETS += aio-stress LCFLAGS += -DAIO -LIBAIO = -laio -lpthread +LLDLIBS += -laio -lpthread endif default: $(TARGETS) include $(BUILDRULES) -LINKTEST = $(LTLINK) [email protected] -o $@ $(CFLAGS) $(LDFLAGS) -doio: doio.c $(LIBTEST) - $(LINKTEST) $(LIBTEST) $(IFLAG) +$(TARGETS): $(LIBTEST) + @echo " [CC] $@" + $(Q)$(LTLINK) [email protected] -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTEST) -fsstress: fsstress.c $(LIBATTR) $(LIBTEST) - $(LINKTEST) $(LIBATTR) $(LIBTEST) $(LDLIBS) $(IFLAG) - -fsx: fsx.c - $(LINKTEST) $(LIBAIO) $(LDLIBS) $(IFLAG) - -growfiles: growfiles.c $(LIBTEST) - $(LINKTEST) $(LIBTEST) $(LDLIBS) $(IFLAG) - -iogen: iogen.c $(LIBTEST) - $(LINKTEST) $(LIBTEST) $(IFLAG) - -ifeq ($(HAVE_AIO), true) -aio-stress: aio-stress.c - $(LINKTEST) $(LIBAIO) $(LDLIBS) -endif - -install: +install: default $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/ltp $(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/ltp
src/Makefile +17 -84
137 lines not on this page · raw message
src/aio-dio-regress/Makefile +4 -3
@@ -6,14 +6,15 @@ TARGETS = $(basename $(wildcard *.c)) CFILES = $(TARGETS:=.c) LDIRT = $(TARGETS) -LIBAIO = -laio -lpthread +LLDLIBS = -laio -lpthread default: $(TARGETS) include $(BUILDRULES) -$(TARGETS): %: %.c - $(CC) -g -Wall $(LIBAIO) -o $@ $*.c +$(TARGETS): + @echo " [CC] $@" + $(Q)$(LTLINK) [email protected] -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTEST) install: $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/src/aio-dio-regress
Signature · 6 lines
1.6.5 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 4 lines · Dave Chinner
While doing this, remove explicit target-per-file rules in the subdirectories being built and replace them with target based rules using the buildrules hooks for doing this. This results in the makefiles being simpler, smaller and more consistent.
I agree, but it's also rather unrelated to the output..
A side effect of that rule cleanup seems that we now link all binaries against all libraries used in a subdirectory. I don't think it's a problem, but it's at least worth mentioning.
I'd really prefer if you could split this into two patches, but if that's too much work consider this reviewed anyway:
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs