Whamcloud - gitweb
libext2fs/e2fsck: provide routines to read-ahead metadata
[tools/e2fsprogs.git] / configure.in
index 8963d17..9a18617 100644 (file)
@@ -2,7 +2,7 @@ AC_INIT(version.h)
 AC_PREREQ(2.54)
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_HEADERS([lib/config.h])
 AC_PREREQ(2.54)
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_HEADERS([lib/config.h])
-AH_BOTTOM([#include "dirpaths.h"])
+AH_BOTTOM([#include <dirpaths.h>])
 MCONFIG=./MCONFIG
 AC_SUBST_FILE(MCONFIG)
 BINARY_TYPE=bin
 MCONFIG=./MCONFIG
 AC_SUBST_FILE(MCONFIG)
 BINARY_TYPE=bin
@@ -63,15 +63,6 @@ AC_SUBST(E2FSPROGS_MONTH)
 AC_SUBST(E2FSPROGS_DAY)
 AC_SUBST(E2FSPROGS_VERSION)
 AC_SUBST(E2FSPROGS_PKGVER)
 AC_SUBST(E2FSPROGS_DAY)
 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 
 dnl
 dnl Use diet libc
 dnl 
@@ -80,8 +71,24 @@ AC_ARG_WITH([diet-libc],
 [  --with-diet-libc        use diet libc],
 CC="diet cc -nostdinc"
 WITH_DIET_LIBC=yes
 [  --with-diet-libc        use diet libc],
 CC="diet cc -nostdinc"
 WITH_DIET_LIBC=yes
+if test -z "$LIBS"
+then
+       LIBS="-lcompat"
+else
+       LIBS="$LIBS -lcompat"
+fi
 AC_MSG_RESULT(CC=$CC))dnl
 dnl
 AC_MSG_RESULT(CC=$CC))dnl
 dnl
+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
 AC_ARG_WITH([cc],
 AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
 AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
 AC_ARG_WITH([cc],
 AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
 AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
@@ -117,6 +124,7 @@ then
 else
     AC_MSG_RESULT([[(none)]])
 fi
 else
     AC_MSG_RESULT([[(none)]])
 fi
+AC_USE_SYSTEM_EXTENSIONS
 dnl
 dnl Set default values for library extentions.  Will be dealt with after
 dnl parsing configuration opions, which may modify these
 dnl
 dnl Set default values for library extentions.  Will be dealt with after
 dnl parsing configuration opions, which may modify these
@@ -245,23 +253,6 @@ AC_SUBST(E)
 AC_SUBST(ES)
 AC_SUBST(Q)
 dnl
 AC_SUBST(ES)
 AC_SUBST(Q)
 dnl
-dnl handle --enable-compression
-dnl
-AC_ARG_ENABLE([compression],
-[  --enable-compression          enable EXPERIMENTAL compression support],
-if test "$enableval" = "no"
-then
-       AC_MSG_RESULT([Disabling compression support])
-else
-       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
-,
-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])
 dnl handle --enable-htree
 dnl
 AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
@@ -374,27 +365,18 @@ AC_MSG_RESULT([Disabling profiling libraries by default])
 AC_SUBST(PROFILE_CMT)
 AC_SUBST_FILE(MAKEFILE_PROFILE)
 dnl
 AC_SUBST(PROFILE_CMT)
 AC_SUBST_FILE(MAKEFILE_PROFILE)
 dnl
-dnl handle --enable-checker
+dnl handle --enable-gcov
 dnl
 dnl
-AC_ARG_ENABLE([checker],
-[  --enable-checker      build checker libraries],
-if test "$enableval" = "no"
+AC_ARG_ENABLE([gcov],
+[  --enable-gcov                 build for coverage testing using gcov],
+if test "$enableval" = "yes"
 then
 then
-       CHECKER_CMT=#
-       MAKEFILE_CHECKER=/dev/null
-       AC_MSG_RESULT([Disabling checker libraries])
-else
-       CHECKER_CMT=
-       MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
-       AC_MSG_RESULT([Building checker libraries])
+       CFLAGS="-g -fprofile-arcs -ftest-coverage"
+       LDFLAGS="-fprofile-arcs -ftest-coverage"
+       AC_MSG_RESULT([Enabling gcov support])
 fi
 fi
-,
-CHECKER_CMT=#
-MAKEFILE_CHECKER=/dev/null
-AC_MSG_RESULT([Disabling checker libraries by default])
 )
 )
-AC_SUBST(CHECKER_CMT)
-AC_SUBST_FILE(MAKEFILE_CHECKER)
+
 dnl
 dnl Substitute library extensions
 dnl
 dnl
 dnl Substitute library extensions
 dnl
@@ -479,8 +461,8 @@ then
        AC_CHECK_LIB(uuid, uuid_generate,
                [LIBUUID=`$PKG_CONFIG --libs uuid`;
                 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
        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])
+               [AC_MSG_ERROR([external uuid library not found])])
+       PROFILED_LIBUUID=$LIBUUID
        UUID_CMT=#
        AC_MSG_RESULT([Disabling private uuid library])
 else
        UUID_CMT=#
        AC_MSG_RESULT([Disabling private uuid library])
 else
@@ -531,9 +513,9 @@ then
        AC_CHECK_LIB(blkid, blkid_get_cache,
                [LIBBLKID=`$PKG_CONFIG --libs blkid`;
                 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
        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])
+               [AC_MSG_ERROR([external blkid library not found])], -luuid)
        BLKID_CMT=#
        BLKID_CMT=#
+       PROFILED_LIBBLKID=$LIBBLKID
        AC_MSG_RESULT([Disabling private blkid library])
 else
        LIBBLKID='$(LIB)/libblkid'$LIB_EXT
        AC_MSG_RESULT([Disabling private blkid library])
 else
        LIBBLKID='$(LIB)/libblkid'$LIB_EXT
@@ -565,18 +547,26 @@ AC_SUBST(BLKID_CMT)
 dnl
 dnl handle --enable-quota
 dnl
 dnl
 dnl handle --enable-quota
 dnl
+QUOTA_MAN_COMMENT='.\"'
+QUOTA_CMT=
+AC_SUBST(QUOTA_MAN_COMMENT)
 PKG_PROG_PKG_CONFIG
 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
 AC_ARG_ENABLE([quota],
 [  --enable-quota        enable quota support],
 if test "$enableval" = "no"
 then
 PKG_PROG_PKG_CONFIG
 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
 AC_ARG_ENABLE([quota],
 [  --enable-quota        enable quota support],
 if test "$enableval" = "no"
 then
+       QUOTA_CMT=#
        AC_MSG_RESULT([Disabling quota support])
 else
        AC_MSG_RESULT([Disabling quota support])
 else
+       QUOTA_CMT=
        AC_DEFINE(CONFIG_QUOTA, 1)
        AC_MSG_RESULT([Enabling quota support])
        AC_DEFINE(CONFIG_QUOTA, 1)
        AC_MSG_RESULT([Enabling quota support])
+       QUOTA_MAN_COMMENT=""
+       AC_SUBST(QUOTA_MAN_COMMENT)
 fi
 ,
 fi
 ,
+QUOTA_CMT=#
 AC_MSG_RESULT([Disabling quota support by default])
 )
 dnl
 AC_MSG_RESULT([Disabling quota support by default])
 )
 dnl
@@ -679,8 +669,14 @@ else
        AC_MSG_RESULT([Enabling e4defrag support])
 fi
 ,
        AC_MSG_RESULT([Enabling e4defrag support])
 fi
 ,
-AC_MSG_RESULT([Enabling e4defrag support by default])
-DEFRAG_CMT=
+if test -z "$WITH_DIET_LIBC"
+then
+       AC_MSG_RESULT([Enabling e4defrag support by default])
+       DEFRAG_CMT=
+else
+       AC_MSG_RESULT([Disabling e4defrag support by default])
+       DEFRAG_CMT="#"
+fi
 )
 AC_SUBST(DEFRAG_CMT)
 dnl
 )
 AC_SUBST(DEFRAG_CMT)
 dnl
@@ -772,8 +768,14 @@ else
 fi]
 ,
 AC_DEFINE(USE_UUIDD, 1)
 fi]
 ,
 AC_DEFINE(USE_UUIDD, 1)
-UUIDD_CMT=""
-AC_MSG_RESULT([Building uuidd by default])
+if test -z "$UUID_CMT"
+then
+       UUIDD_CMT=""
+       AC_MSG_RESULT([Building uuidd by default])
+else
+       UUIDD_CMT="#"
+       AC_MSG_RESULT([Disabling uuidd by default])
+fi
 )
 AC_SUBST(UUIDD_CMT)
 dnl
 )
 AC_SUBST(UUIDD_CMT)
 dnl
@@ -909,36 +911,34 @@ AC_CHECK_HEADERS(m4_flatten([
        termio.h
        unistd.h
        utime.h
        termio.h
        unistd.h
        utime.h
+       attr/xattr.h
        linux/falloc.h
        linux/fd.h
        linux/major.h
        linux/falloc.h
        linux/fd.h
        linux/major.h
+       linux/loop.h
        net/if_dl.h
        netinet/in.h
        sys/disklabel.h
        net/if_dl.h
        netinet/in.h
        sys/disklabel.h
+       sys/disk.h
        sys/file.h
        sys/ioctl.h
        sys/mkdev.h
        sys/mman.h
        sys/file.h
        sys/ioctl.h
        sys/mkdev.h
        sys/mman.h
+       sys/mount.h
        sys/prctl.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/resource.h
        sys/select.h
        sys/socket.h
        sys/sockio.h
        sys/stat.h
        sys/syscall.h
+       sys/sysctl.h
        sys/sysmacros.h
        sys/time.h
        sys/types.h
        sys/un.h
        sys/wait.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
-#include <sys/queue.h>
-#endif
-]])
 AC_CHECK_HEADERS(net/if.h,,,
 [[
 #if HAVE_SYS_TYPES_H
 AC_CHECK_HEADERS(net/if.h,,,
 [[
 #if HAVE_SYS_TYPES_H
@@ -954,6 +954,7 @@ dnl is not decleared.
 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
                       [Define to 1 if dirent has d_reclen])],,
                [#include <dirent.h>])
 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
                       [Define to 1 if dirent has d_reclen])],,
                [#include <dirent.h>])
+AC_CHECK_MEMBERS([struct stat.st_atim])
 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])],,
 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])],,
@@ -998,7 +999,11 @@ AC_SUBST(SIZEOF_LONG)
 AC_SUBST(SIZEOF_LONG_LONG)
 AC_SUBST(SIZEOF_OFF_T)
 AC_C_BIGENDIAN
 AC_SUBST(SIZEOF_LONG_LONG)
 AC_SUBST(SIZEOF_OFF_T)
 AC_C_BIGENDIAN
-BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+if test $cross_compiling = no; then
+  BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+else
+  CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
+fi
 ASM_TYPES_HEADER=./asm_types.h
 AC_SUBST_FILE(ASM_TYPES_HEADER)
 dnl
 ASM_TYPES_HEADER=./asm_types.h
 AC_SUBST_FILE(ASM_TYPES_HEADER)
 dnl
@@ -1069,37 +1074,50 @@ AC_CHECK_FUNCS(m4_flatten([
        __secure_getenv
        backtrace
        blkid_probe_get_topology
        __secure_getenv
        backtrace
        blkid_probe_get_topology
+       blkid_probe_enable_partitions
        chflags
        chflags
+       fadvise64
        fallocate
        fallocate64
        fchown
        fdatasync
        fstat64
        ftruncate64
        fallocate
        fallocate64
        fchown
        fdatasync
        fstat64
        ftruncate64
+       futimes
+       getcwd
        getdtablesize
        getmntinfo
        getpwuid_r
        getrlimit
        getrusage
        jrand48
        getdtablesize
        getmntinfo
        getpwuid_r
        getrlimit
        getrusage
        jrand48
+       llistxattr
        llseek
        lseek64
        mallinfo
        mbstowcs
        memalign
        llseek
        lseek64
        mallinfo
        mbstowcs
        memalign
+       mempcpy
        mmap
        msync
        nanosleep
        open64
        pathconf
        posix_fadvise
        mmap
        msync
        nanosleep
        open64
        pathconf
        posix_fadvise
+       posix_fadvise64
        posix_memalign
        prctl
        posix_memalign
        prctl
+       pread
+       pwrite
+       pread64
+       pwrite64
        secure_getenv
        setmntent
        setresgid
        setresuid
        secure_getenv
        setmntent
        setresgid
        setresuid
+       snprintf
        srandom
        srandom
+       stpcpy
        strcasecmp
        strdup
        strnlen
        strcasecmp
        strdup
        strnlen
@@ -1109,6 +1127,7 @@ AC_CHECK_FUNCS(m4_flatten([
        sysconf
        usleep
        utime
        sysconf
        usleep
        utime
+       utimes
        valloc
 ]))
 dnl
        valloc
 ]))
 dnl
@@ -1119,6 +1138,15 @@ SOCKET_LIB=''
 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
 AC_SUBST(SOCKET_LIB)
 dnl
 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
 AC_SUBST(SOCKET_LIB)
 dnl
+dnl See if libmagic exists
+dnl
+AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
+AC_CHECK_HEADERS([magic.h])])
+if test "$ac_cv_lib_dl_dlopen" = yes ; then
+   MAGIC_LIB=$DLOPEN_LIB
+fi
+AC_SUBST(MAGIC_LIB)
+dnl
 dnl See if optreset exists
 dnl
 AC_MSG_CHECKING(for optreset)
 dnl See if optreset exists
 dnl
 AC_MSG_CHECKING(for optreset)
@@ -1250,8 +1278,13 @@ dnl Allow specification of the multiarch arch
 dnl
 AC_ARG_WITH([multiarch],
 [  --with-multiarch=ARCH specify the multiarch triplet],
 dnl
 AC_ARG_WITH([multiarch],
 [  --with-multiarch=ARCH specify the multiarch triplet],
-libdir=$libdir/$withval
-root_libdir=$root_libdir/$withval
+if test "$withval" = "lib64"; then
+    libdir=/usr/lib64
+    root_libdir=/lib64
+else
+    libdir=$libdir/$withval
+    root_libdir=$root_libdir/$withval
+fi
 )dnl
 dnl
 dnl See if -static works.  This could fail if the linker does not
 )dnl
 dnl
 dnl See if -static works.  This could fail if the linker does not
@@ -1320,16 +1353,17 @@ fi
 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
        INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
 fi
 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
        INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
 fi
+if test -n "$WITH_DIET_LIBC" ; then
+       INCLUDES="$INCLUDES -D_REENTRANT"
+fi
 AC_SUBST(INCLUDES)
 AC_SUBST(INCLUDES)
+AM_MKINSTALLDIRS
 dnl
 dnl Build CFLAGS
 dnl
 if test $cross_compiling = no; then
 dnl
 dnl Build CFLAGS
 dnl
 if test $cross_compiling = no; then
-   BUILD_CFLAGS="$CFLAGS $CPPFLAGS"
+   BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
    BUILD_LDFLAGS="$LDFLAGS"
    BUILD_LDFLAGS="$LDFLAGS"
-else
-   BUILD_CFLAGS=
-   BUILD_LDFLAGS=
 fi
 AC_SUBST(BUILD_CFLAGS)
 AC_SUBST(BUILD_LDFLAGS)
 fi
 AC_SUBST(BUILD_CFLAGS)
 AC_SUBST(BUILD_LDFLAGS)