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])
793 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
794 AC_SUBST_FILE(MAKEFILE_LIBRARY)
796 dnl Add internationalization support, using gettext.
798 GETTEXT_PACKAGE=e2fsprogs
800 VERSION="$E2FSPROGS_VERSION"
802 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
803 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
804 AC_SUBST(GETTEXT_PACKAGE)
810 dnl End of configuration options
812 AC_SUBST(BINARY_TYPE)
815 AC_PATH_PROG(LN, ln, ln)
817 AC_PATH_PROG(MV, mv, mv)
818 AC_PATH_PROG(CP, cp, cp)
819 AC_PATH_PROG(RM, rm, rm)
820 AC_PATH_PROG(CHMOD, chmod, :)
823 AC_PATH_PROG(SED, sed, sed)
824 AC_PATH_PROG(PERL, perl, perl)
825 AC_PATH_PROG(LDCONFIG, ldconfig, :)
826 AC_CHECK_TOOL(AR, ar, ar)
827 AC_CHECK_TOOL(RANLIB, ranlib, :)
828 AC_CHECK_TOOL(STRIP, strip, :)
829 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
830 if test "_$MAKEINFO" = "_"; then
831 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
836 *** Makeinfo is missing. Info documentation will not be built.])
844 # See if we need a separate native compiler.
845 if test $cross_compiling = no; then
849 AC_CHECK_PROGS(BUILD_CC, gcc cc)
851 AC_CHECK_HEADERS(m4_flatten([
895 AC_CHECK_HEADERS(net/if.h,,,
898 #include <sys/types.h>
901 #include <sys/socket.h>
905 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
906 dnl is not decleared.
907 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
908 [Define to 1 if dirent has d_reclen])],,
909 [#include <dirent.h>])
910 AC_CHECK_MEMBERS([struct stat.st_atim])
911 dnl Check to see if ssize_t was declared
912 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
913 [Define to 1 if ssize_t declared])],,
914 [#include <sys/types.h>])
916 dnl Check to see if llseek() is declared in unistd.h. On some libc's
917 dnl it is, and on others it isn't..... Thank you glibc developers....
919 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
920 [Define to 1 if llseek declared in unistd.h])],,
921 [#include <unistd.h>])
923 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
924 dnl are so convoluted that I can't tell whether it will always be defined,
925 dnl and if it isn't defined while lseek64 is defined in the library,
926 dnl disaster will strike.
928 dnl Warning! Use of --enable-gcc-wall may throw off this test.
931 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
932 [Define to 1 if lseek64 declared in unistd.h])],,
933 [#define _LARGEFILE_SOURCE
934 #define _LARGEFILE64_SOURCE
935 #include <unistd.h>])
939 AC_CHECK_SIZEOF(short)
941 AC_CHECK_SIZEOF(long)
942 AC_CHECK_SIZEOF(long long)
943 AC_CHECK_SIZEOF(off_t)
944 SIZEOF_SHORT=$ac_cv_sizeof_short
945 SIZEOF_INT=$ac_cv_sizeof_int
946 SIZEOF_LONG=$ac_cv_sizeof_long
947 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
948 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
949 AC_SUBST(SIZEOF_SHORT)
951 AC_SUBST(SIZEOF_LONG)
952 AC_SUBST(SIZEOF_LONG_LONG)
953 AC_SUBST(SIZEOF_OFF_T)
955 if test $cross_compiling = no; then
956 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
958 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
960 ASM_TYPES_HEADER=./asm_types.h
961 AC_SUBST_FILE(ASM_TYPES_HEADER)
963 dnl Save the configuration #defines needed for the public ext2fs.h
966 echo "/* These defines are needed for the public ext2fs.h header file */" \
968 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
969 uniq tmp_config.$$ >> public_config.h
971 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
973 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
974 uniq tmp_config.$$ >> public_config.h
976 echo "#undef WORDS_BIGENDIAN" >> public_config.h
979 PUBLIC_CONFIG_HEADER=./public_config.h
980 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
982 dnl See if we have inttypes.h and if intptr_t is defined
984 AC_CHECK_HEADERS([inttypes.h])
985 AC_CHECK_TYPES(intptr_t)
987 dnl See if struct stat has a st_flags field, in which case we can get file
988 dnl flags somewhat portably. Also check for the analogous setter, chflags().
990 AC_MSG_CHECKING(whether struct stat has a st_flags field)
991 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
992 AC_TRY_COMPILE([#include <sys/stat.h>],
993 [struct stat stat; stat.st_flags = 0;],
994 [e2fsprogs_cv_struct_st_flags=yes],
995 [e2fsprogs_cv_struct_st_flags=no]))
996 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
997 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
998 AC_MSG_CHECKING(whether st_flags field is useful)
999 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1000 AC_TRY_COMPILE([#include <sys/stat.h>],
1001 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1002 [e2fsprogs_cv_struct_st_flags_immut=yes],
1003 [e2fsprogs_cv_struct_st_flags_immut=no]))
1004 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1005 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1006 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1007 [Define to 1 if struct stat has st_flags])
1011 dnl Check for the presence of SA_LEN
1013 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1014 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1015 [Define to 1 if if struct sockaddr contains sa_len]),,
1016 [#include <sys/types.h>
1017 #include <sys/socket.h>])
1019 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1020 dnl the system-provided blkid library
1022 if test -n "$BLKID_CMT"; then
1023 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1026 AC_CHECK_FUNCS(m4_flatten([
1029 blkid_probe_get_topology
1030 blkid_probe_enable_partitions
1081 dnl Check to see if -lsocket is required (solaris) to make something
1082 dnl that uses socket() to compile; this is needed for the UUID library
1085 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1086 AC_SUBST(SOCKET_LIB)
1088 dnl See if optreset exists
1090 AC_MSG_CHECKING(for optreset)
1091 AC_CACHE_VAL(ac_cv_have_optreset,
1092 [AC_EGREP_HEADER(optreset, unistd.h,
1093 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1094 AC_MSG_RESULT($ac_cv_have_optreset)
1095 if test $ac_cv_have_optreset = yes; then
1096 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1099 dnl Test for sem_init, and which library it might require:
1101 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1103 AC_CHECK_FUNC(sem_init, ,
1104 AC_CHECK_LIB(pthread, sem_init,
1105 AC_DEFINE(HAVE_SEM_INIT, 1)
1106 SEM_INIT_LIB=-lpthread,
1107 AC_CHECK_LIB(rt, sem_init,
1108 AC_DEFINE(HAVE_SEM_INIT, 1)
1110 AC_CHECK_LIB(posix4, sem_init,
1111 AC_DEFINE(HAVE_SEM_INIT, 1)
1112 SEM_INIT_LIB=-lposix4))))dnl
1113 AC_SUBST(SEM_INIT_LIB)
1115 dnl Check for unified diff
1117 AC_MSG_CHECKING(for unified diff option)
1118 if diff -u $0 $0 > /dev/null 2>&1 ; then
1123 AC_MSG_RESULT($UNI_DIFF_OPTS)
1124 AC_SUBST(UNI_DIFF_OPTS)
1126 dnl We use the EXT2 ioctls only under Linux
1130 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1134 dnl OS-specific uncomment control
1149 AC_SUBST(CYGWIN_CMT)
1152 dnl Linux and Hurd places root files in the / by default
1155 linux* | gnu* | k*bsd*-gnu)
1156 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1158 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1163 dnl On Linux/hurd, force the prefix to be /usr
1166 linux* | gnu* | k*bsd*-gnu)
1167 if test "$prefix" = NONE ; then
1169 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1170 if test "$mandir" = '${prefix}/man' ; then
1171 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1172 mandir=/usr/share/man
1177 if test "$root_prefix" = NONE ; then
1178 if test "$prefix" = NONE ; then
1179 root_prefix="$ac_default_prefix"
1181 root_prefix="$prefix"
1184 root_sbindir=$sbindir
1186 root_sysconfdir=$sysconfdir
1188 root_bindir='${root_prefix}/bin'
1189 root_sbindir='${root_prefix}/sbin'
1190 root_libdir='${root_prefix}/lib'
1191 root_sysconfdir='${root_prefix}/etc'
1193 if test "$bindir" != '${exec_prefix}/bin'; then
1195 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1197 if test "$sbindir" != '${exec_prefix}/sbin'; then
1198 root_sbindir=$sbindir
1199 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1201 if test "$libdir" != '${exec_prefix}/lib'; then
1203 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1205 if test "$sysconfdir" != '${prefix}/etc'; then
1206 root_sysconfdir=$sysconfdir
1207 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1209 AC_SUBST(root_prefix)
1210 AC_SUBST(root_bindir)
1211 AC_SUBST(root_sbindir)
1212 AC_SUBST(root_libdir)
1213 AC_SUBST(root_sysconfdir)
1215 dnl Allow specification of the multiarch arch
1217 AC_ARG_WITH([multiarch],
1218 [ --with-multiarch=ARCH specify the multiarch triplet],
1219 if test "$withval" = "lib64"; then
1223 libdir=$libdir/$withval
1224 root_libdir=$root_libdir/$withval
1228 dnl See if -static works. This could fail if the linker does not
1229 dnl support -static, or if required external libraries are not available
1232 AC_MSG_CHECKING([whether we can link with -static])
1233 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1234 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1235 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1236 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1237 LDFLAGS=$SAVE_LDFLAGS])
1239 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1240 dnl This is caused by the socket library requiring the nsl library, which
1241 dnl requires the -dl library, which only works for dynamically linked
1242 dnl programs. It basically means you can't have statically linked programs
1243 dnl which use the network under Solaris.
1247 ac_cv_e2fsprogs_use_static=no
1250 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1252 if test $ac_cv_e2fsprogs_use_static = yes; then
1253 LDFLAG_STATIC=-static
1255 AC_SUBST(LDFLAG_STATIC)
1257 dnl Work around mysterious Darwin / GNU libintl problem
1258 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1259 dnl Apple hacked gcc somehow?)
1263 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1264 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1265 [Define to 1 if Apple Darwin libintl workaround is needed])
1269 dnl Make the ss and et directories work correctly.
1271 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1272 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1276 dnl Only try to run the test suite if we're not cross compiling.
1278 if test "$cross_compiling" = yes ; then
1283 AC_SUBST(DO_TEST_SUITE)
1285 dnl Only include the intl include files if we're building with them
1287 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1288 if test -n "$CPPFLAGS" ; then
1289 INCLUDES="$INCLUDES $CPPFLAGS"
1291 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1292 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1294 if test -n "$WITH_DIET_LIBC" ; then
1295 INCLUDES="$INCLUDES -D_REENTRANT"
1302 if test $cross_compiling = no; then
1303 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1304 BUILD_LDFLAGS="$LDFLAGS"
1309 AC_SUBST(BUILD_CFLAGS)
1310 AC_SUBST(BUILD_LDFLAGS)
1312 dnl Make our output files, being sure that we create the some miscellaneous
1315 test -d lib || mkdir lib
1316 test -d include || mkdir include
1317 test -d include/linux || mkdir include/linux
1318 test -d include/asm || mkdir include/asm
1319 for i in MCONFIG Makefile e2fsprogs.spec \
1320 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1321 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1322 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1323 lib/uuid/Makefile lib/uuid/uuid_types.h \
1324 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1325 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1326 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1327 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1328 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1329 resize/Makefile doc/Makefile intl/Makefile \
1330 intl/libgnuintl.h po/Makefile.in ; do
1331 if test -d `dirname ${srcdir}/$i` ; then
1332 outlist="$outlist $i"
1336 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi