3 AC_CONFIG_AUX_DIR(config)
8 dnl This is to figure out the version number and the date....
10 E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
11 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
12 DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
14 E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
15 MONTH=`echo $DATE | awk -F- '{print $2}'`
16 YEAR=`echo $DATE | awk -F- '{print $3}'`
18 if expr $YEAR ">" 1900 > /dev/null ; then
20 elif expr $YEAR ">" 90 >/dev/null ; then
21 E2FSPROGS_YEAR=19$YEAR
23 E2FSPROGS_YEAR=20$YEAR
27 Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
28 Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
29 Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
30 Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
31 May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
32 Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
33 Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
34 Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
35 Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
36 Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
37 Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
38 Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
39 *) AC_MSG_WARN([Unknown month $MONTH??]) ;;
42 base_ver=`echo $E2FSPROGS_VERSION | \
43 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
45 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
47 case $E2FSPROGS_VERSION in
49 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
52 E2FSPROGS_PKGVER="$base_ver"
56 unset DATE MONTH YEAR base_ver pre_vers date_spec
57 AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
58 AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
59 AC_SUBST(E2FSPROGS_YEAR)
60 AC_SUBST(E2FSPROGS_MONTH)
61 AC_SUBST(E2FSPROGS_DAY)
62 AC_SUBST(E2FSPROGS_VERSION)
63 AC_SUBST(E2FSPROGS_PKGVER)
69 AC_ARG_WITH([diet-libc],
70 [ --with-diet-libc use diet libc],
71 CC="diet cc -nostdinc"
73 AC_MSG_RESULT(CC=$CC))dnl
75 dnl set $(CC) from --with-cc=value
78 [ --with-cc=COMPILER select compiler to use],
79 AC_MSG_RESULT(CC=$withval)
81 if test -z "$CC" ; then CC=cc; fi
82 [AC_MSG_RESULT(CC defaults to $CC)])dnl
88 dnl set $(LD) from --with-linker=value
91 [ --with-linker=LINKER select linker to use],
92 AC_MSG_RESULT(LD=$withval)
94 if test -z "$LD" ; then LD=$CC; fi
95 [AC_MSG_RESULT(LD defaults to $LD)])dnl
99 dnl set $(CCOPTS) from --with-ccopts=value
101 AC_ARG_WITH([ccopts],
102 [ --with-ccopts=CCOPTS select compiler command line options],
103 AC_MSG_RESULT(CCOPTS is $withval)
107 dnl On systems without linux header files, we add an extra include directory
108 dnl that holds enough to fake it (hopefully). Note that the $(top_srcdir) here
109 dnl is quoted so that it gets expanded by make, not by configure.
111 AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
112 if test "$linux_headers" != yes; then
113 LINUX_INCLUDE='-I$(top_builddir)/include'
115 AC_SUBST(LINUX_INCLUDE)
117 dnl Alpha computers use fast and imprecise floating point code that may
118 dnl miss exceptions by default. Force sane options if we're using GCC.
119 AC_MSG_CHECKING(for additional special compiler flags)
123 alpha) addcflags="-mieee" ;;
126 if test "x$addcflags" != x
128 AC_MSG_RESULT($addcflags)
129 CFLAGS="$addcflags $CFLAGS"
131 AC_MSG_RESULT([[(none)]])
134 dnl Set default values for library extentions. Will be dealt with after
135 dnl parsing configuration opions, which may modify these
141 dnl set $(LDFLAGS) from --with-ldopts=value
143 AC_ARG_WITH([ldopts],
144 [ --with-ldopts=LDOPTS select linker command line options],
145 AC_MSG_RESULT(LDFLAGS is $withval)
150 dnl Allow separate `root_prefix' to be specified
152 AC_ARG_WITH([root-prefix],
153 [ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
154 root_prefix=$withval,
157 dnl handle --enable-maintainer-mode
159 AC_ARG_ENABLE([maintainer-mode],
160 [ --enable-maintainer-mode enable makefile rules useful for maintainers],
161 if test "$enableval" = "no"
164 AC_MSG_RESULT([Disabling maintainer mode])
167 AC_MSG_RESULT([Enabling maintainer mode])
171 AC_MSG_RESULT([Disabling maintainer mode by default])
173 AC_SUBST(MAINTAINER_CMT)
175 dnl handle --enable-compression
177 AC_ARG_ENABLE([compression],
178 [ --enable-compression enable EXPERIMENTAL compression support],
179 if test "$enableval" = "no"
181 AC_MSG_RESULT([Disabling compression support])
183 AC_DEFINE(ENABLE_COMPRESSION)
184 AC_MSG_RESULT([Enabling compression support])
185 AC_MSG_WARN([Compression support is experimental])
188 AC_MSG_RESULT([Disabling compression support by default])
191 dnl handle --enable-htree
193 AC_ARG_ENABLE([htree],
194 [ --enable-htree enable EXPERIMENTAL htree directory support],
195 if test "$enableval" = "no"
198 AC_MSG_RESULT([Disabling htree directory support])
201 AC_DEFINE(ENABLE_HTREE)
202 AC_MSG_RESULT([Enabling htree directory support])
206 AC_DEFINE(ENABLE_HTREE)
207 AC_MSG_RESULT([Enabling htree directory support by default])
211 dnl This needs to be before all of the --enable-*-shlibs options
213 E2_PKG_CONFIG_STATIC=--static
217 dnl handle --enable-elf-shlibs
219 AC_ARG_ENABLE([elf-shlibs],
220 [ --enable-elf-shlibs select ELF shared libraries],
221 if test "$enableval" = "no"
224 MAKEFILE_ELF=/dev/null
225 AC_MSG_RESULT([Disabling ELF shared libraries])
227 E2_PKG_CONFIG_STATIC=
229 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
232 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
238 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
239 AC_MSG_RESULT([Enabling ELF shared libraries])
242 MAKEFILE_ELF=/dev/null
244 AC_MSG_RESULT([Disabling ELF shared libraries by default])
247 AC_SUBST_FILE(MAKEFILE_ELF)
249 dnl handle --enable-bsd-shlibs
251 AC_ARG_ENABLE([bsd-shlibs],
252 [ --enable-bsd-shlibs select BSD shared libraries],
253 if test "$enableval" = "no"
256 MAKEFILE_BSDLIB=/dev/null
257 AC_MSG_RESULT([Disabling BSD shared libraries])
259 E2_PKG_CONFIG_STATIC=
261 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
265 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
269 AC_MSG_RESULT([Enabling BSD shared libraries])
272 MAKEFILE_BSDLIB=/dev/null
274 AC_MSG_RESULT([Disabling BSD shared libraries by default])
277 AC_SUBST_FILE(MAKEFILE_BSDLIB)
279 dnl handle --enable-profile
281 AC_ARG_ENABLE([profile],
282 [ --enable-profile build profiling libraries],
283 if test "$enableval" = "no"
286 MAKEFILE_PROFILE=/dev/null
287 AC_MSG_RESULT([Disabling profiling libraries])
290 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
291 PROFILED_LIB_EXT=_p.a
292 AC_MSG_RESULT([Building profiling libraries])
296 MAKEFILE_PROFILE=/dev/null
297 AC_MSG_RESULT([Disabling profiling libraries by default])
299 AC_SUBST(PROFILE_CMT)
300 AC_SUBST_FILE(MAKEFILE_PROFILE)
302 dnl handle --enable-checker
304 AC_ARG_ENABLE([checker],
305 [ --enable-checker build checker libraries],
306 if test "$enableval" = "no"
309 MAKEFILE_CHECKER=/dev/null
310 AC_MSG_RESULT([Disabling checker libraries])
313 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
314 AC_MSG_RESULT([Building checker libraries])
318 MAKEFILE_CHECKER=/dev/null
319 AC_MSG_RESULT([Disabling checker libraries by default])
321 AC_SUBST(CHECKER_CMT)
322 AC_SUBST_FILE(MAKEFILE_CHECKER)
324 dnl Substitute library extensions
327 AC_SUBST(STATIC_LIB_EXT)
328 AC_SUBST(PROFILED_LIB_EXT)
329 AC_SUBST(LDFLAG_DYNAMIC)
330 AC_SUBST(PRIVATE_LIBS_CMT)
332 dnl handle --enable-jbd-debug
334 AC_ARG_ENABLE([jbd-debug],
335 [ --enable-jbd-debug enable journal debugging],
336 if test "$enableval" = "no"
338 AC_MSG_RESULT([Disabling journal debugging])
340 AC_DEFINE(CONFIG_JBD_DEBUG)
341 AC_MSG_RESULT([Enabling journal debugging])
344 AC_MSG_RESULT([Disabling journal debugging by default])
347 dnl handle --enable-blkid-debug
349 AC_ARG_ENABLE([blkid-debug],
350 [ --enable-blkid-debug enable blkid debugging],
351 if test "$enableval" = "no"
353 AC_MSG_RESULT([Disabling blkid debugging])
355 AC_DEFINE(CONFIG_BLKID_DEBUG)
356 AC_MSG_RESULT([Enabling blkid debugging])
359 AC_MSG_RESULT([Disabling blkid debugging by default])
362 dnl handle --enable-testio-debug
364 AC_ARG_ENABLE([testio-debug],
365 [ --disable-testio-debug disable the use of the test I/O manager for debugging],
366 if test "$enableval" = "no"
368 AC_MSG_RESULT([Disabling testio debugging])
372 AC_DEFINE(CONFIG_TESTIO_DEBUG)
373 AC_MSG_RESULT([Enabling testio debugging])
376 AC_MSG_RESULT([Enabling testio debugging by default])
377 AC_DEFINE(CONFIG_TESTIO_DEBUG)
380 AC_SUBST(TEST_IO_CMT)
382 dnl handle --enable-debugfs
384 AC_ARG_ENABLE([debugfs],
385 [ --disable-debugfs disable support of debugfs program],
386 if test "$enableval" = "no"
388 AC_MSG_RESULT([Disabling debugfs support])
392 AC_MSG_RESULT([Enabling debugfs support])
395 AC_MSG_RESULT([Enabling debugfs support by default])
398 AC_SUBST(DEBUGFS_CMT)
400 dnl handle --enable-imager
402 AC_ARG_ENABLE([imager],
403 [ --disable-imager disable support of e2image program],
404 if test "$enableval" = "no"
406 AC_MSG_RESULT([Disabling e2image support])
410 AC_MSG_RESULT([Enabling e2image support])
413 AC_MSG_RESULT([Enabling e2image support by default])
418 dnl handle --enable-resizer
420 AC_ARG_ENABLE([resizer],
421 [ --disable-resizer disable support of e2resize program],
422 if test "$enableval" = "no"
424 AC_MSG_RESULT([Disabling e2resize support])
428 AC_MSG_RESULT([Enabling e2resize support])
431 AC_MSG_RESULT([Enabling e2resize support by default])
434 AC_SUBST(RESIZER_CMT)
436 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
438 AC_ARG_ENABLE([fsck],
439 [ --enable-fsck build fsck wrapper program],
440 [if test "$enableval" = "no"
442 FSCK_PROG='' FSCK_MAN=''
443 AC_MSG_RESULT([Not building fsck wrapper])
445 FSCK_PROG=fsck FSCK_MAN=fsck.8
446 AC_MSG_RESULT([Building fsck wrapper])
451 FSCK_PROG='' FSCK_MAN=''
452 AC_MSG_RESULT([Not building fsck wrapper by default])
455 FSCK_PROG=fsck FSCK_MAN=fsck.8
456 AC_MSG_RESULT([Building fsck wrapper by default])
462 dnl See whether to install the `e2initrd-helper' program
464 AC_ARG_ENABLE([e2initrd-helper],
465 [ --enable-e2initrd-helper build e2initrd-helper program],
466 [if test "$enableval" = "no"
468 E2INITRD_PROG='' E2INITRD_MAN=''
469 AC_MSG_RESULT([Not building e2initrd helper])
471 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
472 AC_MSG_RESULT([Building e2initrd helper])
475 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
476 AC_MSG_RESULT([Building e2initrd helper by default])
478 AC_SUBST(E2INITRD_PROG)
479 AC_SUBST(E2INITRD_MAN)
484 [ --disable-tls disable use of thread local support],
485 [if test "$enableval" = "no"
488 AC_MSG_RESULT([Disabling thread local support])
491 AC_MSG_RESULT([Enabling thread local support])
494 if test -n "$WITH_DIET_LIBC"
497 AC_MSG_RESULT([Diet libc does not support thread local support])
500 AC_MSG_RESULT([Try using thread local support by default])
503 if test "$try_tls" = "yes"
510 AC_ARG_ENABLE([uuidd],
511 [ --disable-uuidd disable building the uuid daemon],
512 [if test "$enableval" = "no"
514 AC_MSG_RESULT([Not building uuidd])
519 AC_MSG_RESULT([Building uuidd])
524 AC_MSG_RESULT([Building uuidd by default])
530 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
531 AC_SUBST_FILE(MAKEFILE_LIBRARY)
533 dnl Add internationalization support, using gettext.
535 GETTEXT_PACKAGE=e2fsprogs
537 VERSION="$E2FSPROGS_VERSION"
539 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
540 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
541 AC_SUBST(GETTEXT_PACKAGE)
547 dnl End of configuration options
549 AC_SUBST(BINARY_TYPE)
551 AC_PATH_PROG(LN, ln, ln)
553 AC_PATH_PROG(MV, mv, mv)
554 AC_PATH_PROG(CP, cp, cp)
555 AC_PATH_PROG(RM, rm, rm)
556 AC_PATH_PROG(CHMOD, chmod, :)
559 AC_PATH_PROG(SED, sed, sed)
560 AC_PATH_PROG(PERL, perl, perl)
561 AC_PATH_PROG(LDCONFIG, ldconfig, :)
562 AC_CHECK_TOOL(AR, ar, ar)
563 AC_CHECK_TOOL(RANLIB, ranlib, :)
564 AC_CHECK_TOOL(STRIP, strip, :)
565 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
566 if test "_$MAKEINFO" = "_"; then
567 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
572 *** Makeinfo is missing. Info documentation will not be built.])
580 # See if we need a separate native compiler.
581 if test $cross_compiling = no; then
585 AC_CHECK_PROGS(BUILD_CC, gcc cc)
587 AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h)
588 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
591 #include <sys/queue.h>
594 AC_CHECK_HEADERS(net/if.h,,,
597 #include <sys/types.h>
600 #include <sys/socket.h>
604 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
605 dnl is not decleared.
606 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
607 [#include <dirent.h>])
608 dnl Check to see if ssize_t was decleared
609 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
610 [#include <sys/types.h>])
612 dnl Check to see if llseek() is declared in unistd.h. On some libc's
613 dnl it is, and on others it isn't..... Thank you glibc developers....
615 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
616 [#include <unistd.h>])
618 dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
619 dnl are so convoluted that I can't tell whether it will always be defined,
620 dnl and if it isn't defined while lseek64 is defined in the library,
621 dnl disaster will strike.
623 dnl Warning! Use of --enable-gcc-wall may throw off this test.
626 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
627 [#define _LARGEFILE_SOURCE
628 #define _LARGEFILE64_SOURCE
629 #include <unistd.h>])
633 AC_CHECK_SIZEOF(short)
635 AC_CHECK_SIZEOF(long)
636 AC_CHECK_SIZEOF(long long)
637 SIZEOF_SHORT=$ac_cv_sizeof_short
638 SIZEOF_INT=$ac_cv_sizeof_int
639 SIZEOF_LONG=$ac_cv_sizeof_long
640 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
641 AC_SUBST(SIZEOF_SHORT)
643 AC_SUBST(SIZEOF_LONG)
644 AC_SUBST(SIZEOF_LONG_LONG)
646 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
647 ASM_TYPES_HEADER=./asm_types.h
648 AC_SUBST_FILE(ASM_TYPES_HEADER)
650 dnl Save the configuration #defines needed for the public ext2fs.h
653 echo "/* These defines are needed for the public ext2fs.h header file */" \
655 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
656 uniq tmp_config.$$ >> public_config.h
658 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
660 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
661 uniq tmp_config.$$ >> public_config.h
663 echo "#undef WORDS_BIGENDIAN" >> public_config.h
666 PUBLIC_CONFIG_HEADER=./public_config.h
667 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
669 dnl See if we have inttypes.h and if intptr_t is defined
671 AC_CHECK_HEADERS([inttypes.h])
672 AC_CHECK_TYPES(intptr_t)
674 dnl See if struct stat has a st_flags field, in which case we can get file
675 dnl flags somewhat portably. Also check for the analogous setter, chflags().
677 AC_MSG_CHECKING(whether struct stat has a st_flags field)
678 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
679 AC_TRY_COMPILE([#include <sys/stat.h>],
680 [struct stat stat; stat.st_flags = 0;],
681 [e2fsprogs_cv_struct_st_flags=yes],
682 [e2fsprogs_cv_struct_st_flags=no]))
683 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
684 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
685 AC_MSG_CHECKING(whether st_flags field is useful)
686 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
687 AC_TRY_COMPILE([#include <sys/stat.h>],
688 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
689 [e2fsprogs_cv_struct_st_flags_immut=yes],
690 [e2fsprogs_cv_struct_st_flags_immut=no]))
691 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
692 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
693 AC_DEFINE(HAVE_STAT_FLAGS)
697 dnl Check for the presence of SA_LEN
699 AC_CHECK_MEMBER(struct sockaddr.sa_len,
700 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
701 [#include <sys/types.h>
702 #include <sys/socket.h>])
704 AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep)
706 dnl Check to see if -lsocket is required (solaris) to make something
707 dnl that uses socket() to compile; this is needed for the UUID library
710 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
713 dnl Check to see if libdl exists for the sake of dlopen
716 AC_CHECK_LIB(dl, dlopen,
718 AC_DEFINE(HAVE_DLOPEN)])
721 dnl See if optreset exists
723 AC_MSG_CHECKING(for optreset)
724 AC_CACHE_VAL(ac_cv_have_optreset,
725 [AC_EGREP_HEADER(optreset, unistd.h,
726 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
727 AC_MSG_RESULT($ac_cv_have_optreset)
728 if test $ac_cv_have_optreset = yes; then
729 AC_DEFINE(HAVE_OPTRESET)
732 dnl Check for unified diff
734 AC_MSG_CHECKING(for unified diff option)
735 if diff -u $0 $0 > /dev/null 2>&1 ; then
740 AC_MSG_RESULT($UNI_DIFF_OPTS)
741 AC_SUBST(UNI_DIFF_OPTS)
743 dnl We use the EXT2 ioctls only under Linux
747 AC_DEFINE(HAVE_EXT2_IOCTLS)
751 dnl OS-specific uncomment control
769 dnl Linux and Hurd places root files in the / by default
772 linux* | gnu* | k*bsd*-gnu)
773 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
775 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
780 dnl On Linux/hurd, force the prefix to be /usr
783 linux* | gnu* | k*bsd*-gnu)
784 if test "$prefix" = NONE ; then
786 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
787 if test "$mandir" = '${prefix}/man' ; then
788 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
789 mandir=/usr/share/man
794 if test "$root_prefix" = NONE ; then
795 if test "$prefix" = NONE ; then
796 root_prefix="$ac_default_prefix"
798 root_prefix="$prefix"
801 root_sbindir=$sbindir
803 root_sysconfdir=$sysconfdir
805 root_bindir='${root_prefix}/bin'
806 root_sbindir='${root_prefix}/sbin'
807 root_libdir='${root_prefix}/lib'
808 root_sysconfdir='${root_prefix}/etc'
810 if test "$bindir" != '${exec_prefix}/bin'; then
812 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
814 if test "$sbindir" != '${exec_prefix}/sbin'; then
815 root_sbindir=$sbindir
816 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
818 if test "$libdir" != '${exec_prefix}/lib'; then
820 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
822 if test "$sysconfdir" != '${prefix}/etc'; then
823 root_sysconfdir=$sysconfdir
824 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
826 AC_SUBST(root_prefix)
827 AC_SUBST(root_bindir)
828 AC_SUBST(root_sbindir)
829 AC_SUBST(root_libdir)
830 AC_SUBST(root_sysconfdir)
832 dnl See if -static works.
834 AC_MSG_CHECKING([whether linker accepts -static])
835 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
836 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
837 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
838 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
839 LDFLAGS=$SAVE_LDFLAGS])
841 dnl Regardless of how the test turns out, Solaris doesn't handle -static
842 dnl This is caused by the socket library requiring the nsl library, which
843 dnl requires the -dl library, which only works for dynamically linked
844 dnl programs. It basically means you can't have statically linked programs
845 dnl which use the network under Solaris.
849 ac_cv_e2fsprogs_use_static=no
852 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
854 if test $ac_cv_e2fsprogs_use_static = yes; then
855 LDFLAG_STATIC=-static
857 AC_SUBST(LDFLAG_STATIC)
859 dnl Work around mysterious Darwin / GNU libintl problem
860 dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
861 dnl Apple hacked gcc somehow?)
865 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
866 AC_DEFINE(_INTL_REDIRECT_MACROS)
870 dnl Make the ss and et directories work correctly.
872 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
873 ET_DIR=`cd ${srcdir}/lib/et; pwd`
877 dnl Only try to run the test suite if we're not cross compiling.
879 if test "$cross_compiling" = yes ; then
884 AC_SUBST(DO_TEST_SUITE)
886 dnl Only include the intl include files if we're building with them
889 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
890 INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
896 if test $cross_compiling = no; then
897 BUILD_CFLAGS="$CFLAGS"
898 BUILD_LDFLAGS="$LDFLAGS"
903 AC_SUBST(BUILD_CFLAGS)
904 AC_SUBST(BUILD_LDFLAGS)
906 dnl Make our output files, being sure that we create the some miscellaneous
909 test -d lib || mkdir lib
910 test -d include || mkdir include
911 test -d include/linux || mkdir include/linux
912 test -d include/asm || mkdir include/asm
913 for i in MCONFIG Makefile e2fsprogs.spec \
914 util/Makefile util/subst.conf util/gen-tarball \
915 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
916 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
917 lib/uuid/Makefile lib/uuid/uuid_types.h \
918 lib/blkid/Makefile lib/blkid/blkid_types.h \
919 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
920 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
921 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
922 debugfs/Makefile tests/Makefile tests/progs/Makefile \
923 resize/Makefile doc/Makefile intl/Makefile po/Makefile.in ; do
924 if test -d `dirname ${srcdir}/$i` ; then
925 outlist="$outlist $i"
929 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi