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-htree
258 AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
259 AC_ARG_ENABLE([htree],
260 [ --enable-htree enable EXPERIMENTAL htree directory support],
261 if test "$enableval" = "no"
264 AC_MSG_RESULT([Disabling htree directory support])
267 AC_DEFINE(ENABLE_HTREE, 1)
268 AC_MSG_RESULT([Enabling htree directory support])
272 AC_DEFINE(ENABLE_HTREE, 1)
273 AC_MSG_RESULT([Enabling htree directory support by default])
277 dnl This needs to be before all of the --enable-*-shlibs options
279 E2_PKG_CONFIG_STATIC=--static
283 dnl handle --enable-elf-shlibs
285 AC_ARG_ENABLE([elf-shlibs],
286 [ --enable-elf-shlibs select ELF shared libraries],
287 if test "$enableval" = "no"
290 MAKEFILE_ELF=/dev/null
291 AC_MSG_RESULT([Disabling ELF shared libraries])
293 E2_PKG_CONFIG_STATIC=
295 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
298 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
304 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
305 AC_MSG_RESULT([Enabling ELF shared libraries])
308 MAKEFILE_ELF=/dev/null
310 AC_MSG_RESULT([Disabling ELF shared libraries by default])
313 AC_SUBST_FILE(MAKEFILE_ELF)
315 dnl handle --enable-bsd-shlibs
317 AC_ARG_ENABLE([bsd-shlibs],
318 [ --enable-bsd-shlibs select BSD shared libraries],
319 if test "$enableval" = "no"
322 MAKEFILE_BSDLIB=/dev/null
323 AC_MSG_RESULT([Disabling BSD shared libraries])
325 E2_PKG_CONFIG_STATIC=
327 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
331 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
335 AC_MSG_RESULT([Enabling BSD shared libraries])
338 MAKEFILE_BSDLIB=/dev/null
340 AC_MSG_RESULT([Disabling BSD shared libraries by default])
343 AC_SUBST_FILE(MAKEFILE_BSDLIB)
345 dnl handle --enable-profile
347 AC_ARG_ENABLE([profile],
348 [ --enable-profile build profiling libraries],
349 if test "$enableval" = "no"
352 MAKEFILE_PROFILE=/dev/null
353 AC_MSG_RESULT([Disabling profiling libraries])
356 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
357 PROFILED_LIB_EXT=_p.a
358 AC_MSG_RESULT([Building profiling libraries])
362 MAKEFILE_PROFILE=/dev/null
363 AC_MSG_RESULT([Disabling profiling libraries by default])
365 AC_SUBST(PROFILE_CMT)
366 AC_SUBST_FILE(MAKEFILE_PROFILE)
368 dnl handle --enable-gcov
370 AC_ARG_ENABLE([gcov],
371 [ --enable-gcov build for coverage testing using gcov],
372 if test "$enableval" = "yes"
374 CFLAGS="-g -fprofile-arcs -ftest-coverage"
375 LDFLAGS="-fprofile-arcs -ftest-coverage"
376 AC_MSG_RESULT([Enabling gcov support])
381 dnl Substitute library extensions
384 AC_SUBST(STATIC_LIB_EXT)
385 AC_SUBST(PROFILED_LIB_EXT)
386 AC_SUBST(LDFLAG_DYNAMIC)
387 AC_SUBST(PRIVATE_LIBS_CMT)
389 dnl handle --enable-jbd-debug
391 AC_ARG_ENABLE([jbd-debug],
392 [ --enable-jbd-debug enable journal debugging],
393 if test "$enableval" = "no"
395 AC_MSG_RESULT([Disabling journal debugging])
397 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
398 [Define to 1 if debugging ext3/4 journal code])
399 AC_MSG_RESULT([Enabling journal debugging])
402 AC_MSG_RESULT([Disabling journal debugging by default])
405 dnl handle --enable-blkid-debug
407 AC_ARG_ENABLE([blkid-debug],
408 [ --enable-blkid-debug enable blkid debugging],
409 if test "$enableval" = "no"
411 AC_MSG_RESULT([Disabling blkid debugging])
413 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
414 [Define to 1 if debugging the blkid library])
415 AC_MSG_RESULT([Enabling blkid debugging])
418 AC_MSG_RESULT([Disabling blkid debugging by default])
421 dnl handle --enable-testio-debug
423 AC_ARG_ENABLE([testio-debug],
424 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
425 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
426 [Define to 1 if the testio I/O manager should be enabled])
427 if test "$enableval" = "no"
429 AC_MSG_RESULT([Disabling testio debugging])
433 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
434 AC_MSG_RESULT([Enabling testio debugging])
437 AC_MSG_RESULT([Enabling testio debugging by default])
438 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
441 AC_SUBST(TEST_IO_CMT)
443 dnl handle --disable-libuuid
453 AC_ARG_ENABLE([libuuid],
454 [ --disable-libuuid do not build private uuid library],
455 if test "$enableval" = "no"
457 if test -z "$PKG_CONFIG"; then
458 AC_MSG_ERROR([pkg-config not installed; please install it.])
461 AC_CHECK_LIB(uuid, uuid_generate,
462 [LIBUUID=`$PKG_CONFIG --libs uuid`;
463 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
464 [AC_MSG_ERROR([external uuid library not found])])
465 PROFILED_LIBUUID=$LIBUUID
467 AC_MSG_RESULT([Disabling private uuid library])
469 LIBUUID='$(LIB)/libuuid'$LIB_EXT
471 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
472 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
473 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
474 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
475 AC_MSG_RESULT([Enabling private uuid library])
478 LIBUUID='$(LIB)/libuuid'$LIB_EXT
480 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
481 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
482 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
483 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
484 AC_MSG_RESULT([Enabling private uuid library by default])
488 AC_SUBST(STATIC_LIBUUID)
489 AC_SUBST(DEPSTATIC_LIBUUID)
490 AC_SUBST(PROFILED_LIBUUID)
491 AC_SUBST(DEPPROFILED_LIBUUID)
494 dnl handle --disable-libblkid
502 DEPPROFILED_LIBBLKID=
504 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
505 AC_ARG_ENABLE([libblkid],
506 [ --disable-libblkid do not build private blkid library],
507 if test "$enableval" = "no"
509 if test -z "$PKG_CONFIG"; then
510 AC_MSG_ERROR([pkg-config not installed; please install it.])
513 AC_CHECK_LIB(blkid, blkid_get_cache,
514 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
515 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
516 [AC_MSG_ERROR([external blkid library not found])], -luuid)
518 PROFILED_LIBBLKID=$LIBBLKID
519 AC_MSG_RESULT([Disabling private blkid library])
521 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
522 DEPLIBBLKID=$LIBBLKID
523 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
524 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
525 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
526 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
527 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
528 AC_MSG_RESULT([Enabling private blkid library])
531 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
532 DEPLIBBLKID=$LIBBLKID
533 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
534 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
535 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
536 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
537 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
538 AC_MSG_RESULT([Enabling private blkid library by default])
541 AC_SUBST(DEPLIBBLKID)
542 AC_SUBST(STATIC_LIBBLKID)
543 AC_SUBST(DEPSTATIC_LIBBLKID)
544 AC_SUBST(PROFILED_LIBBLKID)
545 AC_SUBST(DEPPROFILED_LIBBLKID)
548 dnl handle --enable-quota
550 QUOTA_MAN_COMMENT='.\"'
552 AC_SUBST(QUOTA_MAN_COMMENT)
554 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
555 AC_ARG_ENABLE([quota],
556 [ --enable-quota enable quota support],
557 if test "$enableval" = "no"
560 AC_MSG_RESULT([Disabling quota support])
563 AC_DEFINE(CONFIG_QUOTA, 1)
564 AC_MSG_RESULT([Enabling quota support])
566 AC_SUBST(QUOTA_MAN_COMMENT)
570 AC_MSG_RESULT([Disabling quota support by default])
573 dnl Define stuff expected for quota library
575 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
576 DEPLIBQUOTA=$LIBQUOTA
577 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
578 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
579 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
580 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
582 AC_SUBST(DEPLIBQUOTA)
583 AC_SUBST(STATIC_LIBQUOTA)
584 AC_SUBST(DEPSTATIC_LIBQUOTA)
585 AC_SUBST(PROFILED_LIBQUOTA)
586 AC_SUBST(DEPPROFILED_LIBQUOTA)
589 dnl handle --disable-backtrace
591 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
592 AC_ARG_ENABLE([backtrace],
593 [ --disable-backtrace disable use backtrace],
594 if test "$enableval" = "no"
596 AC_MSG_RESULT([Disabling use of backtrace])
597 AC_DEFINE(DISABLE_BACKTRACE, 1)
599 AC_MSG_RESULT([Enabling use of backtrace])
602 AC_MSG_RESULT([Enabling use of backtrace by default])
605 dnl handle --enable-debugfs
607 AC_ARG_ENABLE([debugfs],
608 [ --disable-debugfs disable support of debugfs program],
609 if test "$enableval" = "no"
611 AC_MSG_RESULT([Disabling debugfs support])
615 AC_MSG_RESULT([Enabling debugfs support])
618 AC_MSG_RESULT([Enabling debugfs support by default])
621 AC_SUBST(DEBUGFS_CMT)
623 dnl handle --enable-imager
625 AC_ARG_ENABLE([imager],
626 [ --disable-imager disable support of e2image program],
627 if test "$enableval" = "no"
629 AC_MSG_RESULT([Disabling e2image support])
633 AC_MSG_RESULT([Enabling e2image support])
636 AC_MSG_RESULT([Enabling e2image support by default])
641 dnl handle --enable-resizer
643 AC_ARG_ENABLE([resizer],
644 [ --disable-resizer disable support of e2resize program],
645 if test "$enableval" = "no"
647 AC_MSG_RESULT([Disabling e2resize support])
651 AC_MSG_RESULT([Enabling e2resize support])
654 AC_MSG_RESULT([Enabling e2resize support by default])
657 AC_SUBST(RESIZER_CMT)
659 dnl handle --enable-defrag
661 AC_ARG_ENABLE([defrag],
662 [ --disable-defrag disable support of e4defrag program],
663 if test "$enableval" = "no"
665 AC_MSG_RESULT([Disabling e4defrag support])
669 AC_MSG_RESULT([Enabling e4defrag support])
672 if test -z "$WITH_DIET_LIBC"
674 AC_MSG_RESULT([Enabling e4defrag support by default])
677 AC_MSG_RESULT([Disabling e4defrag support by default])
683 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
685 AC_ARG_ENABLE([fsck],
686 [ --enable-fsck build fsck wrapper program],
687 [if test "$enableval" = "no"
689 FSCK_PROG='' FSCK_MAN=''
690 AC_MSG_RESULT([Not building fsck wrapper])
692 FSCK_PROG=fsck FSCK_MAN=fsck.8
693 AC_MSG_RESULT([Building fsck wrapper])
698 FSCK_PROG='' FSCK_MAN=''
699 AC_MSG_RESULT([Not building fsck wrapper by default])
702 FSCK_PROG=fsck FSCK_MAN=fsck.8
703 AC_MSG_RESULT([Building fsck wrapper by default])
709 dnl See whether to install the `e2initrd-helper' program
711 AC_ARG_ENABLE([e2initrd-helper],
712 [ --enable-e2initrd-helper build e2initrd-helper program],
713 [if test "$enableval" = "no"
715 E2INITRD_PROG='' E2INITRD_MAN=''
716 AC_MSG_RESULT([Not building e2initrd helper])
718 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
719 AC_MSG_RESULT([Building e2initrd helper])
722 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
723 AC_MSG_RESULT([Building e2initrd helper by default])
725 AC_SUBST(E2INITRD_PROG)
726 AC_SUBST(E2INITRD_MAN)
731 [ --disable-tls disable use of thread local support],
732 [if test "$enableval" = "no"
735 AC_MSG_RESULT([Disabling thread local support])
738 AC_MSG_RESULT([Enabling thread local support])
741 if test -n "$WITH_DIET_LIBC"
744 AC_MSG_RESULT([Diet libc does not support thread local support])
747 AC_MSG_RESULT([Try using thread local support by default])
750 if test "$try_tls" = "yes"
757 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
758 AC_ARG_ENABLE([uuidd],
759 [ --disable-uuidd disable building the uuid daemon],
760 [if test "$enableval" = "no"
762 AC_MSG_RESULT([Not building uuidd])
765 AC_DEFINE(USE_UUIDD, 1)
767 AC_MSG_RESULT([Building uuidd])
770 AC_DEFINE(USE_UUIDD, 1)
771 if test -z "$UUID_CMT"
774 AC_MSG_RESULT([Building uuidd by default])
777 AC_MSG_RESULT([Disabling uuidd by default])
782 dnl handle --disable-mmp
784 AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
786 [ --disable-mmp disable support mmp, Multi Mount Protection],
787 if test "$enableval" = "no"
789 AC_MSG_RESULT([Disabling mmp support])
791 AC_MSG_RESULT([Enabling mmp support])
792 AC_DEFINE(CONFIG_MMP, 1)
795 AC_MSG_RESULT([Enabling mmp support by default])
796 AC_DEFINE(CONFIG_MMP, 1)
799 dnl handle --disable-bmap-stats
801 AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
802 AC_ARG_ENABLE([bmap-stats],
803 [ --disable-bmap-stats disable collection of bitmap stats.],
804 if test "$enableval" = "no"
806 AC_MSG_RESULT([Disabling bitmap statistics support])
808 AC_MSG_RESULT([Enabling bitmap statistics support])
809 AC_DEFINE(ENABLE_BMAP_STATS, 1)
812 AC_MSG_RESULT([Enabling bitmap statistics support by default])
813 AC_DEFINE(ENABLE_BMAP_STATS, 1)
816 dnl handle --enable-bmap-stats-ops
818 AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
819 AC_ARG_ENABLE([bmap-stats-ops],
820 [ --enable-bmap-stats-ops enable collection of additional bitmap stats],
821 if test "$enableval" = "no"
823 AC_MSG_RESULT([Disabling additional bitmap statistics])
825 dnl There has to be a better way!
826 AS_IF([test "x${enable_bmap_stats}" = "xno"],
827 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
829 AC_MSG_RESULT([Enabling additional bitmap statistics])
830 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
833 AC_MSG_RESULT([Disabling additional bitmap statistics by default])
838 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
839 AC_SUBST_FILE(MAKEFILE_LIBRARY)
841 dnl Add internationalization support, using gettext.
843 GETTEXT_PACKAGE=e2fsprogs
845 VERSION="$E2FSPROGS_VERSION"
847 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
848 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
849 AC_SUBST(GETTEXT_PACKAGE)
855 dnl End of configuration options
857 AC_SUBST(BINARY_TYPE)
860 AC_PATH_PROG(LN, ln, ln)
862 AC_PATH_PROG(MV, mv, mv)
863 AC_PATH_PROG(CP, cp, cp)
864 AC_PATH_PROG(RM, rm, rm)
865 AC_PATH_PROG(CHMOD, chmod, :)
868 AC_PATH_PROG(SED, sed, sed)
869 AC_PATH_PROG(PERL, perl, perl)
870 AC_PATH_PROG(LDCONFIG, ldconfig, :)
871 AC_CHECK_TOOL(AR, ar, ar)
872 AC_CHECK_TOOL(RANLIB, ranlib, :)
873 AC_CHECK_TOOL(STRIP, strip, :)
874 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
875 if test "_$MAKEINFO" = "_"; then
876 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
881 *** Makeinfo is missing. Info documentation will not be built.])
889 # See if we need a separate native compiler.
890 if test $cross_compiling = no; then
894 AC_CHECK_PROGS(BUILD_CC, gcc cc)
896 AC_CHECK_HEADERS(m4_flatten([
942 AC_CHECK_HEADERS(net/if.h,,,
945 #include <sys/types.h>
948 #include <sys/socket.h>
952 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
953 dnl is not decleared.
954 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
955 [Define to 1 if dirent has d_reclen])],,
956 [#include <dirent.h>])
957 AC_CHECK_MEMBERS([struct stat.st_atim])
958 dnl Check to see if ssize_t was declared
959 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
960 [Define to 1 if ssize_t declared])],,
961 [#include <sys/types.h>])
963 dnl Check to see if llseek() is declared in unistd.h. On some libc's
964 dnl it is, and on others it isn't..... Thank you glibc developers....
966 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
967 [Define to 1 if llseek declared in unistd.h])],,
968 [#include <unistd.h>])
970 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
971 dnl are so convoluted that I can't tell whether it will always be defined,
972 dnl and if it isn't defined while lseek64 is defined in the library,
973 dnl disaster will strike.
975 dnl Warning! Use of --enable-gcc-wall may throw off this test.
978 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
979 [Define to 1 if lseek64 declared in unistd.h])],,
980 [#define _LARGEFILE_SOURCE
981 #define _LARGEFILE64_SOURCE
982 #include <unistd.h>])
986 AC_CHECK_SIZEOF(short)
988 AC_CHECK_SIZEOF(long)
989 AC_CHECK_SIZEOF(long long)
990 AC_CHECK_SIZEOF(off_t)
991 SIZEOF_SHORT=$ac_cv_sizeof_short
992 SIZEOF_INT=$ac_cv_sizeof_int
993 SIZEOF_LONG=$ac_cv_sizeof_long
994 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
995 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
996 AC_SUBST(SIZEOF_SHORT)
998 AC_SUBST(SIZEOF_LONG)
999 AC_SUBST(SIZEOF_LONG_LONG)
1000 AC_SUBST(SIZEOF_OFF_T)
1002 if test $cross_compiling = no; then
1003 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1005 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1007 ASM_TYPES_HEADER=./asm_types.h
1008 AC_SUBST_FILE(ASM_TYPES_HEADER)
1010 dnl Save the configuration #defines needed for the public ext2fs.h
1013 echo "/* These defines are needed for the public ext2fs.h header file */" \
1015 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1016 uniq tmp_config.$$ >> public_config.h
1018 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1020 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1021 uniq tmp_config.$$ >> public_config.h
1023 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1026 PUBLIC_CONFIG_HEADER=./public_config.h
1027 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1029 dnl See if we have inttypes.h and if intptr_t is defined
1031 AC_CHECK_HEADERS([inttypes.h])
1032 AC_CHECK_TYPES(intptr_t)
1034 dnl See if struct stat has a st_flags field, in which case we can get file
1035 dnl flags somewhat portably. Also check for the analogous setter, chflags().
1037 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1038 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1039 AC_TRY_COMPILE([#include <sys/stat.h>],
1040 [struct stat stat; stat.st_flags = 0;],
1041 [e2fsprogs_cv_struct_st_flags=yes],
1042 [e2fsprogs_cv_struct_st_flags=no]))
1043 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1044 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1045 AC_MSG_CHECKING(whether st_flags field is useful)
1046 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1047 AC_TRY_COMPILE([#include <sys/stat.h>],
1048 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1049 [e2fsprogs_cv_struct_st_flags_immut=yes],
1050 [e2fsprogs_cv_struct_st_flags_immut=no]))
1051 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1052 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1053 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1054 [Define to 1 if struct stat has st_flags])
1058 dnl Check for the presence of SA_LEN
1060 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1061 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1062 [Define to 1 if if struct sockaddr contains sa_len]),,
1063 [#include <sys/types.h>
1064 #include <sys/socket.h>])
1066 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1067 dnl the system-provided blkid library
1069 if test -n "$BLKID_CMT"; then
1070 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1073 AC_CHECK_FUNCS(m4_flatten([
1076 blkid_probe_get_topology
1077 blkid_probe_enable_partitions
1134 dnl Check to see if -lsocket is required (solaris) to make something
1135 dnl that uses socket() to compile; this is needed for the UUID library
1138 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1139 AC_SUBST(SOCKET_LIB)
1141 dnl See if libmagic exists
1143 AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1144 AC_CHECK_HEADERS([magic.h])])
1145 if test "$ac_cv_lib_dl_dlopen" = yes ; then
1146 MAGIC_LIB=$DLOPEN_LIB
1150 dnl See if optreset exists
1152 AC_MSG_CHECKING(for optreset)
1153 AC_CACHE_VAL(ac_cv_have_optreset,
1154 [AC_EGREP_HEADER(optreset, unistd.h,
1155 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1156 AC_MSG_RESULT($ac_cv_have_optreset)
1157 if test $ac_cv_have_optreset = yes; then
1158 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1161 dnl Test for sem_init, and which library it might require:
1163 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1165 AC_CHECK_FUNC(sem_init, ,
1166 AC_CHECK_LIB(pthread, sem_init,
1167 AC_DEFINE(HAVE_SEM_INIT, 1)
1168 SEM_INIT_LIB=-lpthread,
1169 AC_CHECK_LIB(rt, sem_init,
1170 AC_DEFINE(HAVE_SEM_INIT, 1)
1172 AC_CHECK_LIB(posix4, sem_init,
1173 AC_DEFINE(HAVE_SEM_INIT, 1)
1174 SEM_INIT_LIB=-lposix4))))dnl
1175 AC_SUBST(SEM_INIT_LIB)
1177 dnl Check for unified diff
1179 AC_MSG_CHECKING(for unified diff option)
1180 if diff -u $0 $0 > /dev/null 2>&1 ; then
1185 AC_MSG_RESULT($UNI_DIFF_OPTS)
1186 AC_SUBST(UNI_DIFF_OPTS)
1188 dnl We use the EXT2 ioctls only under Linux
1192 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1196 dnl OS-specific uncomment control
1211 AC_SUBST(CYGWIN_CMT)
1214 dnl Linux and Hurd places root files in the / by default
1217 linux* | gnu* | k*bsd*-gnu)
1218 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1220 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1225 dnl On Linux/hurd, force the prefix to be /usr
1228 linux* | gnu* | k*bsd*-gnu)
1229 if test "$prefix" = NONE ; then
1231 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1232 if test "$mandir" = '${prefix}/man' ; then
1233 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1234 mandir=/usr/share/man
1239 if test "$root_prefix" = NONE ; then
1240 if test "$prefix" = NONE ; then
1241 root_prefix="$ac_default_prefix"
1243 root_prefix="$prefix"
1246 root_sbindir=$sbindir
1248 root_sysconfdir=$sysconfdir
1250 root_bindir='${root_prefix}/bin'
1251 root_sbindir='${root_prefix}/sbin'
1252 root_libdir='${root_prefix}/lib'
1253 root_sysconfdir='${root_prefix}/etc'
1255 if test "$bindir" != '${exec_prefix}/bin'; then
1257 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1259 if test "$sbindir" != '${exec_prefix}/sbin'; then
1260 root_sbindir=$sbindir
1261 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1263 if test "$libdir" != '${exec_prefix}/lib'; then
1265 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1267 if test "$sysconfdir" != '${prefix}/etc'; then
1268 root_sysconfdir=$sysconfdir
1269 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1271 AC_SUBST(root_prefix)
1272 AC_SUBST(root_bindir)
1273 AC_SUBST(root_sbindir)
1274 AC_SUBST(root_libdir)
1275 AC_SUBST(root_sysconfdir)
1277 dnl Allow specification of the multiarch arch
1279 AC_ARG_WITH([multiarch],
1280 [ --with-multiarch=ARCH specify the multiarch triplet],
1281 if test "$withval" = "lib64"; then
1285 libdir=$libdir/$withval
1286 root_libdir=$root_libdir/$withval
1290 dnl See if -static works. This could fail if the linker does not
1291 dnl support -static, or if required external libraries are not available
1294 AC_MSG_CHECKING([whether we can link with -static])
1295 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1296 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1297 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1298 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1299 LDFLAGS=$SAVE_LDFLAGS])
1301 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1302 dnl This is caused by the socket library requiring the nsl library, which
1303 dnl requires the -dl library, which only works for dynamically linked
1304 dnl programs. It basically means you can't have statically linked programs
1305 dnl which use the network under Solaris.
1309 ac_cv_e2fsprogs_use_static=no
1312 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1314 if test $ac_cv_e2fsprogs_use_static = yes; then
1315 LDFLAG_STATIC=-static
1317 AC_SUBST(LDFLAG_STATIC)
1319 dnl Work around mysterious Darwin / GNU libintl problem
1320 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1321 dnl Apple hacked gcc somehow?)
1325 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1326 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1327 [Define to 1 if Apple Darwin libintl workaround is needed])
1331 dnl Make the ss and et directories work correctly.
1333 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1334 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1338 dnl Only try to run the test suite if we're not cross compiling.
1340 if test "$cross_compiling" = yes ; then
1345 AC_SUBST(DO_TEST_SUITE)
1347 dnl Only include the intl include files if we're building with them
1349 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1350 if test -n "$CPPFLAGS" ; then
1351 INCLUDES="$INCLUDES $CPPFLAGS"
1353 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1354 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1356 if test -n "$WITH_DIET_LIBC" ; then
1357 INCLUDES="$INCLUDES -D_REENTRANT"
1364 if test $cross_compiling = no; then
1365 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1366 BUILD_LDFLAGS="$LDFLAGS"
1368 AC_SUBST(BUILD_CFLAGS)
1369 AC_SUBST(BUILD_LDFLAGS)
1371 dnl Make our output files, being sure that we create the some miscellaneous
1374 test -d lib || mkdir lib
1375 test -d include || mkdir include
1376 test -d include/linux || mkdir include/linux
1377 test -d include/asm || mkdir include/asm
1378 for i in MCONFIG Makefile e2fsprogs.spec \
1379 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1380 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1381 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1382 lib/uuid/Makefile lib/uuid/uuid_types.h \
1383 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1384 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1385 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1386 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1387 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1388 resize/Makefile doc/Makefile intl/Makefile \
1389 intl/libgnuintl.h po/Makefile.in ; do
1390 if test -d `dirname ${srcdir}/$i` ; then
1391 outlist="$outlist $i"
1395 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi