All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] xfstests: Automatic build dependencies
@ 2010-01-21  6:02 Dave Chinner
  2010-01-21  6:02 ` [PATCH 1/2] xfstests: rebuild aclocal.m4 Dave Chinner
  2010-01-21  6:02 ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
  0 siblings, 2 replies; 14+ messages in thread
From: Dave Chinner @ 2010-01-21  6:02 UTC (permalink / raw)
  To: xfs

This patch series removes the need for 'make depend' by building the
dependencies as part of the normal build.

The first patch is cleaning up the current aclocal.m4 file and it's
generation as the second patch introduces a new configure test that
required regeneration.

The second patch is what changes the dependency calculation to use
gcc rather than makedepend and the makefile changes needed to build
and include those depencies automatically.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 1/2] xfstests: rebuild aclocal.m4
  2010-01-21  6:02 [PATCH 0/2] xfstests: Automatic build dependencies Dave Chinner
@ 2010-01-21  6:02 ` Dave Chinner
  2010-01-21 11:21   ` Christoph Hellwig
  2010-01-21  6:02 ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
  1 sibling, 1 reply; 14+ messages in thread
From: Dave Chinner @ 2010-01-21  6:02 UTC (permalink / raw)
  To: xfs

The local m4 configuration has not been built in a long time.
Trying to rebuild it results in failures with dmapi library
detection and libxfs.h detection macros. Fix the errors and rebuild
it.

Note: the new format for the aclocal.m4 file uses m4_include
directives which means it is much smaller than before and won't
need updating unless we include new m4 macro files.

Signed-off-by: Dave Chinner <david@fromorbit.com>
---
 aclocal.m4             |  526 +----------------------------------------------
 configure.in           |    2 +-
 m4/package_dmapidev.m4 |   15 +-
 3 files changed, 22 insertions(+), 521 deletions(-)

diff --git a/aclocal.m4 b/aclocal.m4
index 6e1e672..02f56f2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+# generated automatically by aclocal 1.11 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,515 +11,13 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-# The AC_MULTILIB macro was extracted and modified from 
-# gettext-0.15's AC_LIB_PREPARE_MULTILIB macro in the lib-prefix.m4 file
-# so that the correct paths can be used for 64-bit libraries.
-#
-dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl From Bruno Haible.
-
-dnl AC_MULTILIB creates a variable libdirsuffix, containing
-dnl the suffix of the libdir, either "" or "64".
-dnl Only do this if the given enable parameter is "yes".
-AC_DEFUN([AC_MULTILIB],
-[
-  dnl There is no formal standard regarding lib and lib64. The current
-  dnl practice is that on a system supporting 32-bit and 64-bit instruction
-  dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
-  dnl libraries go under $prefix/lib. We determine the compiler's default
-  dnl mode by looking at the compiler's library search path. If at least
-  dnl of its elements ends in /lib64 or points to a directory whose absolute
-  dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
-  dnl default, namely "lib".
-  enable_lib64="$1"
-  libdirsuffix=""
-  searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-  if test "$enable_lib64" = "yes" -a -n "$searchpath"; then
-    save_IFS="${IFS= 	}"; IFS=":"
-    for searchdir in $searchpath; do
-      if test -d "$searchdir"; then
-        case "$searchdir" in
-          */lib64/ | */lib64 ) libdirsuffix=64 ;;
-          *) searchdir=`cd "$searchdir" && pwd`
-             case "$searchdir" in
-               */lib64 ) libdirsuffix=64 ;;
-             esac ;;
-        esac
-      fi
-    done
-    IFS="$save_IFS"
-  fi
-  AC_SUBST(libdirsuffix)
-])
-
-AC_DEFUN([AC_PACKAGE_NEED_SYS_ACL_H],
-  [ AC_CHECK_HEADERS([sys/acl.h])
-    if test "$ac_cv_header_sys_acl_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: sys/acl.h does not exist.'
-        echo 'Install the access control lists (acl) development package.'
-        echo 'Alternatively, run "make install-dev" from the acl source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ACL_LIBACL_H],
-  [ AC_CHECK_HEADERS([acl/libacl.h])
-    if test "$ac_cv_header_acl_libacl_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: acl/libacl.h does not exist.'
-        echo 'Install the access control lists (acl) development package.'
-        echo 'Alternatively, run "make install-dev" from the acl source.'
-        exit 1
-    fi
-  ])
-
-
-AC_DEFUN([AC_PACKAGE_NEED_ACLINIT_LIBACL],
-  [ AC_CHECK_LIB(acl, acl_init,, [
-	echo
-	echo 'FATAL ERROR: could not find a valid Access Control List library.'
-	echo 'Install either the libacl (rpm) or the libacl1 (deb) package.'
-	echo 'Alternatively, run "make install-lib" from the acl source.'
-        exit 1
-    ])
-    libacl="-lacl"
-    test -f `pwd`/../acl/libacl/libacl.la && \
-        libacl="`pwd`/../acl/libacl/libacl.la"
-    test -f ${libexecdir}${libdirsuffix}/libacl.la && \
-	libacl="${libexecdir}${libdirsuffix}/libacl.la"
-    AC_SUBST(libacl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_AIO],
-  [ AC_CHECK_HEADERS(libaio.h, [ have_aio=true ], [ have_aio=false ])
-    AC_SUBST(have_aio)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_DMAPI],
-  [ AC_CHECK_HEADERS(sys/dmapi/dmapi.h, [ have_dmapi=true ], [ have_dmapi=false ])
-    AC_SUBST(have_dmapi)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTR_XATTR_H],
-  [ AC_CHECK_HEADERS([attr/xattr.h])
-    if test "$ac_cv_header_attr_xattr_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: attr/xattr.h does not exist.'
-        echo 'Install the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-dev" from the attr source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTR_ERROR_H],
-  [ AC_CHECK_HEADERS([attr/error_context.h])
-    if test "$ac_cv_header_attr_error_context_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: attr/error_context.h does not exist.'
-        echo 'Install the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-dev" from the attr source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTRIBUTES_H],
-  [ have_attributes_h=false
-    AC_CHECK_HEADERS([attr/attributes.h sys/attributes.h], [have_attributes_h=true], )
-    if test "$have_attributes_h" = "false"; then
-        echo
-        echo 'FATAL ERROR: attributes.h does not exist.'
-        echo 'Install the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-dev" from the attr source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_ATTRLIST_LIBATTR],
-  [ AC_CHECK_LIB(attr, attr_list, [have_attr_list=true], [have_attr_list=false])
-    AC_SUBST(have_attr_list)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_GETXATTR_LIBATTR],
-  [ AC_CHECK_LIB(attr, getxattr,, [
-        echo
-        echo 'FATAL ERROR: could not find a valid Extended Attributes library.'
-        echo 'Install the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-lib" from the attr source.'
-        exit 1
-    ])
-    libattr="-lattr"
-    test -f `pwd`/../attr/libattr/libattr.la && \
-        libattr="`pwd`/../attr/libattr/libattr.la"
-    test -f ${libexecdir}${libdirsuffix}/libattr.la && \
-	libattr="${libexecdir}${libdirsuffix}/libattr.la"
-    AC_SUBST(libattr)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTRGET_LIBATTR],
-  [ AC_CHECK_LIB(attr, attr_get,, [
-        echo
-        echo 'FATAL ERROR: could not find a valid Extended Attributes library.'
-        echo 'Install the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-lib" from the attr source.'
-        exit 1
-    ])
-    libattr="-lattr"
-    test -f `pwd`/../attr/libattr/libattr.la && \
-        libattr="`pwd`/../attr/libattr/libattr.la"
-    test -f ${libexecdir}${libdirsuffix}/libattr.la && \
-	libattr="${libexecdir}${libdirsuffix}/libattr.la"
-    AC_SUBST(libattr)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTRIBUTES_MACROS],
-  [ AC_MSG_CHECKING([macros in attr/attributes.h])
-    AC_TRY_LINK([
-#include <sys/types.h>
-#include <attr/attributes.h>],
-    [ int x = ATTR_SECURE; ], [ echo ok ], [
-        echo
-	echo 'FATAL ERROR: could not find a current attributes header.'
-        echo 'Upgrade the extended attributes (attr) development package.'
-        echo 'Alternatively, run "make install-dev" from the attr source.'
-	exit 1 ])
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_NDBM],
-  [ AC_CHECK_HEADERS(ndbm.h, [ have_db=true ], [ have_db=false ])
-    libgdbm=""
-    AC_SUBST(libgdbm)
-    AC_SUBST(have_db)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_GDBM],
-  [ AC_CHECK_HEADERS([gdbm/ndbm.h], [ have_db=true ], [ have_db=false ])
-    if test $have_db = true; then
-	libgdbm="-lgdbm"
-    fi
-    AC_SUBST(libgdbm)
-    AC_SUBST(have_db)
-  ])
-
-#
-# Generic macro, sets up all of the global packaging variables.
-# The following environment variables may be set to override defaults:
-#   DEBUG OPTIMIZER MALLOCLIB PLATFORM DISTRIBUTION INSTALL_USER INSTALL_GROUP
-#   BUILD_VERSION
-#
-AC_DEFUN([AC_PACKAGE_GLOBALS],
-  [ pkg_name="$1"
-    AC_SUBST(pkg_name)
-
-    . ./VERSION
-    pkg_version=${PKG_MAJOR}.${PKG_MINOR}.${PKG_REVISION}
-    AC_SUBST(pkg_version)
-    pkg_release=$PKG_BUILD
-    test -z "$BUILD_VERSION" || pkg_release="$BUILD_VERSION"
-    AC_SUBST(pkg_release)
-
-    DEBUG=${DEBUG:-'-DDEBUG'}		dnl  -DNDEBUG
-    debug_build="$DEBUG"
-    AC_SUBST(debug_build)
-
-    OPTIMIZER=${OPTIMIZER:-'-g -O2'}
-    opt_build="$OPTIMIZER"
-    AC_SUBST(opt_build)
-
-    MALLOCLIB=${MALLOCLIB:-''}		dnl  /usr/lib/libefence.a
-    malloc_lib="$MALLOCLIB"
-    AC_SUBST(malloc_lib)
-
-    pkg_user=`id -u -n`
-    test -z "$INSTALL_USER" || pkg_user="$INSTALL_USER"
-    AC_SUBST(pkg_user)
-
-    pkg_group=`id -g -n`
-    test -z "$INSTALL_GROUP" || pkg_group="$INSTALL_GROUP"
-    AC_SUBST(pkg_group)
-
-    pkg_distribution=`uname -s`
-    test -z "$DISTRIBUTION" || pkg_distribution="$DISTRIBUTION"
-    AC_SUBST(pkg_distribution)
-
-    pkg_platform=`uname -s | tr 'A-Z' 'a-z' | sed -e 's/irix64/irix/'`
-    test -z "$PLATFORM" || pkg_platform="$PLATFORM"
-    AC_SUBST(pkg_platform)
-  ])
-
-#
-# Check for specified utility (env var) - if unset, fail.
-# 
-AC_DEFUN([AC_PACKAGE_NEED_UTILITY],
-  [ if test -z "$2"; then
-        echo
-        echo FATAL ERROR: $3 does not seem to be installed.
-        echo $1 cannot be built without a working $4 installation.
-        exit 1
-    fi
-  ])
-
-#
-# Generic macro, sets up all of the global build variables.
-# The following environment variables may be set to override defaults:
-#  CC MAKE LIBTOOL TAR ZIP MAKEDEPEND AWK SED ECHO SORT
-#  MSGFMT MSGMERGE RPM
-#
-AC_DEFUN([AC_PACKAGE_UTILITIES],
-  [ AC_PROG_CC
-    cc="$CC"
-    AC_SUBST(cc)
-    AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
-
-    if test -z "$MAKE"; then
-        AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-    fi
-    if test -z "$MAKE"; then
-        AC_PATH_PROG(MAKE, make,, /usr/bin)
-    fi
-    make=$MAKE
-    AC_SUBST(make)
-    AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
-
-    if test -z "$LIBTOOL"; then
-	AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
-    fi
-    if test -z "$LIBTOOL"; then
-	AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-    fi
-    libtool=$LIBTOOL
-    AC_SUBST(libtool)
-    AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
-
-    if test -z "$TAR"; then
-        AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
-    fi
-    tar=$TAR
-    AC_SUBST(tar)
-    if test -z "$ZIP"; then
-        AC_PATH_PROG(ZIP, gzip,, /bin:/usr/bin:/usr/local/bin:/usr/freeware/bin)
-    fi
-
-    zip=$ZIP
-    AC_SUBST(zip)
-
-    if test -z "$MAKEDEPEND"; then
-        AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
-    fi
-    makedepend=$MAKEDEPEND
-    AC_SUBST(makedepend)
-
-    if test -z "$AWK"; then
-        AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
-    fi
-    awk=$AWK
-    AC_SUBST(awk)
-
-    if test -z "$SED"; then
-        AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
-    fi
-    sed=$SED
-    AC_SUBST(sed)
-
-    if test -z "$ECHO"; then
-        AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
-    fi
-    echo=$ECHO
-    AC_SUBST(echo)
-
-    if test -z "$SORT"; then
-        AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
-    fi
-    sort=$SORT
-    AC_SUBST(sort)
-
-    dnl check if symbolic links are supported
-    AC_PROG_LN_S
-
-    if test "$enable_gettext" = yes; then
-        if test -z "$MSGFMT"; then
-                AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-        fi
-        msgfmt=$MSGFMT
-        AC_SUBST(msgfmt)
-        AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
-
-        if test -z "$MSGMERGE"; then
-                AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
-        fi
-        msgmerge=$MSGMERGE
-        AC_SUBST(msgmerge)
-        AC_PACKAGE_NEED_UTILITY($1, "$msgmerge", msgmerge, gettext)
-    fi
-
-    if test -z "$RPM"; then
-        AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
-    fi
-    rpm=$RPM
-    AC_SUBST(rpm)
-
-    dnl .. and what version is rpm
-    rpm_version=0
-    test -n "$RPM" && test -x "$RPM" && rpm_version=`$RPM --version \
-                        | awk '{print $NF}' | awk -F. '{V=1; print $V}'`
-    AC_SUBST(rpm_version)
-    dnl At some point in rpm 4.0, rpm can no longer build rpms, and
-    dnl rpmbuild is needed (rpmbuild may go way back; not sure)
-    dnl So, if rpm version >= 4.0, look for rpmbuild.  Otherwise build w/ rpm
-    if test $rpm_version -ge 4; then
-        AC_PATH_PROG(RPMBUILD, rpmbuild)
-        rpmbuild=$RPMBUILD
-    else
-        rpmbuild=$RPM
-    fi
-    AC_SUBST(rpmbuild)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_UUID_H],
-  [ AC_CHECK_HEADERS([uuid.h sys/uuid.h uuid/uuid.h])
-    if test $ac_cv_header_uuid_h = no -a \
-	    $ac_cv_header_sys_uuid_h = no -a \
-	    $ac_cv_header_uuid_uuid_h = no; then
-	echo
-	echo 'FATAL ERROR: could not find a valid UUID header.'
-	echo 'Install the Universally Unique Identifiers development package.'
-	exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_UUIDCOMPARE],
-  [ AC_CHECK_FUNCS(uuid_compare)
-    if test $ac_cv_func_uuid_compare = yes; then
-	libuuid=""
-    else
-	AC_CHECK_LIB(uuid, uuid_compare,, [
-	    echo
-	    echo 'FATAL ERROR: could not find a valid UUID library.'
-	    echo 'Install the Universally Unique Identifiers library package.'
-	    exit 1])
-	libuuid="-luuid"
-    fi
-    AC_SUBST(libuuid)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_XFS_XFS_H],
-  [ AC_CHECK_HEADERS([xfs/xfs.h])
-    if test "$ac_cv_header_xfs_xfs_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: cannot find a valid <xfs/xfs.h> header file.'
-        echo 'Install or upgrade the XFS development package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_XFS_LIBXFS_H],
-  [ AC_CHECK_HEADERS([xfs/libxfs.h], [ have_libxfs=true ], [ have_libxfs=false ])
-    AC_SUBST(have_libxfs)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_XLOG_ASSIGN_LSN],
-  [ AC_CHECK_DECL(xlog_assign_lsn,
-      [ have_xlog_assign_lsn=true ], [ have_xlog_assign_lsn=false ],
-      [[#include <xfs/libxfs.h>]])
-    AC_SUBST(have_xlog_assign_lsn)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H],
-  [ AC_CHECK_HEADERS([xfs/xqm.h])
-    if test "$ac_cv_header_xfs_xqm_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: cannot find a valid <xfs/xqm.h> header file.'
-        echo 'Install or upgrade the XFS development package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_XFS_HANDLE_H],
-  [ AC_CHECK_HEADERS([xfs/handle.h])
-    if test "$ac_cv_header_xfs_handle_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: cannot find a valid <xfs/handle.h> header file.'
-        echo 'Install or upgrade the XFS development package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-    fi
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_LIBXFSINIT_LIBXFS],
-  [ AC_CHECK_LIB(xfs, libxfs_init,, [
-        echo
-        echo 'FATAL ERROR: could not find a valid XFS base library.'
-        echo 'Install or upgrade the XFS library package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-    ])
-    libxfs="-lxfs"
-    test -f `pwd`/../xfsprogs/libxfs/libxfs.la && \
-        libxfs="`pwd`/../xfsprogs/libxfs/libxfs.la"
-    test -f ${libexecdir}${libdirsuffix}/libxfs.la && \
-	libxfs="${libexecdir}${libdirsuffix}/libxfs.la"
-    AC_SUBST(libxfs)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_OPEN_BY_FSHANDLE],
-  [ AC_CHECK_LIB(handle, open_by_fshandle,, [
-        echo
-        echo 'FATAL ERROR: could not find a current XFS handle library.'
-        echo 'Install or upgrade the XFS library package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-    ])
-    libhdl="-lhandle"
-    test -f `pwd`/../xfsprogs/libhandle/libhandle.la && \
-        libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la"
-    test -f ${libexecdir}${libdirsuffix}/libhandle.la && \
-	libhdl="${libexecdir}${libdirsuffix}/libhandle.la"
-    AC_SUBST(libhdl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_ATTRLIST_LIBHANDLE],
-  [ AC_CHECK_LIB(handle, attr_list_by_handle,, [
-        echo
-        echo 'FATAL ERROR: could not find a current XFS handle library.'
-        echo 'Install or upgrade the XFS library package.'
-        echo 'Alternatively, run "make install-lib" from the xfsprogs source.'
-        exit 1
-    ])
-    libhdl="-lhandle"
-    test -f `pwd`/../xfsprogs/libhandle/libhandle.la && \
-        libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la"
-    test -f ${libexecdir}${libdirsuffix}/libhandle.la && \
-	libhdl="${libexecdir}${libdirsuffix}/libhandle.la"
-    AC_SUBST(libhdl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_IRIX_LIBHANDLE],
-  [ 
-    AC_MSG_CHECKING([libhandle.a for IRIX])
-    libhdl="`pwd`/../irix/libhandle/libhandle.a"
-    if ! test -f $libhdl; then
-	echo 'no'
-        echo 'FATAL ERROR: could not find IRIX XFS handle library.'
-        exit 1
-    fi
-    echo 'yes'
-    AC_SUBST(libhdl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_NEED_XFSCTL_MACRO],
-  [ AC_MSG_CHECKING([xfsctl from xfs/xfs.h])
-    AC_TRY_LINK([#include <xfs/xfs.h>], [ int x = xfsctl(0, 0, 0, 0); ],
-      [ echo ok ],
-      [ echo
-        echo 'FATAL ERROR: cannot find required macros in the XFS headers.'
-        echo 'Upgrade your XFS programs (xfsprogs) development package.'
-        echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
-        exit 1
-      ])
-  ])
-
+m4_include([m4/multilib.m4])
+m4_include([m4/package_acldev.m4])
+m4_include([m4/package_aiodev.m4])
+m4_include([m4/package_attrdev.m4])
+m4_include([m4/package_dmapidev.m4])
+m4_include([m4/package_gdbmdev.m4])
+m4_include([m4/package_globals.m4])
+m4_include([m4/package_utilies.m4])
+m4_include([m4/package_uuiddev.m4])
+m4_include([m4/package_xfslibs.m4])
diff --git a/configure.in b/configure.in
index 6c2afe7..0d6f153 100644
--- a/configure.in
+++ b/configure.in
@@ -45,7 +45,7 @@ in
 	*)
 		AC_MULTILIB($enable_lib64)
 		AC_PACKAGE_NEED_XFS_XFS_H
-		AC_PACKAGE_WANT_XFS_LIBXFS_H
+		AC_PACKAGE_WANT_LIBXFS_H
 		AC_PACKAGE_WANT_XLOG_ASSIGN_LSN
 		AC_PACKAGE_NEED_XFS_XQM_H
 		AC_PACKAGE_NEED_XFSCTL_MACRO
diff --git a/m4/package_dmapidev.m4 b/m4/package_dmapidev.m4
index 89330bd..652db30 100644
--- a/m4/package_dmapidev.m4
+++ b/m4/package_dmapidev.m4
@@ -9,13 +9,15 @@ AC_DEFUN([AC_PACKAGE_NEED_XFS_DMAPI_H],
     fi
   ])
 
-AC_DEFUN([AC_PACKAGE_NEED_MAKEHANDLE_LIBDM],
-  [ AC_CHECK_LIB(dm, dm_make_handle,, [
+AC_DEFUN([AC_PACKAGE_WANT_DMAPI],
+  [ AC_CHECK_LIB(dm, dm_make_handle, [ have_dmapi=true ], [
+	have_dmapi=false
         echo
-        echo 'FATAL ERROR: could not find a valid DMAPI base library.'
-        echo 'Install the data migration API (dmapi) library package.'
-        echo 'Alternatively, run "make install" from the dmapi source.'
-        exit 1
+        echo 'WARNING: could not find a valid DMAPI base library.'
+	echo 'If you want DMAPI support please install the data migration'
+	echo 'API (dmapi) library package. Alternatively, run "make install"'
+	echo 'from the dmapi source.'
+	echo
     ])
     libdm="-ldm"
     test -f `pwd`/../dmapi/libdm/libdm.la && \
@@ -23,4 +25,5 @@ AC_DEFUN([AC_PACKAGE_NEED_MAKEHANDLE_LIBDM],
     test -f ${libexecdir}${libdirsuffix}/libdm.la && \
 	libdm="${libexecdir}${libdirsuffix}/libdm.la"
     AC_SUBST(libdm)
+    AC_SUBST(have_dmapi)
   ])
-- 
1.6.5

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-21  6:02 [PATCH 0/2] xfstests: Automatic build dependencies Dave Chinner
  2010-01-21  6:02 ` [PATCH 1/2] xfstests: rebuild aclocal.m4 Dave Chinner
@ 2010-01-21  6:02 ` Dave Chinner
  2010-01-21 11:24   ` Christoph Hellwig
  2010-01-27 19:25   ` Eric Sandeen
  1 sibling, 2 replies; 14+ messages in thread
From: Dave Chinner @ 2010-01-21  6:02 UTC (permalink / raw)
  To: xfs

Currently the xfstest builds do not have any automatic dependency
calculations. It relies on a separate make depend run to build or
update dependency information. It also relies on an external
makedepend binary. If that binary does not exist, the dependencies
do not get calculated.

To remove the dependency on makedepend, gcc can be used instead as
it has a command to generate dependency information. This patch
changes the dependency rule building to use gcc.

In case anyone uses an old (several years) gcc compiler or a
compiler that doesn't support gcc compatible dependency generation,
a new configure check is added to turn off dependency checking so
builds can still be done.

To use the dependencies automatically, we need to use a special
include makefile directive to include the build dependencies into
the current makefile.  Essentially once the dependencies are
calculated, they can be included into the makefile and make will
recalculate the build dependencies automatically based on that
information.

Hence we get a build that automatically calculates and keeps
dependencies up to date without dependence on any external tools.

Signed-off-by: Dave Chinner <david@fromorbit.com>
---
 .gitignore                   |    3 +++
 include/builddefs.in         |    4 ----
 include/buildrules           |   36 ++++++++++--------------------------
 lib/Makefile                 |    4 +++-
 ltp/Makefile                 |    3 ++-
 m4/package_utilies.m4        |   27 +++++++++++++++++++++++----
 src/Makefile                 |   19 ++++++++++---------
 src/aio-dio-regress/Makefile |    4 +++-
 8 files changed, 54 insertions(+), 46 deletions(-)

diff --git a/.gitignore b/.gitignore
index d7cbab1..563c30a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,12 @@
 *.lo
 *.o
 *.la
+.dep
 
 autom4te.cache
 configure
+config.log
+config.status
 include/builddefs
 include/config.h
 include/config.h.in
diff --git a/include/builddefs.in b/include/builddefs.in
index 7827ed5..23a4991 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -65,18 +65,14 @@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall
 
 ifeq ($(PKG_PLATFORM),linux)
 PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(GCCFLAGS)
-DEPENDFLAGS = -D__linux__
 endif
 ifeq ($(PKG_PLATFORM),darwin)
 PCFLAGS = -traditional-cpp $(GCCFLAGS)
-DEPENDFLAGS = -D__APPLE__
 endif
 ifeq ($(PKG_PLATFORM),irix)
 PCFLAGS = -nostdinc -I$(ROOT)/usr/include -I$(TOPDIR)/../irix/include
-DEPENDFLAGS = -D__sgi__
 endif
 ifeq ($(PKG_PLATFORM),freebsd)
-DEPENDFLAGS = -D__FreeBSD__
 endif
 
 GCFLAGS = $(OPTIMIZER) $(DEBUG) $(CPPFLAGS) \
diff --git a/include/buildrules b/include/buildrules
index 5428391..5388210 100644
--- a/include/buildrules
+++ b/include/buildrules
@@ -8,7 +8,7 @@ include $(TOPDIR)/include/builddefs
 
 clean clobber : $(addsuffix -clean,$(SUBDIRS))
 	$(Q)rm -f $(DIRT)
-	$(Q)rm -fr .libs
+	$(Q)rm -fr .libs .dep
 
 %-clean:
 	@echo "Cleaning $*"
@@ -70,32 +70,16 @@ endif # _BUILDRULES_INCLUDED_
 
 $(_FORCE):
 
-.PHONY : depend
+# dependency build is automatic, relies on gcc -MM to generate.
+.PHONY : depend ltdepend
 
-DEPENDSCRIPT := $(MAKEDEPEND) $(DEPENDFLAGS) -f - -- $(CFLAGS) -- $(CFILES) | \
-	$(SED) -e 's,`pwd`,$(TOPDIR),g' \
-	    -e 's,  */[^ ]*,,g' \
-	    -e '/^[^ ]*: *$$/d' \
-	    -e '/^ *$$/d'
+MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
 
-ifdef LTLIBRARY
-DEPENDSCRIPT := $(DEPENDSCRIPT) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,'
-endif
+ltdepend: $(CFILES) $(HFILES)
+	@echo "    [DEP]"
+	$(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .dep
 
-depend : $(CFILES) $(HFILES) $(addsuffix -depend,$(SUBDIRS))
-	$(DEPENDSCRIPT) > .dep
-	test -s .dep || rm -f .dep
+depend: $(CFILES) $(HFILES)
+	@echo "    [DEP]"
+	$(Q)$(MAKEDEP) $(CFILES) | $(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep
 
-%-depend:
-	$(MAKE) -C $* depend
-
-# Include dep, but only if it exists
-ifeq ($(shell test -f .dep && echo .dep), .dep)
-include .dep
-else
-ifdef LTLIBRARY
-$(LTOBJECTS): $(HFILES)
-else
-$(OBJECTS): $(HFILES)
-endif
-endif
diff --git a/lib/Makefile b/lib/Makefile
index 435c38c..43fb0a0 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -19,8 +19,10 @@ CFILES = dataascii.c databin.c datapid.c file_lock.c forker.c \
 	str_to_bytes.c tlibio.c write_log.c \
 	random.c
 
-default: $(LTLIBRARY)
+default: ltdepend $(LTLIBRARY)
 
 include $(BUILDRULES)
 
 install install-dev: default
+
+-include .dep
diff --git a/ltp/Makefile b/ltp/Makefile
index fee10f5..d74a9df 100644
--- a/ltp/Makefile
+++ b/ltp/Makefile
@@ -27,7 +27,7 @@ LCFLAGS += -DAIO
 LLDLIBS += -laio -lpthread
 endif
 
-default: $(TARGETS)
+default: depend $(TARGETS)
 
 include $(BUILDRULES)
 
@@ -39,3 +39,4 @@ install: default
 	$(INSTALL) -m 755 -d $(PKG_LIB_DIR)/ltp
 	$(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/ltp
 
+-include .dep
diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4
index c034a7c..726406c 100644
--- a/m4/package_utilies.m4
+++ b/m4/package_utilies.m4
@@ -11,9 +11,27 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY],
   ])
 
 #
+#check compiler can generate dependencies
+#
+AC_DEFUN([AC_PACKAGE_GCC_DEPS],
+  [AC_CACHE_CHECK(whether gcc -MM is supported,
+                  ac_cv_gcc_nodeps,
+                  [cat > conftest.c <<EOF
+		   #include <stdio.h>
+		   int main() { exit(0); }
+EOF
+                  ac_cv_gcc_nodeps=no
+                  if ${CC} -MM conftest.c >/dev/null 2>&1; then
+                     ac_cv_gcc_nodeps=yes
+                  fi
+                  rm -f conftest.c a.out
+                  ])
+  ])
+
+#
 # Generic macro, sets up all of the global build variables.
 # The following environment variables may be set to override defaults:
-#  CC MAKE LIBTOOL TAR ZIP MAKEDEPEND AWK SED ECHO SORT
+#  CC MAKE LIBTOOL TAR ZIP eMAKEDEPEND AWK SED ECHO SORT
 #  MSGFMT MSGMERGE RPM
 #
 AC_DEFUN([AC_PACKAGE_UTILITIES],
@@ -54,10 +72,11 @@ AC_DEFUN([AC_PACKAGE_UTILITIES],
     zip=$ZIP
     AC_SUBST(zip)
 
-    if test -z "$MAKEDEPEND"; then
-        AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
+    AC_PACKAGE_GCC_DEPS()
+    makedepend="$cc -MM"
+    if test $ac_cv_gcc_nodeps = no; then
+	makedepend=/bin/true
     fi
-    makedepend=$MAKEDEPEND
     AC_SUBST(makedepend)
 
     if test -z "$AWK"; then
diff --git a/src/Makefile b/src/Makefile
index e2a42ce..398b9dc 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,11 +13,12 @@ TARGETS = dirstress fill fill2 getpagesize holes lstat64 \
 	multi_open_unlink dmiperf unwritten_sync genhashnames
 
 LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \
-	preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
-	fs_perms testx looptest locktest unwritten_mmap \
+	ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
 	bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
 	t_futimens
 
+SUBDIRS =
+
 LLDLIBS = $(LIBATTR) $(LIBHANDLE) $(LIBACL)
 
 ifeq ($(HAVE_XLOG_ASSIGN_LSN), true)
@@ -27,6 +28,7 @@ endif
 IRIX_TARGETS = open_unlink
 
 ifeq ($(PKG_PLATFORM),linux)
+PREALLO_TARGETS = preallo_rw_pattern_reader
 TARGETS += $(LINUX_TARGETS)
 TARGETS += t_immutable
 endif
@@ -45,13 +47,10 @@ ifeq ($(HAVE_AIO), true)
 SUBDIRS += aio-dio-regress
 endif
 
-CFILES = $(TARGETS:=.c)
-LDIRT = $(TARGETS)
-
+CFILES := $(TARGETS:=.c)
+LDIRT := $(TARGETS) $(PREALLO_TARGETS)
 
-default: $(TARGETS) $(SUBDIRS)
-
-PREALLO_TARGETS = preallo_rw_pattern_reader preallo_rw_pattern_writer
+default: depend $(TARGETS) $(PREALLO_TARGETS) $(SUBDIRS)
 
 include $(BUILDRULES)
 
@@ -63,7 +62,7 @@ preallo_rw_pattern_writer:
 	@echo "    [CC]    $@"
 	$(Q)$(LTLINK) iopat.c -DWRITE -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTEST)
 
-$(filter-out $(PREALLO_TARGETS), $(TARGETS)): $(LIBTEST)
+$(TARGETS): $(LIBTEST)
 	@echo "    [CC]    $@"
 	$(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) $(LIBTEST)
 
@@ -77,3 +76,5 @@ install: default $(addsuffix -install,$(SUBDIRS))
 
 %-install:
 	$(MAKE) -C $* install
+
+-include .dep
diff --git a/src/aio-dio-regress/Makefile b/src/aio-dio-regress/Makefile
index f0e4d15..3f9d1c2 100644
--- a/src/aio-dio-regress/Makefile
+++ b/src/aio-dio-regress/Makefile
@@ -8,7 +8,7 @@ LDIRT = $(TARGETS)
 
 LLDLIBS = -laio -lpthread
 
-default: $(TARGETS)
+default: depend $(TARGETS)
 
 include $(BUILDRULES)
 
@@ -19,3 +19,5 @@ $(TARGETS):
 install:
 	$(INSTALL) -m 755 -d $(PKG_LIB_DIR)/src/aio-dio-regress
 	$(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/src/aio-dio-regress
+
+-include .dep
-- 
1.6.5

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] xfstests: rebuild aclocal.m4
  2010-01-21  6:02 ` [PATCH 1/2] xfstests: rebuild aclocal.m4 Dave Chinner
@ 2010-01-21 11:21   ` Christoph Hellwig
  2010-01-24  7:16     ` Dave Chinner
  0 siblings, 1 reply; 14+ messages in thread
From: Christoph Hellwig @ 2010-01-21 11:21 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

On Thu, Jan 21, 2010 at 05:02:52PM +1100, Dave Chinner wrote:
> The local m4 configuration has not been built in a long time.
> Trying to rebuild it results in failures with dmapi library
> detection and libxfs.h detection macros. Fix the errors and rebuild
> it.
> 
> Note: the new format for the aclocal.m4 file uses m4_include
> directives which means it is much smaller th an before and won't
> need updating unless we include new m4 macro files.

Looks good, but shouldn't we create aclocal.m4 automocatically as part
of make configure which generates the rest of the auto* stuff and stop
having it checked into the git repository?

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-21  6:02 ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
@ 2010-01-21 11:24   ` Christoph Hellwig
  2010-01-24  7:17     ` Dave Chinner
  2010-01-27 19:25   ` Eric Sandeen
  1 sibling, 1 reply; 14+ messages in thread
From: Christoph Hellwig @ 2010-01-21 11:24 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

>  LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \
> -	preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
> -	fs_perms testx looptest locktest unwritten_mmap \
> +	ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
>  	bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
>  	t_futimens
>  
> +SUBDIRS =
> +
>  LLDLIBS = $(LIBATTR) $(LIBHANDLE) $(LIBACL)
>  
>  ifeq ($(HAVE_XLOG_ASSIGN_LSN), true)
> @@ -27,6 +28,7 @@ endif
>  IRIX_TARGETS = open_unlink
>  
>  ifeq ($(PKG_PLATFORM),linux)
> +PREALLO_TARGETS = preallo_rw_pattern_reader

What happens to the writer here?  Before introducing more special cases
for this duplicates let me post my patch to make the file compiled more
normal, will send it out ASAP.

Otherwise looks good to me.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] xfstests: rebuild aclocal.m4
  2010-01-21 11:21   ` Christoph Hellwig
@ 2010-01-24  7:16     ` Dave Chinner
  0 siblings, 0 replies; 14+ messages in thread
From: Dave Chinner @ 2010-01-24  7:16 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

On Thu, Jan 21, 2010 at 06:21:15AM -0500, Christoph Hellwig wrote:
> On Thu, Jan 21, 2010 at 05:02:52PM +1100, Dave Chinner wrote:
> > The local m4 configuration has not been built in a long time.
> > Trying to rebuild it results in failures with dmapi library
> > detection and libxfs.h detection macros. Fix the errors and rebuild
> > it.
> > 
> > Note: the new format for the aclocal.m4 file uses m4_include
> > directives which means it is much smaller th an before and won't
> > need updating unless we include new m4 macro files.
> 
> Looks good, but shouldn't we create aclocal.m4 automocatically as part
> of make configure which generates the rest of the auto* stuff and stop
> having it checked into the git repository?

I'll do that as a separate patch - I'm not sure what is involved in
doing this yet. No need to hold up the automatic dependency changes
for this....

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-21 11:24   ` Christoph Hellwig
@ 2010-01-24  7:17     ` Dave Chinner
  0 siblings, 0 replies; 14+ messages in thread
From: Dave Chinner @ 2010-01-24  7:17 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

On Thu, Jan 21, 2010 at 06:24:26AM -0500, Christoph Hellwig wrote:
> >  LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \
> > -	preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
> > -	fs_perms testx looptest locktest unwritten_mmap \
> > +	ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
> >  	bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
> >  	t_futimens
> >  
> > +SUBDIRS =
> > +
> >  LLDLIBS = $(LIBATTR) $(LIBHANDLE) $(LIBACL)
> >  
> >  ifeq ($(HAVE_XLOG_ASSIGN_LSN), true)
> > @@ -27,6 +28,7 @@ endif
> >  IRIX_TARGETS = open_unlink
> >  
> >  ifeq ($(PKG_PLATFORM),linux)
> > +PREALLO_TARGETS = preallo_rw_pattern_reader
> 
> What happens to the writer here?

Oops, missed it.
>
> Before introducing more special cases
> for this duplicates let me post my patch to make the file compiled more
> normal, will send it out ASAP.

OK, I'll pull your patch into my series and rebase my change on it
before pushing the lot of them.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-21  6:02 ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
  2010-01-21 11:24   ` Christoph Hellwig
@ 2010-01-27 19:25   ` Eric Sandeen
  2010-01-27 20:17     ` Christoph Hellwig
  2010-01-27 22:57     ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
  1 sibling, 2 replies; 14+ messages in thread
From: Eric Sandeen @ 2010-01-27 19:25 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

Dave Chinner wrote:
> Currently the xfstest builds do not have any automatic dependency
> calculations. It relies on a separate make depend run to build or
> update dependency information. It also relies on an external
> makedepend binary. If that binary does not exist, the dependencies
> do not get calculated.
> 
> To remove the dependency on makedepend, gcc can be used instead as
> it has a command to generate dependency information. This patch
> changes the dependency rule building to use gcc.
> 
> In case anyone uses an old (several years) gcc compiler or a
> compiler that doesn't support gcc compatible dependency generation,
> a new configure check is added to turn off dependency checking so
> builds can still be done.
> 
> To use the dependencies automatically, we need to use a special
> include makefile directive to include the build dependencies into
> the current makefile.  Essentially once the dependencies are
> calculated, they can be included into the makefile and make will
> recalculate the build dependencies automatically based on that
> information.
> 
> Hence we get a build that automatically calculates and keeps
> dependencies up to date without dependence on any external tools.
> 
> Signed-off-by: Dave Chinner <david@fromorbit.com>

seems to be some fallout from this at least on my F10 box:

/usr/bin/makedepend: warning:  ignoring option -Wall
/usr/bin/makedepend: error:  cannot open "no-strict-aliasing"

also this change:

-       preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
-       fs_perms testx looptest locktest unwritten_mmap \
+       ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
        bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \

...


+PREALLO_TARGETS = preallo_rw_pattern_reader

seems to have lost the build of preallo_rw_pattern_reader & writer.

Was that stray, or what were you going for there?

-Eric

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-27 19:25   ` Eric Sandeen
@ 2010-01-27 20:17     ` Christoph Hellwig
  2010-01-27 20:20       ` Eric Sandeen
  2010-01-27 22:57     ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
  1 sibling, 1 reply; 14+ messages in thread
From: Christoph Hellwig @ 2010-01-27 20:17 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: xfs

On Wed, Jan 27, 2010 at 01:25:33PM -0600, Eric Sandeen wrote:
> seems to be some fallout from this at least on my F10 box:
> 
> /usr/bin/makedepend: warning:  ignoring option -Wall
> /usr/bin/makedepend: error:  cannot open "no-strict-aliasing"
> 
> also this change:
> 
> -       preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
> -       fs_perms testx looptest locktest unwritten_mmap \
> +       ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
>         bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
> 
> ...
> 
> 
> +PREALLO_TARGETS = preallo_rw_pattern_reader
> 
> seems to have lost the build of preallo_rw_pattern_reader & writer.
> 
> Was that stray, or what were you going for there?

It's stray now that I fixed up the way preallo_rw_pattern_reader/write
are compiled.  The patch needs a little respin.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-27 20:17     ` Christoph Hellwig
@ 2010-01-27 20:20       ` Eric Sandeen
  2010-01-27 20:26         ` [PATCH] xfstests: fix compilation of iopat targets Christoph Hellwig
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Sandeen @ 2010-01-27 20:20 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

Christoph Hellwig wrote:
> On Wed, Jan 27, 2010 at 01:25:33PM -0600, Eric Sandeen wrote:
>> seems to be some fallout from this at least on my F10 box:
>>
>> /usr/bin/makedepend: warning:  ignoring option -Wall
>> /usr/bin/makedepend: error:  cannot open "no-strict-aliasing"
>>
>> also this change:
>>
>> -       preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
>> -       fs_perms testx looptest locktest unwritten_mmap \
>> +       ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
>>         bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
>>
>> ...
>>
>>
>> +PREALLO_TARGETS = preallo_rw_pattern_reader
>>
>> seems to have lost the build of preallo_rw_pattern_reader & writer.
>>
>> Was that stray, or what were you going for there?
> 
> It's stray now that I fixed up the way preallo_rw_pattern_reader/write
> are compiled.  The patch needs a little respin.
> 

ok, whatever is in the repo at this point is busted :)

-Eric

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] xfstests: fix compilation of iopat targets
  2010-01-27 20:20       ` Eric Sandeen
@ 2010-01-27 20:26         ` Christoph Hellwig
  2010-01-27 20:29           ` Eric Sandeen
  0 siblings, 1 reply; 14+ messages in thread
From: Christoph Hellwig @ 2010-01-27 20:26 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: xfs

Now that PREALLO_TARGETS is gone these tests must be listed in the main
LINUX_TARGETS list.

Signed-off-by: Christoph Hellwig <hch@lst.de>

Index: xfstests-dev/src/Makefile
===================================================================
--- xfstests-dev.orig/src/Makefile	2010-01-27 21:21:18.810261335 +0100
+++ xfstests-dev/src/Makefile	2010-01-27 21:22:08.535005799 +0100
@@ -12,10 +12,10 @@ TARGETS = dirstress fill fill2 getpagesi
 	godown resvtest writemod makeextents itrash rename \
 	multi_open_unlink dmiperf unwritten_sync genhashnames
 
-LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \
-	ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
-	bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
-	t_futimens
+LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
+	preallo_rw_pattern_writer ftrunc trunc fs_perms testx looptest \
+	locktest unwritten_mmap bulkstat_unlink_test \
+	bulkstat_unlink_test_modified t_dir_offset t_futimens t_immutable
 
 SUBDIRS =
 
@@ -28,9 +28,7 @@ endif
 IRIX_TARGETS = open_unlink
 
 ifeq ($(PKG_PLATFORM),linux)
-PREALLO_TARGETS = preallo_rw_pattern_reader
 TARGETS += $(LINUX_TARGETS)
-TARGETS += t_immutable
 endif
 
 ifeq ($(PKG_PLATFORM),irix)

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] xfstests: fix compilation of iopat targets
  2010-01-27 20:26         ` [PATCH] xfstests: fix compilation of iopat targets Christoph Hellwig
@ 2010-01-27 20:29           ` Eric Sandeen
  0 siblings, 0 replies; 14+ messages in thread
From: Eric Sandeen @ 2010-01-27 20:29 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

Christoph Hellwig wrote:
> Now that PREALLO_TARGETS is gone these tests must be listed in the main
> LINUX_TARGETS list.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Thanks,

Reviewed-by: Eric Sandeen <sandeen@sandeen.net>

> Index: xfstests-dev/src/Makefile
> ===================================================================
> --- xfstests-dev.orig/src/Makefile	2010-01-27 21:21:18.810261335 +0100
> +++ xfstests-dev/src/Makefile	2010-01-27 21:22:08.535005799 +0100
> @@ -12,10 +12,10 @@ TARGETS = dirstress fill fill2 getpagesi
>  	godown resvtest writemod makeextents itrash rename \
>  	multi_open_unlink dmiperf unwritten_sync genhashnames
>  
> -LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize \
> -	ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
> -	bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
> -	t_futimens
> +LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
> +	preallo_rw_pattern_writer ftrunc trunc fs_perms testx looptest \
> +	locktest unwritten_mmap bulkstat_unlink_test \
> +	bulkstat_unlink_test_modified t_dir_offset t_futimens t_immutable
>  
>  SUBDIRS =
>  
> @@ -28,9 +28,7 @@ endif
>  IRIX_TARGETS = open_unlink
>  
>  ifeq ($(PKG_PLATFORM),linux)
> -PREALLO_TARGETS = preallo_rw_pattern_reader
>  TARGETS += $(LINUX_TARGETS)
> -TARGETS += t_immutable
>  endif
>  
>  ifeq ($(PKG_PLATFORM),irix)
> 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-27 19:25   ` Eric Sandeen
  2010-01-27 20:17     ` Christoph Hellwig
@ 2010-01-27 22:57     ` Dave Chinner
  2010-01-27 23:06       ` Eric Sandeen
  1 sibling, 1 reply; 14+ messages in thread
From: Dave Chinner @ 2010-01-27 22:57 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: xfs

On Wed, Jan 27, 2010 at 01:25:33PM -0600, Eric Sandeen wrote:
> Dave Chinner wrote:
> > Currently the xfstest builds do not have any automatic dependency
> > calculations. It relies on a separate make depend run to build or
> > update dependency information. It also relies on an external
> > makedepend binary. If that binary does not exist, the dependencies
> > do not get calculated.
> > 
> > To remove the dependency on makedepend, gcc can be used instead as
> > it has a command to generate dependency information. This patch
> > changes the dependency rule building to use gcc.
> > 
> > In case anyone uses an old (several years) gcc compiler or a
> > compiler that doesn't support gcc compatible dependency generation,
> > a new configure check is added to turn off dependency checking so
> > builds can still be done.
> > 
> > To use the dependencies automatically, we need to use a special
> > include makefile directive to include the build dependencies into
> > the current makefile.  Essentially once the dependencies are
> > calculated, they can be included into the makefile and make will
> > recalculate the build dependencies automatically based on that
> > information.
> > 
> > Hence we get a build that automatically calculates and keeps
> > dependencies up to date without dependence on any external tools.
> > 
> > Signed-off-by: Dave Chinner <david@fromorbit.com>
> 
> seems to be some fallout from this at least on my F10 box:
> 
> /usr/bin/makedepend: warning:  ignoring option -Wall
> /usr/bin/makedepend: error:  cannot open "no-strict-aliasing"
> 
> also this change:
> 
> -       preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
> -       fs_perms testx looptest locktest unwritten_mmap \
> +       ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
>         bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
> 
> ...
> 
> 
> +PREALLO_TARGETS = preallo_rw_pattern_reader
> 
> seems to have lost the build of preallo_rw_pattern_reader & writer.
> 
> Was that stray, or what were you going for there?

I thought I fixed all that up after hch's patches went in. Bugger.
I'll try to get a few minutes at lunchtime to fix it.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] xfstests: Automatic build dependency calculations
  2010-01-27 22:57     ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
@ 2010-01-27 23:06       ` Eric Sandeen
  0 siblings, 0 replies; 14+ messages in thread
From: Eric Sandeen @ 2010-01-27 23:06 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

Dave Chinner wrote:
> On Wed, Jan 27, 2010 at 01:25:33PM -0600, Eric Sandeen wrote:
>> Dave Chinner wrote:
>>> Currently the xfstest builds do not have any automatic dependency
>>> calculations. It relies on a separate make depend run to build or
>>> update dependency information. It also relies on an external
>>> makedepend binary. If that binary does not exist, the dependencies
>>> do not get calculated.
>>>
>>> To remove the dependency on makedepend, gcc can be used instead as
>>> it has a command to generate dependency information. This patch
>>> changes the dependency rule building to use gcc.
>>>
>>> In case anyone uses an old (several years) gcc compiler or a
>>> compiler that doesn't support gcc compatible dependency generation,
>>> a new configure check is added to turn off dependency checking so
>>> builds can still be done.
>>>
>>> To use the dependencies automatically, we need to use a special
>>> include makefile directive to include the build dependencies into
>>> the current makefile.  Essentially once the dependencies are
>>> calculated, they can be included into the makefile and make will
>>> recalculate the build dependencies automatically based on that
>>> information.
>>>
>>> Hence we get a build that automatically calculates and keeps
>>> dependencies up to date without dependence on any external tools.
>>>
>>> Signed-off-by: Dave Chinner <david@fromorbit.com>
>> seems to be some fallout from this at least on my F10 box:
>>
>> /usr/bin/makedepend: warning:  ignoring option -Wall
>> /usr/bin/makedepend: error:  cannot open "no-strict-aliasing"
>>
>> also this change:
>>
>> -       preallo_rw_pattern_reader preallo_rw_pattern_writer ftrunc trunc \
>> -       fs_perms testx looptest locktest unwritten_mmap \
>> +       ftrunc trunc fs_perms testx looptest locktest unwritten_mmap \
>>         bulkstat_unlink_test bulkstat_unlink_test_modified t_dir_offset \
>>
>> ...
>>
>>
>> +PREALLO_TARGETS = preallo_rw_pattern_reader
>>
>> seems to have lost the build of preallo_rw_pattern_reader & writer.
>>
>> Was that stray, or what were you going for there?
> 
> I thought I fixed all that up after hch's patches went in. Bugger.
> I'll try to get a few minutes at lunchtime to fix it.

hch has the 2nd one fixed already.  not sure about the warnings.

-Eric

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2010-01-27 23:05 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-21  6:02 [PATCH 0/2] xfstests: Automatic build dependencies Dave Chinner
2010-01-21  6:02 ` [PATCH 1/2] xfstests: rebuild aclocal.m4 Dave Chinner
2010-01-21 11:21   ` Christoph Hellwig
2010-01-24  7:16     ` Dave Chinner
2010-01-21  6:02 ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
2010-01-21 11:24   ` Christoph Hellwig
2010-01-24  7:17     ` Dave Chinner
2010-01-27 19:25   ` Eric Sandeen
2010-01-27 20:17     ` Christoph Hellwig
2010-01-27 20:20       ` Eric Sandeen
2010-01-27 20:26         ` [PATCH] xfstests: fix compilation of iopat targets Christoph Hellwig
2010-01-27 20:29           ` Eric Sandeen
2010-01-27 22:57     ` [PATCH 2/2] xfstests: Automatic build dependency calculations Dave Chinner
2010-01-27 23:06       ` Eric Sandeen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.