automake and libtool fixes

Remove aclocal.m4 from the repository and generate it when needed.
Move the AC_PROG_LIBTOOL autoconf macro and use libtoolize according to
the libtool info pages.

Make sure that libtoolize adds the auxiliary files (config.guess and config.sub).

Move install-sh into include/ so that libtoolize does not destroy it.

Split up the ``make clean'' and ``make distclean'' targets: the former
removes all files generated during a build.  The latter removes all
files generated by libtoolize, autoconf, and configure as well.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
diff --git a/Makefile b/Makefile
index 5512dc3..0547a2e 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,11 @@
 include $(TOPDIR)/include/builddefs
 endif
 
-CONFIGURE = configure include/builddefs
-LSRCFILES = configure configure.in aclocal.m4 Makepkgs install-sh README VERSION
+CONFIGURE = aclocal.m4 configure config.guess config.sub \
+	    ltmain.sh m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 \
+	    m4/ltversion.m4 m4/lt~obsolete.m4 \
+	    include/builddefs
+LSRCFILES = configure.in Makepkgs install-sh README VERSION $(CONFIGURE)
 
 LDIRT = config.log .dep config.status config.cache confdefs.h conftest* \
 	Logs/* built .census install.* install-dev.* *.gz
@@ -20,7 +23,7 @@
 
 SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
 
-default: include/builddefs
+default: configure include/builddefs
 ifeq ($(HAVE_BUILDDEFS), no)
 	$(MAKE) -C . $@
 else
@@ -36,7 +39,15 @@
 clean:	# if configure hasn't run, nothing to clean
 endif
 
+# Recent versions of libtool require the -i option for copying auxiliary
+# files (config.sub, config.guess, install-sh, ltmain.sh), while older
+# versions will copy those files anyway, and don't understand -i.
+LIBTOOLIZE_INSTALL = `libtoolize -n -i >/dev/null 2>/dev/null && echo -i`
+
 configure include/builddefs:
+	libtoolize -c $(LIBTOOLIZE_INSTALL) -f
+	cp include/install-sh .
+	aclocal -I m4
 	autoconf
 	./configure \
 		--prefix=/ \
@@ -52,9 +63,6 @@
 		$$LOCAL_CONFIGURE_OPTIONS
 	touch .census
 
-aclocal.m4::
-	aclocal --acdir=`pwd`/m4 --output=$@
-
 install: default $(addsuffix -install,$(SUBDIRS))
 ifneq ($(PKG_DISTRIBUTION), debian)
 	$(INSTALL) -m 755 -d $(PKG_DOC_DIR)
@@ -71,4 +79,5 @@
 
 realclean distclean: clean
 	rm -f $(LDIRT) $(CONFIGURE)
+	rm -f include/builddefs include/config.h install-sh libtool
 	rm -rf autom4te.cache Logs
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index b2164a9..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,355 +0,0 @@
-# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  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.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# 
-# Find format of installed man pages.
-# Always gzipped on Debian, but not Redhat pre-7.0.
-# We don't deal with bzip2'd man pages, which Mandrake uses,
-# someone will send us a patch sometime hopefully. :-)
-# 
-AC_DEFUN([AC_MANUAL_FORMAT],
-  [ have_zipped_manpages=false
-    for d in ${prefix}/share/man ${prefix}/man ; do
-        if test -f $d/man1/man.1.gz
-        then
-            have_zipped_manpages=true
-            break
-        fi
-    done
-    AC_SUBST(have_zipped_manpages)
-  ])
-
-# 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)
-])
-
-#
-# 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_XFS_LIBXFS_H],
-  [ AC_CHECK_HEADERS([xfs/libxfs.h])
-    if test "$ac_cv_header_xfs_libxfs_h" != "yes"; then
-        echo
-        echo 'FATAL ERROR: cannot find a valid <xfs/libxfs.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_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/libxfs.h])
-    AC_TRY_LINK([#include <xfs/libxfs.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
-      ])
-  ])
-
diff --git a/configure.in b/configure.in
index 799f61b..ae2e35d 100644
--- a/configure.in
+++ b/configure.in
@@ -1,6 +1,10 @@
 AC_INIT(include/dmapi.h)
+AC_CONFIG_AUX_DIR([.])
+AC_CONFIG_MACRO_DIR([m4])
 AC_PREFIX_DEFAULT(/usr)
 
+AC_PROG_LIBTOOL
+
 AC_ARG_ENABLE(shared,
 [ --enable-shared=[yes/no] Enable use of shared libraries [default=yes]],,
 	enable_shared=yes)
diff --git a/include/Makefile b/include/Makefile
index b8d75c7..41d985d 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -6,7 +6,7 @@
 include $(TOPDIR)/include/builddefs
 
 HFILES = dmapi.h
-LSRCFILES = builddefs.in buildmacros buildrules dmapi_kern.h
+LSRCFILES = builddefs.in buildmacros buildrules install-sh dmapi_kern.h
 LDIRT = xfs
 
 default install: xfs
diff --git a/install-sh b/include/install-sh
old mode 100755
new mode 100644
similarity index 100%
rename from install-sh
rename to include/install-sh
diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4
index 302326d..cb6ef1a 100644
--- a/m4/package_utilies.m4
+++ b/m4/package_utilies.m4
@@ -32,8 +32,6 @@
     AC_SUBST(make)
     AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
 
-    AC_PROG_LIBTOOL
-
     if test -z "$TAR"; then
         AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
     fi