3 AC_CONFIG_AUX_DIR(config)
8 dnl This is to figure out the version number and the date....
10 E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
11 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
12 DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
14 E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
15 MONTH=`echo $DATE | awk -F- '{print $2}'`
16 YEAR=`echo $DATE | awk -F- '{print $3}'`
18 if expr $YEAR ">" 1900 > /dev/null ; then
20 elif expr $YEAR ">" 90 >/dev/null ; then
21 E2FSPROGS_YEAR=19$YEAR
23 E2FSPROGS_YEAR=20$YEAR
27 Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
28 Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
29 Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
30 Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
31 May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
32 Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
33 Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
34 Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
35 Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
36 Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
37 Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
38 Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
39 *) echo "Unknown month $MONTH??" ;;
42 base_ver=`echo $E2FSPROGS_VERSION | \
43 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
45 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
47 case $E2FSPROGS_VERSION in
49 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
52 E2FSPROGS_PKGVER="$base_ver"
56 unset DATE MONTH YEAR base_ver pre_vers date_spec
57 echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION"
58 echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}"
59 AC_SUBST(E2FSPROGS_YEAR)
60 AC_SUBST(E2FSPROGS_MONTH)
61 AC_SUBST(E2FSPROGS_DAY)
62 AC_SUBST(E2FSPROGS_VERSION)
63 AC_SUBST(E2FSPROGS_PKGVER)
69 AC_ARG_WITH([diet-libc],
70 [ --with-diet-libc use diet libc],
71 CC="diet cc -nostdinc"
73 AC_MSG_RESULT(CC=$CC))dnl
75 dnl set $(CC) from --with-cc=value
78 [ --with-cc=COMPILER select compiler to use],
79 AC_MSG_RESULT(CC=$withval)
81 if test -z "$CC" ; then CC=cc; fi
82 [AC_MSG_RESULT(CC defaults to $CC)])dnl
88 dnl set $(LD) from --with-linker=value
91 [ --with-linker=LINKER select linker to use],
92 AC_MSG_RESULT(LD=$withval)
94 if test -z "$LD" ; then LD=$CC; fi
95 [AC_MSG_RESULT(LD defaults to $LD)])dnl
99 dnl set $(CCOPTS) from --with-ccopts=value
101 AC_ARG_WITH([ccopts],
102 [ --with-ccopts=CCOPTS select compiler command line options],
103 AC_MSG_RESULT(CCOPTS is $withval)
107 dnl On systems without linux header files, we add an extra include directory
108 dnl that holds enough to fake it (hopefully). Note that the $(top_srcdir) here
109 dnl is quoted so that it gets expanded by make, not by configure.
111 AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
112 if test "$linux_headers" != yes; then
113 LINUX_INCLUDE='-I$(top_builddir)/include'
115 AC_SUBST(LINUX_INCLUDE)
117 dnl Alpha computers use fast and imprecise floating point code that may
118 dnl miss exceptions by default. Force sane options if we're using GCC.
119 AC_MSG_CHECKING(for additional special compiler flags)
123 alpha) addcflags="-mieee" ;;
126 if test "x$addcflags" != x
128 AC_MSG_RESULT($addcflags)
129 CFLAGS="$addcflags $CFLAGS"
131 AC_MSG_RESULT([[(none)]])
134 dnl Set default values for library extentions. Will be dealt with after
135 dnl parsing configuration opions, which may modify these
141 dnl set $(LDFLAGS) from --with-ldopts=value
143 AC_ARG_WITH([ldopts],
144 [ --with-ldopts=LDOPTS select linker command line options],
145 AC_MSG_RESULT(LDFLAGS is $withval)
150 dnl Allow separate `root_prefix' to be specified
152 AC_ARG_WITH([root-prefix],
153 [ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
154 root_prefix=$withval,
157 dnl handle --enable-maintainer-mode
159 AC_ARG_ENABLE([maintainer-mode],
160 [ --enable-maintainer-mode enable makefile rules useful for maintainers],
161 if test "$enableval" = "no"
164 echo "Disabling maintainer mode"
167 echo "Enabling maintainer mode"
171 echo "Disabling maintainer mode by default"
173 AC_SUBST(MAINTAINER_CMT)
175 dnl handle --enable-compression
177 AC_ARG_ENABLE([compression],
178 [ --enable-compression enable EXPERIMENTAL compression support],
179 if test "$enableval" = "no"
181 echo "Disabling compression support"
183 AC_DEFINE(ENABLE_COMPRESSION)
184 echo "Enabling compression support"
185 echo "WARNING: Compression support is experimental"
188 echo "Disabling compression support by default"
191 dnl handle --enable-htree
193 AC_ARG_ENABLE([htree],
194 [ --enable-htree enable EXPERIMENTAL htree directory support],
195 if test "$enableval" = "no"
198 echo "Disabling htree directory support"
201 AC_DEFINE(ENABLE_HTREE)
202 echo "Enabling htree directory support"
206 AC_DEFINE(ENABLE_HTREE)
207 echo "Enabling htree directory support by default"
211 dnl This needs to be before all of the --enable-*-shlibs options
213 E2_PKG_CONFIG_STATIC=--static
215 dnl handle --enable-elf-shlibs
217 AC_ARG_ENABLE([elf-shlibs],
218 [ --enable-elf-shlibs select ELF shared libraries],
219 if test "$enableval" = "no"
222 MAKEFILE_ELF=/dev/null
223 echo "Disabling ELF shared libraries"
225 E2_PKG_CONFIG_STATIC=
227 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
230 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
235 echo "Enabling ELF shared libraries"
238 MAKEFILE_ELF=/dev/null
240 echo "Disabling ELF shared libraries by default"
243 AC_SUBST_FILE(MAKEFILE_ELF)
245 dnl handle --enable-bsd-shlibs
247 AC_ARG_ENABLE([bsd-shlibs],
248 [ --enable-bsd-shlibs select BSD shared libraries],
249 if test "$enableval" = "no"
252 MAKEFILE_BSDLIB=/dev/null
253 echo "Disabling BSD shared libraries"
255 E2_PKG_CONFIG_STATIC=
257 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
261 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
265 echo "Enabling BSD shared libraries"
268 MAKEFILE_BSDLIB=/dev/null
270 echo "Disabling BSD shared libraries by default"
273 AC_SUBST_FILE(MAKEFILE_BSDLIB)
275 dnl handle --enable-profile
277 AC_ARG_ENABLE([profile],
278 [ --enable-profile build profiling libraries],
279 if test "$enableval" = "no"
282 MAKEFILE_PROFILE=/dev/null
283 echo "Disabling profiling libraries"
286 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
287 PROFILED_LIB_EXT=_p.a
288 echo "Building profiling libraries"
292 MAKEFILE_PROFILE=/dev/null
293 echo "Disabling profiling libraries by default"
295 AC_SUBST(PROFILE_CMT)
296 AC_SUBST_FILE(MAKEFILE_PROFILE)
298 dnl handle --enable-checker
300 AC_ARG_ENABLE([checker],
301 [ --enable-checker build checker libraries],
302 if test "$enableval" = "no"
305 MAKEFILE_CHECKER=/dev/null
306 echo "Disabling checker libraries"
309 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
310 echo "Building checker libraries"
314 MAKEFILE_CHECKER=/dev/null
315 echo "Disabling checker libraries by default"
317 AC_SUBST(CHECKER_CMT)
318 AC_SUBST_FILE(MAKEFILE_CHECKER)
320 dnl Substitute library extensions
323 AC_SUBST(STATIC_LIB_EXT)
324 AC_SUBST(PROFILED_LIB_EXT)
326 dnl handle --enable-jbd-debug
328 AC_ARG_ENABLE([jbd-debug],
329 [ --enable-jbd-debug enable journal debugging],
330 if test "$enableval" = "no"
332 echo "Disabling journal debugging"
334 AC_DEFINE(CONFIG_JBD_DEBUG)
335 echo "Enabling journal debugging"
338 echo "Disabling journal debugging by default"
341 dnl handle --enable-blkid-debug
343 AC_ARG_ENABLE([blkid-debug],
344 [ --enable-blkid-debug enable blkid debugging],
345 if test "$enableval" = "no"
347 echo "Disabling blkid debugging"
349 AC_DEFINE(CONFIG_BLKID_DEBUG)
350 echo "Enabling blkid debugging"
353 echo "Disabling blkid debugging by default"
356 dnl handle --enable-testio-debug
358 AC_ARG_ENABLE([testio-debug],
359 [ --enable-testio-debug enable the use of the test I/O manager for debugging],
360 if test "$enableval" = "no"
362 echo "Disabling testio debugging"
364 AC_DEFINE(CONFIG_TESTIO_DEBUG)
365 echo "Enabling testio debugging"
368 echo "Disabling testio debugging by default"
371 dnl handle --enable-debugfs
373 AC_ARG_ENABLE([debugfs],
374 [ --disable-debugfs disable support of debugfs program],
375 if test "$enableval" = "no"
377 echo "Disabling debugfs support"
381 echo "Enabling debugfs support"
384 echo "Enabling debugfs support by default"
387 AC_SUBST(DEBUGFS_CMT)
389 dnl handle --enable-imager
391 AC_ARG_ENABLE([imager],
392 [ --disable-imager disable support of e2image program],
393 if test "$enableval" = "no"
395 echo "Disabling e2image support"
399 echo "Enabling e2image support"
402 echo "Enabling e2image support by default"
407 dnl handle --enable-resizer
409 AC_ARG_ENABLE([resizer],
410 [ --disable-resizer disable support of e2resize program],
411 if test "$enableval" = "no"
413 echo "Disabling e2resize support"
417 echo "Enabling e2resize support"
420 echo "Enabling e2resize support by default"
423 AC_SUBST(RESIZER_CMT)
425 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
427 AC_ARG_ENABLE([fsck],
428 [ --enable-fsck build fsck wrapper program],
429 [if test "$enableval" = "no"
431 FSCK_PROG='' FSCK_MAN=''
432 echo "Not building fsck wrapper"
434 FSCK_PROG=fsck FSCK_MAN=fsck.8
435 echo "Building fsck wrapper"
440 FSCK_PROG='' FSCK_MAN=''
441 echo "Not building fsck wrapper by default"
444 FSCK_PROG=fsck FSCK_MAN=fsck.8
445 echo "Building fsck wrapper by default"
451 dnl See whether to install the `e2initrd-helper' program
453 AC_ARG_ENABLE([e2initrd-helper],
454 [ --enable-e2initrd-helper build e2initrd-helper program],
455 [if test "$enableval" = "no"
457 E2INITRD_PROG='' E2INITRD_MAN=''
458 echo "Not building e2initrd helper"
460 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
461 echo "Building e2initrd helper"
464 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
465 echo "Building e2initrd helper by default"
467 AC_SUBST(E2INITRD_PROG)
468 AC_SUBST(E2INITRD_MAN)
469 dnl handle --enable-blkid-devmapper
471 STATIC_BLKID_DEVMAPPER_LIBS=''
472 AC_ARG_ENABLE([blkid-devmapper],
473 [ --enable-blkid-devmapper build with device-mapper support],
474 [if test "$enableval" = "no"
476 echo "Disabling device-mapper support"
479 STATIC_DEVMAPPER_LIBS=''
481 AC_DEFINE(HAVE_DEVMAPPER)
482 echo "Enabling device-mapper support"
484 PKG_PROG_PKG_CONFIG()
486 if test -z "$PKG_CONFIG"; then
487 echo "pkg-config not installed; please install it."
491 AC_CHECK_LIB(devmapper, dm_tree_create,
492 [DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`;
493 STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`;
494 DEVMAPPER_REQ="devmapper";
495 DEVMAPPER_PC_LIBS="-ldevmapper"],
496 [AC_MSG_ERROR([device-mapper library not found])],
498 # work around stupid devmapper.pc bug in Debian
499 case "$STATIC_DEVMAPPER_LIBS" in
503 echo "Working around Debian bug #390243..."
504 STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS"
507 if test "$E2_PKG_CONFIG_STATIC" = "--static"; then
508 DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
509 STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
513 echo "Disabling device-mapper support by default"
515 AC_SUBST(DEVMAPPER_REQ)
516 AC_SUBST(DEVMAPPER_PC_LIBS)
517 AC_SUBST(DEVMAPPER_LIBS)
518 AC_SUBST(STATIC_DEVMAPPER_LIBS)
519 AC_SUBST(STATIC_BLKID_DEVMAPPER_LIBS)
524 [ --disable-tls disable use of thread local support],
525 [if test "$enableval" = "no"
528 echo "Disabling thread local support"
531 echo "Enabling thread local support"
534 if test -n "$WITH_DIET_LIBC"
537 echo "Diet libc does not support thread local support"
540 echo "Try using thread local support by default"
543 if test "$try_tls" = "yes"
550 AC_ARG_ENABLE([uuidd],
551 [ --disable-uuidd disable building the uuid daemon],
552 [if test "$enableval" = "no"
554 echo "Not building uuidd"
559 echo "Building uuidd"
564 echo "Building uuidd by default"
570 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
571 AC_SUBST_FILE(MAKEFILE_LIBRARY)
573 dnl Add internationalization support, using gettext.
575 GETTEXT_PACKAGE=e2fsprogs
577 VERSION="$E2FSPROGS_VERSION"
579 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
580 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
581 AC_SUBST(GETTEXT_PACKAGE)
587 dnl End of configuration options
589 AC_SUBST(BINARY_TYPE)
591 AC_PATH_PROG(LN, ln, ln)
593 AC_PATH_PROG(MV, mv, mv)
594 AC_PATH_PROG(CP, cp, cp)
595 AC_PATH_PROG(RM, rm, rm)
596 AC_PATH_PROG(CHMOD, chmod, :)
599 AC_PATH_PROG(SED, sed, sed)
600 AC_PATH_PROG(PERL, perl, perl)
601 AC_PATH_PROG(LDCONFIG, ldconfig, :)
602 AC_CHECK_TOOL(AR, ar, ar)
603 AC_CHECK_TOOL(RANLIB, ranlib, :)
604 AC_CHECK_TOOL(STRIP, strip, :)
605 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
606 if test "_$MAKEINFO" = "_"; then
607 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
612 *** Makeinfo is missing. Info documentation will not be built.])
620 # See if we need a separate native compiler.
621 if test $cross_compiling = no; then
625 AC_CHECK_PROGS(BUILD_CC, gcc cc)
627 AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.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)
628 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
631 #include <sys/queue.h>
634 AC_CHECK_HEADERS(net/if.h,,,
637 #include <sys/types.h>
640 #include <sys/socket.h>
644 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
645 dnl is not decleared.
646 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
647 [#include <dirent.h>])
648 dnl Check to see if ssize_t was decleared
649 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
650 [#include <sys/types.h>])
652 dnl Check to see if llseek() is declared in unistd.h. On some libc's
653 dnl it is, and on others it isn't..... Thank you glibc developers....
655 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
656 [#include <unistd.h>])
658 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
659 dnl are so convoluted that I can't tell whether it will always be defined,
660 dnl and if it isn't defined while lseek64 is defined in the library,
661 dnl disaster will strike.
663 dnl Warning! Use of --enable-gcc-wall may throw off this test.
666 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
667 [#define _LARGEFILE_SOURCE
668 #define _LARGEFILE64_SOURCE
669 #include <unistd.h>])
673 AC_CHECK_SIZEOF(short)
675 AC_CHECK_SIZEOF(long)
676 AC_CHECK_SIZEOF(long long)
677 SIZEOF_SHORT=$ac_cv_sizeof_short
678 SIZEOF_INT=$ac_cv_sizeof_int
679 SIZEOF_LONG=$ac_cv_sizeof_long
680 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
681 AC_SUBST(SIZEOF_SHORT)
683 AC_SUBST(SIZEOF_LONG)
684 AC_SUBST(SIZEOF_LONG_LONG)
686 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
687 ASM_TYPES_HEADER=./asm_types.h
688 AC_SUBST_FILE(ASM_TYPES_HEADER)
690 dnl Save the configuration #defines needed for the public ext2fs.h
693 echo "/* These defines are needed for the public ext2fs.h header file */" \
695 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
696 uniq tmp_config.$$ >> public_config.h
698 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
700 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
701 uniq tmp_config.$$ >> public_config.h
703 echo "#undef WORDS_BIGENDIAN" >> public_config.h
706 PUBLIC_CONFIG_HEADER=./public_config.h
707 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
709 dnl See if we have inttypes.h and if intptr_t is defined
711 AC_CHECK_HEADERS([inttypes.h])
712 AC_CHECK_TYPES(intptr_t)
714 dnl See if struct stat has a st_flags field, in which case we can get file
715 dnl flags somewhat portably. Also check for the analogous setter, chflags().
717 AC_MSG_CHECKING(whether struct stat has a st_flags field)
718 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
719 AC_TRY_COMPILE([#include <sys/stat.h>],
720 [struct stat stat; stat.st_flags = 0;],
721 [e2fsprogs_cv_struct_st_flags=yes],
722 [e2fsprogs_cv_struct_st_flags=no]))
723 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
724 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
725 AC_MSG_CHECKING(whether st_flags field is useful)
726 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
727 AC_TRY_COMPILE([#include <sys/stat.h>],
728 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
729 [e2fsprogs_cv_struct_st_flags_immut=yes],
730 [e2fsprogs_cv_struct_st_flags_immut=no]))
731 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
732 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
733 AC_DEFINE(HAVE_STAT_FLAGS)
737 dnl Check for the presence of SA_LEN
739 AC_CHECK_MEMBER(struct sockaddr.sa_len,
740 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
741 [#include <sys/types.h>
742 #include <sys/socket.h>])
744 AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep)
746 dnl Check to see if -lsocket is required (solaris) to make something
747 dnl that uses socket() to compile; this is needed for the UUID library
750 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
753 dnl Check to see if libdl exists for the sake of dlopen
756 AC_CHECK_LIB(dl, dlopen,
758 AC_DEFINE(HAVE_DLOPEN)])
761 dnl See if optreset exists
763 AC_MSG_CHECKING(for optreset)
764 AC_CACHE_VAL(ac_cv_have_optreset,
765 [AC_EGREP_HEADER(optreset, unistd.h,
766 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
767 AC_MSG_RESULT($ac_cv_have_optreset)
768 if test $ac_cv_have_optreset = yes; then
769 AC_DEFINE(HAVE_OPTRESET)
772 dnl Check for unified diff
774 AC_MSG_CHECKING(for unified diff option)
775 if diff -u $0 $0 > /dev/null 2>&1 ; then
780 AC_MSG_RESULT($UNI_DIFF_OPTS)
781 AC_SUBST(UNI_DIFF_OPTS)
783 dnl We use the EXT2 ioctls only under Linux
787 AC_DEFINE(HAVE_EXT2_IOCTLS)
791 dnl OS-specific uncomment control
809 dnl Linux and Hurd places root files in the / by default
812 linux* | gnu* | k*bsd*-gnu)
813 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
815 echo "On $host_os systems, root_prefix defaults to ''"
820 dnl On Linux/hurd, force the prefix to be /usr
823 linux* | gnu* | k*bsd*-gnu)
824 if test "$prefix" = NONE ; then
826 echo "On $host_os systems, prefix defaults to /usr"
827 if test "$mandir" = '${prefix}/man' ; then
828 echo "...and mandir defaults to /usr/share/man"
829 mandir=/usr/share/man
834 if test "$root_prefix" = NONE ; then
835 if test "$prefix" = NONE ; then
836 root_prefix="$ac_default_prefix"
838 root_prefix="$prefix"
841 root_sbindir=$sbindir
843 root_sysconfdir=$sysconfdir
845 root_bindir='${root_prefix}/bin'
846 root_sbindir='${root_prefix}/sbin'
847 root_libdir='${root_prefix}/lib'
848 root_sysconfdir='${root_prefix}/etc'
850 if test "$bindir" != '${exec_prefix}/bin'; then
852 echo "Setting root_bindir to $root_bindir"
854 if test "$sbindir" != '${exec_prefix}/sbin'; then
855 root_sbindir=$sbindir
856 echo "Setting root_sbindir to $root_sbindir"
858 if test "$libdir" != '${exec_prefix}/lib'; then
860 echo "Setting root_libdir to $root_libdir"
862 if test "$sysconfdir" != '${prefix}/etc'; then
863 root_sysconfdir=$sysconfdir
864 echo "Setting root_sysconfdir to $root_sysconfdir"
866 AC_SUBST(root_prefix)
867 AC_SUBST(root_bindir)
868 AC_SUBST(root_sbindir)
869 AC_SUBST(root_libdir)
870 AC_SUBST(root_sysconfdir)
872 dnl See if -static works.
874 AC_MSG_CHECKING([whether linker accepts -static])
875 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
876 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
877 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
878 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
879 LDFLAGS=$SAVE_LDFLAGS])
881 dnl Regardless of how the test turns out, Solaris doesn't handle -static
882 dnl This is caused by the socket library requiring the nsl library, which
883 dnl requires the -dl library, which only works for dynamically linked
884 dnl programs. It basically means you can't have statically linked programs
885 dnl which use the network under Solaris.
889 ac_cv_e2fsprogs_use_static=no
892 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
894 if test $ac_cv_e2fsprogs_use_static = yes; then
895 LDFLAG_STATIC=-static
897 AC_SUBST(LDFLAG_STATIC)
899 dnl Work around mysterious Darwin / GNU libintl problem
900 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
901 dnl Apple hacked gcc somehow?)
905 echo "Using Apple Darwin / GNU libintl workaround"
906 AC_DEFINE(_INTL_REDIRECT_MACROS)
910 dnl Make the ss and et directories work correctly.
912 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
913 ET_DIR=`cd ${srcdir}/lib/et; pwd`
917 dnl Only try to run the test suite if we're not cross compiling.
919 if test "$cross_compiling" = yes ; then
924 AC_SUBST(DO_TEST_SUITE)
926 dnl Only include the intl include files if we're building with them
929 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
930 INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
936 if test $cross_compiling = no; then
937 BUILD_CFLAGS="$CFLAGS"
938 BUILD_LDFLAGS="$LDFLAGS"
943 AC_SUBST(BUILD_CFLAGS)
944 AC_SUBST(BUILD_LDFLAGS)
946 dnl Make our output files, being sure that we create the some miscellaneous
949 test -d lib || mkdir lib
950 test -d include || mkdir include
951 test -d include/linux || mkdir include/linux
952 test -d include/asm || mkdir include/asm
953 for i in MCONFIG Makefile e2fsprogs.spec \
954 util/Makefile util/subst.conf util/gen-tarball \
955 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
956 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
957 lib/uuid/Makefile lib/uuid/uuid_types.h \
958 lib/blkid/Makefile lib/blkid/blkid_types.h \
959 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
960 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
961 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
962 debugfs/Makefile tests/Makefile tests/progs/Makefile \
963 resize/Makefile doc/Makefile intl/Makefile po/Makefile.in ; do
964 if test -d `dirname ${srcdir}/$i` ; then
965 outlist="$outlist $i"
969 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi