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-checker
386 AC_ARG_ENABLE([checker],
387 [ --enable-checker build checker libraries],
388 if test "$enableval" = "no"
391 MAKEFILE_CHECKER=/dev/null
392 AC_MSG_RESULT([Disabling checker libraries])
395 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
396 AC_MSG_RESULT([Building checker libraries])
400 MAKEFILE_CHECKER=/dev/null
401 AC_MSG_RESULT([Disabling checker libraries by default])
403 AC_SUBST(CHECKER_CMT)
404 AC_SUBST_FILE(MAKEFILE_CHECKER)
406 dnl Substitute library extensions
409 AC_SUBST(STATIC_LIB_EXT)
410 AC_SUBST(PROFILED_LIB_EXT)
411 AC_SUBST(LDFLAG_DYNAMIC)
412 AC_SUBST(PRIVATE_LIBS_CMT)
414 dnl handle --enable-jbd-debug
416 AC_ARG_ENABLE([jbd-debug],
417 [ --enable-jbd-debug enable journal debugging],
418 if test "$enableval" = "no"
420 AC_MSG_RESULT([Disabling journal debugging])
422 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
423 [Define to 1 if debugging ext3/4 journal code])
424 AC_MSG_RESULT([Enabling journal debugging])
427 AC_MSG_RESULT([Disabling journal debugging by default])
430 dnl handle --enable-blkid-debug
432 AC_ARG_ENABLE([blkid-debug],
433 [ --enable-blkid-debug enable blkid debugging],
434 if test "$enableval" = "no"
436 AC_MSG_RESULT([Disabling blkid debugging])
438 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
439 [Define to 1 if debugging the blkid library])
440 AC_MSG_RESULT([Enabling blkid debugging])
443 AC_MSG_RESULT([Disabling blkid debugging by default])
446 dnl handle --enable-testio-debug
448 AC_ARG_ENABLE([testio-debug],
449 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
450 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
451 [Define to 1 if the testio I/O manager should be enabled])
452 if test "$enableval" = "no"
454 AC_MSG_RESULT([Disabling testio debugging])
458 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
459 AC_MSG_RESULT([Enabling testio debugging])
462 AC_MSG_RESULT([Enabling testio debugging by default])
463 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
466 AC_SUBST(TEST_IO_CMT)
468 dnl handle --disable-libuuid
478 AC_ARG_ENABLE([libuuid],
479 [ --disable-libuuid do not build private uuid library],
480 if test "$enableval" = "no"
482 if test -z "$PKG_CONFIG"; then
483 AC_MSG_ERROR([pkg-config not installed; please install it.])
486 AC_CHECK_LIB(uuid, uuid_generate,
487 [LIBUUID=`$PKG_CONFIG --libs uuid`;
488 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
489 [AC_MSG_ERROR([external uuid library not found])],
492 AC_MSG_RESULT([Disabling 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])
503 LIBUUID='$(LIB)/libuuid'$LIB_EXT
505 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
506 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
507 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
508 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
509 AC_MSG_RESULT([Enabling private uuid library by default])
513 AC_SUBST(STATIC_LIBUUID)
514 AC_SUBST(DEPSTATIC_LIBUUID)
515 AC_SUBST(PROFILED_LIBUUID)
516 AC_SUBST(DEPPROFILED_LIBUUID)
519 dnl handle --disable-libblkid
527 DEPPROFILED_LIBBLKID=
529 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
530 AC_ARG_ENABLE([libblkid],
531 [ --disable-libblkid do not build private blkid library],
532 if test "$enableval" = "no"
534 if test -z "$PKG_CONFIG"; then
535 AC_MSG_ERROR([pkg-config not installed; please install it.])
538 AC_CHECK_LIB(blkid, blkid_get_cache,
539 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
540 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
541 [AC_MSG_ERROR([external blkid library not found])],
544 AC_MSG_RESULT([Disabling 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])
556 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
557 DEPLIBBLKID=$LIBBLKID
558 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
559 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
560 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
561 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
562 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
563 AC_MSG_RESULT([Enabling private blkid library by default])
566 AC_SUBST(DEPLIBBLKID)
567 AC_SUBST(STATIC_LIBBLKID)
568 AC_SUBST(DEPSTATIC_LIBBLKID)
569 AC_SUBST(PROFILED_LIBBLKID)
570 AC_SUBST(DEPPROFILED_LIBBLKID)
573 dnl handle --enable-quota
575 QUOTA_MAN_COMMENT='.\"'
577 AC_SUBST(QUOTA_MAN_COMMENT)
579 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
580 AC_ARG_ENABLE([quota],
581 [ --enable-quota enable quota support],
582 if test "$enableval" = "no"
585 AC_MSG_RESULT([Disabling quota support])
588 AC_DEFINE(CONFIG_QUOTA, 1)
589 AC_MSG_RESULT([Enabling quota support])
591 AC_SUBST(QUOTA_MAN_COMMENT)
595 AC_MSG_RESULT([Disabling quota support by default])
598 dnl Define stuff expected for quota library
600 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
601 DEPLIBQUOTA=$LIBQUOTA
602 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
603 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
604 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
605 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
607 AC_SUBST(DEPLIBQUOTA)
608 AC_SUBST(STATIC_LIBQUOTA)
609 AC_SUBST(DEPSTATIC_LIBQUOTA)
610 AC_SUBST(PROFILED_LIBQUOTA)
611 AC_SUBST(DEPPROFILED_LIBQUOTA)
614 dnl handle --disable-backtrace
616 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
617 AC_ARG_ENABLE([backtrace],
618 [ --disable-backtrace disable use backtrace],
619 if test "$enableval" = "no"
621 AC_MSG_RESULT([Disabling use of backtrace])
622 AC_DEFINE(DISABLE_BACKTRACE, 1)
624 AC_MSG_RESULT([Enabling use of backtrace])
627 AC_MSG_RESULT([Enabling use of backtrace by default])
630 dnl handle --enable-debugfs
632 AC_ARG_ENABLE([debugfs],
633 [ --disable-debugfs disable support of debugfs program],
634 if test "$enableval" = "no"
636 AC_MSG_RESULT([Disabling debugfs support])
640 AC_MSG_RESULT([Enabling debugfs support])
643 AC_MSG_RESULT([Enabling debugfs support by default])
646 AC_SUBST(DEBUGFS_CMT)
648 dnl handle --enable-imager
650 AC_ARG_ENABLE([imager],
651 [ --disable-imager disable support of e2image program],
652 if test "$enableval" = "no"
654 AC_MSG_RESULT([Disabling e2image support])
658 AC_MSG_RESULT([Enabling e2image support])
661 AC_MSG_RESULT([Enabling e2image support by default])
666 dnl handle --enable-resizer
668 AC_ARG_ENABLE([resizer],
669 [ --disable-resizer disable support of e2resize program],
670 if test "$enableval" = "no"
672 AC_MSG_RESULT([Disabling e2resize support])
676 AC_MSG_RESULT([Enabling e2resize support])
679 AC_MSG_RESULT([Enabling e2resize support by default])
682 AC_SUBST(RESIZER_CMT)
684 dnl handle --enable-defrag
686 AC_ARG_ENABLE([defrag],
687 [ --disable-defrag disable support of e4defrag program],
688 if test "$enableval" = "no"
690 AC_MSG_RESULT([Disabling e4defrag support])
694 AC_MSG_RESULT([Enabling e4defrag support])
697 if test -z "$WITH_DIET_LIBC"
699 AC_MSG_RESULT([Enabling e4defrag support by default])
702 AC_MSG_RESULT([Disabling e4defrag support by default])
708 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
710 AC_ARG_ENABLE([fsck],
711 [ --enable-fsck build fsck wrapper program],
712 [if test "$enableval" = "no"
714 FSCK_PROG='' FSCK_MAN=''
715 AC_MSG_RESULT([Not building fsck wrapper])
717 FSCK_PROG=fsck FSCK_MAN=fsck.8
718 AC_MSG_RESULT([Building fsck wrapper])
723 FSCK_PROG='' FSCK_MAN=''
724 AC_MSG_RESULT([Not building fsck wrapper by default])
727 FSCK_PROG=fsck FSCK_MAN=fsck.8
728 AC_MSG_RESULT([Building fsck wrapper by default])
734 dnl See whether to install the `e2initrd-helper' program
736 AC_ARG_ENABLE([e2initrd-helper],
737 [ --enable-e2initrd-helper build e2initrd-helper program],
738 [if test "$enableval" = "no"
740 E2INITRD_PROG='' E2INITRD_MAN=''
741 AC_MSG_RESULT([Not building e2initrd helper])
743 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
744 AC_MSG_RESULT([Building e2initrd helper])
747 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
748 AC_MSG_RESULT([Building e2initrd helper by default])
750 AC_SUBST(E2INITRD_PROG)
751 AC_SUBST(E2INITRD_MAN)
756 [ --disable-tls disable use of thread local support],
757 [if test "$enableval" = "no"
760 AC_MSG_RESULT([Disabling thread local support])
763 AC_MSG_RESULT([Enabling thread local support])
766 if test -n "$WITH_DIET_LIBC"
769 AC_MSG_RESULT([Diet libc does not support thread local support])
772 AC_MSG_RESULT([Try using thread local support by default])
775 if test "$try_tls" = "yes"
782 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
783 AC_ARG_ENABLE([uuidd],
784 [ --disable-uuidd disable building the uuid daemon],
785 [if test "$enableval" = "no"
787 AC_MSG_RESULT([Not building uuidd])
790 AC_DEFINE(USE_UUIDD, 1)
792 AC_MSG_RESULT([Building uuidd])
795 AC_DEFINE(USE_UUIDD, 1)
797 AC_MSG_RESULT([Building uuidd by default])
803 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
804 AC_SUBST_FILE(MAKEFILE_LIBRARY)
806 dnl Add internationalization support, using gettext.
808 GETTEXT_PACKAGE=e2fsprogs
810 VERSION="$E2FSPROGS_VERSION"
812 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
813 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
814 AC_SUBST(GETTEXT_PACKAGE)
820 dnl End of configuration options
822 AC_SUBST(BINARY_TYPE)
825 AC_PATH_PROG(LN, ln, ln)
827 AC_PATH_PROG(MV, mv, mv)
828 AC_PATH_PROG(CP, cp, cp)
829 AC_PATH_PROG(RM, rm, rm)
830 AC_PATH_PROG(CHMOD, chmod, :)
833 AC_PATH_PROG(SED, sed, sed)
834 AC_PATH_PROG(PERL, perl, perl)
835 AC_PATH_PROG(LDCONFIG, ldconfig, :)
836 AC_CHECK_TOOL(AR, ar, ar)
837 AC_CHECK_TOOL(RANLIB, ranlib, :)
838 AC_CHECK_TOOL(STRIP, strip, :)
839 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
840 if test "_$MAKEINFO" = "_"; then
841 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
846 *** Makeinfo is missing. Info documentation will not be built.])
854 # See if we need a separate native compiler.
855 if test $cross_compiling = no; then
859 AC_CHECK_PROGS(BUILD_CC, gcc cc)
861 AC_CHECK_HEADERS(m4_flatten([
904 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
907 #include <sys/queue.h>
910 AC_CHECK_HEADERS(net/if.h,,,
913 #include <sys/types.h>
916 #include <sys/socket.h>
920 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
921 dnl is not decleared.
922 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
923 [Define to 1 if dirent has d_reclen])],,
924 [#include <dirent.h>])
925 AC_CHECK_MEMBERS([struct stat.st_atim])
926 dnl Check to see if ssize_t was declared
927 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
928 [Define to 1 if ssize_t declared])],,
929 [#include <sys/types.h>])
931 dnl Check to see if llseek() is declared in unistd.h. On some libc's
932 dnl it is, and on others it isn't..... Thank you glibc developers....
934 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
935 [Define to 1 if llseek declared in unistd.h])],,
936 [#include <unistd.h>])
938 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
939 dnl are so convoluted that I can't tell whether it will always be defined,
940 dnl and if it isn't defined while lseek64 is defined in the library,
941 dnl disaster will strike.
943 dnl Warning! Use of --enable-gcc-wall may throw off this test.
946 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
947 [Define to 1 if lseek64 declared in unistd.h])],,
948 [#define _LARGEFILE_SOURCE
949 #define _LARGEFILE64_SOURCE
950 #include <unistd.h>])
954 AC_CHECK_SIZEOF(short)
956 AC_CHECK_SIZEOF(long)
957 AC_CHECK_SIZEOF(long long)
958 AC_CHECK_SIZEOF(off_t)
959 SIZEOF_SHORT=$ac_cv_sizeof_short
960 SIZEOF_INT=$ac_cv_sizeof_int
961 SIZEOF_LONG=$ac_cv_sizeof_long
962 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
963 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
964 AC_SUBST(SIZEOF_SHORT)
966 AC_SUBST(SIZEOF_LONG)
967 AC_SUBST(SIZEOF_LONG_LONG)
968 AC_SUBST(SIZEOF_OFF_T)
970 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
971 ASM_TYPES_HEADER=./asm_types.h
972 AC_SUBST_FILE(ASM_TYPES_HEADER)
974 dnl Save the configuration #defines needed for the public ext2fs.h
977 echo "/* These defines are needed for the public ext2fs.h header file */" \
979 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
980 uniq tmp_config.$$ >> public_config.h
982 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
984 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
985 uniq tmp_config.$$ >> public_config.h
987 echo "#undef WORDS_BIGENDIAN" >> public_config.h
990 PUBLIC_CONFIG_HEADER=./public_config.h
991 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
993 dnl See if we have inttypes.h and if intptr_t is defined
995 AC_CHECK_HEADERS([inttypes.h])
996 AC_CHECK_TYPES(intptr_t)
998 dnl See if struct stat has a st_flags field, in which case we can get file
999 dnl flags somewhat portably. Also check for the analogous setter, chflags().
1001 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1002 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1003 AC_TRY_COMPILE([#include <sys/stat.h>],
1004 [struct stat stat; stat.st_flags = 0;],
1005 [e2fsprogs_cv_struct_st_flags=yes],
1006 [e2fsprogs_cv_struct_st_flags=no]))
1007 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1008 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1009 AC_MSG_CHECKING(whether st_flags field is useful)
1010 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1011 AC_TRY_COMPILE([#include <sys/stat.h>],
1012 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1013 [e2fsprogs_cv_struct_st_flags_immut=yes],
1014 [e2fsprogs_cv_struct_st_flags_immut=no]))
1015 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1016 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1017 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1018 [Define to 1 if struct stat has st_flags])
1022 dnl Check for the presence of SA_LEN
1024 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1025 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1026 [Define to 1 if if struct sockaddr contains sa_len]),,
1027 [#include <sys/types.h>
1028 #include <sys/socket.h>])
1030 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1031 dnl the system-provided blkid library
1033 if test -n "$BLKID_CMT"; then
1034 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1037 AC_CHECK_FUNCS(m4_flatten([
1040 blkid_probe_get_topology
1090 dnl Check to see if -lsocket is required (solaris) to make something
1091 dnl that uses socket() to compile; this is needed for the UUID library
1094 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1095 AC_SUBST(SOCKET_LIB)
1097 dnl See if optreset exists
1099 AC_MSG_CHECKING(for optreset)
1100 AC_CACHE_VAL(ac_cv_have_optreset,
1101 [AC_EGREP_HEADER(optreset, unistd.h,
1102 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1103 AC_MSG_RESULT($ac_cv_have_optreset)
1104 if test $ac_cv_have_optreset = yes; then
1105 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1108 dnl Test for sem_init, and which library it might require:
1110 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1112 AC_CHECK_FUNC(sem_init, ,
1113 AC_CHECK_LIB(pthread, sem_init,
1114 AC_DEFINE(HAVE_SEM_INIT, 1)
1115 SEM_INIT_LIB=-lpthread,
1116 AC_CHECK_LIB(rt, sem_init,
1117 AC_DEFINE(HAVE_SEM_INIT, 1)
1119 AC_CHECK_LIB(posix4, sem_init,
1120 AC_DEFINE(HAVE_SEM_INIT, 1)
1121 SEM_INIT_LIB=-lposix4))))dnl
1122 AC_SUBST(SEM_INIT_LIB)
1124 dnl Check for unified diff
1126 AC_MSG_CHECKING(for unified diff option)
1127 if diff -u $0 $0 > /dev/null 2>&1 ; then
1132 AC_MSG_RESULT($UNI_DIFF_OPTS)
1133 AC_SUBST(UNI_DIFF_OPTS)
1135 dnl We use the EXT2 ioctls only under Linux
1139 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1143 dnl OS-specific uncomment control
1158 AC_SUBST(CYGWIN_CMT)
1161 dnl Linux and Hurd places root files in the / by default
1164 linux* | gnu* | k*bsd*-gnu)
1165 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1167 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1172 dnl On Linux/hurd, force the prefix to be /usr
1175 linux* | gnu* | k*bsd*-gnu)
1176 if test "$prefix" = NONE ; then
1178 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1179 if test "$mandir" = '${prefix}/man' ; then
1180 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1181 mandir=/usr/share/man
1186 if test "$root_prefix" = NONE ; then
1187 if test "$prefix" = NONE ; then
1188 root_prefix="$ac_default_prefix"
1190 root_prefix="$prefix"
1193 root_sbindir=$sbindir
1195 root_sysconfdir=$sysconfdir
1197 root_bindir='${root_prefix}/bin'
1198 root_sbindir='${root_prefix}/sbin'
1199 root_libdir='${root_prefix}/lib'
1200 root_sysconfdir='${root_prefix}/etc'
1202 if test "$bindir" != '${exec_prefix}/bin'; then
1204 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1206 if test "$sbindir" != '${exec_prefix}/sbin'; then
1207 root_sbindir=$sbindir
1208 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1210 if test "$libdir" != '${exec_prefix}/lib'; then
1212 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1214 if test "$sysconfdir" != '${prefix}/etc'; then
1215 root_sysconfdir=$sysconfdir
1216 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1218 AC_SUBST(root_prefix)
1219 AC_SUBST(root_bindir)
1220 AC_SUBST(root_sbindir)
1221 AC_SUBST(root_libdir)
1222 AC_SUBST(root_sysconfdir)
1224 dnl Allow specification of the multiarch arch
1226 AC_ARG_WITH([multiarch],
1227 [ --with-multiarch=ARCH specify the multiarch triplet],
1228 libdir=$libdir/$withval
1229 root_libdir=$root_libdir/$withval
1232 dnl See if -static works. This could fail if the linker does not
1233 dnl support -static, or if required external libraries are not available
1236 AC_MSG_CHECKING([whether we can link with -static])
1237 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1238 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1239 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1240 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1241 LDFLAGS=$SAVE_LDFLAGS])
1243 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1244 dnl This is caused by the socket library requiring the nsl library, which
1245 dnl requires the -dl library, which only works for dynamically linked
1246 dnl programs. It basically means you can't have statically linked programs
1247 dnl which use the network under Solaris.
1251 ac_cv_e2fsprogs_use_static=no
1254 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1256 if test $ac_cv_e2fsprogs_use_static = yes; then
1257 LDFLAG_STATIC=-static
1259 AC_SUBST(LDFLAG_STATIC)
1261 dnl Work around mysterious Darwin / GNU libintl problem
1262 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1263 dnl Apple hacked gcc somehow?)
1267 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1268 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1269 [Define to 1 if Apple Darwin libintl workaround is needed])
1273 dnl Make the ss and et directories work correctly.
1275 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1276 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1280 dnl Only try to run the test suite if we're not cross compiling.
1282 if test "$cross_compiling" = yes ; then
1287 AC_SUBST(DO_TEST_SUITE)
1289 dnl Only include the intl include files if we're building with them
1291 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1292 if test -n "$CPPFLAGS" ; then
1293 INCLUDES="$INCLUDES $CPPFLAGS"
1295 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1296 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1298 if test -n "$WITH_DIET_LIBC" ; then
1299 INCLUDES="$INCLUDES -D_REENTRANT"
1305 if test $cross_compiling = no; then
1306 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1307 BUILD_LDFLAGS="$LDFLAGS"
1312 AC_SUBST(BUILD_CFLAGS)
1313 AC_SUBST(BUILD_LDFLAGS)
1315 dnl Make our output files, being sure that we create the some miscellaneous
1318 test -d lib || mkdir lib
1319 test -d include || mkdir include
1320 test -d include/linux || mkdir include/linux
1321 test -d include/asm || mkdir include/asm
1322 for i in MCONFIG Makefile e2fsprogs.spec \
1323 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1324 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1325 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1326 lib/uuid/Makefile lib/uuid/uuid_types.h \
1327 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1328 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1329 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1330 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1331 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1332 resize/Makefile doc/Makefile intl/Makefile \
1333 intl/libgnuintl.h po/Makefile.in ; do
1334 if test -d `dirname ${srcdir}/$i` ; then
1335 outlist="$outlist $i"
1339 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi