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)
68 dnl Check to see if libdl exists for the sake of dlopen
71 AC_CHECK_LIB(dl, dlopen,
73 AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
79 AC_ARG_WITH([diet-libc],
80 [ --with-diet-libc use diet libc],
81 CC="diet cc -nostdinc"
83 AC_MSG_RESULT(CC=$CC))dnl
86 AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
87 AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
90 AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
91 AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
94 AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
95 AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
98 if test "$GCC" = yes; then
104 dnl Alpha computers use fast and imprecise floating point code that may
105 dnl miss exceptions by default. Force sane options if we're using GCC.
106 AC_MSG_CHECKING(for additional special compiler flags)
110 alpha) addcflags="-mieee" ;;
113 if test "x$addcflags" != x
115 AC_MSG_RESULT($addcflags)
116 CFLAGS="$addcflags $CFLAGS"
118 AC_MSG_RESULT([[(none)]])
121 dnl Set default values for library extentions. Will be dealt with after
122 dnl parsing configuration opions, which may modify these
128 dnl Allow separate `root_prefix' to be specified
130 AC_ARG_WITH([root-prefix],
131 [ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
132 root_prefix=$withval,
135 dnl handle --enable-maintainer-mode
137 AC_ARG_ENABLE([maintainer-mode],
138 [ --enable-maintainer-mode enable makefile rules useful for maintainers],
139 if test "$enableval" = "no"
142 AC_MSG_RESULT([Disabling maintainer mode])
145 AC_MSG_RESULT([Enabling maintainer mode])
149 AC_MSG_RESULT([Disabling maintainer mode by default])
151 AC_SUBST(MAINTAINER_CMT)
153 dnl handle --enable-symlink-install
155 AC_ARG_ENABLE([symlink-install],
156 [ --enable-symlink-install use symlinks when installing instead of hard links],
157 if test "$enableval" = "no"
159 LINK_INSTALL_FLAGS=-f
160 AC_MSG_RESULT([Disabling symlinks for install])
162 LINK_INSTALL_FLAGS=-sf
163 AC_MSG_RESULT([Enabling symlinks for install])
166 LINK_INSTALL_FLAGS=-f
167 AC_MSG_RESULT([Disabling symlinks for install by default])
169 AC_SUBST(LINK_INSTALL_FLAGS)
171 dnl handle --enable-relative-symlinks
173 relative_symlink_defined=
174 AC_ARG_ENABLE([relative-symlinks],
175 [ --enable-relative-symlinks use relative symlinks when installing],
176 if test "$enableval" = "no"
179 relative_symlink_defined=yes
180 AC_MSG_RESULT([Disabling relative symlinks for install])
182 SYMLINK_RELATIVE=--relative
183 relative_symlink_defined=yes
184 AC_MSG_RESULT([Enabling relative symlinks for install])
186 AC_ARG_ENABLE([symlink-relative-symlinks],,
187 if test "$enableval" = "no"
190 AC_MSG_RESULT([Disabling relative symlinks for install])
192 SYMLINK_RELATIVE=--relative
193 AC_MSG_RESULT([Enabling relative symlinks for install])
196 if test -z "$relative_symlink_defined"
199 AC_MSG_RESULT([Disabling relative symlinks for install by default])
202 AC_SUBST(SYMLINK_RELATIVE)
204 dnl handle --enable-symlink-build
206 AC_ARG_ENABLE([symlink-build],
207 [ --enable-symlink-build use symlinks while building instead of hard links],
208 if test "$enableval" = "no"
211 AC_MSG_RESULT([Disabling symlinks for build])
214 AC_MSG_RESULT([Enabling symlinks for build])
218 AC_MSG_RESULT([Disabling symlinks for build by default])
220 AC_SUBST(LINK_BUILD_FLAGS)
222 dnl handle --enable-verbose-makecmds
224 AC_ARG_ENABLE([verbose-makecmds],
225 [ --enable-verbose-makecmds enable verbose make command output],
226 if test "$enableval" = "no"
228 AC_MSG_RESULT([Disabling verbose make commands])
233 AC_MSG_RESULT([Enabling verbose make commands])
239 AC_MSG_RESULT([Disabling verbose make commands])
248 dnl handle --enable-compression
250 AC_ARG_ENABLE([compression],
251 [ --enable-compression enable EXPERIMENTAL compression support],
252 if test "$enableval" = "no"
254 AC_MSG_RESULT([Disabling compression support])
256 AC_DEFINE(ENABLE_COMPRESSION, 1,
257 [Define to 1 if ext2 compression enabled])
258 AC_MSG_RESULT([Enabling compression support])
259 AC_MSG_WARN([Compression support is experimental])
262 AC_MSG_RESULT([Disabling compression support by default])
265 dnl handle --enable-htree
267 AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
268 AC_ARG_ENABLE([htree],
269 [ --enable-htree enable EXPERIMENTAL htree directory support],
270 if test "$enableval" = "no"
273 AC_MSG_RESULT([Disabling htree directory support])
276 AC_DEFINE(ENABLE_HTREE, 1)
277 AC_MSG_RESULT([Enabling htree directory support])
281 AC_DEFINE(ENABLE_HTREE, 1)
282 AC_MSG_RESULT([Enabling htree directory support by default])
286 dnl This needs to be before all of the --enable-*-shlibs options
288 E2_PKG_CONFIG_STATIC=--static
292 dnl handle --enable-elf-shlibs
294 AC_ARG_ENABLE([elf-shlibs],
295 [ --enable-elf-shlibs select ELF shared libraries],
296 if test "$enableval" = "no"
299 MAKEFILE_ELF=/dev/null
300 AC_MSG_RESULT([Disabling ELF shared libraries])
302 E2_PKG_CONFIG_STATIC=
304 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
307 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
313 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
314 AC_MSG_RESULT([Enabling ELF shared libraries])
317 MAKEFILE_ELF=/dev/null
319 AC_MSG_RESULT([Disabling ELF shared libraries by default])
322 AC_SUBST_FILE(MAKEFILE_ELF)
324 dnl handle --enable-bsd-shlibs
326 AC_ARG_ENABLE([bsd-shlibs],
327 [ --enable-bsd-shlibs select BSD shared libraries],
328 if test "$enableval" = "no"
331 MAKEFILE_BSDLIB=/dev/null
332 AC_MSG_RESULT([Disabling BSD shared libraries])
334 E2_PKG_CONFIG_STATIC=
336 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
340 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
344 AC_MSG_RESULT([Enabling BSD shared libraries])
347 MAKEFILE_BSDLIB=/dev/null
349 AC_MSG_RESULT([Disabling BSD shared libraries by default])
352 AC_SUBST_FILE(MAKEFILE_BSDLIB)
354 dnl handle --enable-profile
356 AC_ARG_ENABLE([profile],
357 [ --enable-profile build profiling libraries],
358 if test "$enableval" = "no"
361 MAKEFILE_PROFILE=/dev/null
362 AC_MSG_RESULT([Disabling profiling libraries])
365 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
366 PROFILED_LIB_EXT=_p.a
367 AC_MSG_RESULT([Building profiling libraries])
371 MAKEFILE_PROFILE=/dev/null
372 AC_MSG_RESULT([Disabling profiling libraries by default])
374 AC_SUBST(PROFILE_CMT)
375 AC_SUBST_FILE(MAKEFILE_PROFILE)
377 dnl handle --enable-checker
379 AC_ARG_ENABLE([checker],
380 [ --enable-checker build checker libraries],
381 if test "$enableval" = "no"
384 MAKEFILE_CHECKER=/dev/null
385 AC_MSG_RESULT([Disabling checker libraries])
388 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
389 AC_MSG_RESULT([Building checker libraries])
393 MAKEFILE_CHECKER=/dev/null
394 AC_MSG_RESULT([Disabling checker libraries by default])
396 AC_SUBST(CHECKER_CMT)
397 AC_SUBST_FILE(MAKEFILE_CHECKER)
399 dnl Substitute library extensions
402 AC_SUBST(STATIC_LIB_EXT)
403 AC_SUBST(PROFILED_LIB_EXT)
404 AC_SUBST(LDFLAG_DYNAMIC)
405 AC_SUBST(PRIVATE_LIBS_CMT)
407 dnl handle --enable-jbd-debug
409 AC_ARG_ENABLE([jbd-debug],
410 [ --enable-jbd-debug enable journal debugging],
411 if test "$enableval" = "no"
413 AC_MSG_RESULT([Disabling journal debugging])
415 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
416 [Define to 1 if debugging ext3/4 journal code])
417 AC_MSG_RESULT([Enabling journal debugging])
420 AC_MSG_RESULT([Disabling journal debugging by default])
423 dnl handle --enable-blkid-debug
425 AC_ARG_ENABLE([blkid-debug],
426 [ --enable-blkid-debug enable blkid debugging],
427 if test "$enableval" = "no"
429 AC_MSG_RESULT([Disabling blkid debugging])
431 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
432 [Define to 1 if debugging the blkid library])
433 AC_MSG_RESULT([Enabling blkid debugging])
436 AC_MSG_RESULT([Disabling blkid debugging by default])
439 dnl handle --enable-testio-debug
441 AC_ARG_ENABLE([testio-debug],
442 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
443 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
444 [Define to 1 if the testio I/O manager should be enabled])
445 if test "$enableval" = "no"
447 AC_MSG_RESULT([Disabling testio debugging])
451 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
452 AC_MSG_RESULT([Enabling testio debugging])
455 AC_MSG_RESULT([Enabling testio debugging by default])
456 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
459 AC_SUBST(TEST_IO_CMT)
461 dnl handle --disable-libuuid
471 AC_ARG_ENABLE([libuuid],
472 [ --disable-libuuid do not build private uuid library],
473 if test "$enableval" = "no"
475 if test -z "$PKG_CONFIG"; then
476 AC_MSG_ERROR([pkg-config not installed; please install it.])
479 AC_CHECK_LIB(uuid, uuid_generate,
480 [LIBUUID=`$PKG_CONFIG --libs uuid`;
481 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
482 [AC_MSG_ERROR([external uuid library not found])],
485 AC_MSG_RESULT([Disabling private uuid library])
487 LIBUUID='$(LIB)/libuuid'$LIB_EXT
489 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
490 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
491 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
492 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
493 AC_MSG_RESULT([Enabling private uuid library])
496 LIBUUID='$(LIB)/libuuid'$LIB_EXT
498 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
499 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
500 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
501 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
502 AC_MSG_RESULT([Enabling private uuid library by default])
506 AC_SUBST(STATIC_LIBUUID)
507 AC_SUBST(DEPSTATIC_LIBUUID)
508 AC_SUBST(PROFILED_LIBUUID)
509 AC_SUBST(DEPPROFILED_LIBUUID)
512 dnl handle --disable-libblkid
520 DEPPROFILED_LIBBLKID=
522 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
523 AC_ARG_ENABLE([libblkid],
524 [ --disable-libblkid do not build private blkid library],
525 if test "$enableval" = "no"
527 if test -z "$PKG_CONFIG"; then
528 AC_MSG_ERROR([pkg-config not installed; please install it.])
531 AC_CHECK_LIB(blkid, blkid_get_cache,
532 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
533 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
534 [AC_MSG_ERROR([external blkid library not found])],
537 AC_MSG_RESULT([Disabling private blkid library])
539 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
540 DEPLIBBLKID=$LIBBLKID
541 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
542 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
543 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
544 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
545 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
546 AC_MSG_RESULT([Enabling private blkid library])
549 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
550 DEPLIBBLKID=$LIBBLKID
551 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
552 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
553 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
554 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
555 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
556 AC_MSG_RESULT([Enabling private blkid library by default])
559 AC_SUBST(DEPLIBBLKID)
560 AC_SUBST(STATIC_LIBBLKID)
561 AC_SUBST(DEPSTATIC_LIBBLKID)
562 AC_SUBST(PROFILED_LIBBLKID)
563 AC_SUBST(DEPPROFILED_LIBBLKID)
566 dnl handle --enable-quota
568 QUOTA_MAN_COMMENT='.\"'
569 AC_SUBST(QUOTA_MAN_COMMENT)
571 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
572 AC_ARG_ENABLE([quota],
573 [ --enable-quota enable quota support],
574 if test "$enableval" = "no"
576 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)
584 AC_MSG_RESULT([Disabling quota support by default])
587 dnl Define stuff expected for quota library
589 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
590 DEPLIBQUOTA=$LIBQUOTA
591 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
592 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
593 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
594 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
596 AC_SUBST(DEPLIBQUOTA)
597 AC_SUBST(STATIC_LIBQUOTA)
598 AC_SUBST(DEPSTATIC_LIBQUOTA)
599 AC_SUBST(PROFILED_LIBQUOTA)
600 AC_SUBST(DEPPROFILED_LIBQUOTA)
603 dnl handle --disable-backtrace
605 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
606 AC_ARG_ENABLE([backtrace],
607 [ --disable-backtrace disable use backtrace],
608 if test "$enableval" = "no"
610 AC_MSG_RESULT([Disabling use of backtrace])
611 AC_DEFINE(DISABLE_BACKTRACE, 1)
613 AC_MSG_RESULT([Enabling use of backtrace])
616 AC_MSG_RESULT([Enabling use of backtrace by default])
619 dnl handle --enable-debugfs
621 AC_ARG_ENABLE([debugfs],
622 [ --disable-debugfs disable support of debugfs program],
623 if test "$enableval" = "no"
625 AC_MSG_RESULT([Disabling debugfs support])
629 AC_MSG_RESULT([Enabling debugfs support])
632 AC_MSG_RESULT([Enabling debugfs support by default])
635 AC_SUBST(DEBUGFS_CMT)
637 dnl handle --enable-imager
639 AC_ARG_ENABLE([imager],
640 [ --disable-imager disable support of e2image program],
641 if test "$enableval" = "no"
643 AC_MSG_RESULT([Disabling e2image support])
647 AC_MSG_RESULT([Enabling e2image support])
650 AC_MSG_RESULT([Enabling e2image support by default])
655 dnl handle --enable-resizer
657 AC_ARG_ENABLE([resizer],
658 [ --disable-resizer disable support of e2resize program],
659 if test "$enableval" = "no"
661 AC_MSG_RESULT([Disabling e2resize support])
665 AC_MSG_RESULT([Enabling e2resize support])
668 AC_MSG_RESULT([Enabling e2resize support by default])
671 AC_SUBST(RESIZER_CMT)
673 dnl handle --enable-defrag
675 AC_ARG_ENABLE([defrag],
676 [ --disable-defrag disable support of e4defrag program],
677 if test "$enableval" = "no"
679 AC_MSG_RESULT([Disabling e4defrag support])
683 AC_MSG_RESULT([Enabling e4defrag support])
686 AC_MSG_RESULT([Enabling e4defrag support by default])
691 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
693 AC_ARG_ENABLE([fsck],
694 [ --enable-fsck build fsck wrapper program],
695 [if test "$enableval" = "no"
697 FSCK_PROG='' FSCK_MAN=''
698 AC_MSG_RESULT([Not building fsck wrapper])
700 FSCK_PROG=fsck FSCK_MAN=fsck.8
701 AC_MSG_RESULT([Building fsck wrapper])
706 FSCK_PROG='' FSCK_MAN=''
707 AC_MSG_RESULT([Not building fsck wrapper by default])
710 FSCK_PROG=fsck FSCK_MAN=fsck.8
711 AC_MSG_RESULT([Building fsck wrapper by default])
717 dnl See whether to install the `e2initrd-helper' program
719 AC_ARG_ENABLE([e2initrd-helper],
720 [ --enable-e2initrd-helper build e2initrd-helper program],
721 [if test "$enableval" = "no"
723 E2INITRD_PROG='' E2INITRD_MAN=''
724 AC_MSG_RESULT([Not building e2initrd helper])
726 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
727 AC_MSG_RESULT([Building e2initrd helper])
730 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
731 AC_MSG_RESULT([Building e2initrd helper by default])
733 AC_SUBST(E2INITRD_PROG)
734 AC_SUBST(E2INITRD_MAN)
739 [ --disable-tls disable use of thread local support],
740 [if test "$enableval" = "no"
743 AC_MSG_RESULT([Disabling thread local support])
746 AC_MSG_RESULT([Enabling thread local support])
749 if test -n "$WITH_DIET_LIBC"
752 AC_MSG_RESULT([Diet libc does not support thread local support])
755 AC_MSG_RESULT([Try using thread local support by default])
758 if test "$try_tls" = "yes"
765 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
766 AC_ARG_ENABLE([uuidd],
767 [ --disable-uuidd disable building the uuid daemon],
768 [if test "$enableval" = "no"
770 AC_MSG_RESULT([Not building uuidd])
773 AC_DEFINE(USE_UUIDD, 1)
775 AC_MSG_RESULT([Building uuidd])
778 AC_DEFINE(USE_UUIDD, 1)
780 AC_MSG_RESULT([Building uuidd by default])
786 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
787 AC_SUBST_FILE(MAKEFILE_LIBRARY)
789 dnl Add internationalization support, using gettext.
791 GETTEXT_PACKAGE=e2fsprogs
793 VERSION="$E2FSPROGS_VERSION"
795 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
796 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
797 AC_SUBST(GETTEXT_PACKAGE)
803 dnl End of configuration options
805 AC_SUBST(BINARY_TYPE)
808 AC_PATH_PROG(LN, ln, ln)
810 AC_PATH_PROG(MV, mv, mv)
811 AC_PATH_PROG(CP, cp, cp)
812 AC_PATH_PROG(RM, rm, rm)
813 AC_PATH_PROG(CHMOD, chmod, :)
816 AC_PATH_PROG(SED, sed, sed)
817 AC_PATH_PROG(PERL, perl, perl)
818 AC_PATH_PROG(LDCONFIG, ldconfig, :)
819 AC_CHECK_TOOL(AR, ar, ar)
820 AC_CHECK_TOOL(RANLIB, ranlib, :)
821 AC_CHECK_TOOL(STRIP, strip, :)
822 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
823 if test "_$MAKEINFO" = "_"; then
824 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
829 *** Makeinfo is missing. Info documentation will not be built.])
837 # See if we need a separate native compiler.
838 if test $cross_compiling = no; then
842 AC_CHECK_PROGS(BUILD_CC, gcc cc)
844 AC_CHECK_HEADERS(m4_flatten([
886 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
889 #include <sys/queue.h>
892 AC_CHECK_HEADERS(net/if.h,,,
895 #include <sys/types.h>
898 #include <sys/socket.h>
902 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
903 dnl is not decleared.
904 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
905 [Define to 1 if dirent has d_reclen])],,
906 [#include <dirent.h>])
907 dnl Check to see if ssize_t was declared
908 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
909 [Define to 1 if ssize_t declared])],,
910 [#include <sys/types.h>])
912 dnl Check to see if llseek() is declared in unistd.h. On some libc's
913 dnl it is, and on others it isn't..... Thank you glibc developers....
915 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
916 [Define to 1 if llseek declared in unistd.h])],,
917 [#include <unistd.h>])
919 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
920 dnl are so convoluted that I can't tell whether it will always be defined,
921 dnl and if it isn't defined while lseek64 is defined in the library,
922 dnl disaster will strike.
924 dnl Warning! Use of --enable-gcc-wall may throw off this test.
927 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
928 [Define to 1 if lseek64 declared in unistd.h])],,
929 [#define _LARGEFILE_SOURCE
930 #define _LARGEFILE64_SOURCE
931 #include <unistd.h>])
935 AC_CHECK_SIZEOF(short)
937 AC_CHECK_SIZEOF(long)
938 AC_CHECK_SIZEOF(long long)
939 AC_CHECK_SIZEOF(off_t)
940 SIZEOF_SHORT=$ac_cv_sizeof_short
941 SIZEOF_INT=$ac_cv_sizeof_int
942 SIZEOF_LONG=$ac_cv_sizeof_long
943 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
944 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
945 AC_SUBST(SIZEOF_SHORT)
947 AC_SUBST(SIZEOF_LONG)
948 AC_SUBST(SIZEOF_LONG_LONG)
949 AC_SUBST(SIZEOF_OFF_T)
951 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
952 ASM_TYPES_HEADER=./asm_types.h
953 AC_SUBST_FILE(ASM_TYPES_HEADER)
955 dnl Save the configuration #defines needed for the public ext2fs.h
958 echo "/* These defines are needed for the public ext2fs.h header file */" \
960 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
961 uniq tmp_config.$$ >> public_config.h
963 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
965 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
966 uniq tmp_config.$$ >> public_config.h
968 echo "#undef WORDS_BIGENDIAN" >> public_config.h
971 PUBLIC_CONFIG_HEADER=./public_config.h
972 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
974 dnl See if we have inttypes.h and if intptr_t is defined
976 AC_CHECK_HEADERS([inttypes.h])
977 AC_CHECK_TYPES(intptr_t)
979 dnl See if struct stat has a st_flags field, in which case we can get file
980 dnl flags somewhat portably. Also check for the analogous setter, chflags().
982 AC_MSG_CHECKING(whether struct stat has a st_flags field)
983 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
984 AC_TRY_COMPILE([#include <sys/stat.h>],
985 [struct stat stat; stat.st_flags = 0;],
986 [e2fsprogs_cv_struct_st_flags=yes],
987 [e2fsprogs_cv_struct_st_flags=no]))
988 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
989 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
990 AC_MSG_CHECKING(whether st_flags field is useful)
991 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
992 AC_TRY_COMPILE([#include <sys/stat.h>],
993 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
994 [e2fsprogs_cv_struct_st_flags_immut=yes],
995 [e2fsprogs_cv_struct_st_flags_immut=no]))
996 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
997 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
998 AC_DEFINE(HAVE_STAT_FLAGS, 1,
999 [Define to 1 if struct stat has st_flags])
1003 dnl Check for the presence of SA_LEN
1005 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1006 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1007 [Define to 1 if if struct sockaddr contains sa_len]),,
1008 [#include <sys/types.h>
1009 #include <sys/socket.h>])
1011 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1012 dnl the system-provided blkid library
1014 if test -n "$BLKID_CMT"; then
1015 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1018 AC_CHECK_FUNCS(m4_flatten([
1021 blkid_probe_get_topology
1065 dnl Check to see if -lsocket is required (solaris) to make something
1066 dnl that uses socket() to compile; this is needed for the UUID library
1069 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1070 AC_SUBST(SOCKET_LIB)
1072 dnl See if optreset exists
1074 AC_MSG_CHECKING(for optreset)
1075 AC_CACHE_VAL(ac_cv_have_optreset,
1076 [AC_EGREP_HEADER(optreset, unistd.h,
1077 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1078 AC_MSG_RESULT($ac_cv_have_optreset)
1079 if test $ac_cv_have_optreset = yes; then
1080 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1083 dnl Test for sem_init, and which library it might require:
1085 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1087 AC_CHECK_FUNC(sem_init, ,
1088 AC_CHECK_LIB(pthread, sem_init,
1089 AC_DEFINE(HAVE_SEM_INIT, 1)
1090 SEM_INIT_LIB=-lpthread,
1091 AC_CHECK_LIB(rt, sem_init,
1092 AC_DEFINE(HAVE_SEM_INIT, 1)
1094 AC_CHECK_LIB(posix4, sem_init,
1095 AC_DEFINE(HAVE_SEM_INIT, 1)
1096 SEM_INIT_LIB=-lposix4))))dnl
1097 AC_SUBST(SEM_INIT_LIB)
1099 dnl Check for unified diff
1101 AC_MSG_CHECKING(for unified diff option)
1102 if diff -u $0 $0 > /dev/null 2>&1 ; then
1107 AC_MSG_RESULT($UNI_DIFF_OPTS)
1108 AC_SUBST(UNI_DIFF_OPTS)
1110 dnl We use the EXT2 ioctls only under Linux
1114 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1118 dnl OS-specific uncomment control
1133 AC_SUBST(CYGWIN_CMT)
1136 dnl Linux and Hurd places root files in the / by default
1139 linux* | gnu* | k*bsd*-gnu)
1140 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1142 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1147 dnl On Linux/hurd, force the prefix to be /usr
1150 linux* | gnu* | k*bsd*-gnu)
1151 if test "$prefix" = NONE ; then
1153 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1154 if test "$mandir" = '${prefix}/man' ; then
1155 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1156 mandir=/usr/share/man
1161 if test "$root_prefix" = NONE ; then
1162 if test "$prefix" = NONE ; then
1163 root_prefix="$ac_default_prefix"
1165 root_prefix="$prefix"
1168 root_sbindir=$sbindir
1170 root_sysconfdir=$sysconfdir
1172 root_bindir='${root_prefix}/bin'
1173 root_sbindir='${root_prefix}/sbin'
1174 root_libdir='${root_prefix}/lib'
1175 root_sysconfdir='${root_prefix}/etc'
1177 if test "$bindir" != '${exec_prefix}/bin'; then
1179 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1181 if test "$sbindir" != '${exec_prefix}/sbin'; then
1182 root_sbindir=$sbindir
1183 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1185 if test "$libdir" != '${exec_prefix}/lib'; then
1187 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1189 if test "$sysconfdir" != '${prefix}/etc'; then
1190 root_sysconfdir=$sysconfdir
1191 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1193 AC_SUBST(root_prefix)
1194 AC_SUBST(root_bindir)
1195 AC_SUBST(root_sbindir)
1196 AC_SUBST(root_libdir)
1197 AC_SUBST(root_sysconfdir)
1199 dnl Allow specification of the multiarch arch
1201 AC_ARG_WITH([multiarch],
1202 [ --with-multiarch=ARCH specify the multiarch triplet],
1203 libdir=$libdir/$withval
1204 root_libdir=$root_libdir/$withval
1207 dnl See if -static works. This could fail if the linker does not
1208 dnl support -static, or if required external libraries are not available
1211 AC_MSG_CHECKING([whether we can link with -static])
1212 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1213 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1214 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1215 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1216 LDFLAGS=$SAVE_LDFLAGS])
1218 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1219 dnl This is caused by the socket library requiring the nsl library, which
1220 dnl requires the -dl library, which only works for dynamically linked
1221 dnl programs. It basically means you can't have statically linked programs
1222 dnl which use the network under Solaris.
1226 ac_cv_e2fsprogs_use_static=no
1229 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1231 if test $ac_cv_e2fsprogs_use_static = yes; then
1232 LDFLAG_STATIC=-static
1234 AC_SUBST(LDFLAG_STATIC)
1236 dnl Work around mysterious Darwin / GNU libintl problem
1237 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1238 dnl Apple hacked gcc somehow?)
1242 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1243 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1244 [Define to 1 if Apple Darwin libintl workaround is needed])
1248 dnl Make the ss and et directories work correctly.
1250 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1251 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1255 dnl Only try to run the test suite if we're not cross compiling.
1257 if test "$cross_compiling" = yes ; then
1262 AC_SUBST(DO_TEST_SUITE)
1264 dnl Only include the intl include files if we're building with them
1266 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1267 if test -n "$CPPFLAGS" ; then
1268 INCLUDES="$INCLUDES $CPPFLAGS"
1270 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1271 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1277 if test $cross_compiling = no; then
1278 BUILD_CFLAGS="$CFLAGS $CPPFLAGS"
1279 BUILD_LDFLAGS="$LDFLAGS"
1284 AC_SUBST(BUILD_CFLAGS)
1285 AC_SUBST(BUILD_LDFLAGS)
1287 dnl Make our output files, being sure that we create the some miscellaneous
1290 test -d lib || mkdir lib
1291 test -d include || mkdir include
1292 test -d include/linux || mkdir include/linux
1293 test -d include/asm || mkdir include/asm
1294 for i in MCONFIG Makefile e2fsprogs.spec \
1295 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1296 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1297 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1298 lib/uuid/Makefile lib/uuid/uuid_types.h \
1299 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1300 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1301 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1302 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1303 debugfs/Makefile tests/Makefile tests/progs/Makefile \
1304 resize/Makefile doc/Makefile intl/Makefile \
1305 intl/libgnuintl.h po/Makefile.in ; do
1306 if test -d `dirname ${srcdir}/$i` ; then
1307 outlist="$outlist $i"
1311 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi