Whamcloud - gitweb
Update Release Notes, Changelogs, version.h, etc. for 1.42.2 release
[tools/e2fsprogs.git] / configure.in
index da224b4..32d5768 100644 (file)
@@ -1,6 +1,8 @@
 AC_INIT(version.h)
 AC_PREREQ(2.50)
 AC_CONFIG_AUX_DIR(config)
+AC_CONFIG_HEADERS([lib/config.h])
+AH_BOTTOM([#include "dirpaths.h"])
 MCONFIG=./MCONFIG
 AC_SUBST_FILE(MCONFIG)
 BINARY_TYPE=bin
@@ -63,6 +65,14 @@ AC_SUBST(E2FSPROGS_VERSION)
 AC_SUBST(E2FSPROGS_PKGVER)
 AC_CANONICAL_HOST
 dnl
+dnl Check to see if libdl exists for the sake of dlopen
+dnl
+DLOPEN_LIB=''
+AC_CHECK_LIB(dl, dlopen, 
+[DLOPEN_LIB=-ldl
+AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
+AC_SUBST(DLOPEN_LIB)
+dnl
 dnl Use diet libc
 dnl 
 WITH_DIET_LIBC=
@@ -72,47 +82,24 @@ CC="diet cc -nostdinc"
 WITH_DIET_LIBC=yes
 AC_MSG_RESULT(CC=$CC))dnl
 dnl
-dnl set $(CC) from --with-cc=value
-dnl
 AC_ARG_WITH([cc],
-[  --with-cc=COMPILER      select compiler to use],
-AC_MSG_RESULT(CC=$withval)
-CC=$withval,
-if test -z "$CC" ; then CC=cc; fi
-[AC_MSG_RESULT(CC defaults to $CC)])dnl
-export CC
-AC_SUBST([CC])
-AC_PROG_CC
-AC_PROG_CPP
-dnl
-dnl set $(LD) from --with-linker=value
-dnl
-AC_ARG_WITH([linker],
-[  --with-linker=LINKER    select linker to use],
-AC_MSG_RESULT(LD=$withval)
-LD=$withval,
-if test -z "$LD" ; then LD=$CC; fi
-[AC_MSG_RESULT(LD defaults to $LD)])dnl
-export LD
-AC_SUBST([LD])
-dnl
-dnl set $(CCOPTS) from --with-ccopts=value
+AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
+AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
 dnl
 AC_ARG_WITH([ccopts],
-[  --with-ccopts=CCOPTS    select compiler command line options],
-AC_MSG_RESULT(CCOPTS is $withval)
-CFLAGS=$withval,
-)dnl
+AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
+AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
 dnl
-dnl On systems without linux header files, we add an extra include directory
-dnl that holds enough to fake it (hopefully).  Note that the $(top_srcdir) here
-dnl is quoted so that it gets expanded by make, not by configure.
+AC_ARG_WITH([ldopts],
+AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
+AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
 dnl
-AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
-if test "$linux_headers" != yes; then
-  LINUX_INCLUDE='-I$(top_builddir)/include'
+AC_PROG_CC
+if test "$GCC" = yes; then
+   RDYNAMIC="-rdynamic"
+   AC_SUBST(RDYNAMIC)
 fi
-AC_SUBST(LINUX_INCLUDE)
+AC_PROG_CPP
 dnl
 dnl Alpha computers use fast and imprecise floating point code that may
 dnl miss exceptions by default. Force sane options if we're using GCC.
@@ -136,16 +123,7 @@ dnl parsing configuration opions, which may modify these
 dnl
 LIB_EXT=.a
 STATIC_LIB_EXT=.a
-PROFILE_LIB_EXT=.a
-dnl
-dnl set $(LDFLAGS) from --with-ldopts=value
-dnl
-AC_ARG_WITH([ldopts],
-[  --with-ldopts=LDOPTS    select linker command line options],
-AC_MSG_RESULT(LDFLAGS is $withval)
-LDFLAGS=$withval,
-)dnl
-AC_SUBST(LDFLAGS)
+PROFILED_LIB_EXT=.a
 dnl
 dnl Allow separate `root_prefix' to be specified
 dnl
@@ -172,6 +150,64 @@ AC_MSG_RESULT([Disabling maintainer mode by default])
 )
 AC_SUBST(MAINTAINER_CMT)
 dnl
+dnl handle --enable-symlink-install
+dnl
+AC_ARG_ENABLE([symlink-install],
+[  --enable-symlink-install use symlinks when installing instead of hard links],
+if test "$enableval" = "no"
+then
+       LINK_INSTALL_FLAGS=-f
+       AC_MSG_RESULT([Disabling symlinks for install])
+else
+       LINK_INSTALL_FLAGS=-sf
+       AC_MSG_RESULT([Enabling symlinks for install])
+fi
+,
+LINK_INSTALL_FLAGS=-f
+AC_MSG_RESULT([Disabling symlinks for install])
+)
+AC_SUBST(LINK_INSTALL_FLAGS)
+dnl
+dnl handle --enable-symlink-build
+dnl
+AC_ARG_ENABLE([symlink-build],
+[  --enable-symlink-build  use symlinks while building instead of hard links],
+if test "$enableval" = "no"
+then
+       LINK_BUILD_FLAGS=
+       AC_MSG_RESULT([Disabling symlinks for build])
+else
+       LINK_BUILD_FLAGS=-s
+       AC_MSG_RESULT([Enabling symlinks for build])
+fi
+,
+LINK_BUILD_FLAGS=
+AC_MSG_RESULT([Disabling symlinks for build])
+)
+AC_SUBST(LINK_BUILD_FLAGS)
+dnl
+dnl handle --enable-verbose-makecmds
+dnl
+AC_ARG_ENABLE([verbose-makecmds],
+[  --enable-verbose-makecmds enable verbose make command output],
+if test "$enableval" = "no"
+then
+       AC_MSG_RESULT([Disabling verbose make commands])
+       E=@echo
+       Q=@
+else
+       AC_MSG_RESULT([Enabling verbose make commands])
+       E=@\\#
+       Q= 
+fi
+,
+AC_MSG_RESULT([Disabling verbose make commands])
+E=@echo
+Q=@
+)
+AC_SUBST(E)
+AC_SUBST(Q)
+dnl
 dnl handle --enable-compression
 dnl
 AC_ARG_ENABLE([compression],
@@ -180,7 +216,8 @@ if test "$enableval" = "no"
 then
        AC_MSG_RESULT([Disabling compression support])
 else
-       AC_DEFINE(ENABLE_COMPRESSION)
+       AC_DEFINE(ENABLE_COMPRESSION, 1,
+               [Define to 1 if ext2 compression enabled])
        AC_MSG_RESULT([Enabling compression support])
        AC_MSG_WARN([Compression support is experimental])
 fi
@@ -190,6 +227,7 @@ AC_MSG_RESULT([Disabling compression support by default])
 dnl
 dnl handle --enable-htree
 dnl
+AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
 AC_ARG_ENABLE([htree],
 [  --enable-htree                enable EXPERIMENTAL htree directory support],
 if test "$enableval" = "no"
@@ -198,12 +236,12 @@ then
        AC_MSG_RESULT([Disabling htree directory support])
 else
        HTREE_CMT=
-       AC_DEFINE(ENABLE_HTREE)
+       AC_DEFINE(ENABLE_HTREE, 1)
        AC_MSG_RESULT([Enabling htree directory support])
 fi
 ,
 HTREE_CMT=
-AC_DEFINE(ENABLE_HTREE)
+AC_DEFINE(ENABLE_HTREE, 1)
 AC_MSG_RESULT([Enabling htree directory support by default])
 )
 AC_SUBST(HTREE_CMT)
@@ -211,6 +249,8 @@ dnl
 dnl This needs to be before all of the --enable-*-shlibs options
 dnl
 E2_PKG_CONFIG_STATIC=--static
+LDFLAG_DYNAMIC=
+PRIVATE_LIBS_CMT=
 dnl
 dnl handle --enable-elf-shlibs
 dnl
@@ -232,6 +272,8 @@ else
        esac]
        BINARY_TYPE=elfbin
        LIB_EXT=.so
+       PRIVATE_LIBS_CMT=#
+       LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
        AC_MSG_RESULT([Enabling ELF shared libraries])
 fi
 ,
@@ -322,6 +364,8 @@ dnl
 AC_SUBST(LIB_EXT)
 AC_SUBST(STATIC_LIB_EXT)
 AC_SUBST(PROFILED_LIB_EXT)
+AC_SUBST(LDFLAG_DYNAMIC)
+AC_SUBST(PRIVATE_LIBS_CMT)
 dnl
 dnl handle --enable-jbd-debug
 dnl
@@ -331,7 +375,8 @@ if test "$enableval" = "no"
 then
        AC_MSG_RESULT([Disabling journal debugging])
 else
-       AC_DEFINE(CONFIG_JBD_DEBUG)
+       AC_DEFINE(CONFIG_JBD_DEBUG, 1,
+               [Define to 1 if debugging ext3/4 journal code])
        AC_MSG_RESULT([Enabling journal debugging])
 fi
 ,
@@ -346,7 +391,8 @@ if test "$enableval" = "no"
 then
        AC_MSG_RESULT([Disabling blkid debugging])
 else
-       AC_DEFINE(CONFIG_BLKID_DEBUG)
+       AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
+               [Define to 1 if debugging the blkid library])
        AC_MSG_RESULT([Enabling blkid debugging])
 fi
 ,
@@ -356,17 +402,162 @@ dnl
 dnl handle --enable-testio-debug
 dnl
 AC_ARG_ENABLE([testio-debug],
-[  --enable-testio-debug   enable the use of the test I/O manager for debugging],
+[  --disable-testio-debug  disable the use of the test I/O manager for debugging],
+AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
+       [Define to 1 if the testio I/O manager should be enabled])
 if test "$enableval" = "no"
 then
        AC_MSG_RESULT([Disabling testio debugging])
+       TEST_IO_CMT="#"
 else
-       AC_DEFINE(CONFIG_TESTIO_DEBUG)
+       TEST_IO_CMT=
+       AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
        AC_MSG_RESULT([Enabling testio debugging])
 fi
 ,
-AC_MSG_RESULT([Disabling testio debugging by default])
+AC_MSG_RESULT([Enabling testio debugging by default])
+AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
+TEST_IO_CMT=
+)
+AC_SUBST(TEST_IO_CMT)
+dnl
+dnl handle --disable-libuuid
+dnl
+PKG_PROG_PKG_CONFIG
+LIBUUID=
+DEPLIBUUID=
+STATIC_LIBUUID=
+DEPSTATIC_LIBUUID=
+PROFILED_LIBUUID=
+DEPPROFILED_LIBUUID=
+UUID_CMT=
+AC_ARG_ENABLE([libuuid],
+[  --disable-libuuid     do not build private uuid library],
+if test "$enableval" = "no"
+then
+       if test -z "$PKG_CONFIG"; then
+               AC_MSG_ERROR([pkg-config not installed; please install it.])
+       fi
+
+       AC_CHECK_LIB(uuid, uuid_generate,
+               [LIBUUID=`$PKG_CONFIG --libs uuid`;
+                STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
+               [AC_MSG_ERROR([external uuid library not found])],
+               [$LIBUUID])
+       UUID_CMT=#
+       AC_MSG_RESULT([Disabling private uuid library])
+else
+       LIBUUID='$(LIB)/libuuid'$LIB_EXT
+       DEPLIBUUID=$LIBUUID
+       STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
+       DEPSTATIC_LIBUUID=$STATIC_LIBUUID
+       PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
+       DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
+       AC_MSG_RESULT([Enabling private uuid library])
+fi
+,
+LIBUUID='$(LIB)/libuuid'$LIB_EXT
+DEPLIBUUID=$LIBUUID
+STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
+DEPSTATIC_LIBUUID=$STATIC_LIBUUID
+PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
+DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
+AC_MSG_RESULT([Enabling private uuid library by default])
 )
+AC_SUBST(LIBUUID)
+AC_SUBST(DEPLIBUUID)
+AC_SUBST(STATIC_LIBUUID)
+AC_SUBST(DEPSTATIC_LIBUUID)
+AC_SUBST(PROFILED_LIBUUID)
+AC_SUBST(DEPPROFILED_LIBUUID)
+AC_SUBST(UUID_CMT)
+dnl
+dnl handle --disable-libblkid
+dnl
+PKG_PROG_PKG_CONFIG
+LIBBLKID=
+DEPLIBBLKID=
+STATIC_LIBBLKID=
+DEPSTATIC_LIBBLKID=
+PROFILED_LIBBLKID=
+DEPPROFILED_LIBBLKID=
+BLKID_CMT=
+AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
+AC_ARG_ENABLE([libblkid],
+[  --disable-libblkid    do not build private blkid library],
+if test "$enableval" = "no"
+then
+       if test -z "$PKG_CONFIG"; then
+               AC_MSG_ERROR([pkg-config not installed; please install it.])
+       fi
+
+       AC_CHECK_LIB(blkid, blkid_get_cache,
+               [LIBBLKID=`$PKG_CONFIG --libs blkid`;
+                STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
+               [AC_MSG_ERROR([external blkid library not found])],
+               [$LIBBLKID])
+       BLKID_CMT=#
+       AC_MSG_RESULT([Disabling private blkid library])
+else
+       LIBBLKID='$(LIB)/libblkid'$LIB_EXT
+       DEPLIBBLKID=$LIBBLKID
+       STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
+       DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
+       PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
+       DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
+       AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
+       AC_MSG_RESULT([Enabling private blkid library])
+fi
+,
+LIBBLKID='$(LIB)/libblkid'$LIB_EXT
+DEPLIBBLKID=$LIBBLKID
+STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
+DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
+PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
+DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
+AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
+AC_MSG_RESULT([Enabling private blkid library by default])
+)
+AC_SUBST(LIBBLKID)
+AC_SUBST(DEPLIBBLKID)
+AC_SUBST(STATIC_LIBBLKID)
+AC_SUBST(DEPSTATIC_LIBBLKID)
+AC_SUBST(PROFILED_LIBBLKID)
+AC_SUBST(DEPPROFILED_LIBBLKID)
+AC_SUBST(BLKID_CMT)
+dnl
+dnl handle --enable-quota
+dnl
+PKG_PROG_PKG_CONFIG
+AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
+AC_ARG_ENABLE([quota],
+[  --enable-libquota     enable quota support],
+if test "$enableval" = "no"
+then
+       AC_MSG_RESULT([Disabling quota support])
+else
+       AC_DEFINE(CONFIG_QUOTA, 1)
+       AC_MSG_RESULT([Enabling quota support])
+fi
+,
+AC_MSG_RESULT([Disabling quota support by default])
+)
+dnl
+dnl Define stuff expected for quota library
+dnl
+LIBQUOTA='$(LIB)/libquota'$LIB_EXT
+DEPLIBQUOTA=$LIBQUOTA
+STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
+DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
+PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
+DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
+AC_SUBST(LIBQUOTA)
+AC_SUBST(DEPLIBQUOTA)
+AC_SUBST(STATIC_LIBQUOTA)
+AC_SUBST(DEPSTATIC_LIBQUOTA)
+AC_SUBST(PROFILED_LIBQUOTA)
+AC_SUBST(DEPPROFILED_LIBQUOTA)
+AC_SUBST(QUOTA_CMT)
 dnl
 dnl handle --enable-debugfs
 dnl
@@ -422,6 +613,24 @@ RESIZER_CMT=
 )
 AC_SUBST(RESIZER_CMT)
 dnl
+dnl handle --enable-defrag
+dnl
+AC_ARG_ENABLE([defrag],
+[  --disable-defrag      disable support of e4defrag program],
+if test "$enableval" = "no"
+then
+       AC_MSG_RESULT([Disabling e4defrag support])
+       DEFRAG_CMT="#"
+else
+       DEFRAG_CMT=
+       AC_MSG_RESULT([Enabling e4defrag support])
+fi
+,
+AC_MSG_RESULT([Enabling e4defrag support by default])
+DEFRAG_CMT=
+)
+AC_SUBST(DEFRAG_CMT)
+dnl
 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
 dnl
 AC_ARG_ENABLE([fsck],
@@ -466,56 +675,6 @@ AC_MSG_RESULT([Building e2initrd helper by default])
 )
 AC_SUBST(E2INITRD_PROG)
 AC_SUBST(E2INITRD_MAN)
-dnl handle --enable-blkid-devmapper
-dnl
-STATIC_BLKID_DEVMAPPER_LIBS=''
-AC_ARG_ENABLE([blkid-devmapper],
-[  --enable-blkid-devmapper  build with device-mapper support],
-[if test "$enableval" = "no"
-then
-       AC_MSG_RESULT([Disabling device-mapper support])
-       DEVMAPPER_REQ=''
-       DEVMAPPER_LIBS=''
-       STATIC_DEVMAPPER_LIBS=''
-else
-       AC_DEFINE(HAVE_DEVMAPPER)
-       AC_MSG_RESULT([Enabling device-mapper support])
-
-       PKG_PROG_PKG_CONFIG()
-
-       if test -z "$PKG_CONFIG"; then
-               AC_MSG_ERROR([pkg-config not installed; please install it.])
-       fi
-       AC_CHECK_LIB(devmapper, dm_tree_create,
-               [DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`; 
-                STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`;
-                DEVMAPPER_REQ="devmapper";
-                DEVMAPPER_PC_LIBS="-ldevmapper"],
-               [AC_MSG_ERROR([device-mapper library not found])],
-               [$DEVMAPPER_LIBS])
-       # work around stupid devmapper.pc bug in Debian
-       case "$STATIC_DEVMAPPER_LIBS" in
-       *pthread*)
-           ;;
-       *)
-           AC_MSG_WARN([Working around Debian bug 390243...])
-           STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS"
-           ;;
-       esac
-       if test "$E2_PKG_CONFIG_STATIC" = "--static"; then
-           DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
-           STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
-       fi
-fi]
-,
-AC_MSG_RESULT([Disabling device-mapper support by default])
-)
-AC_SUBST(DEVMAPPER_REQ)
-AC_SUBST(DEVMAPPER_PC_LIBS)
-AC_SUBST(DEVMAPPER_LIBS)
-AC_SUBST(STATIC_DEVMAPPER_LIBS)
-AC_SUBST(STATIC_BLKID_DEVMAPPER_LIBS)
 dnl
 dnl
 dnl
@@ -546,6 +705,7 @@ fi
 dnl
 dnl
 dnl
+AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
 AC_ARG_ENABLE([uuidd],
 [  --disable-uuidd         disable building the uuid daemon],
 [if test "$enableval" = "no"
@@ -553,12 +713,12 @@ then
        AC_MSG_RESULT([Not building uuidd])
        UUIDD_CMT="#"
 else
-       AC_DEFINE(USE_UUIDD)
+       AC_DEFINE(USE_UUIDD, 1)
        UUIDD_CMT=""
        AC_MSG_RESULT([Building uuidd])
 fi]
 ,
-AC_DEFINE(USE_UUIDD)
+AC_DEFINE(USE_UUIDD, 1)
 UUIDD_CMT=""
 AC_MSG_RESULT([Building uuidd by default])
 )
@@ -575,8 +735,8 @@ GETTEXT_PACKAGE=e2fsprogs
 PACKAGE=e2fsprogs
 VERSION="$E2FSPROGS_VERSION"
 VERSION=0.14.1
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
 AC_SUBST(GETTEXT_PACKAGE)
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
@@ -587,6 +747,7 @@ dnl End of configuration options
 dnl
 AC_SUBST(BINARY_TYPE)
 AC_PROG_MAKE_SET
+CHECK_GNU_MAKE
 AC_PATH_PROG(LN, ln, ln)
 AC_PROG_LN_S
 AC_PATH_PROG(MV, mv, mv)
@@ -623,7 +784,48 @@ if test $cross_compiling = no; then
 else
   AC_CHECK_PROGS(BUILD_CC, gcc cc)
 fi
-AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h)
+AC_CHECK_HEADERS(m4_flatten([
+       dirent.h
+       errno.h
+       execinfo.h
+       getopt.h
+       malloc.h
+       mntent.h
+       paths.h
+       semaphore.h
+       setjmp.h
+       signal.h
+       stdarg.h
+       stdint.h
+       stdlib.h
+       termios.h
+       termio.h
+       unistd.h
+       utime.h
+       linux/falloc.h
+       linux/fd.h
+       linux/major.h
+       net/if_dl.h
+       netinet/in.h
+       sys/disklabel.h
+       sys/file.h
+       sys/ioctl.h
+       sys/mkdev.h
+       sys/mman.h
+       sys/prctl.h
+       sys/queue.h
+       sys/resource.h
+       sys/select.h
+       sys/socket.h
+       sys/sockio.h
+       sys/stat.h
+       sys/syscall.h
+       sys/sysmacros.h
+       sys/time.h
+       sys/types.h
+       sys/un.h
+       sys/wait.h
+]))
 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
 [[
 #if HAVE_SYS_QUEUE_H
@@ -642,16 +844,19 @@ AC_CHECK_HEADERS(net/if.h,,,
 AC_FUNC_VPRINTF
 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
 dnl is not decleared.
-AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
+AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
+                      [Define to 1 if dirent has d_reclen])],,
                [#include <dirent.h>])
-dnl Check to see if ssize_t was decleared
-AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
+dnl Check to see if ssize_t was declared
+AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
+               [Define to 1 if ssize_t declared])],,
              [#include <sys/types.h>])
 dnl
 dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
 dnl it is, and on others it isn't..... Thank you glibc developers....
 dnl
-AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
+AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
+                       [Define to 1 if llseek declared in unistd.h])],,
              [#include <unistd.h>])
 dnl
 dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
@@ -662,7 +867,8 @@ dnl
 dnl Warning!  Use of --enable-gcc-wall may throw off this test.
 dnl
 dnl
-AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
+AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
+                       [Define to 1 if lseek64 declared in unistd.h])],,
                [#define _LARGEFILE_SOURCE
                 #define _LARGEFILE64_SOURCE
                 #include <unistd.h>])
@@ -729,18 +935,70 @@ if test "$e2fsprogs_cv_struct_st_flags" = yes; then
                [e2fsprogs_cv_struct_st_flags_immut=no]))
   AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
   if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
-         AC_DEFINE(HAVE_STAT_FLAGS)
+         AC_DEFINE(HAVE_STAT_FLAGS, 1,
+               [Define to 1 if struct stat has st_flags])
   fi
 fi
 dnl
 dnl Check for the presence of SA_LEN
 dnl
 AC_CHECK_MEMBER(struct sockaddr.sa_len,
-               AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
+               AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
+                       [Define to 1 if if struct sockaddr contains sa_len]),,
        [#include <sys/types.h>
         #include <sys/socket.h>])
 dnl
-AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep)
+dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
+dnl the system-provided blkid library
+dnl
+if test -n "$BLKID_CMT"; then
+  AC_SEARCH_LIBS([blkid_probe_all], [blkid])
+fi
+dnl
+AC_CHECK_FUNCS(m4_flatten([
+       __secure_getenv
+       backtrace
+       blkid_probe_get_topology
+       chflags
+       fallocate
+       fallocate64
+       fchown
+       fdatasync
+       fstat64
+       ftruncate64
+       getdtablesize
+       getmntinfo
+       getrlimit
+       getrusage
+       jrand48
+       llseek
+       lseek64
+       mallinfo
+       mbstowcs
+       memalign
+       mmap
+       msync
+       nanosleep
+       open64
+       pathconf
+       posix_fadvise
+       posix_memalign
+       prctl
+       quotactl
+       setresgid
+       setresuid
+       srandom
+       strcasecmp
+       strdup
+       strnlen
+       strptime
+       strtoull
+       sync_file_range
+       sysconf
+       usleep
+       utime
+       valloc
+]))
 dnl
 dnl Check to see if -lsocket is required (solaris) to make something
 dnl that uses socket() to compile; this is needed for the UUID library
@@ -749,14 +1007,6 @@ SOCKET_LIB=''
 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
 AC_SUBST(SOCKET_LIB)
 dnl
-dnl Check to see if libdl exists for the sake of dlopen
-dnl
-DLOPEN_LIB=''
-AC_CHECK_LIB(dl, dlopen, 
-[DLOPEN_LIB=-ldl
-AC_DEFINE(HAVE_DLOPEN)])
-AC_SUBST(DLOPEN_LIB)
-dnl
 dnl See if optreset exists
 dnl
 AC_MSG_CHECKING(for optreset)
@@ -765,9 +1015,25 @@ AC_CACHE_VAL(ac_cv_have_optreset,
   ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
 AC_MSG_RESULT($ac_cv_have_optreset)
 if test $ac_cv_have_optreset = yes; then
-  AC_DEFINE(HAVE_OPTRESET)
+  AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
 fi
 dnl
+dnl Test for sem_init, and which library it might require:
+dnl
+AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
+SEM_INIT_LIB=''
+AC_CHECK_FUNC(sem_init, ,
+  AC_CHECK_LIB(pthread, sem_init,
+       AC_DEFINE(HAVE_SEM_INIT, 1)
+       SEM_INIT_LIB=-lpthread,
+  AC_CHECK_LIB(rt, sem_init,
+       AC_DEFINE(HAVE_SEM_INIT, 1)
+       SEM_INIT_LIB=-lrt,
+  AC_CHECK_LIB(posix4, sem_init,
+       AC_DEFINE(HAVE_SEM_INIT, 1)
+       SEM_INIT_LIB=-lposix4))))dnl
+AC_SUBST(SEM_INIT_LIB)
+dnl
 dnl Check for unified diff
 dnl
 AC_MSG_CHECKING(for unified diff option)
@@ -783,7 +1049,7 @@ dnl We use the EXT2 ioctls only under Linux
 dnl
 case "$host_os" in
 linux*)
-       AC_DEFINE(HAVE_EXT2_IOCTLS)
+       AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
        ;;
 esac
 dnl
@@ -868,6 +1134,14 @@ AC_SUBST(root_sbindir)
 AC_SUBST(root_libdir)
 AC_SUBST(root_sysconfdir)
 dnl
+dnl Allow specification of the multiarch arch
+dnl
+AC_ARG_WITH([multiarch],
+[  --with-multiarch=ARCH specify the multiarch triplet],
+libdir=$libdir/$withval
+root_libdir=$root_libdir/$withval
+)dnl
+dnl
 dnl See if -static works.
 dnl
 AC_MSG_CHECKING([whether linker accepts -static])
@@ -902,7 +1176,8 @@ dnl
 case "$host_os" in
 darwin*)
        AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
-       AC_DEFINE(_INTL_REDIRECT_MACROS)
+       AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
+               [Define to 1 if Apple Darwin libintl workaround is needed])
        ;;
 esac
 dnl
@@ -923,12 +1198,15 @@ fi
 AC_SUBST(DO_TEST_SUITE)
 dnl
 dnl Only include the intl include files if we're building with them
-dnl 
-INTL_FLAGS=
+dnl
+INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
+if test -n "$CPPFLAGS" ; then
+       INCLUDES="$INCLUDES $CPPFLAGS"
+fi
 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
-       INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
+       INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
 fi
-AC_SUBST(INTL_FLAGS)
+AC_SUBST(INCLUDES)
 dnl
 dnl Build CFLAGS
 dnl
@@ -954,16 +1232,16 @@ for i in MCONFIG Makefile e2fsprogs.spec \
        lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
        lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
        lib/uuid/Makefile lib/uuid/uuid_types.h \
-       lib/blkid/Makefile lib/blkid/blkid_types.h \
+       lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
        lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
        lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
        misc/Makefile ext2ed/Makefile e2fsck/Makefile \
        debugfs/Makefile tests/Makefile tests/progs/Makefile \
-       resize/Makefile doc/Makefile intl/Makefile po/Makefile.in ; do
+       resize/Makefile doc/Makefile intl/Makefile \
+       intl/libgnuintl.h po/Makefile.in ; do
        if test -d `dirname ${srcdir}/$i` ; then
                outlist="$outlist $i"
        fi
 done
 AC_OUTPUT($outlist)
 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
-