xfstests: clean up build output V2
cover xfstests: clean up build output V2
Essentially the same result as before, bu split into two patches; one for the top level makefile and rules cleanup and a second for the common target rules cleanup.
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
PATCH 1/2 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.
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 ..."
--- Makefile | 28 +++++++++++++++++++++++----- include/buildmacros | 10 +++++----- include/buildrules | 24 +++++++++++++++++------- 3 files changed, 45 insertions(+), 17 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
Signature · 6 lines
1.6.5 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Re: [PATCH 1/2] xfstests: Clean up build output
Looks good,
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
PATCH 2/2 xfstests: Use common rules to build binaries
In reply to Dave ChinnerRemove 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. It does mean that all binaries are linked against the common set of libraries but this does not cause any harm.
This patch does not address the dmapi subdirectory of the xfstests build system.
--- ltp/Makefile | 31 +++---------- src/Makefile | 101 +++++++----------------------------------- src/aio-dio-regress/Makefile | 7 ++- 3 files changed, 29 insertions(+), 110 deletions(-)
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
Re: [PATCH 2/2] xfstests: Use common rules to build binaries
Looks good,
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs