Whamcloud - gitweb
ChangeLog, Makefile.in, jfs_user.h:
[tools/e2fsprogs.git] / configure.in
index a9b5567..6c960f9 100644 (file)
@@ -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_MSG_RESULT(CC defaults to $CC)])dnl
 export CC
 AC_SUBST([CC])
+AC_PROG_CC
 dnl
 dnl set $(LD) from --with-linker=value
 dnl
 dnl
 dnl set $(LD) from --with-linker=value
 dnl
@@ -77,6 +78,16 @@ CFLAGS="$CFLAGS $withval",
 CCOPTS=)dnl
 AC_SUBST(CCOPTS)
 dnl
 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
 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
 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],
 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
 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"
        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
 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],
 dnl handle --enable-profile
 dnl
 AC_ARG_ENABLE([profile],
@@ -312,13 +371,19 @@ AC_PATH_PROG(RM, rm, rm)
 AC_PATH_PROG(CHMOD, chmod, :)
 AC_PATH_PROG(AWK, awk, awk)
 AC_PATH_PROG(SED, sed, sed)
 AC_PATH_PROG(CHMOD, chmod, :)
 AC_PATH_PROG(AWK, awk, awk)
 AC_PATH_PROG(SED, sed, sed)
+AC_PATH_PROG(PERL, perl, perl)
 AC_CHECK_TOOL(AR, ar, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_CHECK_TOOL(STRIP, strip, :)
 AC_CHECK_TOOL(AR, ar, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_CHECK_TOOL(STRIP, strip, :)
-AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_INSTALL
-AC_C_CROSS
-AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.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
 AC_FUNC_VPRINTF
 dnl
 dnl See if struct dirent has a d_namlen field (like bsd systems), implying
@@ -355,6 +420,27 @@ if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then
    AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)
 fi
 dnl
    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 <unistd.h>], [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
 dnl Word sizes...
 dnl
 if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then
@@ -362,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_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)
 fi
 AC_CHECK_SIZEOF(short)
 AC_CHECK_SIZEOF(int)
@@ -389,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
                [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 <sys/stat.h>],
+               [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
 fi
-AC_CHECK_FUNCS(chflags getrusage llseek strdup getmntinfo strcasecmp srandom fchown)
+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
 dnl
 dnl Check to see if ino_t is defined
 dnl
@@ -406,20 +501,6 @@ if test "$e2fsprogs_cv_ino_t" = yes; then
    AC_DEFINE(HAVE_INO_T)
 fi
 dnl
    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
 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
@@ -438,24 +519,18 @@ if test $ac_cv_have_optreset = yes; then
   AC_DEFINE(HAVE_OPTRESET)
 fi
 dnl
   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 <linux/ext2_fs.h>
-#include <sys/ioctl.h>],
-               [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
-dnl Linux places root files in the / by default
+dnl We use the EXT2 ioctls only under Linux
 dnl
 case "$host_os" in
 linux*)
 dnl
 case "$host_os" in
 linux*)
+       AC_DEFINE(HAVE_EXT2_IOCTLS)
+       ;;
+esac
+dnl
+dnl Linux and Hurd places root files in the / by default
+dnl
+case "$host_os" in
+linux* | gnu*)
        if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
                root_prefix="";
                echo "On $host_os systems, root_prefix defaults to ''"
        if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
                root_prefix="";
                echo "On $host_os systems, root_prefix defaults to ''"
@@ -525,11 +600,6 @@ else
 fi
 AC_SUBST(DO_TEST_SUITE)
 dnl
 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
 dnl Make our output files, being sure that we create the some miscellaneous 
 dnl directories
 dnl
@@ -544,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 
 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)