X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=configure.in;h=6c960f904e2c6d6c6821c55d676d627240ec1100;hb=cc7067b40bbd3e585da3031c1e06794107ff0d0b;hp=dfc1cf58495f7963b6e2c41a3d4deb5479c633b2;hpb=9d564f73f594282d87209313ea59e4ca08727ab3;p=tools%2Fe2fsprogs.git diff --git a/configure.in b/configure.in index dfc1cf5..6c960f9 100644 --- a/configure.in +++ b/configure.in @@ -55,6 +55,7 @@ if test -z "$CC" ; then CC=cc; fi [AC_MSG_RESULT(CC defaults to $CC)])dnl export CC AC_SUBST([CC]) +AC_PROG_CC dnl dnl set $(LD) from --with-linker=value dnl @@ -77,6 +78,16 @@ CFLAGS="$CFLAGS $withval", CCOPTS=)dnl AC_SUBST(CCOPTS) 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. +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' +fi +AC_SUBST(LINUX_INCLUDE) +dnl dnl Set default values for library extentions. Will be dealt with after dnl parsing configuration opions, which may modify these dnl @@ -100,6 +111,22 @@ AC_ARG_WITH([root-prefix], root_prefix=$withval, root_prefix=NONE)dnl 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" +else + AC_DEFINE(ENABLE_COMPRESSION) + echo "Enabling compression support" + echo "WARNING: Compression support is experimental" +fi +, +echo "Disabling compression support by default" +) +dnl dnl handle --enable-dll-shlibs dnl AC_ARG_ENABLE([dll-shlibs], @@ -136,6 +163,11 @@ then else ELF_CMT= MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib + [case "$host_os" in + solaris2.*) + MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib + ;; + esac] BINARY_TYPE=elfbin LIB_EXT=.so echo "Enabling ELF shared libraries" @@ -171,6 +203,33 @@ echo "Disabling BSD shared libraries by default" AC_SUBST(BSDLIB_CMT) AC_SUBST_FILE(MAKEFILE_BSDLIB) dnl +dnl handle --enable-jfs-debug +dnl +AC_ARG_ENABLE([jfs-debug], +[ --enable-jfs-debug enable journal debugging], +if test "$enableval" = "no" +then + echo "Disabling journal debugging" +else + AC_DEFINE(JFS_DEBUG) + echo "Enabling journal debugging" +fi +, +echo "Disabling journal debugging by default" +) +dnl +dnl Add internationalization support, using gettext. +dnl +PACKAGE=e2fsprogs +VERSION="$E2FSPROGS_VERSION" +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") +AC_DEFINE_UNQUOTED(VERSION, "$VERSION") +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) + +ALL_LINGUAS="it nyc" +AM_GNU_GETTEXT +dnl dnl handle --enable-profile dnl AC_ARG_ENABLE([profile], @@ -316,10 +375,15 @@ AC_PATH_PROG(PERL, perl, perl) AC_CHECK_TOOL(AR, ar, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) -AC_PROG_CC AC_PROG_INSTALL -AC_C_CROSS -AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h linux/fd.h linux/major.h sys/disklabel.h sys/sockio.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h) +# See if we need a separate native compiler. +if test $cross_compiling = no; then + BUILD_CC="$CC" + AC_SUBST(BUILD_CC) +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/mount.h sys/sockio.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h) AC_FUNC_VPRINTF dnl dnl See if struct dirent has a d_namlen field (like bsd systems), implying @@ -356,6 +420,27 @@ if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then AC_DEFINE(HAVE_LLSEEK_PROTOTYPE) fi 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, +dnl and if it isn't defined while lseek64 is defined in the library, +dnl disaster will strike. +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 +dnl dnl Word sizes... dnl if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then @@ -363,8 +448,8 @@ if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then ac_cv_sizeof_short=2 ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 - ac_cv_sizeof_long_long=0 - AC_MSG_WARN([Cross-compiling, so cannot check type sizes; assuming short=2, int=4, 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) @@ -390,9 +475,18 @@ AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, [e2fsprogs_cv_struct_st_flags=no])) AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) if test "$e2fsprogs_cv_struct_st_flags" = yes; then - AC_DEFINE(HAVE_STAT_FLAGS) + AC_MSG_CHECKING(whether st_flags field is useful) + AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, + AC_TRY_COMPILE([#include ], + [struct stat stat; stat.st_flags |= UF_IMMUTABLE;], + [e2fsprogs_cv_struct_st_flags_immut=yes], + [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) + fi fi -AC_CHECK_FUNCS(chflags getrusage llseek strdup getmntinfo strcasecmp srandom fchown mallinfo) +AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 strdup getmntinfo strcasecmp srandom fchown mallinfo fdatasync) dnl dnl Check to see if ino_t is defined dnl @@ -407,20 +501,6 @@ if test "$e2fsprogs_cv_ino_t" = yes; then AC_DEFINE(HAVE_INO_T) fi 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. -dnl -AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no]) -if test "$linux_headers" = yes; then - AC_DEFINE(HAVE_LINUX_FS_H) -else - LINUX_INCLUDE='-I$(top_srcdir)/include -I$(top_builddir)/include' - # Use this include directory with test compiles in the configure script too. - CPPFLAGS="$CPPFLAGS -I$srcdir/include -I./include" -fi -AC_SUBST(LINUX_INCLUDE) -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 dnl @@ -439,37 +519,18 @@ if test $ac_cv_have_optreset = yes; then AC_DEFINE(HAVE_OPTRESET) fi dnl -dnl See if using the EXT2 ioctls causes a compile-time barf (as on the hurd). -dnl -AC_MSG_CHECKING(whether the ext2 ioctls compile) -AC_CACHE_VAL(e2fsprogs_cv_ioctl_ext2, - AC_TRY_COMPILE([#include -#include ], - [ioctl (0, EXT2_IOC_SETVERSION, 0);], - [e2fsprogs_cv_ioctl_ext2=yes], - [e2fsprogs_cv_ioctl_ext2=no])) -AC_MSG_RESULT($e2fsprogs_cv_ioctl_ext2) -if test "$e2fsprogs_cv_ioctl_ext2" = yes; then - AC_DEFINE(HAVE_EXT2_IOCTLS) -fi +dnl We use the EXT2 ioctls only under Linux dnl -dnl Check if ext2_inode has i_version (changed to i_generation in Linux 2.3) -dnl -AC_MSG_CHECKING(whether struct ext2_inode has an i_version field) -AC_CACHE_VAL(e2fsprogs_cv_ext2_inode_version, - AC_TRY_COMPILE([#include ], - [struct ext2_inode e2i; e2i.i_version=0;], - [e2fsprogs_cv_ext2_inode_version=yes], - [e2fsprogs_cv_ext2_inode_version=no])) -AC_MSG_RESULT($e2fsprogs_cv_ext2_inode_version) -if test "$e2fsprogs_cv_ext2_inode_version" = yes; then - AC_DEFINE(HAVE_EXT2_INODE_VERSION) -fi +case "$host_os" in +linux*) + AC_DEFINE(HAVE_EXT2_IOCTLS) + ;; +esac dnl -dnl Linux places root files in the / by default +dnl Linux and Hurd places root files in the / by default dnl case "$host_os" in -linux*) +linux* | gnu*) if test "$prefix" = NONE -a "$root_prefix" = NONE ; then root_prefix=""; echo "On $host_os systems, root_prefix defaults to ''" @@ -539,11 +600,6 @@ else fi AC_SUBST(DO_TEST_SUITE) dnl -dnl -dnl -DO_SUBSTITUTE_SCRIPT=$srcdir/lib/do_substitute -AC_SUBST_FILE(DO_SUBSTITUTE_SCRIPT) -dnl dnl Make our output files, being sure that we create the some miscellaneous dnl directories dnl @@ -558,4 +614,5 @@ 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 misc/Makefile e2fsck/Makefile debugfs/Makefile tests/Makefile - tests/progs/Makefile $rmakefile doc/Makefile) + tests/progs/Makefile $rmakefile doc/Makefile + intl/Makefile po/Makefile.in)