X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=d26ca6950d3bf528f47d6c319e2517c238f74dab;hb=49487b79da9ccc4a5f9d4e8f08c10ec9c8185a90;hp=1ed81ccd0391c038df5af636d6326678320cd704;hpb=e12f2ae74c2eb8997bf13adf8fdd7e7313971eae;p=tools%2Fe2fsprogs.git diff --git a/configure.in b/configure.in index 1ed81cc..d26ca69 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,6 @@ AC_INIT(version.h) -AC_PREREQ(2.12) +AC_PREREQ(2.50) +AC_CONFIG_AUX_DIR(config) MCONFIG=./MCONFIG AC_SUBST_FILE(MCONFIG) BINARY_TYPE=bin @@ -10,6 +11,7 @@ E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ | awk '{print $3}' | tr \" " " | awk '{print $1}'` DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ | tr \" " "` +E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'` MONTH=`echo $DATE | awk -F- '{print $2}'` YEAR=`echo $DATE | awk -F- '{print $3}'` @@ -42,9 +44,17 @@ echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION" echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}" AC_SUBST(E2FSPROGS_YEAR) AC_SUBST(E2FSPROGS_MONTH) +AC_SUBST(E2FSPROGS_DAY) AC_SUBST(E2FSPROGS_VERSION) AC_CANONICAL_HOST dnl +dnl Use diet libc +dnl +AC_ARG_WITH([diet-libc], +[ --with-diet-libc Use diet libc], +CC="diet cc -nostdinc" +AC_MSG_RESULT(CC=$CC))dnl +dnl dnl set $(CC) from --with-cc=value dnl AC_ARG_WITH([cc], @@ -86,6 +96,23 @@ if test "$linux_headers" != yes; then fi AC_SUBST(LINUX_INCLUDE) 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. +AC_MSG_CHECKING(for additional special compiler flags) +if test "$GCC" = yes +then + case "$host_cpu" in + alpha) addcflags="-mieee" ;; + esac +fi +if test "x$addcflags" != x +then + AC_MSG_RESULT($addcflags) + CFLAGS="$addcflags $CFLAGS" +else + AC_MSG_RESULT([[(none)]]) +fi +dnl dnl Set default values for library extentions. Will be dealt with after dnl parsing configuration opions, which may modify these dnl @@ -109,6 +136,24 @@ AC_ARG_WITH([root-prefix], root_prefix=$withval, root_prefix=NONE)dnl dnl +dnl handle --enable-maintainer-mode +dnl +AC_ARG_ENABLE([maintainer-mode], +[ --enable-maintainer-mode enable makefile rules useful for maintainers], +if test "$enableval" = "no" +then + MAINTAINER_CMT=# + echo "Disabling maintainer mode" +else + MAINTAINER_CMT= + echo "Enabling maintainer mode" +fi +, +MAINTAINER_CMT=# +echo "Disabling maintainer mode by default" +) +AC_SUBST(MAINTAINER_CMT) +dnl dnl handle --enable-compression dnl AC_ARG_ENABLE([compression], @@ -145,77 +190,6 @@ echo "Enabling htree directory support by default" ) AC_SUBST(HTREE_CMT) dnl -dnl handle --enable-clear-htree -dnl -AC_ARG_ENABLE([htree-clear], -[ --enable-htree-clear clear htree because we don't trust e2fsck], -if test "$enableval" = "no" -then - HTREE_CLR_CMT=# - echo "Disabling htree clearing" -else - HTREE_CLR_CMT= - AC_DEFINE(ENABLE_HTREE_CLEAR) - echo "Enabling htree clearing" -fi -, -HTREE_CLR_CMT=# -echo "Disabling htree clearing by default" -) -AC_SUBST(HTREE_CLR_CMT) -dnl -dnl handle --enable-emvs-10 -dnl -EVMS_ABI_CODE=120 -AC_ARG_ENABLE([evms-10], -[ --enable-evms-10 use EVMS 1.0 ABI (instead of EVMS 1.2)], -if test "$enableval" != "no" -then - EVMS_ABI_CODE=100 - echo "Enabling EVMS 1.0.0 ABI" -fi -) -dnl -dnl handle --enable-emvs-11 -dnl -AC_ARG_ENABLE([evms-11], -[ --enable-evms-11 use EVMS 1.1 ABI (instead of EVMS 1.1)], -if test "$enableval" != "no" -then - EVMS_ABI_CODE=110 - echo "Enabling EVMS 1.1.0 ABI" -fi -) -if test "$EVMS_ABI_CODE" = "120" -then - echo "Using EVMS 1.2.0 ABI by default" -fi -AC_SUBST(EVMS_ABI_CODE) -dnl -dnl handle --enable-dll-shlibs -dnl -AC_ARG_ENABLE([dll-shlibs], -[ --enable-dll-shlibs select DLL libraries], -if test "$enableval" = "no" -then - DLL_CMT=# - MAKEFILE_DLL=/dev/null - echo "Disabling DLL shared libraries" -else - DLL_CMT= - MAKEFILE_DLL=$srcdir/lib/Makefile.dll-lib - BINARY_TYPE=dllbin - LIB_EXT=.sa - echo "Enabling DLL shared libraries" -fi -, -MAKEFILE_DLL=/dev/null -DLL_CMT=# -echo "Disabling DLL shared libraries by default" -) -AC_SUBST(DLL_CMT) -AC_SUBST_FILE(MAKEFILE_DLL) -dnl dnl handle --enable-elf-shlibs dnl AC_ARG_ENABLE([elf-shlibs], @@ -258,6 +232,12 @@ else BSDLIB_CMT= MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib LIB_EXT=.so + [case "$host_os" in + darwin*) + MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib + LIB_EXT=.dylib + ;; + esac] echo "Enabling BSD shared libraries" fi , @@ -334,6 +314,36 @@ fi echo "Disabling journal debugging by default" ) dnl +dnl handle --enable-blkid-debug +dnl +AC_ARG_ENABLE([blkid-debug], +[ --enable-blkid-debug enable blkid debugging], +if test "$enableval" = "no" +then + echo "Disabling blkid debugging" +else + AC_DEFINE(CONFIG_BLKID_DEBUG) + echo "Enabling blkid debugging" +fi +, +echo "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], +if test "$enableval" = "no" +then + echo "Disabling testio debugging" +else + AC_DEFINE(CONFIG_TESTIO_DEBUG) + echo "Enabling testio debugging" +fi +, +echo "Disabling testio debugging by default" +) +dnl dnl handle --enable-swapfs dnl AC_ARG_ENABLE([swapfs], @@ -452,35 +462,69 @@ esac] AC_SUBST(FSCK_PROG) AC_SUBST(FSCK_MAN) dnl +dnl See whether to install the `e2initrd-helper' program dnl -MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library -AC_SUBST_FILE(MAKEFILE_LIBRARY) -dnl +AC_ARG_ENABLE([e2initrd-helper], +[ --enable-e2initrd-helper build e2initrd-helper program], +[if test "$enableval" = "no" +then + E2INITRD_PROG='' E2INITRD_MAN='' + echo "Not building e2initrd helper" +else + E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 + echo "Building e2initrd helper" +fi] +, +E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 +echo "Building e2initrd helper by default" +) +AC_SUBST(E2INITRD_PROG) +AC_SUBST(E2INITRD_MAN) +dnl handle --enable-blkid-devmapper dnl -AC_ARG_ENABLE([old-bitops], -[ --enable-old-bitops Use old (non-standard but native) bitmask operations], -if test "$enableval" = "no" +AC_ARG_ENABLE([blkid-devmapper], +[ --enable-blkid-devmapper build with device-mapper support], +[if test "$enableval" = "no" then - echo "Using new (standard) bitmask operations" + echo "Disabling device-mapper support" + DEVMAPPER_REQ='' + DEVMAPPER_LIBS='' + STATIC_DEVMAPPER_LIBS='' else - AC_DEFINE(EXT2_OLD_BITOPS) - echo "Using old (native) bitmask operations" + AC_DEFINE(HAVE_DEVMAPPER) + echo "Enabling device-mapper support" -fi + DEVMAPPER_REQ='libselinux libsepol' + DEVMAPPER_PC_LIBS='-ldevmapper' + DEVMAPPER_LIBS='-ldevmapper -lselinux -lsepol' + STATIC_DEVMAPPER_LIBS='/usr/lib/libdevmapper.a /usr/lib/libselinux.a /usr/lib/libsepol.a' + +fi] , -echo "Using standard bitmask operations by default" +echo "Disabling device-mapper support by default" ) +AC_SUBST(DEVMAPPER_REQ) +AC_SUBST(DEVMAPPER_PC_LIBS) +AC_SUBST(DEVMAPPER_LIBS) +AC_SUBST(STATIC_DEVMAPPER_LIBS) +dnl +dnl +dnl +MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library +AC_SUBST_FILE(MAKEFILE_LIBRARY) dnl dnl Add internationalization support, using gettext. dnl +GETTEXT_PACKAGE=e2fsprogs PACKAGE=e2fsprogs VERSION="$E2FSPROGS_VERSION" +VERSION=0.14.1 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_DEFINE_UNQUOTED(VERSION, "$VERSION") +AC_SUBST(GETTEXT_PACKAGE) AC_SUBST(PACKAGE) AC_SUBST(VERSION) -ALL_LINGUAS="it nyc tr de de-utf" AM_GNU_GETTEXT dnl dnl End of configuration options @@ -493,7 +537,8 @@ AC_PATH_PROG(MV, mv, mv) AC_PATH_PROG(CP, cp, cp) AC_PATH_PROG(RM, rm, rm) AC_PATH_PROG(CHMOD, chmod, :) -AC_PATH_PROG(AWK, awk, awk) +AC_PROG_AWK +AC_PROG_EGREP AC_PATH_PROG(SED, sed, sed) AC_PATH_PROG(PERL, perl, perl) AC_PATH_PROG(LDCONFIG, ldconfig, :) @@ -508,25 +553,36 @@ if test $cross_compiling = no; then else AC_CHECK_PROGS(BUILD_CC, gcc cc) fi -AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.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/mkdev.h sys/mount.h sys/sockio.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h) +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/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) +AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,, +[[ +#if HAVE_SYS_QUEUE_H +#include +#endif +]]) +AC_CHECK_HEADERS(net/if.h,,, +[[ +#if HAVE_SYS_TYPES_H +#include +#endif +#if HAVE_SYS_SOCKET +#include +#endif +]]) 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)],, + [#include ]) +dnl Check to see if ssize_t was decleared +AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],, + [#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 -dnl Warning! Use of --enable-gcc-wall may throw off this test. -dnl -dnl -AC_MSG_CHECKING(whether llseek declared in unistd.h) -AC_CACHE_VAL(e2fsprogs_cv_have_llseek_prototype, - AC_TRY_COMPILE( -[#include ], [extern int llseek(int);], - [e2fsprogs_cv_have_llseek_prototype=no], - [e2fsprogs_cv_have_llseek_prototype=yes])) -AC_MSG_RESULT($e2fsprogs_cv_have_llseek_prototype) -if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then - AC_DEFINE(HAVE_LLSEEK_PROTOTYPE) -fi +AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],, + [#include ]) dnl dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files dnl are so convoluted that I can't tell whether it will always be defined, @@ -536,18 +592,10 @@ dnl dnl Warning! Use of --enable-gcc-wall may throw off this test. dnl dnl -AC_MSG_CHECKING(whether lseek64 declared in unistd.h) -AC_CACHE_VAL(e2fsprogs_cv_have_lseek64_prototype, - AC_TRY_COMPILE( -[#define _LARGEFILE_SOURCE -#define _LARGEFILE64_SOURCE -#include ], [extern int lseek64(int);], - [e2fsprogs_cv_have_lseek64_prototype=no], - [e2fsprogs_cv_have_lseek64_prototype=yes])) -AC_MSG_RESULT($e2fsprogs_cv_have_lseek64_prototype) -if test "$e2fsprogs_cv_have_lseek64_prototype" = yes; then - AC_DEFINE(HAVE_LSEEK64_PROTOTYPE) -fi +AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],, + [#define _LARGEFILE_SOURCE + #define _LARGEFILE64_SOURCE + #include ]) dnl dnl Word sizes... dnl @@ -572,6 +620,14 @@ AC_SUBST(SIZEOF_INT) AC_SUBST(SIZEOF_LONG) AC_SUBST(SIZEOF_LONG_LONG) AC_C_BIGENDIAN +/bin/sh $ac_aux_dir/parse-types.sh +ASM_TYPES_HEADER=./asm_types.h +AC_SUBST_FILE(ASM_TYPES_HEADER) +dnl +dnl See if we have inttypes.h and if intptr_t is defined +dnl +AC_CHECK_HEADERS([inttypes.h]) +AC_CHECK_TYPES(intptr_t) dnl dnl See if struct stat has a st_flags field, in which case we can get file dnl flags somewhat portably. Also check for the analogous setter, chflags(). @@ -595,7 +651,15 @@ if test "$e2fsprogs_cv_struct_st_flags" = yes; then AC_DEFINE(HAVE_STAT_FLAGS) fi fi -AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen sysconf pathconf) +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]),, + [#include + #include ]) +dnl +AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl) 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 @@ -604,6 +668,14 @@ 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) @@ -623,20 +695,28 @@ linux*) ;; esac dnl -dnl Uncomment only if Linux +dnl OS-specific uncomment control dnl LINUX_CMT="#" +CYGWIN_CMT="#" +UNIX_CMT= case "$host_os" in linux*) LINUX_CMT= ;; +cygwin) + CYGWIN_CMT= + UNIX_CMT="#" + ;; esac AC_SUBST(LINUX_CMT) +AC_SUBST(CYGWIN_CMT) +AC_SUBST(UNIX_CMT) dnl dnl Linux and Hurd places root files in the / by default dnl case "$host_os" in -linux* | gnu*) +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 ''" @@ -647,7 +727,7 @@ dnl dnl On Linux/hurd, force the prefix to be /usr dnl case "$host_os" in -linux* | gnu*) +linux* | gnu* | k*bsd*-gnu) if test "$prefix" = NONE ; then prefix="/usr"; echo "On $host_os systems, prefix defaults to /usr" @@ -707,6 +787,17 @@ if test $ac_cv_e2fsprogs_use_static = yes; then fi AC_SUBST(LDFLAG_STATIC) dnl +dnl Work around mysterious Darwin / GNU libintl problem +dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like +dnl Apple hacked gcc somehow?) +dnl +case "$host_os" in +darwin*) + echo "Using Apple Darwin / GNU libintl workaround" + AC_DEFINE(_INTL_REDIRECT_MACROS) + ;; +esac +dnl dnl Make the ss and et directories work correctly. dnl SS_DIR=`cd ${srcdir}/lib/ss; pwd` @@ -723,6 +814,26 @@ else fi AC_SUBST(DO_TEST_SUITE) dnl +dnl Only include the intl include files if we're building with them +dnl +INTL_FLAGS= +if test "$USE_INCLUDED_LIBINTL" = "yes" ; then + INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl' +fi +AC_SUBST(INTL_FLAGS) +dnl +dnl Build CFLAGS +dnl +if test $cross_compiling = no; then + BUILD_CFLAGS="$CFLAGS" + BUILD_LDFLAGS="$LDFLAGS" +else + BUILD_CFLAGS= + BUILD_LDFLAGS= +fi +AC_SUBST(BUILD_CFLAGS) +AC_SUBST(BUILD_LDFLAGS) +dnl dnl Make our output files, being sure that we create the some miscellaneous dnl directories dnl @@ -730,13 +841,21 @@ test -d lib || mkdir lib test -d include || mkdir include test -d include/linux || mkdir include/linux test -d include/asm || mkdir include/asm -rmakefile= -if test -d ${srcdir}/resize ; then - rmakefile=resize/Makefile -fi -AC_OUTPUT(MCONFIG Makefile util/Makefile util/subst.conf lib/et/Makefile - lib/ss/Makefile lib/ext2fs/Makefile lib/e2p/Makefile lib/uuid/Makefile - lib/blkid/Makefile lib/blkid/blkid_types.h lib/evms/Makefile - misc/Makefile ext2ed/Makefile e2fsck/Makefile debugfs/Makefile \ - tests/Makefile tests/progs/Makefile $rmakefile doc/Makefile - intl/Makefile po/Makefile.in) +for i in MCONFIG Makefile e2fsprogs.spec \ + util/Makefile util/subst.conf util/gen-tarball \ + 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/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 + 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 +