xfstests: Clean up build output
[xfstests-dev.git] / Makefile
index 63603d4ebf49964bb4c7941e0309b4e783f0f7e1..a4bb63f47ed6d2cdb82e39059912f9503c7eb6ef 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,24 @@
 #
-# Copyright (c) 2000-2006 Silicon Graphics, Inc.  All Rights Reserved.
+# 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 -a -f $(TOPDIR)/dmapi/Makefile && echo yes || echo no)
+HAVE_BUILDDEFS = $(shell test -f $(TOPDIR)/include/builddefs && echo yes || echo no)
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 include $(TOPDIR)/include/builddefs
@@ -15,14 +30,29 @@ LSRCFILES = configure configure.in aclocal.m4 README VERSION
 LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \
        check.log check.time
 
-SUBDIRS = include lib ltp src m4 dmapi
+ifeq ($(HAVE_DMAPI), true)
+DMAPI_MAKEFILE = dmapi/Makefile
+endif
+
+LIB_SUBDIRS = include lib
+TOOL_SUBDIRS = ltp src m4
+
+SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
 
-default: $(CONFIGURE) new remake check $(TESTS)
+default: include/builddefs include/config.h $(DMAPI_MAKEFILE) new remake check $(TESTS)
 ifeq ($(HAVE_BUILDDEFS), no)
-       $(MAKE) -C . $@
+       $(Q)$(MAKE) $(MAKEOPTS) $@
 else
-       $(SUBDIRS_MAKERULE)
+       $(Q)$(MAKE) $(MAKEOPTS) $(SUBDIRS)
+       # automake doesn't always support "default" target 
+       # so do dmapi make explicitly with "all"
+ifeq ($(HAVE_DMAPI), true)
+       $(Q)$(MAKE) $(MAKEOPTS) -C $(TOPDIR)/dmapi all
 endif
+endif
+
+# tool/lib dependencies
+src ltp: lib
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 include $(BUILDRULES)
@@ -30,18 +60,41 @@ else
 clean:  # if configure hasn't run, nothing to clean
 endif
 
-$(CONFIGURE):
+configure include/builddefs:
        autoheader
        autoconf
        ./configure \
                 --libexecdir=/usr/lib \
                 --enable-lib64=yes
+
+include/config.h: include/builddefs
+## Recover from the removal of $@
+       @if test -f $@; then :; else \
+               rm -f include/builddefs; \
+               $(MAKE) $(AM_MAKEFLAGS) include/builddefs; \
+       fi
+
+$(DMAPI_MAKEFILE):
        cd $(TOPDIR)/dmapi/ ; ./configure
 
 aclocal.m4::
        aclocal --acdir=`pwd`/m4 --output=$@
 
-install install-dev install-lib:
+install: default $(addsuffix -install,$(SUBDIRS))
+       $(INSTALL) -m 755 -d $(PKG_LIB_DIR)
+       $(INSTALL) -m 755 check $(PKG_LIB_DIR)
+       $(INSTALL) -m 755 [0-9]?? $(PKG_LIB_DIR)
+       $(INSTALL) -m 755 run.* $(PKG_LIB_DIR)
+       $(INSTALL) -m 644 group $(PKG_LIB_DIR)
+       $(INSTALL) -m 644 randomize.awk $(PKG_LIB_DIR)
+       $(INSTALL) -m 644 [0-9]??.* $(PKG_LIB_DIR)
+       $(INSTALL) -m 644 common* $(PKG_LIB_DIR)
+
+# Nothing.
+install-dev install-lib:
+
+%-install:
+       $(MAKE) $(MAKEOPTS) -C $* install
 
 realclean distclean: clean
        rm -f $(LDIRT) $(CONFIGURE)