3 AC_CONFIG_AUX_DIR(config)
4 AC_CONFIG_HEADERS([lib/config.h])
5 AH_BOTTOM([#include <dirpaths.h>])
10 dnl This is to figure out the version number and the date....
12 E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
13 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
14 DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
16 E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
17 MONTH=`echo $DATE | awk -F- '{print $2}'`
18 YEAR=`echo $DATE | awk -F- '{print $3}'`
20 if expr $YEAR ">" 1900 > /dev/null ; then
22 elif expr $YEAR ">" 90 >/dev/null ; then
23 E2FSPROGS_YEAR=19$YEAR
25 E2FSPROGS_YEAR=20$YEAR
29 Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
30 Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
31 Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
32 Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
33 May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
34 Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
35 Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
36 Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
37 Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
38 Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
39 Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
40 Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
41 *) AC_MSG_WARN([Unknown month $MONTH??]) ;;
44 base_ver=`echo $E2FSPROGS_VERSION | \
45 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
47 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
49 case $E2FSPROGS_VERSION in
51 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
54 E2FSPROGS_PKGVER="$base_ver"
58 unset DATE MONTH YEAR base_ver pre_vers date_spec
59 AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
60 AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
61 AC_SUBST(E2FSPROGS_YEAR)
62 AC_SUBST(E2FSPROGS_MONTH)
63 AC_SUBST(E2FSPROGS_DAY)
64 AC_SUBST(E2FSPROGS_VERSION)
65 AC_SUBST(E2FSPROGS_PKGVER)
70 AC_ARG_WITH([diet-libc],
71 [ --with-diet-libc use diet libc],
72 CC="diet cc -nostdinc"
80 AC_MSG_RESULT(CC=$CC))dnl
84 dnl Check to see if libdl exists for the sake of dlopen
87 AC_CHECK_LIB(dl, dlopen,
89 AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
93 AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
94 AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
97 AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
98 AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
100 AC_ARG_WITH([ldopts],
101 AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
102 AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
105 if test "$GCC" = yes; then
111 dnl Alpha computers use fast and imprecise floating point code that may
112 dnl miss exceptions by default. Force sane options if we're using GCC.
113 AC_MSG_CHECKING(for additional special compiler flags)
117 alpha) addcflags="-mieee" ;;
120 if test "x$addcflags" != x
122 AC_MSG_RESULT($addcflags)
123 CFLAGS="$addcflags $CFLAGS"
125 AC_MSG_RESULT([[(none)]])
127 AC_USE_SYSTEM_EXTENSIONS
129 dnl Set default values for library extentions. Will be dealt with after
130 dnl parsing configuration opions, which may modify these
136 dnl Allow separate `root_prefix' to be specified
138 AC_ARG_WITH([root-prefix],
139 [ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
140 root_prefix=$withval,
143 dnl handle --enable-maintainer-mode
145 AC_ARG_ENABLE([maintainer-mode],
146 [ --enable-maintainer-mode enable makefile rules useful for maintainers],
147 if test "$enableval" = "no"
150 AC_MSG_RESULT([Disabling maintainer mode])
153 AC_MSG_RESULT([Enabling maintainer mode])
157 AC_MSG_RESULT([Disabling maintainer mode by default])
159 AC_SUBST(MAINTAINER_CMT)
161 dnl handle --enable-symlink-install
163 AC_ARG_ENABLE([symlink-install],
164 [ --enable-symlink-install use symlinks when installing instead of hard links],
165 if test "$enableval" = "no"
167 LINK_INSTALL_FLAGS=-f
168 AC_MSG_RESULT([Disabling symlinks for install])
170 LINK_INSTALL_FLAGS=-sf
171 AC_MSG_RESULT([Enabling symlinks for install])
174 LINK_INSTALL_FLAGS=-f
175 AC_MSG_RESULT([Disabling symlinks for install by default])
177 AC_SUBST(LINK_INSTALL_FLAGS)
179 dnl handle --enable-relative-symlinks
181 relative_symlink_defined=
182 AC_ARG_ENABLE([relative-symlinks],
183 [ --enable-relative-symlinks use relative symlinks when installing],
184 if test "$enableval" = "no"
187 relative_symlink_defined=yes
188 AC_MSG_RESULT([Disabling relative symlinks for install])
190 SYMLINK_RELATIVE=--relative
191 relative_symlink_defined=yes
192 AC_MSG_RESULT([Enabling relative symlinks for install])
194 AC_ARG_ENABLE([symlink-relative-symlinks],,
195 if test "$enableval" = "no"
198 AC_MSG_RESULT([Disabling relative symlinks for install])
200 SYMLINK_RELATIVE=--relative
201 AC_MSG_RESULT([Enabling relative symlinks for install])
204 if test -z "$relative_symlink_defined"
207 AC_MSG_RESULT([Disabling relative symlinks for install by default])
210 AC_SUBST(SYMLINK_RELATIVE)
212 dnl handle --enable-symlink-build
214 AC_ARG_ENABLE([symlink-build],
215 [ --enable-symlink-build use symlinks while building instead of hard links],
216 if test "$enableval" = "no"
219 AC_MSG_RESULT([Disabling symlinks for build])
222 AC_MSG_RESULT([Enabling symlinks for build])
226 AC_MSG_RESULT([Disabling symlinks for build by default])
228 AC_SUBST(LINK_BUILD_FLAGS)
230 dnl handle --enable-verbose-makecmds
232 AC_ARG_ENABLE([verbose-makecmds],
233 [ --enable-verbose-makecmds enable verbose make command output],
234 if test "$enableval" = "no"
236 AC_MSG_RESULT([Disabling verbose make commands])
241 AC_MSG_RESULT([Enabling verbose make commands])
247 AC_MSG_RESULT([Disabling verbose make commands])
256 dnl handle --enable-compression
258 AC_ARG_ENABLE([compression],
259 [ --enable-compression enable EXPERIMENTAL compression support],
260 if test "$enableval" = "no"
262 AC_MSG_RESULT([Disabling compression support])
264 AC_DEFINE(ENABLE_COMPRESSION, 1,
265 [Define to 1 if ext2 compression enabled])
266 AC_MSG_RESULT([Enabling compression support])
267 AC_MSG_WARN([Compression support is experimental])
270 AC_MSG_RESULT([Disabling compression support by default])
273 dnl handle --enable-htree
275 AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
276 AC_ARG_ENABLE([htree],
277 [ --enable-htree enable EXPERIMENTAL htree directory support],
278 if test "$enableval" = "no"
281 AC_MSG_RESULT([Disabling htree directory support])
284 AC_DEFINE(ENABLE_HTREE, 1)
285 AC_MSG_RESULT([Enabling htree directory support])
289 AC_DEFINE(ENABLE_HTREE, 1)
290 AC_MSG_RESULT([Enabling htree directory support by default])
294 dnl This needs to be before all of the --enable-*-shlibs options
296 E2_PKG_CONFIG_STATIC=--static
300 dnl handle --enable-elf-shlibs
302 AC_ARG_ENABLE([elf-shlibs],
303 [ --enable-elf-shlibs select ELF shared libraries],
304 if test "$enableval" = "no"
307 MAKEFILE_ELF=/dev/null
308 AC_MSG_RESULT([Disabling ELF shared libraries])
310 E2_PKG_CONFIG_STATIC=
312 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
315 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
321 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
322 AC_MSG_RESULT([Enabling ELF shared libraries])
325 MAKEFILE_ELF=/dev/null
327 AC_MSG_RESULT([Disabling ELF shared libraries by default])
330 AC_SUBST_FILE(MAKEFILE_ELF)
332 dnl handle --enable-bsd-shlibs
334 AC_ARG_ENABLE([bsd-shlibs],
335 [ --enable-bsd-shlibs select BSD shared libraries],
336 if test "$enableval" = "no"
339 MAKEFILE_BSDLIB=/dev/null
340 AC_MSG_RESULT([Disabling BSD shared libraries])
342 E2_PKG_CONFIG_STATIC=
344 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
348 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
352 AC_MSG_RESULT([Enabling BSD shared libraries])
355 MAKEFILE_BSDLIB=/dev/null
357 AC_MSG_RESULT([Disabling BSD shared libraries by default])
360 AC_SUBST_FILE(MAKEFILE_BSDLIB)
362 dnl handle --enable-profile
364 AC_ARG_ENABLE([profile],
365 [ --enable-profile build profiling libraries],
366 if test "$enableval" = "no"
369 MAKEFILE_PROFILE=/dev/null
370 AC_MSG_RESULT([Disabling profiling libraries])
373 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
374 PROFILED_LIB_EXT=_p.a
375 AC_MSG_RESULT([Building profiling libraries])
379 MAKEFILE_PROFILE=/dev/null
380 AC_MSG_RESULT([Disabling profiling libraries by default])
382 AC_SUBST(PROFILE_CMT)
383 AC_SUBST_FILE(MAKEFILE_PROFILE)
385 dnl handle --enable-gcov
387 AC_ARG_ENABLE([gcov],
388 [ --enable-gcov build for coverage testing using gcov],
389 if test "$enableval" = "yes"
391 CFLAGS="-g -fprofile-arcs -ftest-coverage"
392 LDFLAGS="-fprofile-arcs -ftest-coverage"
393 AC_MSG_RESULT([Enabling gcov support])
398 dnl Substitute library extensions
401 AC_SUBST(STATIC_LIB_EXT)
402 AC_SUBST(PROFILED_LIB_EXT)
403 AC_SUBST(LDFLAG_DYNAMIC)
404 AC_SUBST(PRIVATE_LIBS_CMT)
406 dnl handle --enable-jbd-debug
408 AC_ARG_ENABLE([jbd-debug],
409 [ --enable-jbd-debug enable journal debugging],
410 if test "$enableval" = "no"
412 AC_MSG_RESULT([Disabling journal debugging])
414 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
415 [Define to 1 if debugging ext3/4 journal code])
416 AC_MSG_RESULT([Enabling journal debugging])
419 AC_MSG_RESULT([Disabling journal debugging by default])
422 dnl handle --enable-blkid-debug
424 AC_ARG_ENABLE([blkid-debug],
425 [ --enable-blkid-debug enable blkid debugging],
426 if test "$enableval" = "no"
428 AC_MSG_RESULT([Disabling blkid debugging])
430 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
431 [Define to 1 if debugging the blkid library])
432 AC_MSG_RESULT([Enabling blkid debugging])
435 AC_MSG_RESULT([Disabling blkid debugging by default])
438 dnl handle --enable-testio-debug
440 AC_ARG_ENABLE([testio-debug],
441 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
442 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
443 [Define to 1 if the testio I/O manager should be enabled])
444 if test "$enableval" = "no"
446 AC_MSG_RESULT([Disabling testio debugging])
450 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
451 AC_MSG_RESULT([Enabling testio debugging])
454 AC_MSG_RESULT([Enabling testio debugging by default])
455 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
458 AC_SUBST(TEST_IO_CMT)
460 dnl handle --disable-libuuid
470 AC_ARG_ENABLE([libuuid],
471 [ --disable-libuuid do not build private uuid library],
472 if test "$enableval" = "no"
474 if test -z "$PKG_CONFIG"; then
475 AC_MSG_ERROR([pkg-config not installed; please install it.])
478 AC_CHECK_LIB(uuid, uuid_generate,
479 [LIBUUID=`$PKG_CONFIG --libs uuid`;
480 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
481 [AC_MSG_ERROR([external uuid library not found])])
483 AC_MSG_RESULT([Disabling private uuid library])
485 LIBUUID='$(LIB)/libuuid'$LIB_EXT
487 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
488 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
489 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
490 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
491 AC_MSG_RESULT([Enabling private uuid library])
494 LIBUUID='$(LIB)/libuuid'$LIB_EXT
496 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
497 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
498 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
499 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
500 AC_MSG_RESULT([Enabling private uuid library by default])
504 AC_SUBST(STATIC_LIBUUID)
505 AC_SUBST(DEPSTATIC_LIBUUID)
506 AC_SUBST(PROFILED_LIBUUID)
507 AC_SUBST(DEPPROFILED_LIBUUID)
510 dnl handle --disable-libblkid
518 DEPPROFILED_LIBBLKID=
520 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
521 AC_ARG_ENABLE([libblkid],
522 [ --disable-libblkid do not build private blkid library],
523 if test "$enableval" = "no"
525 if test -z "$PKG_CONFIG"; then
526 AC_MSG_ERROR([pkg-config not installed; please install it.])
529 AC_CHECK_LIB(blkid, blkid_get_cache,
530 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
531 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
532 [AC_MSG_ERROR([external blkid library not found])], -luuid)
534 AC_MSG_RESULT([Disabling private blkid library])
536 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
537 DEPLIBBLKID=$LIBBLKID
538 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
539 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
540 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
541 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
542 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
543 AC_MSG_RESULT([Enabling private blkid library])
546 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
547 DEPLIBBLKID=$LIBBLKID
548 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
549 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
550 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
551 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
552 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
553 AC_MSG_RESULT([Enabling private blkid library by default])
556 AC_SUBST(DEPLIBBLKID)
557 AC_SUBST(STATIC_LIBBLKID)
558 AC_SUBST(DEPSTATIC_LIBBLKID)
559 AC_SUBST(PROFILED_LIBBLKID)
560 AC_SUBST(DEPPROFILED_LIBBLKID)
563 dnl handle --enable-quota
565 QUOTA_MAN_COMMENT='.\"'
567 AC_SUBST(QUOTA_MAN_COMMENT)
569 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
570 AC_ARG_ENABLE([quota],
571 [ --enable-quota enable quota support],
572 if test "$enableval" = "no"
575 AC_MSG_RESULT([Disabling quota support])
578 AC_DEFINE(CONFIG_QUOTA, 1)
579 AC_MSG_RESULT([Enabling quota support])
581 AC_SUBST(QUOTA_MAN_COMMENT)
585 AC_MSG_RESULT([Disabling quota support by default])
588 dnl Define stuff expected for quota library
590 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
591 DEPLIBQUOTA=$LIBQUOTA
592 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
593 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
594 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
595 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
597 AC_SUBST(DEPLIBQUOTA)
598 AC_SUBST(STATIC_LIBQUOTA)
599 AC_SUBST(DEPSTATIC_LIBQUOTA)
600 AC_SUBST(PROFILED_LIBQUOTA)
601 AC_SUBST(DEPPROFILED_LIBQUOTA)
604 dnl handle --disable-backtrace
606 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
607 AC_ARG_ENABLE([backtrace],
608 [ --disable-backtrace disable use backtrace],
609 if test "$enableval" = "no"
611 AC_MSG_RESULT([Disabling use of backtrace])
612 AC_DEFINE(DISABLE_BACKTRACE, 1)
614 AC_MSG_RESULT([Enabling use of backtrace])
617 AC_MSG_RESULT([Enabling use of backtrace by default])
620 dnl handle --enable-debugfs
622 AC_ARG_ENABLE([debugfs],
623 [ --disable-debugfs disable support of debugfs program],
624 if test "$enableval" = "no"
626 AC_MSG_RESULT([Disabling debugfs support])
630 AC_MSG_RESULT([Enabling debugfs support])
633 AC_MSG_RESULT([Enabling debugfs support by default])
636 AC_SUBST(DEBUGFS_CMT)
638 dnl handle --enable-imager
640 AC_ARG_ENABLE([imager],
641 [ --disable-imager disable support of e2image program],
642 if test "$enableval" = "no"
644 AC_MSG_RESULT([Disabling e2image support])
648 AC_MSG_RESULT([Enabling e2image support])
651 AC_MSG_RESULT([Enabling e2image support by default])
656 dnl handle --enable-resizer
658 AC_ARG_ENABLE([resizer],
659 [ --disable-resizer disable support of e2resize program],
660 if test "$enableval" = "no"
662 AC_MSG_RESULT([Disabling e2resize support])
666 AC_MSG_RESULT([Enabling e2resize support])
669 AC_MSG_RESULT([Enabling e2resize support by default])
672 AC_SUBST(RESIZER_CMT)
674 dnl handle --enable-defrag
676 AC_ARG_ENABLE([defrag],
677 [ --disable-defrag disable support of e4defrag program],
678 if test "$enableval" = "no"
680 AC_MSG_RESULT([Disabling e4defrag support])
684 AC_MSG_RESULT([Enabling e4defrag support])
687 if test -z "$WITH_DIET_LIBC"
689 AC_MSG_RESULT([Enabling e4defrag support by default])
692 AC_MSG_RESULT([Disabling e4defrag support by default])
698 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
700 AC_ARG_ENABLE([fsck],
701 [ --enable-fsck build fsck wrapper program],
702 [if test "$enableval" = "no"
704 FSCK_PROG='' FSCK_MAN=''
705 AC_MSG_RESULT([Not building fsck wrapper])
707 FSCK_PROG=fsck FSCK_MAN=fsck.8
708 AC_MSG_RESULT([Building fsck wrapper])
713 FSCK_PROG='' FSCK_MAN=''
714 AC_MSG_RESULT([Not building fsck wrapper by default])
717 FSCK_PROG=fsck FSCK_MAN=fsck.8
718 AC_MSG_RESULT([Building fsck wrapper by default])
724 dnl See whether to install the `e2initrd-helper' program
726 AC_ARG_ENABLE([e2initrd-helper],
727 [ --enable-e2initrd-helper build e2initrd-helper program],
728 [if test "$enableval" = "no"
730 E2INITRD_PROG='' E2INITRD_MAN=''
731 AC_MSG_RESULT([Not building e2initrd helper])
733 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
734 AC_MSG_RESULT([Building e2initrd helper])
737 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
738 AC_MSG_RESULT([Building e2initrd helper by default])
740 AC_SUBST(E2INITRD_PROG)
741 AC_SUBST(E2INITRD_MAN)
746 [ --disable-tls disable use of thread local support],
747 [if test "$enableval" = "no"
750 AC_MSG_RESULT([Disabling thread local support])
753 AC_MSG_RESULT([Enabling thread local support])
756 if test -n "$WITH_DIET_LIBC"
759 AC_MSG_RESULT([Diet libc does not support thread local support])
762 AC_MSG_RESULT([Try using thread local support by default])
765 if test "$try_tls" = "yes"
772 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
773 AC_ARG_ENABLE([uuidd],
774 [ --disable-uuidd disable building the uuid daemon],
775 [if test "$enableval" = "no"
777 AC_MSG_RESULT([Not building uuidd])
780 AC_DEFINE(USE_UUIDD, 1)
782 AC_MSG_RESULT([Building uuidd])
785 AC_DEFINE(USE_UUIDD, 1)
787 AC_MSG_RESULT([Building uuidd by default])
791 dnl handle --disable-mmp
793 AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
795 [ --disable-mmp disable support mmp, Multi Mount Protection],
796 if test "$enableval" = "no"
798 AC_MSG_RESULT([Disabling mmp support])
800 AC_MSG_RESULT([Enabling mmp support])
801 AC_DEFINE(CONFIG_MMP, 1)
804 AC_MSG_RESULT([Enabling mmp support by default])
805 AC_DEFINE(CONFIG_MMP, 1)
808 dnl handle --disable-bmap-stats
810 AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
811 AC_ARG_ENABLE([bmap-stats],
812 [ --disable-bmap-stats disable collection of bitmap stats.],
813 if test "$enableval" = "no"
815 AC_MSG_RESULT([Disabling bitmap statistics support])
817 AC_MSG_RESULT([Enabling bitmap statistics support])
818 AC_DEFINE(ENABLE_BMAP_STATS, 1)
821 AC_MSG_RESULT([Enabling bitmap statistics support by default])
822 AC_DEFINE(ENABLE_BMAP_STATS, 1)
825 dnl handle --enable-bmap-stats-ops
827 AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
828 AC_ARG_ENABLE([bmap-stats-ops],
829 [ --enable-bmap-stats-ops enable collection of additional bitmap stats],
830 if test "$enableval" = "no"
832 AC_MSG_RESULT([Disabling additional bitmap statistics])
834 dnl There has to be a better way!
835 AS_IF([test "x${enable_bmap_stats}" = "xno"],
836 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
838 AC_MSG_RESULT([Enabling additional bitmap statistics])
839 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
842 AC_MSG_RESULT([Disabling additional bitmap statistics by default])
847 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
848 AC_SUBST_FILE(MAKEFILE_LIBRARY)
850 dnl Add internationalization support, using gettext.
852 GETTEXT_PACKAGE=e2fsprogs
854 VERSION="$E2FSPROGS_VERSION"
856 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
857 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
858 AC_SUBST(GETTEXT_PACKAGE)
864 dnl End of configuration options
866 AC_SUBST(BINARY_TYPE)
869 AC_PATH_PROG(LN, ln, ln)
871 AC_PATH_PROG(MV, mv, mv)
872 AC_PATH_PROG(CP, cp, cp)
873 AC_PATH_PROG(RM, rm, rm)
874 AC_PATH_PROG(CHMOD, chmod, :)
877 AC_PATH_PROG(SED, sed, sed)
878 AC_PATH_PROG(PERL, perl, perl)
879 AC_PATH_PROG(LDCONFIG, ldconfig, :)
880 AC_CHECK_TOOL(AR, ar, ar)
881 AC_CHECK_TOOL(RANLIB, ranlib, :)
882 AC_CHECK_TOOL(STRIP, strip, :)
883 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
884 if test "_$MAKEINFO" = "_"; then
885 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
890 *** Makeinfo is missing. Info documentation will not be built.])
898 # See if we need a separate native compiler.
899 if test $cross_compiling = no; then
903 AC_CHECK_PROGS(BUILD_CC, gcc cc)
905 AC_CHECK_HEADERS(m4_flatten([
950 AC_CHECK_HEADERS(net/if.h,,,
953 #include <sys/types.h>
956 #include <sys/socket.h>
960 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
961 dnl is not decleared.
962 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
963 [Define to 1 if dirent has d_reclen])],,
964 [#include <dirent.h>])
965 AC_CHECK_MEMBERS([struct stat.st_atim])
966 dnl Check to see if ssize_t was declared
967 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
968 [Define to 1 if ssize_t declared])],,
969 [#include <sys/types.h>])
971 dnl Check to see if llseek() is declared in unistd.h. On some libc's
972 dnl it is, and on others it isn't..... Thank you glibc developers....
974 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
975 [Define to 1 if llseek declared in unistd.h])],,
976 [#include <unistd.h>])
978 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
979 dnl are so convoluted that I can't tell whether it will always be defined,
980 dnl and if it isn't defined while lseek64 is defined in the library,
981 dnl disaster will strike.
983 dnl Warning! Use of --enable-gcc-wall may throw off this test.
986 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
987 [Define to 1 if lseek64 declared in unistd.h])],,
988 [#define _LARGEFILE_SOURCE
989 #define _LARGEFILE64_SOURCE
990 #include <unistd.h>])
994 AC_CHECK_SIZEOF(short)
996 AC_CHECK_SIZEOF(long)
997 AC_CHECK_SIZEOF(long long)
998 AC_CHECK_SIZEOF(off_t)
999 SIZEOF_SHORT=$ac_cv_sizeof_short
1000 SIZEOF_INT=$ac_cv_sizeof_int
1001 SIZEOF_LONG=$ac_cv_sizeof_long
1002 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
1003 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
1004 AC_SUBST(SIZEOF_SHORT)
1005 AC_SUBST(SIZEOF_INT)
1006 AC_SUBST(SIZEOF_LONG)
1007 AC_SUBST(SIZEOF_LONG_LONG)
1008 AC_SUBST(SIZEOF_OFF_T)
1010 if test $cross_compiling = no; then
1011 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1013 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1015 ASM_TYPES_HEADER=./asm_types.h
1016 AC_SUBST_FILE(ASM_TYPES_HEADER)
1018 dnl Save the configuration #defines needed for the public ext2fs.h
1021 echo "/* These defines are needed for the public ext2fs.h header file */" \
1023 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1024 uniq tmp_config.$$ >> public_config.h
1026 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1028 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1029 uniq tmp_config.$$ >> public_config.h
1031 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1034 PUBLIC_CONFIG_HEADER=./public_config.h
1035 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1037 dnl See if we have inttypes.h and if intptr_t is defined
1039 AC_CHECK_HEADERS([inttypes.h])
1040 AC_CHECK_TYPES(intptr_t)
1042 dnl See if struct stat has a st_flags field, in which case we can get file
1043 dnl flags somewhat portably. Also check for the analogous setter, chflags().
1045 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1046 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1047 AC_TRY_COMPILE([#include <sys/stat.h>],
1048 [struct stat stat; stat.st_flags = 0;],
1049 [e2fsprogs_cv_struct_st_flags=yes],
1050 [e2fsprogs_cv_struct_st_flags=no]))
1051 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1052 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1053 AC_MSG_CHECKING(whether st_flags field is useful)
1054 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1055 AC_TRY_COMPILE([#include <sys/stat.h>],
1056 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1057 [e2fsprogs_cv_struct_st_flags_immut=yes],
1058 [e2fsprogs_cv_struct_st_flags_immut=no]))
1059 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1060 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1061 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1062 [Define to 1 if struct stat has st_flags])
1066 dnl Check for the presence of SA_LEN
1068 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1069 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1070 [Define to 1 if if struct sockaddr contains sa_len]),,
1071 [#include <sys/types.h>
1072 #include <sys/socket.h>])
1074 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1075 dnl the system-provided blkid library
1077 if test -n "$BLKID_CMT"; then
1078 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1081 AC_CHECK_FUNCS(m4_flatten([
1084 blkid_probe_get_topology
1085 blkid_probe_enable_partitions
1137 dnl Check to see if -lsocket is required (solaris) to make something
1138 dnl that uses socket() to compile; this is needed for the UUID library
1141 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1142 AC_SUBST(SOCKET_LIB)
1144 dnl See if optreset exists
1146 AC_MSG_CHECKING(for optreset)
1147 AC_CACHE_VAL(ac_cv_have_optreset,
1148 [AC_EGREP_HEADER(optreset, unistd.h,
1149 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1150 AC_MSG_RESULT($ac_cv_have_optreset)
1151 if test $ac_cv_have_optreset = yes; then
1152 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1155 dnl Test for sem_init, and which library it might require:
1157 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1159 AC_CHECK_FUNC(sem_init, ,
1160 AC_CHECK_LIB(pthread, sem_init,
1161 AC_DEFINE(HAVE_SEM_INIT, 1)
1162 SEM_INIT_LIB=-lpthread,
1163 AC_CHECK_LIB(rt, sem_init,
1164 AC_DEFINE(HAVE_SEM_INIT, 1)
1166 AC_CHECK_LIB(posix4, sem_init,
1167 AC_DEFINE(HAVE_SEM_INIT, 1)
1168 SEM_INIT_LIB=-lposix4))))dnl
1169 AC_SUBST(SEM_INIT_LIB)
1171 dnl Check for unified diff
1173 AC_MSG_CHECKING(for unified diff option)
1174 if diff -u $0 $0 > /dev/null 2>&1 ; then
1179 AC_MSG_RESULT($UNI_DIFF_OPTS)
1180 AC_SUBST(UNI_DIFF_OPTS)
1182 dnl We use the EXT2 ioctls only under Linux
1186 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1190 dnl OS-specific uncomment control
1205 AC_SUBST(CYGWIN_CMT)
1208 dnl Linux and Hurd places root files in the / by default
1211 linux* | gnu* | k*bsd*-gnu)
1212 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1214 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1219 dnl On Linux/hurd, force the prefix to be /usr
1222 linux* | gnu* | k*bsd*-gnu)
1223 if test "$prefix" = NONE ; then
1225 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1226 if test "$mandir" = '${prefix}/man' ; then
1227 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1228 mandir=/usr/share/man
1233 if test "$root_prefix" = NONE ; then
1234 if test "$prefix" = NONE ; then
1235 root_prefix="$ac_default_prefix"
1237 root_prefix="$prefix"
1240 root_sbindir=$sbindir
1242 root_sysconfdir=$sysconfdir
1244 root_bindir='${root_prefix}/bin'
1245 root_sbindir='${root_prefix}/sbin'
1246 root_libdir='${root_prefix}/lib'
1247 root_sysconfdir='${root_prefix}/etc'
1249 if test "$bindir" != '${exec_prefix}/bin'; then
1251 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1253 if test "$sbindir" != '${exec_prefix}/sbin'; then
1254 root_sbindir=$sbindir
1255 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1257 if test "$libdir" != '${exec_prefix}/lib'; then
1259 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1261 if test "$sysconfdir" != '${prefix}/etc'; then
1262 root_sysconfdir=$sysconfdir
1263 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1265 AC_SUBST(root_prefix)
1266 AC_SUBST(root_bindir)
1267 AC_SUBST(root_sbindir)
1268 AC_SUBST(root_libdir)
1269 AC_SUBST(root_sysconfdir)
1271 dnl Allow specification of the multiarch arch
1273 AC_ARG_WITH([multiarch],
1274 [ --with-multiarch=ARCH specify the multiarch triplet],
1275 if test "$withval" = "lib64"; then
1279 libdir=$libdir/$withval
1280 root_libdir=$root_libdir/$withval
1284 dnl See if -static works. This could fail if the linker does not
1285 dnl support -static, or if required external libraries are not available
1288 AC_MSG_CHECKING([whether we can link with -static])
1289 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1290 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1291 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1292 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1293 LDFLAGS=$SAVE_LDFLAGS])
1295 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1296 dnl This is caused by the socket library requiring the nsl library, which
1297 dnl requires the -dl library, which only works for dynamically linked
1298 dnl programs. It basically means you can't have statically linked programs
1299 dnl which use the network under Solaris.
1303 ac_cv_e2fsprogs_use_static=no
1306 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1308 if test $ac_cv_e2fsprogs_use_static = yes; then
1309 LDFLAG_STATIC=-static
1311 AC_SUBST(LDFLAG_STATIC)
1313 dnl Work around mysterious Darwin / GNU libintl problem
1314 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1315 dnl Apple hacked gcc somehow?)
1319 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1320 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1321 [Define to 1 if Apple Darwin libintl workaround is needed])
1325 dnl Make the ss and et directories work correctly.
1327 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1328 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1332 dnl Only try to run the test suite if we're not cross compiling.
1334 if test "$cross_compiling" = yes ; then
1339 AC_SUBST(DO_TEST_SUITE)
1341 dnl Only include the intl include files if we're building with them
1343 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1344 if test -n "$CPPFLAGS" ; then
1345 INCLUDES="$INCLUDES $CPPFLAGS"
1347 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1348 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1350 if test -n "$WITH_DIET_LIBC" ; then
1351 INCLUDES="$INCLUDES -D_REENTRANT"
1358 if test $cross_compiling = no; then
1359 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1360 BUILD_LDFLAGS="$LDFLAGS"
1365 AC_SUBST(BUILD_CFLAGS)
1366 AC_SUBST(BUILD_LDFLAGS)
1368 dnl Make our output files, being sure that we create the some miscellaneous
1371 test -d lib || mkdir lib
1372 test -d include || mkdir include
1373 test -d include/linux || mkdir include/linux
1374 test -d include/asm || mkdir include/asm
1375 for i in MCONFIG Makefile e2fsprogs.spec \
1376 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1377 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1378 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1379 lib/uuid/Makefile lib/uuid/uuid_types.h \
1380 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1381 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1382 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1383 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1384 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1385 resize/Makefile doc/Makefile intl/Makefile \
1386 intl/libgnuintl.h po/Makefile.in ; do
1387 if test -d `dirname ${srcdir}/$i` ; then
1388 outlist="$outlist $i"
1392 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi