X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=configure.in;h=c304a8dcff45303671088d06985d23839e63ff27;hb=30ac1ce7df719e40b0c3c612696ada7c9ebbaed2;hp=b28fc53d2432f055b330087347ce0a6d93da38e2;hpb=b689b8dd14e69c652d2c8211bdef3effe81cfd65;p=tools%2Fe2fsprogs.git diff --git a/configure.in b/configure.in index b28fc53..c304a8d 100644 --- a/configure.in +++ b/configure.in @@ -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 @@ -36,18 +38,17 @@ Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; -*) echo "Unknown month $MONTH??" ;; +*) AC_MSG_WARN([Unknown month $MONTH??]) ;; esac base_ver=`echo $E2FSPROGS_VERSION | \ sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` -pre_vers=`echo $base_ver 0.01 - p | dc` date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} case $E2FSPROGS_VERSION in *-WIP|pre-*) - E2FSPROGS_PKGVER="$pre_vers+${base_ver}_WIP_$date_spec" + E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY" ;; *) E2FSPROGS_PKGVER="$base_ver" @@ -55,8 +56,8 @@ case $E2FSPROGS_VERSION in esac unset DATE MONTH YEAR base_ver pre_vers date_spec -echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION" -echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}" +AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) +AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) AC_SUBST(E2FSPROGS_YEAR) AC_SUBST(E2FSPROGS_MONTH) AC_SUBST(E2FSPROGS_DAY) @@ -64,54 +65,41 @@ 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= AC_ARG_WITH([diet-libc], -[ --with-diet-libc Use diet libc], +[ --with-diet-libc use diet libc], 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. @@ -135,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, -LDFLAGS=)dnl -AC_SUBST(LDFLAGS) +PROFILED_LIB_EXT=.a dnl dnl Allow separate `root_prefix' to be specified dnl @@ -160,53 +139,119 @@ AC_ARG_ENABLE([maintainer-mode], if test "$enableval" = "no" then MAINTAINER_CMT=# - echo "Disabling maintainer mode" + AC_MSG_RESULT([Disabling maintainer mode]) else MAINTAINER_CMT= - echo "Enabling maintainer mode" + AC_MSG_RESULT([Enabling maintainer mode]) fi , MAINTAINER_CMT=# -echo "Disabling maintainer mode by default" +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], [ --enable-compression enable EXPERIMENTAL compression support], if test "$enableval" = "no" then - echo "Disabling compression support" + AC_MSG_RESULT([Disabling compression support]) else - AC_DEFINE(ENABLE_COMPRESSION) - echo "Enabling compression support" - echo "WARNING: Compression support is experimental" + 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 , -echo "Disabling compression support by default" +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" then HTREE_CMT=# - echo "Disabling htree directory support" + AC_MSG_RESULT([Disabling htree directory support]) else HTREE_CMT= - AC_DEFINE(ENABLE_HTREE) - echo "Enabling htree directory support" + AC_DEFINE(ENABLE_HTREE, 1) + AC_MSG_RESULT([Enabling htree directory support]) fi , HTREE_CMT= -AC_DEFINE(ENABLE_HTREE) -echo "Enabling htree directory support by default" +AC_DEFINE(ENABLE_HTREE, 1) +AC_MSG_RESULT([Enabling htree directory support by default]) ) AC_SUBST(HTREE_CMT) 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 AC_ARG_ENABLE([elf-shlibs], @@ -215,8 +260,9 @@ if test "$enableval" = "no" then ELF_CMT=# MAKEFILE_ELF=/dev/null - echo "Disabling ELF shared libraries" + AC_MSG_RESULT([Disabling ELF shared libraries]) else + E2_PKG_CONFIG_STATIC= ELF_CMT= MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib [case "$host_os" in @@ -226,12 +272,14 @@ else esac] BINARY_TYPE=elfbin LIB_EXT=.so - echo "Enabling ELF shared libraries" + PRIVATE_LIBS_CMT=# + LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib'] + AC_MSG_RESULT([Enabling ELF shared libraries]) fi , MAKEFILE_ELF=/dev/null ELF_CMT=# -echo "Disabling ELF shared libraries by default" +AC_MSG_RESULT([Disabling ELF shared libraries by default]) ) AC_SUBST(ELF_CMT) AC_SUBST_FILE(MAKEFILE_ELF) @@ -244,8 +292,9 @@ if test "$enableval" = "no" then BSDLIB_CMT=# MAKEFILE_BSDLIB=/dev/null - echo "Disabling BSD shared libraries" + AC_MSG_RESULT([Disabling BSD shared libraries]) else + E2_PKG_CONFIG_STATIC= BSDLIB_CMT= MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib LIB_EXT=.so @@ -255,12 +304,12 @@ else LIB_EXT=.dylib ;; esac] - echo "Enabling BSD shared libraries" + AC_MSG_RESULT([Enabling BSD shared libraries]) fi , MAKEFILE_BSDLIB=/dev/null BSDLIB_CMT=# -echo "Disabling BSD shared libraries by default" +AC_MSG_RESULT([Disabling BSD shared libraries by default]) ) AC_SUBST(BSDLIB_CMT) AC_SUBST_FILE(MAKEFILE_BSDLIB) @@ -273,17 +322,17 @@ if test "$enableval" = "no" then PROFILE_CMT=# MAKEFILE_PROFILE=/dev/null - echo "Disabling profiling libraries" + AC_MSG_RESULT([Disabling profiling libraries]) else PROFILE_CMT= MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile PROFILED_LIB_EXT=_p.a - echo "Building profiling libraries" + AC_MSG_RESULT([Building profiling libraries]) fi , PROFILE_CMT=# MAKEFILE_PROFILE=/dev/null -echo "Disabling profiling libraries by default" +AC_MSG_RESULT([Disabling profiling libraries by default]) ) AC_SUBST(PROFILE_CMT) AC_SUBST_FILE(MAKEFILE_PROFILE) @@ -296,16 +345,16 @@ if test "$enableval" = "no" then CHECKER_CMT=# MAKEFILE_CHECKER=/dev/null - echo "Disabling checker libraries" + AC_MSG_RESULT([Disabling checker libraries]) else CHECKER_CMT= MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker - echo "Building checker libraries" + AC_MSG_RESULT([Building checker libraries]) fi , CHECKER_CMT=# MAKEFILE_CHECKER=/dev/null -echo "Disabling checker libraries by default" +AC_MSG_RESULT([Disabling checker libraries by default]) ) AC_SUBST(CHECKER_CMT) AC_SUBST_FILE(MAKEFILE_CHECKER) @@ -315,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 @@ -322,13 +373,14 @@ AC_ARG_ENABLE([jbd-debug], [ --enable-jbd-debug enable journal debugging], if test "$enableval" = "no" then - echo "Disabling journal debugging" + AC_MSG_RESULT([Disabling journal debugging]) else - AC_DEFINE(CONFIG_JBD_DEBUG) - echo "Enabling journal debugging" + AC_DEFINE(CONFIG_JBD_DEBUG, 1, + [Define to 1 if debugging ext3/4 journal code]) + AC_MSG_RESULT([Enabling journal debugging]) fi , -echo "Disabling journal debugging by default" +AC_MSG_RESULT([Disabling journal debugging by default]) ) dnl dnl handle --enable-blkid-debug @@ -337,29 +389,175 @@ AC_ARG_ENABLE([blkid-debug], [ --enable-blkid-debug enable blkid debugging], if test "$enableval" = "no" then - echo "Disabling blkid debugging" + AC_MSG_RESULT([Disabling blkid debugging]) else - AC_DEFINE(CONFIG_BLKID_DEBUG) - echo "Enabling blkid debugging" + AC_DEFINE(CONFIG_BLKID_DEBUG, 1, + [Define to 1 if debugging the blkid library]) + AC_MSG_RESULT([Enabling blkid debugging]) fi , -echo "Disabling blkid debugging by default" +AC_MSG_RESULT([Disabling blkid debugging by default]) ) 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 - echo "Disabling testio debugging" + AC_MSG_RESULT([Disabling testio debugging]) + TEST_IO_CMT="#" else - AC_DEFINE(CONFIG_TESTIO_DEBUG) - echo "Enabling testio debugging" + TEST_IO_CMT= + AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) + AC_MSG_RESULT([Enabling testio debugging]) fi , -echo "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 @@ -367,14 +565,14 @@ AC_ARG_ENABLE([debugfs], [ --disable-debugfs disable support of debugfs program], if test "$enableval" = "no" then - echo "Disabling debugfs support" + AC_MSG_RESULT([Disabling debugfs support]) DEBUGFS_CMT="#" else DEBUGFS_CMT= - echo "Enabling debugfs support" + AC_MSG_RESULT([Enabling debugfs support]) fi , -echo "Enabling debugfs support by default" +AC_MSG_RESULT([Enabling debugfs support by default]) DEBUGFS_CMT= ) AC_SUBST(DEBUGFS_CMT) @@ -385,14 +583,14 @@ AC_ARG_ENABLE([imager], [ --disable-imager disable support of e2image program], if test "$enableval" = "no" then - echo "Disabling e2image support" + AC_MSG_RESULT([Disabling e2image support]) IMAGER_CMT="#" else IMAGER_CMT= - echo "Enabling e2image support" + AC_MSG_RESULT([Enabling e2image support]) fi , -echo "Enabling e2image support by default" +AC_MSG_RESULT([Enabling e2image support by default]) IMAGER_CMT= ) AC_SUBST(IMAGER_CMT) @@ -403,35 +601,35 @@ AC_ARG_ENABLE([resizer], [ --disable-resizer disable support of e2resize program], if test "$enableval" = "no" then - echo "Disabling e2resize support" + AC_MSG_RESULT([Disabling e2resize support]) RESIZER_CMT="#" else RESIZER_CMT= - echo "Enabling e2resize support" + AC_MSG_RESULT([Enabling e2resize support]) fi , -echo "Enabling e2resize support by default" +AC_MSG_RESULT([Enabling e2resize support by default]) RESIZER_CMT= ) AC_SUBST(RESIZER_CMT) dnl -dnl handle --enable-dynamic-e2fsck +dnl handle --enable-defrag dnl -AC_ARG_ENABLE([dynamic-e2fsck], -[ --enable-dynamic-e2fsck build e2fsck dynamically], +AC_ARG_ENABLE([defrag], +[ --disable-defrag disable support of e4defrag program], if test "$enableval" = "no" then - E2FSCK_TYPE=static - echo "Building e2fsck statically" + AC_MSG_RESULT([Disabling e4defrag support]) + DEFRAG_CMT="#" else - E2FSCK_TYPE=shared - echo "Building e2fsck dynamically" + DEFRAG_CMT= + AC_MSG_RESULT([Enabling e4defrag support]) fi , -E2FSCK_TYPE=static -echo "Building e2fsck statically by default" +AC_MSG_RESULT([Enabling e4defrag support by default]) +DEFRAG_CMT= ) -AC_SUBST(E2FSCK_TYPE) +AC_SUBST(DEFRAG_CMT) dnl dnl See whether to install the `fsck' wrapper program (that calls e2fsck) dnl @@ -440,20 +638,20 @@ AC_ARG_ENABLE([fsck], [if test "$enableval" = "no" then FSCK_PROG='' FSCK_MAN='' - echo "Not building fsck wrapper" + AC_MSG_RESULT([Not building fsck wrapper]) else FSCK_PROG=fsck FSCK_MAN=fsck.8 - echo "Building fsck wrapper" + AC_MSG_RESULT([Building fsck wrapper]) fi] , [case "$host_os" in gnu*) FSCK_PROG='' FSCK_MAN='' - echo "Not building fsck wrapper by default" + AC_MSG_RESULT([Not building fsck wrapper by default]) ;; *) FSCK_PROG=fsck FSCK_MAN=fsck.8 - echo "Building fsck wrapper by default" + AC_MSG_RESULT([Building fsck wrapper by default]) esac] ) AC_SUBST(FSCK_PROG) @@ -466,44 +664,65 @@ AC_ARG_ENABLE([e2initrd-helper], [if test "$enableval" = "no" then E2INITRD_PROG='' E2INITRD_MAN='' - echo "Not building e2initrd helper" + AC_MSG_RESULT([Not building e2initrd helper]) else E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 - echo "Building e2initrd helper" + AC_MSG_RESULT([Building e2initrd helper]) fi] , E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 -echo "Building e2initrd helper by default" +AC_MSG_RESULT([Building e2initrd helper by default]) ) AC_SUBST(E2INITRD_PROG) AC_SUBST(E2INITRD_MAN) -dnl handle --enable-blkid-devmapper dnl -AC_ARG_ENABLE([blkid-devmapper], -[ --enable-blkid-devmapper build with device-mapper support], +dnl +dnl +AC_ARG_ENABLE([tls], +[ --disable-tls disable use of thread local support], [if test "$enableval" = "no" then - echo "Disabling device-mapper support" - DEVMAPPER_REQ='' - DEVMAPPER_LIBS='' - STATIC_DEVMAPPER_LIBS='' + try_tls="" + AC_MSG_RESULT([Disabling thread local support]) else - AC_DEFINE(HAVE_DEVMAPPER) - echo "Enabling device-mapper support" - - DEVMAPPER_REQ='libselinux libsepol' - DEVMAPPER_PC_LIBS='-ldevmapper' - DEVMAPPER_LIBS='-ldevmapper -lselinux -lsepol -lpthread' - STATIC_DEVMAPPER_LIBS='/usr/lib/libdevmapper.a /usr/lib/libselinux.a /usr/lib/libsepol.a -lpthread' - + try_tls="yes" + AC_MSG_RESULT([Enabling thread local support]) +fi] +, +if test -n "$WITH_DIET_LIBC" +then + try_tls="" + AC_MSG_RESULT([Diet libc does not support thread local support]) +else + try_tls="yes" + AC_MSG_RESULT([Try using thread local support by default]) +fi +) +if test "$try_tls" = "yes" +then +AX_TLS +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" +then + AC_MSG_RESULT([Not building uuidd]) + UUIDD_CMT="#" +else + AC_DEFINE(USE_UUIDD, 1) + UUIDD_CMT="" + AC_MSG_RESULT([Building uuidd]) fi] , -echo "Disabling device-mapper support by default" +AC_DEFINE(USE_UUIDD, 1) +UUIDD_CMT="" +AC_MSG_RESULT([Building uuidd by default]) ) -AC_SUBST(DEVMAPPER_REQ) -AC_SUBST(DEVMAPPER_PC_LIBS) -AC_SUBST(DEVMAPPER_LIBS) -AC_SUBST(STATIC_DEVMAPPER_LIBS) +AC_SUBST(UUIDD_CMT) dnl dnl dnl @@ -516,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) @@ -528,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) @@ -542,6 +762,20 @@ AC_PATH_PROG(LDCONFIG, ldconfig, :) AC_CHECK_TOOL(AR, ar, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) +AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) +if test "_$MAKEINFO" = "_"; then + MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true" +else + case "$MAKEINFO" in + */missing.*) + AC_MSG_WARN([ +*** Makeinfo is missing. Info documentation will not be built.]) + ;; + *) + ;; + esac +fi +AC_SUBST(MAKEINFO) AC_PROG_INSTALL # See if we need a separate native compiler. if test $cross_compiling = no; then @@ -550,8 +784,7 @@ if test $cross_compiling = no; then else AC_CHECK_PROGS(BUILD_CC, gcc cc) fi -AX_TLS -AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mman.h sys/mkdev.h sys/prctl.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h net/if_dl.h netinet/in.h utime.h) +AC_CHECK_HEADERS(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/quota.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 @@ -570,16 +803,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 ]) -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 ]) 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 ]) dnl dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files @@ -590,21 +826,14 @@ 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 ]) dnl dnl Word sizes... dnl -if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then - # if cross-compiling, with no cached values, just assume something common. - ac_cv_sizeof_short=2 - ac_cv_sizeof_int=4 - ac_cv_sizeof_long=4 - ac_cv_sizeof_long_long=8 - AC_MSG_WARN([Cross-compiling, so cannot check type sizes; assuming short=2, int=4, long=4, long long=8]) -fi AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) @@ -622,6 +851,25 @@ BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh ASM_TYPES_HEADER=./asm_types.h AC_SUBST_FILE(ASM_TYPES_HEADER) dnl +dnl Save the configuration #defines needed for the public ext2fs.h +dnl header file +dnl +echo "/* These defines are needed for the public ext2fs.h header file */" \ + > public_config.h +if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then + uniq tmp_config.$$ >> public_config.h +else + echo "#undef HAVE_SYS_TYPES_H" >> public_config.h +fi +if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then + uniq tmp_config.$$ >> public_config.h +else + echo "#undef WORDS_BIGENDIAN" >> public_config.h +fi +rm -f tmp_config.$$ +PUBLIC_CONFIG_HEADER=./public_config.h +AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) +dnl dnl See if we have inttypes.h and if intptr_t is defined dnl AC_CHECK_HEADERS([inttypes.h]) @@ -646,18 +894,27 @@ 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 #include ]) dnl -AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid) +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(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync quotactl strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap msync utime setresuid setresgid usleep nanosleep getdtablesize getrlimit sync_file_range posix_fadvise fallocate fallocate64 blkid_probe_get_topology mbstowcs backtrace) 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 @@ -666,14 +923,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) @@ -682,13 +931,29 @@ 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) -if diff -u $0 $0 >& /dev/null ; then +if diff -u $0 $0 > /dev/null 2>&1 ; then UNI_DIFF_OPTS=-u else UNI_DIFF_OPTS=-c @@ -700,7 +965,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 @@ -728,7 +993,7 @@ case "$host_os" in linux* | gnu* | k*bsd*-gnu) if test "$prefix" = NONE -a "$root_prefix" = NONE ; then root_prefix=""; - echo "On $host_os systems, root_prefix defaults to ''" + AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) fi ;; esac @@ -739,9 +1004,9 @@ case "$host_os" in linux* | gnu* | k*bsd*-gnu) if test "$prefix" = NONE ; then prefix="/usr"; - echo "On $host_os systems, prefix defaults to /usr" + AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) if test "$mandir" = '${prefix}/man' ; then - echo "...and mandir defaults to /usr/share/man" + AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) mandir=/usr/share/man fi fi @@ -763,12 +1028,36 @@ else root_libdir='${root_prefix}/lib' root_sysconfdir='${root_prefix}/etc' fi +if test "$bindir" != '${exec_prefix}/bin'; then + root_bindir=$bindir + AC_MSG_RESULT([Setting root_bindir to $root_bindir]) +fi +if test "$sbindir" != '${exec_prefix}/sbin'; then + root_sbindir=$sbindir + AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) +fi +if test "$libdir" != '${exec_prefix}/lib'; then + root_libdir=$libdir + AC_MSG_RESULT([Setting root_libdir to $root_libdir]) +fi +if test "$sysconfdir" != '${prefix}/etc'; then + root_sysconfdir=$sysconfdir + AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) +fi AC_SUBST(root_prefix) AC_SUBST(root_bindir) 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]) @@ -802,8 +1091,9 @@ dnl Apple hacked gcc somehow?) dnl case "$host_os" in darwin*) - echo "Using Apple Darwin / GNU libintl workaround" - AC_DEFINE(_INTL_REDIRECT_MACROS) + AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) + AC_DEFINE(_INTL_REDIRECT_MACROS, 1, + [Define to 1 if Apple Darwin libintl workaround is needed]) ;; esac dnl @@ -824,12 +1114,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 @@ -855,16 +1148,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 -