X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=configure.in;h=0146bfec28b913456444f132cc1fe84f1f9cfe70;hb=c9d6c22deda4b526dcf37159be7957c1c38b79e7;hp=9fb29cb36f350d753d311ce6906cafef29f361b6;hpb=0df8a27bbaf51b55c0e8c3a533ef4c2ff9d79c9f;p=tools%2Fe2fsprogs.git diff --git a/configure.in b/configure.in index 9fb29cb..0146bfe 100644 --- a/configure.in +++ b/configure.in @@ -1,8 +1,8 @@ AC_INIT(version.h) -AC_PREREQ(2.50) +AC_PREREQ(2.54) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADERS([lib/config.h]) -AH_BOTTOM([#include "dirpaths.h"]) +AH_BOTTOM([#include ]) 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_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 @@ -80,8 +71,24 @@ AC_ARG_WITH([diet-libc], [ --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_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])) @@ -117,6 +124,7 @@ then 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 @@ -164,10 +172,43 @@ else fi , LINK_INSTALL_FLAGS=-f -AC_MSG_RESULT([Disabling symlinks for install]) +AC_MSG_RESULT([Disabling symlinks for install by default]) ) AC_SUBST(LINK_INSTALL_FLAGS) dnl +dnl handle --enable-relative-symlinks +dnl +relative_symlink_defined= +AC_ARG_ENABLE([relative-symlinks], +[ --enable-relative-symlinks use relative symlinks when installing], +if test "$enableval" = "no" +then + SYMLINK_RELATIVE= + relative_symlink_defined=yes + AC_MSG_RESULT([Disabling relative symlinks for install]) +else + SYMLINK_RELATIVE=--relative + relative_symlink_defined=yes + AC_MSG_RESULT([Enabling relative symlinks for install]) +fi) +AC_ARG_ENABLE([symlink-relative-symlinks],, +if test "$enableval" = "no" +then + SYMLINK_RELATIVE=yes + AC_MSG_RESULT([Disabling relative symlinks for install]) +else + SYMLINK_RELATIVE=--relative + AC_MSG_RESULT([Enabling relative symlinks for install]) +fi +, +if test -z "$relative_symlink_defined" +then + SYMLINK_RELATIVE= +AC_MSG_RESULT([Disabling relative symlinks for install by default]) +fi +) +AC_SUBST(SYMLINK_RELATIVE) +dnl dnl handle --enable-symlink-build dnl AC_ARG_ENABLE([symlink-build], @@ -182,7 +223,7 @@ else fi , LINK_BUILD_FLAGS= -AC_MSG_RESULT([Disabling symlinks for build]) +AC_MSG_RESULT([Disabling symlinks for build by default]) ) AC_SUBST(LINK_BUILD_FLAGS) dnl @@ -194,18 +235,22 @@ if test "$enableval" = "no" then AC_MSG_RESULT([Disabling verbose make commands]) E=@echo + ES=echo Q=@ else AC_MSG_RESULT([Enabling verbose make commands]) E=@\\# + ES=\\# Q= fi , AC_MSG_RESULT([Disabling verbose make commands]) E=@echo +ES=echo Q=@ ) AC_SUBST(E) +AC_SUBST(ES) AC_SUBST(Q) dnl dnl handle --enable-compression @@ -337,27 +382,18 @@ AC_MSG_RESULT([Disabling profiling libraries by default]) AC_SUBST(PROFILE_CMT) AC_SUBST_FILE(MAKEFILE_PROFILE) dnl -dnl handle --enable-checker +dnl handle --enable-gcov 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 - 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 -, -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 @@ -442,8 +478,8 @@ then 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 @@ -494,9 +530,9 @@ then 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=# + PROFILED_LIBBLKID=$LIBBLKID AC_MSG_RESULT([Disabling private blkid library]) else LIBBLKID='$(LIB)/libblkid'$LIB_EXT @@ -528,18 +564,26 @@ AC_SUBST(BLKID_CMT) 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-libquota enable quota support], +[ --enable-quota enable quota support], if test "$enableval" = "no" then + QUOTA_CMT=# AC_MSG_RESULT([Disabling quota support]) else + QUOTA_CMT= AC_DEFINE(CONFIG_QUOTA, 1) AC_MSG_RESULT([Enabling quota support]) + QUOTA_MAN_COMMENT="" + AC_SUBST(QUOTA_MAN_COMMENT) fi , +QUOTA_CMT=# AC_MSG_RESULT([Disabling quota support by default]) ) dnl @@ -559,6 +603,22 @@ AC_SUBST(PROFILED_LIBQUOTA) AC_SUBST(DEPPROFILED_LIBQUOTA) AC_SUBST(QUOTA_CMT) dnl +dnl handle --disable-backtrace +dnl +AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) +AC_ARG_ENABLE([backtrace], +[ --disable-backtrace disable use backtrace], +if test "$enableval" = "no" +then + AC_MSG_RESULT([Disabling use of backtrace]) + AC_DEFINE(DISABLE_BACKTRACE, 1) +else + AC_MSG_RESULT([Enabling use of backtrace]) +fi +, +AC_MSG_RESULT([Enabling use of backtrace by default]) +) +dnl dnl handle --enable-debugfs dnl AC_ARG_ENABLE([debugfs], @@ -626,8 +686,14 @@ else 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 @@ -719,8 +785,14 @@ else 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 @@ -784,13 +856,50 @@ if test $cross_compiling = no; then else AC_CHECK_PROGS(BUILD_CC, gcc cc) fi -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/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 -#include -#endif -]]) +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 + linux/loop.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/mount.h + sys/prctl.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(net/if.h,,, [[ #if HAVE_SYS_TYPES_H @@ -806,6 +915,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 ]) +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])],, @@ -838,16 +948,23 @@ AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) +AC_CHECK_SIZEOF(off_t) SIZEOF_SHORT=$ac_cv_sizeof_short SIZEOF_INT=$ac_cv_sizeof_int SIZEOF_LONG=$ac_cv_sizeof_long SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long +SIZEOF_OFF_T=$ac_cv_sizeof_off_t AC_SUBST(SIZEOF_SHORT) AC_SUBST(SIZEOF_INT) AC_SUBST(SIZEOF_LONG) 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 @@ -914,7 +1031,65 @@ 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) +AC_CHECK_FUNCS(m4_flatten([ + __secure_getenv + backtrace + blkid_probe_get_topology + blkid_probe_enable_partitions + chflags + fadvise64 + fallocate + fallocate64 + fchown + fdatasync + fstat64 + ftruncate64 + futimes + getcwd + getdtablesize + getmntinfo + getpwuid_r + getrlimit + getrusage + jrand48 + llseek + lseek64 + mallinfo + mbstowcs + memalign + mempcpy + mmap + msync + nanosleep + open64 + pathconf + posix_fadvise + posix_fadvise64 + posix_memalign + prctl + pread + pwrite + pread64 + pwrite64 + secure_getenv + setmntent + setresgid + setresuid + snprintf + srandom + stpcpy + strcasecmp + strdup + strnlen + strptime + strtoull + sync_file_range + sysconf + usleep + utime + utimes + 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 @@ -1054,13 +1229,20 @@ 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 +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. +dnl See if -static works. This could fail if the linker does not +dnl support -static, or if required external libraries are not available +dnl in static form. dnl -AC_MSG_CHECKING([whether linker accepts -static]) +AC_MSG_CHECKING([whether we can link with -static]) AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static" AC_TRY_LINK([#include ],[fflush(stdout);], @@ -1122,16 +1304,17 @@ 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) +AM_MKINSTALLDIRS dnl dnl Build CFLAGS dnl if test $cross_compiling = no; then - BUILD_CFLAGS="$CFLAGS" + BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" BUILD_LDFLAGS="$LDFLAGS" -else - BUILD_CFLAGS= - BUILD_LDFLAGS= fi AC_SUBST(BUILD_CFLAGS) AC_SUBST(BUILD_LDFLAGS) @@ -1144,7 +1327,7 @@ test -d include || mkdir include test -d include/linux || mkdir include/linux test -d include/asm || mkdir include/asm for i in MCONFIG Makefile e2fsprogs.spec \ - util/Makefile util/subst.conf util/gen-tarball \ + util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ 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 \