Updates to QA scrdiff script to keep package configure macros in sync.
authorNathan Scott <nathans@sgi.com>
Mon, 19 May 2003 05:14:50 +0000 (05:14 +0000)
committerNathan Scott <nathans@sgi.com>
Mon, 19 May 2003 05:14:50 +0000 (05:14 +0000)
15 files changed:
m4/Makefile [new file with mode: 0644]
m4/manual_format.m4 [new file with mode: 0644]
m4/package_acldev.m4 [new file with mode: 0644]
m4/package_attrdev.m4 [new file with mode: 0644]
m4/package_dmapidev.m4 [new file with mode: 0644]
m4/package_gdbmdev.m4 [new file with mode: 0644]
m4/package_globals.m4 [new file with mode: 0644]
m4/package_ncurses.m4 [new file with mode: 0644]
m4/package_types.m4 [new file with mode: 0644]
m4/package_utilies.m4 [new file with mode: 0644]
m4/package_uuiddev.m4 [new file with mode: 0644]
m4/package_xfslibs.m4 [new file with mode: 0644]
m4/visibility_hidden.m4 [new file with mode: 0644]
tools/srcdiff
tools/srctest [deleted file]

diff --git a/m4/Makefile b/m4/Makefile
new file mode 100644 (file)
index 0000000..556a993
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Copyright (c) 2003 Silicon Graphics, Inc.  All Rights Reserved.
+# 
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of version 2 of the GNU General Public License as
+# published by the Free Software Foundation.
+# 
+# This program is distributed in the hope that it would be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# 
+# Further, this software is distributed without any warranty that it is
+# free of the rightful claim of any third person regarding infringement
+# or the like.  Any license provided herein, whether implied or
+# otherwise, applies only to this software file.  Patent licenses, if
+# any, provided herein do not apply to combinations of this program with
+# other software, or any other product whatsoever.
+# 
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write the Free Software Foundation, Inc., 59
+# Temple Place - Suite 330, Boston MA 02111-1307, USA.
+# 
+# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
+# Mountain View, CA  94043, or:
+# 
+# http://www.sgi.com 
+# 
+# For further information regarding this notice, see: 
+# 
+# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+LSRCFILES = \
+       manual_format.m4 \
+       package_acldev.m4 \
+       package_gdbmdev.m4 \
+       package_attrdev.m4 \
+       package_dmapidev.m4 \
+       package_globals.m4 \
+       package_ncurses.m4 \
+       package_types.m4 \
+       package_utilies.m4 \
+       package_uuiddev.m4 \
+       package_xfslibs.m4 \
+       visibility_hidden.m4
+
+default: 
+
+include $(BUILDRULES)
+
+install install-dev install-lib: default
diff --git a/m4/manual_format.m4 b/m4/manual_format.m4
new file mode 100644 (file)
index 0000000..50c6a91
--- /dev/null
@@ -0,0 +1,17 @@
+# 
+# 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)
+  ])
diff --git a/m4/package_acldev.m4 b/m4/package_acldev.m4
new file mode 100644 (file)
index 0000000..2228543
--- /dev/null
@@ -0,0 +1,37 @@
+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-lib" 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-lib" 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 /usr/lib/libacl.la && libacl="/usr/lib/libacl.la"
+    AC_SUBST(libacl)
+  ])
diff --git a/m4/package_attrdev.m4 b/m4/package_attrdev.m4
new file mode 100644 (file)
index 0000000..831d1fd
--- /dev/null
@@ -0,0 +1,76 @@
+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-lib" 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-lib" from the attr source.'
+        exit 1
+    fi
+  ])
+
+AC_DEFUN([AC_PACKAGE_NEED_ATTR_ATTRIBUTES_H],
+  [ AC_CHECK_HEADERS([attr/attributes.h])
+    if test "$ac_cv_header_attr_attributes_h" != "yes"; then
+        echo
+        echo 'FATAL ERROR: attr/attributes.h does not exist.'
+        echo 'Install the extended attributes (attr) development package.'
+        echo 'Alternatively, run "make install-lib" from the attr source.'
+        exit 1
+    fi
+  ])
+
+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 /usr/lib/libattr.la && libattr="/usr/lib/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 /usr/lib/libattr.la && libattr="/usr/lib/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_SHIFT; ], [
+        echo
+        echo 'FATAL ERROR: incorrect macros exist in attributes.h header file.'
+        echo 'Upgrade the extended attributes (attr) development package.'
+        echo 'Alternatively, run "make install-dev" from the attr source.'
+        exit 1 ],
+    [ echo ok ])
+  ])
diff --git a/m4/package_dmapidev.m4 b/m4/package_dmapidev.m4
new file mode 100644 (file)
index 0000000..1f9824a
--- /dev/null
@@ -0,0 +1,25 @@
+AC_DEFUN([AC_PACKAGE_NEED_XFS_DMAPI_H],
+  [ AC_CHECK_HEADERS([xfs/dmapi.h])
+    if test "$ac_cv_header_xfs_dmapi_h" != yes; then
+        echo
+        echo 'FATAL ERROR: could not find a valid DMAPI library header.'
+        echo 'Install the data migration API (dmapi) development package.'
+        echo 'Alternatively, run "make install-dev" from the dmapi source.'
+        exit 1
+    fi
+  ])
+
+AC_DEFUN([AC_PACKAGE_NEED_MAKEHANDLE_LIBDM],
+  [ AC_CHECK_LIB(dm, dm_make_handle,, [
+        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
+    ])
+    libdm="-ldm"
+    test -f `pwd`/../dmapi/libdm/libdm.la && \
+        libdm="`pwd`/../dmapi/libdm/libdm.la"
+    test -f /usr/lib/libdm.la && libdm="/usr/lib/libdm.la"
+    AC_SUBST(libdm)
+  ])
diff --git a/m4/package_gdbmdev.m4 b/m4/package_gdbmdev.m4
new file mode 100644 (file)
index 0000000..69e4545
--- /dev/null
@@ -0,0 +1,8 @@
+AC_DEFUN([AC_PACKAGE_WANT_LIBGDBM],
+  [ AC_CHECK_HEADER([gdbm/ndbm.h], [have_db=true ], [ have_db=false ])
+    if test $have_db = true -a -f /usr/lib/libgdbm.a; then
+       libgdbm="/usr/lib/libgdbm.a"
+    fi
+    AC_SUBST(libgdbm)
+    AC_SUBST(have_db)
+  ])
diff --git a/m4/package_globals.m4 b/m4/package_globals.m4
new file mode 100644 (file)
index 0000000..25b387d
--- /dev/null
@@ -0,0 +1,45 @@
+# 
+# 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'}       dnl  -O2
+    opt_build="$OPTIMIZER"
+    AC_SUBST(opt_build)
+
+    MALLOCLIB=${MALLOCLIB:-''}         dnl  /usr/lib/libefence.a
+    malloc_lib="$MALLOCLIB"
+    AC_SUBST(malloc_lib)
+
+    PKG_USER=${INSTALL_USER:-'root'}
+    pkg_user="$PKG_USER"
+    AC_SUBST(pkg_user)
+
+    PKG_GROUP=${INSTALL_GROUP:-'root'}
+    pkg_group="$PKG_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)
+  ])
diff --git a/m4/package_ncurses.m4 b/m4/package_ncurses.m4
new file mode 100644 (file)
index 0000000..83a2c38
--- /dev/null
@@ -0,0 +1,30 @@
+AC_DEFUN([AC_PACKAGE_NEED_NCURSES_H],
+  [ AC_CHECK_HEADERS([ncurses.h])
+    if test "$ac_cv_header_ncurses_h" != yes; then
+        echo
+        echo 'FATAL ERROR: could not find a valid ncurses header.'
+        echo 'Install the ncurses development package.'
+        exit 1
+    fi
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_WORKING_LIBNCURSES],
+  [ AC_CHECK_LIB(ncurses, initscr,, [
+        echo
+        echo 'FATAL ERROR: could not find a valid ncurses library.'
+        echo 'Install the ncurses library package.'
+        exit 1
+    ])
+    AC_MSG_CHECKING([for bad glibc/ncurses header interaction])
+    libcurses="-lncurses"
+    LIBS="$LIBS $libcurses"
+    CFLAGS="$CFLAGS -D_GNU_SOURCE"
+    AC_TRY_LINK([
+#include <ncurses.h>
+#include <signal.h>],
+        [wgetch(stdscr);],
+        [enable_curses=yes; AC_MSG_RESULT([ok])],
+        [enable_curses=no; libcurses=""; AC_MSG_RESULT([disabling curses])])
+    AC_SUBST(enable_curses)
+    AC_SUBST(libcurses)
+  ])
diff --git a/m4/package_types.m4 b/m4/package_types.m4
new file mode 100644 (file)
index 0000000..1bd6975
--- /dev/null
@@ -0,0 +1,50 @@
+# 
+# Check if we have a type for the pointer's size integer (__psint_t)
+# 
+AC_DEFUN([AC_TYPE_PSINT],
+  [ AC_MSG_CHECKING([for __psint_t ])
+    AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stddef.h>
+    ], [
+         __psint_t  psint;
+    ], AC_DEFINE(HAVE___PSINT_T) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
+  ])
+
+# 
+# Check if we have a type for the pointer's size unsigned (__psunsigned_t)
+# 
+AC_DEFUN([AC_TYPE_PSUNSIGNED],
+  [ AC_MSG_CHECKING([for __psunsigned_t ])
+    AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <stdlib.h>
+#include <stddef.h>
+    ], [
+        __psunsigned_t  psuint;
+    ], AC_DEFINE(HAVE___PSUNSIGNED_T) AC_MSG_RESULT(yes) , AC_MSG_RESULT(no))
+  ])
+
+# 
+# Check type sizes
+# 
+AC_DEFUN([AC_SIZEOF_POINTERS_AND_LONG],
+  [ if test "$cross_compiling" = yes -a -z "$ac_cv_sizeof_long"; then
+      AC_MSG_WARN([Cross compiling; assuming 32bit long and 32bit pointers])
+    fi
+    AC_CHECK_SIZEOF(long, 4)
+    AC_CHECK_SIZEOF(char *, 4)
+    if test $ac_cv_sizeof_long -eq 4; then
+      AC_DEFINE(HAVE_32BIT_LONG)
+    fi
+    if test $ac_cv_sizeof_long -eq 8; then
+      AC_DEFINE(HAVE_64BIT_LONG)
+    fi
+    if test $ac_cv_sizeof_char_p -eq 4; then
+      AC_DEFINE(HAVE_32BIT_PTR)
+    fi
+    if test $ac_cv_sizeof_char_p -eq 8; then
+      AC_DEFINE(HAVE_64BIT_PTR)
+    fi
+  ])
diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4
new file mode 100644 (file)
index 0000000..e0116ce
--- /dev/null
@@ -0,0 +1,115 @@
+#
+# 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],
+  [ if test -z "$CC"; then
+        AC_PROG_CC
+    fi
+    cc="$CC"
+    AC_SUBST(cc)
+    AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
+
+    if test -z "$MAKE"; then
+        AC_PATH_PROG(MAKE, make, /usr/bin/make)
+    fi
+    make=$MAKE
+    AC_SUBST(make)
+    AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
+
+    if test -z "$LIBTOOL"; then
+       AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/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)
+    fi
+    tar=$TAR
+    AC_SUBST(tar)
+    if test -z "$ZIP"; then
+        AC_PATH_PROG(ZIP, gzip, /bin/gzip)
+    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/awk)
+    fi
+    awk=$AWK
+    AC_SUBST(awk)
+    if test -z "$SED"; then
+        AC_PATH_PROG(SED, sed, /bin/sed)
+    fi
+    sed=$SED
+    AC_SUBST(sed)
+    if test -z "$ECHO"; then
+        AC_PATH_PROG(ECHO, echo, /bin/echo)
+    fi
+    echo=$ECHO
+    AC_SUBST(echo)
+    if test -z "$SORT"; then
+        AC_PATH_PROG(SORT, sort, /bin/sort)
+    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_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt)
+        fi
+        msgfmt=$MSGFMT
+        AC_SUBST(msgfmt)
+        AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
+        if test -z "$MSGMERGE"; then
+                AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge)
+        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/rpm)
+    fi
+    rpm=$RPM
+    AC_SUBST(rpm)
+    dnl .. and what version is rpm
+    rpm_version=0
+    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)
+  ])
diff --git a/m4/package_uuiddev.m4 b/m4/package_uuiddev.m4
new file mode 100644 (file)
index 0000000..1e40677
--- /dev/null
@@ -0,0 +1,26 @@
+AC_DEFUN([AC_PACKAGE_NEED_UUID_H],
+  [ AC_CHECK_HEADERS(uuid.h)
+    if test $ac_cv_header_uuid_h = no; then
+       AC_CHECK_HEADERS(uuid/uuid.h,, [
+       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 = no; then
+       AC_CHECK_LIB(uuid, uuid_compare, [libuuid=/usr/lib/libuuid.a], [
+       echo
+       echo 'FATAL ERROR: could not find a valid UUID library.'
+       echo 'Install the Universally Unique Identifiers library package.'
+       exit 1])
+    fi
+    AC_SUBST(libuuid)
+  ])
+
+AC_DEFUN([AC_PACKAGE_CHECK_LIBUUID],
+  [ test $pkg_platform = freebsd && libuuid=""
+  ])
diff --git a/m4/package_xfslibs.m4 b/m4/package_xfslibs.m4
new file mode 100644 (file)
index 0000000..7831bc4
--- /dev/null
@@ -0,0 +1,63 @@
+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: XFS header <xfs/libxfs.h> does not exist.'
+        echo 'Install the XFS programs (xfsprogs) 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: XFS header <xfs/handle.h> does not exist.'
+        echo 'Install the XFS programs (xfsprogs) 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 the XFS programs (xfsprogs) 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 /usr/lib/libxfs.la && libxfs="/usr/lib/libxfs.la"
+    AC_SUBST(libxfs)
+  ])
+
+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 the XFS programs (xfsprogs) 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 /usr/lib/libhandle.la && libhdl="/usr/lib/libhandle.la"
+    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/m4/visibility_hidden.m4 b/m4/visibility_hidden.m4
new file mode 100644 (file)
index 0000000..8b6d9e1
--- /dev/null
@@ -0,0 +1,22 @@
+AC_DEFUN([AC_FUNC_GCC_VISIBILITY],
+  [AC_CACHE_CHECK(whether __attribute__((visibility())) is supported,
+                 libc_cv_visibility_attribute,
+                 [cat > conftest.c <<EOF
+                  int foo __attribute__ ((visibility ("hidden"))) = 1;
+                  int bar __attribute__ ((visibility ("protected"))) = 1;
+EOF
+                 libc_cv_visibility_attribute=no
+                 if ${CC-cc} -Werror -S conftest.c -o conftest.s \
+                       >/dev/null 2>&1; then
+                   if grep '\.hidden.*foo' conftest.s >/dev/null; then
+                     if grep '\.protected.*bar' conftest.s >/dev/null; then
+                       libc_cv_visibility_attribute=yes
+                     fi
+                   fi
+                 fi
+                 rm -f conftest.[cs]
+                 ])
+   if test $libc_cv_visibility_attribute = yes; then
+     AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
+   fi
+  ])
index 4ad70bf..d366f4c 100755 (executable)
@@ -73,9 +73,24 @@ sub straightdiff {
        }
 }
 
+#
+# xfstests directory m4 directory is a repository of all of the
+# custom m4 macros used in the packages we look after.
+#
+sub m4macrodiff {
+       my ( $package ) = @_;
+
+       foreach (`ls cmd/$package/m4/*.m4`) {
+               my $m4 = `basename $_`;
+               chomp($m4);
+               straightdiff $m4, "cmd/$package/m4", "cmd/xfstests/m4";
+       }
+}
+
 my $first = shift @pkglist;
 foreach (@pkglist) {
        print "\n=== Checking $_ package ===\n";
+       m4macrodiff $_;
        straightdiff 'buildrules', "cmd/$first/include", "cmd/$_/include";
        straightdiff 'buildmacros', "cmd/$first/include", "cmd/$_/include";
        straightdiff 'Makefile', "cmd/$first/build", "cmd/$_/build";
diff --git a/tools/srctest b/tools/srctest
deleted file mode 100644 (file)
index 12d3332..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh -x
-# 
-# Simple script which does the following:
-#      o  Generates a src tarball from a WORKAREA
-#      o  Copies it over to ~/test and unpacks it
-#      o  Generates a src tarball from src tarball
-#      o  Compares the build status' ... reports problems
-#      o  removes ~/test
-# 
-
-package="$1"
-tmpdir="$HOME/test"
-
-if [ -z "$package" ]
-then
-       echo "srctest requires one argument - package name"
-       exit 1
-fi
-
-if [ -z "$WORKAREA" ]
-then
-       echo "WORKAREA is not set -- aborting."
-       exit 1
-fi
-
-if [ -d $tmpdir ]
-then
-       echo "$tmpdir exists already -- aborting."
-       exit 1
-else
-       mkdir $tmpdir
-       if [ ! -d $tmpdir ]
-       then
-               echo "Cannot create $tmpdir -- aborting."
-               exit 1
-       fi
-fi
-
-# 
-# Pleasantries are now out of the way, lets proceed.
-# NB: If something goes wrong we'll leave the unpacked
-# source alone for consumption by a human.
-# 
-
-_cleanup()
-{
-       if [ $status -eq 0 ]
-       then
-               rm -fr $tmpdir
-       else
-               echo "Problem?  -- leaving $tmpdir for inspection"
-       fi
-}
-
-_buildme()
-{
-       cd $1
-
-       if ./Makepkgs
-       then
-               :
-       else
-               echo Makepkgs thinks theres a problem in $1
-               exit 1
-       fi
-
-       if [ ! -f build/$package-*.src.tar.gz ]
-       then
-               echo Makepkgs failed to create build/package-*.src.tar.gz
-               exit 1
-       fi
-}
-
-status=1
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
-# first, build from the WORKAREA
-_buildme $WORKAREA/cmd/$package
-
-cd $tmpdir
-gunzip < $WORKAREA/cmd/$package/build/$package-*.src.tar.gz | tar xf -
-
-# now, cross check the src build
-_buildme $tmpdir/$package-*
-
-status=0