X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=configure.in;h=3d3fa95c9a07653889c5c0df0468a43e06d43a93;hb=d647a1ea4db5fa4e4ed48573c63a1bde56e071db;hp=8b86b5dad5b6807e0985802bd39c9d3dbde54f65;hpb=b0b9c4dece61ec03c655d50c2eade45ca427e069;p=tools%2Fe2fsprogs.git diff --git a/configure.in b/configure.in index 8b86b5d..3d3fa95 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,5 @@ AC_INIT(version.h) +AC_PREREQ(2.12) MCONFIG=./MCONFIG AC_SUBST_FILE(MCONFIG) BINARY_TYPE=bin @@ -12,7 +13,9 @@ DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ MONTH=`echo $DATE | awk -F- '{print $2}'` YEAR=`echo $DATE | awk -F- '{print $3}'` -if expr $YEAR ">" 90 >/dev/null ; then +if expr $YEAR ">" 1900 > /dev/null ; then + E2FSPROGS_YEAR=$YEAR +elif expr $YEAR ">" 90 >/dev/null ; then E2FSPROGS_YEAR=19$YEAR else E2FSPROGS_YEAR=20$YEAR @@ -52,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 @@ -74,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 @@ -90,12 +104,28 @@ LDFLAGS=$withval, LDFLAGS=)dnl AC_SUBST(LDFLAGS) dnl -dnl Allow separate `usr_prefix' to be specified +dnl Allow separate `root_prefix' to be specified +dnl +AC_ARG_WITH([root-prefix], +[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root], +root_prefix=$withval, +root_prefix=NONE)dnl dnl -AC_ARG_WITH([usr-prefix], -[ --with-usr-prefx=PREFIX specify a prefix corresponding to /usr (default ${prefix})], -usr_prefix=$withval, -usr_prefix=NONE)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 @@ -168,6 +198,18 @@ echo "Disabling BSD shared libraries by default" AC_SUBST(BSDLIB_CMT) AC_SUBST_FILE(MAKEFILE_BSDLIB) 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], @@ -309,13 +351,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(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 mntent.h dirent.h getopt.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/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 @@ -352,6 +400,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 @@ -359,8 +428,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) @@ -386,9 +455,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) +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 @@ -403,24 +481,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]) -AC_SUBST(EXTRA_PROGS) -if test "$linux_headers" = yes; then - AC_DEFINE(HAVE_LINUX_FS_H) - # These are some programs that depend on having linux headers around, and - # won't work otherwise. So we only compile them if we can. - EXTRA_PROGS="$EXTRA_PROGS flushb" -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,45 +499,43 @@ 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 -dnl Linux uses a separate usr_prefix by default +dnl We use the EXT2 ioctls only under Linux dnl case "$host_os" in linux*) - if test "$prefix" = NONE ; then - usr_prefix="\${prefix}/usr"; - echo "On $host_os systems, usr_prefix defaults to $usr_prefix" + 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 ''" fi ;; esac -if test "$usr_prefix" = NONE ; then - usr_prefix="\${prefix}" -fi -AC_SUBST(usr_prefix) dnl -dnl On Linux/hurd, force the prefix to be '' +dnl On Linux/hurd, force the prefix to be /usr dnl case "$host_os" in linux* | gnu*) if test "$prefix" = NONE ; then - prefix=''; - echo "On $host_os systems, prefix defaults to ''" + prefix="/usr"; + echo "On $host_os systems, prefix defaults to /usr" fi ;; esac +if test "$root_prefix" = NONE ; then + if test "$prefix" = NONE ; then + root_prefix="$ac_default_prefix" + else + root_prefix="$prefix" + fi +fi +AC_SUBST(root_prefix) dnl dnl See if -static works. dnl @@ -487,6 +545,18 @@ AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, AC_TRY_LINK([#include ],[fflush(stdout);], ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no) LDFLAGS=$SAVE_LDFLAGS]) +dnl +dnl Regardless of how the test turns out, Solaris doesn't handle -static +dnl This is caused by the socket library requiring the nsl library, which +dnl requires the -dl library, which only works for dynamically linked +dnl programs. It basically means you can't have statically linked programs +dnl which use the network under Solaris. +dnl +case "$host_os" in +solaris2.*) + ac_cv_e2fsprogs_use_static=no +;; +esac AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) LDFLAG_STATIC= if test $ac_cv_e2fsprogs_use_static = yes; then @@ -510,17 +580,13 @@ 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 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 @@ -528,4 +594,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)