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)]])
128 dnl Set default values for library extentions. Will be dealt with after
129 dnl parsing configuration opions, which may modify these
135 dnl Allow separate `root_prefix' to be specified
137 AC_ARG_WITH([root-prefix],
138 [ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
139 root_prefix=$withval,
142 dnl handle --enable-maintainer-mode
144 AC_ARG_ENABLE([maintainer-mode],
145 [ --enable-maintainer-mode enable makefile rules useful for maintainers],
146 if test "$enableval" = "no"
149 AC_MSG_RESULT([Disabling maintainer mode])
152 AC_MSG_RESULT([Enabling maintainer mode])
156 AC_MSG_RESULT([Disabling maintainer mode by default])
158 AC_SUBST(MAINTAINER_CMT)
160 dnl handle --enable-symlink-install
162 AC_ARG_ENABLE([symlink-install],
163 [ --enable-symlink-install use symlinks when installing instead of hard links],
164 if test "$enableval" = "no"
166 LINK_INSTALL_FLAGS=-f
167 AC_MSG_RESULT([Disabling symlinks for install])
169 LINK_INSTALL_FLAGS=-sf
170 AC_MSG_RESULT([Enabling symlinks for install])
173 LINK_INSTALL_FLAGS=-f
174 AC_MSG_RESULT([Disabling symlinks for install by default])
176 AC_SUBST(LINK_INSTALL_FLAGS)
178 dnl handle --enable-relative-symlinks
180 relative_symlink_defined=
181 AC_ARG_ENABLE([relative-symlinks],
182 [ --enable-relative-symlinks use relative symlinks when installing],
183 if test "$enableval" = "no"
186 relative_symlink_defined=yes
187 AC_MSG_RESULT([Disabling relative symlinks for install])
189 SYMLINK_RELATIVE=--relative
190 relative_symlink_defined=yes
191 AC_MSG_RESULT([Enabling relative symlinks for install])
193 AC_ARG_ENABLE([symlink-relative-symlinks],,
194 if test "$enableval" = "no"
197 AC_MSG_RESULT([Disabling relative symlinks for install])
199 SYMLINK_RELATIVE=--relative
200 AC_MSG_RESULT([Enabling relative symlinks for install])
203 if test -z "$relative_symlink_defined"
206 AC_MSG_RESULT([Disabling relative symlinks for install by default])
209 AC_SUBST(SYMLINK_RELATIVE)
211 dnl handle --enable-symlink-build
213 AC_ARG_ENABLE([symlink-build],
214 [ --enable-symlink-build use symlinks while building instead of hard links],
215 if test "$enableval" = "no"
218 AC_MSG_RESULT([Disabling symlinks for build])
221 AC_MSG_RESULT([Enabling symlinks for build])
225 AC_MSG_RESULT([Disabling symlinks for build by default])
227 AC_SUBST(LINK_BUILD_FLAGS)
229 dnl handle --enable-verbose-makecmds
231 AC_ARG_ENABLE([verbose-makecmds],
232 [ --enable-verbose-makecmds enable verbose make command output],
233 if test "$enableval" = "no"
235 AC_MSG_RESULT([Disabling verbose make commands])
240 AC_MSG_RESULT([Enabling verbose make commands])
246 AC_MSG_RESULT([Disabling verbose make commands])
255 dnl handle --enable-compression
257 AC_ARG_ENABLE([compression],
258 [ --enable-compression enable EXPERIMENTAL compression support],
259 if test "$enableval" = "no"
261 AC_MSG_RESULT([Disabling compression support])
263 AC_DEFINE(ENABLE_COMPRESSION, 1,
264 [Define to 1 if ext2 compression enabled])
265 AC_MSG_RESULT([Enabling compression support])
266 AC_MSG_WARN([Compression support is experimental])
269 AC_MSG_RESULT([Disabling compression support by default])
272 dnl handle --enable-htree
274 AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
275 AC_ARG_ENABLE([htree],
276 [ --enable-htree enable EXPERIMENTAL htree directory support],
277 if test "$enableval" = "no"
280 AC_MSG_RESULT([Disabling htree directory support])
283 AC_DEFINE(ENABLE_HTREE, 1)
284 AC_MSG_RESULT([Enabling htree directory support])
288 AC_DEFINE(ENABLE_HTREE, 1)
289 AC_MSG_RESULT([Enabling htree directory support by default])
293 dnl This needs to be before all of the --enable-*-shlibs options
295 E2_PKG_CONFIG_STATIC=--static
299 dnl handle --enable-elf-shlibs
301 AC_ARG_ENABLE([elf-shlibs],
302 [ --enable-elf-shlibs select ELF shared libraries],
303 if test "$enableval" = "no"
306 MAKEFILE_ELF=/dev/null
307 AC_MSG_RESULT([Disabling ELF shared libraries])
309 E2_PKG_CONFIG_STATIC=
311 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
314 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
320 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
321 AC_MSG_RESULT([Enabling ELF shared libraries])
324 MAKEFILE_ELF=/dev/null
326 AC_MSG_RESULT([Disabling ELF shared libraries by default])
329 AC_SUBST_FILE(MAKEFILE_ELF)
331 dnl handle --enable-bsd-shlibs
333 AC_ARG_ENABLE([bsd-shlibs],
334 [ --enable-bsd-shlibs select BSD shared libraries],
335 if test "$enableval" = "no"
338 MAKEFILE_BSDLIB=/dev/null
339 AC_MSG_RESULT([Disabling BSD shared libraries])
341 E2_PKG_CONFIG_STATIC=
343 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
347 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
351 AC_MSG_RESULT([Enabling BSD shared libraries])
354 MAKEFILE_BSDLIB=/dev/null
356 AC_MSG_RESULT([Disabling BSD shared libraries by default])
359 AC_SUBST_FILE(MAKEFILE_BSDLIB)
361 dnl handle --enable-profile
363 AC_ARG_ENABLE([profile],
364 [ --enable-profile build profiling libraries],
365 if test "$enableval" = "no"
368 MAKEFILE_PROFILE=/dev/null
369 AC_MSG_RESULT([Disabling profiling libraries])
372 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
373 PROFILED_LIB_EXT=_p.a
374 AC_MSG_RESULT([Building profiling libraries])
378 MAKEFILE_PROFILE=/dev/null
379 AC_MSG_RESULT([Disabling profiling libraries by default])
381 AC_SUBST(PROFILE_CMT)
382 AC_SUBST_FILE(MAKEFILE_PROFILE)
384 dnl handle --enable-gcov
386 AC_ARG_ENABLE([gcov],
387 [ --enable-gcov build for coverage testing using gcov],
388 if test "$enableval" = "yes"
390 CFLAGS="-g -fprofile-arcs -ftest-coverage"
391 LDFLAGS="-fprofile-arcs -ftest-coverage"
392 AC_MSG_RESULT([Enabling gcov support])
396 dnl handle --enable-checker
398 AC_ARG_ENABLE([checker],
399 [ --enable-checker build checker libraries],
400 if test "$enableval" = "no"
403 MAKEFILE_CHECKER=/dev/null
404 AC_MSG_RESULT([Disabling checker libraries])
407 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
408 AC_MSG_RESULT([Building checker libraries])
412 MAKEFILE_CHECKER=/dev/null
413 AC_MSG_RESULT([Disabling checker libraries by default])
415 AC_SUBST(CHECKER_CMT)
416 AC_SUBST_FILE(MAKEFILE_CHECKER)
418 dnl Substitute library extensions
421 AC_SUBST(STATIC_LIB_EXT)
422 AC_SUBST(PROFILED_LIB_EXT)
423 AC_SUBST(LDFLAG_DYNAMIC)
424 AC_SUBST(PRIVATE_LIBS_CMT)
426 dnl handle --enable-jbd-debug
428 AC_ARG_ENABLE([jbd-debug],
429 [ --enable-jbd-debug enable journal debugging],
430 if test "$enableval" = "no"
432 AC_MSG_RESULT([Disabling journal debugging])
434 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
435 [Define to 1 if debugging ext3/4 journal code])
436 AC_MSG_RESULT([Enabling journal debugging])
439 AC_MSG_RESULT([Disabling journal debugging by default])
442 dnl handle --enable-blkid-debug
444 AC_ARG_ENABLE([blkid-debug],
445 [ --enable-blkid-debug enable blkid debugging],
446 if test "$enableval" = "no"
448 AC_MSG_RESULT([Disabling blkid debugging])
450 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
451 [Define to 1 if debugging the blkid library])
452 AC_MSG_RESULT([Enabling blkid debugging])
455 AC_MSG_RESULT([Disabling blkid debugging by default])
458 dnl handle --enable-testio-debug
460 AC_ARG_ENABLE([testio-debug],
461 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
462 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
463 [Define to 1 if the testio I/O manager should be enabled])
464 if test "$enableval" = "no"
466 AC_MSG_RESULT([Disabling testio debugging])
470 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
471 AC_MSG_RESULT([Enabling testio debugging])
474 AC_MSG_RESULT([Enabling testio debugging by default])
475 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
478 AC_SUBST(TEST_IO_CMT)
480 dnl handle --disable-libuuid
490 AC_ARG_ENABLE([libuuid],
491 [ --disable-libuuid do not build private uuid library],
492 if test "$enableval" = "no"
494 if test -z "$PKG_CONFIG"; then
495 AC_MSG_ERROR([pkg-config not installed; please install it.])
498 AC_CHECK_LIB(uuid, uuid_generate,
499 [LIBUUID=`$PKG_CONFIG --libs uuid`;
500 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
501 [AC_MSG_ERROR([external uuid library not found])],
504 AC_MSG_RESULT([Disabling private uuid library])
506 LIBUUID='$(LIB)/libuuid'$LIB_EXT
508 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
509 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
510 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
511 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
512 AC_MSG_RESULT([Enabling private uuid library])
515 LIBUUID='$(LIB)/libuuid'$LIB_EXT
517 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
518 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
519 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
520 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
521 AC_MSG_RESULT([Enabling private uuid library by default])
525 AC_SUBST(STATIC_LIBUUID)
526 AC_SUBST(DEPSTATIC_LIBUUID)
527 AC_SUBST(PROFILED_LIBUUID)
528 AC_SUBST(DEPPROFILED_LIBUUID)
531 dnl handle --disable-libblkid
539 DEPPROFILED_LIBBLKID=
541 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
542 AC_ARG_ENABLE([libblkid],
543 [ --disable-libblkid do not build private blkid library],
544 if test "$enableval" = "no"
546 if test -z "$PKG_CONFIG"; then
547 AC_MSG_ERROR([pkg-config not installed; please install it.])
550 AC_CHECK_LIB(blkid, blkid_get_cache,
551 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
552 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
553 [AC_MSG_ERROR([external blkid library not found])],
556 AC_MSG_RESULT([Disabling private blkid library])
558 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
559 DEPLIBBLKID=$LIBBLKID
560 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
561 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
562 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
563 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
564 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
565 AC_MSG_RESULT([Enabling private blkid library])
568 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
569 DEPLIBBLKID=$LIBBLKID
570 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
571 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
572 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
573 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
574 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
575 AC_MSG_RESULT([Enabling private blkid library by default])
578 AC_SUBST(DEPLIBBLKID)
579 AC_SUBST(STATIC_LIBBLKID)
580 AC_SUBST(DEPSTATIC_LIBBLKID)
581 AC_SUBST(PROFILED_LIBBLKID)
582 AC_SUBST(DEPPROFILED_LIBBLKID)
585 dnl handle --enable-quota
587 QUOTA_MAN_COMMENT='.\"'
589 AC_SUBST(QUOTA_MAN_COMMENT)
591 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
592 AC_ARG_ENABLE([quota],
593 [ --enable-quota enable quota support],
594 if test "$enableval" = "no"
597 AC_MSG_RESULT([Disabling quota support])
600 AC_DEFINE(CONFIG_QUOTA, 1)
601 AC_MSG_RESULT([Enabling quota support])
603 AC_SUBST(QUOTA_MAN_COMMENT)
607 AC_MSG_RESULT([Disabling quota support by default])
610 dnl Define stuff expected for quota library
612 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
613 DEPLIBQUOTA=$LIBQUOTA
614 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
615 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
616 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
617 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
619 AC_SUBST(DEPLIBQUOTA)
620 AC_SUBST(STATIC_LIBQUOTA)
621 AC_SUBST(DEPSTATIC_LIBQUOTA)
622 AC_SUBST(PROFILED_LIBQUOTA)
623 AC_SUBST(DEPPROFILED_LIBQUOTA)
626 dnl handle --disable-backtrace
628 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
629 AC_ARG_ENABLE([backtrace],
630 [ --disable-backtrace disable use backtrace],
631 if test "$enableval" = "no"
633 AC_MSG_RESULT([Disabling use of backtrace])
634 AC_DEFINE(DISABLE_BACKTRACE, 1)
636 AC_MSG_RESULT([Enabling use of backtrace])
639 AC_MSG_RESULT([Enabling use of backtrace by default])
642 dnl handle --enable-debugfs
644 AC_ARG_ENABLE([debugfs],
645 [ --disable-debugfs disable support of debugfs program],
646 if test "$enableval" = "no"
648 AC_MSG_RESULT([Disabling debugfs support])
652 AC_MSG_RESULT([Enabling debugfs support])
655 AC_MSG_RESULT([Enabling debugfs support by default])
658 AC_SUBST(DEBUGFS_CMT)
660 dnl handle --enable-imager
662 AC_ARG_ENABLE([imager],
663 [ --disable-imager disable support of e2image program],
664 if test "$enableval" = "no"
666 AC_MSG_RESULT([Disabling e2image support])
670 AC_MSG_RESULT([Enabling e2image support])
673 AC_MSG_RESULT([Enabling e2image support by default])
678 dnl handle --enable-resizer
680 AC_ARG_ENABLE([resizer],
681 [ --disable-resizer disable support of e2resize program],
682 if test "$enableval" = "no"
684 AC_MSG_RESULT([Disabling e2resize support])
688 AC_MSG_RESULT([Enabling e2resize support])
691 AC_MSG_RESULT([Enabling e2resize support by default])
694 AC_SUBST(RESIZER_CMT)
696 dnl handle --enable-defrag
698 AC_ARG_ENABLE([defrag],
699 [ --disable-defrag disable support of e4defrag program],
700 if test "$enableval" = "no"
702 AC_MSG_RESULT([Disabling e4defrag support])
706 AC_MSG_RESULT([Enabling e4defrag support])
709 if test -z "$WITH_DIET_LIBC"
711 AC_MSG_RESULT([Enabling e4defrag support by default])
714 AC_MSG_RESULT([Disabling e4defrag support by default])
720 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
722 AC_ARG_ENABLE([fsck],
723 [ --enable-fsck build fsck wrapper program],
724 [if test "$enableval" = "no"
726 FSCK_PROG='' FSCK_MAN=''
727 AC_MSG_RESULT([Not building fsck wrapper])
729 FSCK_PROG=fsck FSCK_MAN=fsck.8
730 AC_MSG_RESULT([Building fsck wrapper])
735 FSCK_PROG='' FSCK_MAN=''
736 AC_MSG_RESULT([Not building fsck wrapper by default])
739 FSCK_PROG=fsck FSCK_MAN=fsck.8
740 AC_MSG_RESULT([Building fsck wrapper by default])
746 dnl See whether to install the `e2initrd-helper' program
748 AC_ARG_ENABLE([e2initrd-helper],
749 [ --enable-e2initrd-helper build e2initrd-helper program],
750 [if test "$enableval" = "no"
752 E2INITRD_PROG='' E2INITRD_MAN=''
753 AC_MSG_RESULT([Not building e2initrd helper])
755 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
756 AC_MSG_RESULT([Building e2initrd helper])
759 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
760 AC_MSG_RESULT([Building e2initrd helper by default])
762 AC_SUBST(E2INITRD_PROG)
763 AC_SUBST(E2INITRD_MAN)
768 [ --disable-tls disable use of thread local support],
769 [if test "$enableval" = "no"
772 AC_MSG_RESULT([Disabling thread local support])
775 AC_MSG_RESULT([Enabling thread local support])
778 if test -n "$WITH_DIET_LIBC"
781 AC_MSG_RESULT([Diet libc does not support thread local support])
784 AC_MSG_RESULT([Try using thread local support by default])
787 if test "$try_tls" = "yes"
794 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
795 AC_ARG_ENABLE([uuidd],
796 [ --disable-uuidd disable building the uuid daemon],
797 [if test "$enableval" = "no"
799 AC_MSG_RESULT([Not building uuidd])
802 AC_DEFINE(USE_UUIDD, 1)
804 AC_MSG_RESULT([Building uuidd])
807 AC_DEFINE(USE_UUIDD, 1)
809 AC_MSG_RESULT([Building uuidd by default])
815 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
816 AC_SUBST_FILE(MAKEFILE_LIBRARY)
818 dnl Add internationalization support, using gettext.
820 GETTEXT_PACKAGE=e2fsprogs
822 VERSION="$E2FSPROGS_VERSION"
824 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
825 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
826 AC_SUBST(GETTEXT_PACKAGE)
832 dnl End of configuration options
834 AC_SUBST(BINARY_TYPE)
837 AC_PATH_PROG(LN, ln, ln)
839 AC_PATH_PROG(MV, mv, mv)
840 AC_PATH_PROG(CP, cp, cp)
841 AC_PATH_PROG(RM, rm, rm)
842 AC_PATH_PROG(CHMOD, chmod, :)
845 AC_PATH_PROG(SED, sed, sed)
846 AC_PATH_PROG(PERL, perl, perl)
847 AC_PATH_PROG(LDCONFIG, ldconfig, :)
848 AC_CHECK_TOOL(AR, ar, ar)
849 AC_CHECK_TOOL(RANLIB, ranlib, :)
850 AC_CHECK_TOOL(STRIP, strip, :)
851 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
852 if test "_$MAKEINFO" = "_"; then
853 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
858 *** Makeinfo is missing. Info documentation will not be built.])
866 # See if we need a separate native compiler.
867 if test $cross_compiling = no; then
871 AC_CHECK_PROGS(BUILD_CC, gcc cc)
873 AC_CHECK_HEADERS(m4_flatten([
916 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
919 #include <sys/queue.h>
922 AC_CHECK_HEADERS(net/if.h,,,
925 #include <sys/types.h>
928 #include <sys/socket.h>
932 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
933 dnl is not decleared.
934 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
935 [Define to 1 if dirent has d_reclen])],,
936 [#include <dirent.h>])
937 AC_CHECK_MEMBERS([struct stat.st_atim])
938 dnl Check to see if ssize_t was declared
939 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
940 [Define to 1 if ssize_t declared])],,
941 [#include <sys/types.h>])
943 dnl Check to see if llseek() is declared in unistd.h. On some libc's
944 dnl it is, and on others it isn't..... Thank you glibc developers....
946 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
947 [Define to 1 if llseek declared in unistd.h])],,
948 [#include <unistd.h>])
950 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
951 dnl are so convoluted that I can't tell whether it will always be defined,
952 dnl and if it isn't defined while lseek64 is defined in the library,
953 dnl disaster will strike.
955 dnl Warning! Use of --enable-gcc-wall may throw off this test.
958 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
959 [Define to 1 if lseek64 declared in unistd.h])],,
960 [#define _LARGEFILE_SOURCE
961 #define _LARGEFILE64_SOURCE
962 #include <unistd.h>])
966 AC_CHECK_SIZEOF(short)
968 AC_CHECK_SIZEOF(long)
969 AC_CHECK_SIZEOF(long long)
970 AC_CHECK_SIZEOF(off_t)
971 SIZEOF_SHORT=$ac_cv_sizeof_short
972 SIZEOF_INT=$ac_cv_sizeof_int
973 SIZEOF_LONG=$ac_cv_sizeof_long
974 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
975 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
976 AC_SUBST(SIZEOF_SHORT)
978 AC_SUBST(SIZEOF_LONG)
979 AC_SUBST(SIZEOF_LONG_LONG)
980 AC_SUBST(SIZEOF_OFF_T)
982 if test $cross_compiling = no; then
983 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
985 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
987 ASM_TYPES_HEADER=./asm_types.h
988 AC_SUBST_FILE(ASM_TYPES_HEADER)
990 dnl Save the configuration #defines needed for the public ext2fs.h
993 echo "/* These defines are needed for the public ext2fs.h header file */" \
995 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
996 uniq tmp_config.$$ >> public_config.h
998 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1000 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1001 uniq tmp_config.$$ >> public_config.h
1003 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1006 PUBLIC_CONFIG_HEADER=./public_config.h
1007 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1009 dnl See if we have inttypes.h and if intptr_t is defined
1011 AC_CHECK_HEADERS([inttypes.h])
1012 AC_CHECK_TYPES(intptr_t)
1014 dnl See if struct stat has a st_flags field, in which case we can get file
1015 dnl flags somewhat portably. Also check for the analogous setter, chflags().
1017 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1018 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1019 AC_TRY_COMPILE([#include <sys/stat.h>],
1020 [struct stat stat; stat.st_flags = 0;],
1021 [e2fsprogs_cv_struct_st_flags=yes],
1022 [e2fsprogs_cv_struct_st_flags=no]))
1023 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1024 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1025 AC_MSG_CHECKING(whether st_flags field is useful)
1026 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1027 AC_TRY_COMPILE([#include <sys/stat.h>],
1028 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1029 [e2fsprogs_cv_struct_st_flags_immut=yes],
1030 [e2fsprogs_cv_struct_st_flags_immut=no]))
1031 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1032 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1033 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1034 [Define to 1 if struct stat has st_flags])
1038 dnl Check for the presence of SA_LEN
1040 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1041 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1042 [Define to 1 if if struct sockaddr contains sa_len]),,
1043 [#include <sys/types.h>
1044 #include <sys/socket.h>])
1046 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1047 dnl the system-provided blkid library
1049 if test -n "$BLKID_CMT"; then
1050 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1053 AC_CHECK_FUNCS(m4_flatten([
1056 blkid_probe_get_topology
1057 blkid_probe_enable_partitions
1107 dnl Check to see if -lsocket is required (solaris) to make something
1108 dnl that uses socket() to compile; this is needed for the UUID library
1111 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1112 AC_SUBST(SOCKET_LIB)
1114 dnl See if optreset exists
1116 AC_MSG_CHECKING(for optreset)
1117 AC_CACHE_VAL(ac_cv_have_optreset,
1118 [AC_EGREP_HEADER(optreset, unistd.h,
1119 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1120 AC_MSG_RESULT($ac_cv_have_optreset)
1121 if test $ac_cv_have_optreset = yes; then
1122 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1125 dnl Test for sem_init, and which library it might require:
1127 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1129 AC_CHECK_FUNC(sem_init, ,
1130 AC_CHECK_LIB(pthread, sem_init,
1131 AC_DEFINE(HAVE_SEM_INIT, 1)
1132 SEM_INIT_LIB=-lpthread,
1133 AC_CHECK_LIB(rt, sem_init,
1134 AC_DEFINE(HAVE_SEM_INIT, 1)
1136 AC_CHECK_LIB(posix4, sem_init,
1137 AC_DEFINE(HAVE_SEM_INIT, 1)
1138 SEM_INIT_LIB=-lposix4))))dnl
1139 AC_SUBST(SEM_INIT_LIB)
1141 dnl Check for unified diff
1143 AC_MSG_CHECKING(for unified diff option)
1144 if diff -u $0 $0 > /dev/null 2>&1 ; then
1149 AC_MSG_RESULT($UNI_DIFF_OPTS)
1150 AC_SUBST(UNI_DIFF_OPTS)
1152 dnl We use the EXT2 ioctls only under Linux
1156 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1160 dnl OS-specific uncomment control
1175 AC_SUBST(CYGWIN_CMT)
1178 dnl Linux and Hurd places root files in the / by default
1181 linux* | gnu* | k*bsd*-gnu)
1182 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1184 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1189 dnl On Linux/hurd, force the prefix to be /usr
1192 linux* | gnu* | k*bsd*-gnu)
1193 if test "$prefix" = NONE ; then
1195 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1196 if test "$mandir" = '${prefix}/man' ; then
1197 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1198 mandir=/usr/share/man
1203 if test "$root_prefix" = NONE ; then
1204 if test "$prefix" = NONE ; then
1205 root_prefix="$ac_default_prefix"
1207 root_prefix="$prefix"
1210 root_sbindir=$sbindir
1212 root_sysconfdir=$sysconfdir
1214 root_bindir='${root_prefix}/bin'
1215 root_sbindir='${root_prefix}/sbin'
1216 root_libdir='${root_prefix}/lib'
1217 root_sysconfdir='${root_prefix}/etc'
1219 if test "$bindir" != '${exec_prefix}/bin'; then
1221 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1223 if test "$sbindir" != '${exec_prefix}/sbin'; then
1224 root_sbindir=$sbindir
1225 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1227 if test "$libdir" != '${exec_prefix}/lib'; then
1229 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1231 if test "$sysconfdir" != '${prefix}/etc'; then
1232 root_sysconfdir=$sysconfdir
1233 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1235 AC_SUBST(root_prefix)
1236 AC_SUBST(root_bindir)
1237 AC_SUBST(root_sbindir)
1238 AC_SUBST(root_libdir)
1239 AC_SUBST(root_sysconfdir)
1241 dnl Allow specification of the multiarch arch
1243 AC_ARG_WITH([multiarch],
1244 [ --with-multiarch=ARCH specify the multiarch triplet],
1245 if test "$withval" = "lib64"; then
1249 libdir=$libdir/$withval
1250 root_libdir=$root_libdir/$withval
1254 dnl See if -static works. This could fail if the linker does not
1255 dnl support -static, or if required external libraries are not available
1258 AC_MSG_CHECKING([whether we can link with -static])
1259 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1260 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1261 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1262 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1263 LDFLAGS=$SAVE_LDFLAGS])
1265 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1266 dnl This is caused by the socket library requiring the nsl library, which
1267 dnl requires the -dl library, which only works for dynamically linked
1268 dnl programs. It basically means you can't have statically linked programs
1269 dnl which use the network under Solaris.
1273 ac_cv_e2fsprogs_use_static=no
1276 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1278 if test $ac_cv_e2fsprogs_use_static = yes; then
1279 LDFLAG_STATIC=-static
1281 AC_SUBST(LDFLAG_STATIC)
1283 dnl Work around mysterious Darwin / GNU libintl problem
1284 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1285 dnl Apple hacked gcc somehow?)
1289 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1290 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1291 [Define to 1 if Apple Darwin libintl workaround is needed])
1295 dnl Make the ss and et directories work correctly.
1297 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1298 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1302 dnl Only try to run the test suite if we're not cross compiling.
1304 if test "$cross_compiling" = yes ; then
1309 AC_SUBST(DO_TEST_SUITE)
1311 dnl Only include the intl include files if we're building with them
1313 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1314 if test -n "$CPPFLAGS" ; then
1315 INCLUDES="$INCLUDES $CPPFLAGS"
1317 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1318 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1320 if test -n "$WITH_DIET_LIBC" ; then
1321 INCLUDES="$INCLUDES -D_REENTRANT"
1327 if test $cross_compiling = no; then
1328 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1329 BUILD_LDFLAGS="$LDFLAGS"
1334 AC_SUBST(BUILD_CFLAGS)
1335 AC_SUBST(BUILD_LDFLAGS)
1337 dnl Make our output files, being sure that we create the some miscellaneous
1340 test -d lib || mkdir lib
1341 test -d include || mkdir include
1342 test -d include/linux || mkdir include/linux
1343 test -d include/asm || mkdir include/asm
1344 for i in MCONFIG Makefile e2fsprogs.spec \
1345 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1346 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1347 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1348 lib/uuid/Makefile lib/uuid/uuid_types.h \
1349 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1350 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1351 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1352 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1353 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1354 resize/Makefile doc/Makefile intl/Makefile \
1355 intl/libgnuintl.h po/Makefile.in ; do
1356 if test -d `dirname ${srcdir}/$i` ; then
1357 outlist="$outlist $i"
1361 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi