Whamcloud - gitweb
mke2fs: add an option in mke2fs.conf to proceed after a delay
[tools/e2fsprogs.git] / configure.in
1 AC_INIT(version.h)
2 AC_PREREQ(2.54)
3 AC_CONFIG_AUX_DIR(config)
4 AC_CONFIG_HEADERS([lib/config.h])
5 AH_BOTTOM([#include <dirpaths.h>])
6 MCONFIG=./MCONFIG
7 AC_SUBST_FILE(MCONFIG)
8 BINARY_TYPE=bin
9 dnl
10 dnl This is to figure out the version number and the date....
11 dnl
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}' \
15         | tr \" " "`
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}'`
19
20 if expr $YEAR ">" 1900 > /dev/null ; then
21         E2FSPROGS_YEAR=$YEAR
22 elif expr $YEAR ">" 90 >/dev/null ; then
23         E2FSPROGS_YEAR=19$YEAR
24 else
25         E2FSPROGS_YEAR=20$YEAR
26 fi
27
28 case $MONTH in
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??]) ;;
42 esac
43
44 base_ver=`echo $E2FSPROGS_VERSION | \
45                sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
46
47 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
48
49 case $E2FSPROGS_VERSION in
50 *-WIP|pre-*)
51         E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
52         ;;
53 *)
54         E2FSPROGS_PKGVER="$base_ver"
55         ;;
56 esac
57
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)
66 dnl
67 dnl Use diet libc
68 dnl 
69 WITH_DIET_LIBC=
70 AC_ARG_WITH([diet-libc],
71 [  --with-diet-libc        use diet libc],
72 CC="diet cc -nostdinc"
73 WITH_DIET_LIBC=yes
74 if test -z "$LIBS"
75 then
76         LIBS="-lcompat"
77 else
78         LIBS="$LIBS -lcompat"
79 fi
80 AC_MSG_RESULT(CC=$CC))dnl
81 dnl
82 AC_CANONICAL_HOST
83 dnl
84 dnl Check to see if libdl exists for the sake of dlopen
85 dnl
86 DLOPEN_LIB=''
87 AC_CHECK_LIB(dl, dlopen,
88 [DLOPEN_LIB=-ldl
89 AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
90 AC_SUBST(DLOPEN_LIB)
91 dnl
92 AC_ARG_WITH([cc],
93 AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
94 AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
95 dnl
96 AC_ARG_WITH([ccopts],
97 AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
98 AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
99 dnl
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]))
103 dnl
104 AC_PROG_CC
105 if test "$GCC" = yes; then
106    RDYNAMIC="-rdynamic"
107    AC_SUBST(RDYNAMIC)
108 fi
109 AC_PROG_CPP
110 dnl
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)
114 if test "$GCC" = yes
115 then
116     case "$host_cpu" in
117         alpha)          addcflags="-mieee" ;;
118     esac
119 fi
120 if test "x$addcflags" != x
121 then
122     AC_MSG_RESULT($addcflags)
123     CFLAGS="$addcflags $CFLAGS"
124 else
125     AC_MSG_RESULT([[(none)]])
126 fi
127 dnl
128 dnl Set default values for library extentions.  Will be dealt with after
129 dnl parsing configuration opions, which may modify these
130 dnl
131 LIB_EXT=.a
132 STATIC_LIB_EXT=.a
133 PROFILED_LIB_EXT=.a
134 dnl
135 dnl Allow separate `root_prefix' to be specified
136 dnl
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,
140 root_prefix=NONE)dnl
141 dnl
142 dnl handle --enable-maintainer-mode
143 dnl
144 AC_ARG_ENABLE([maintainer-mode],
145 [  --enable-maintainer-mode enable makefile rules useful for maintainers],
146 if test "$enableval" = "no"
147 then
148         MAINTAINER_CMT=#
149         AC_MSG_RESULT([Disabling maintainer mode])
150 else
151         MAINTAINER_CMT=
152         AC_MSG_RESULT([Enabling maintainer mode])
153 fi
154 ,
155 MAINTAINER_CMT=#
156 AC_MSG_RESULT([Disabling maintainer mode by default])
157 )
158 AC_SUBST(MAINTAINER_CMT)
159 dnl
160 dnl handle --enable-symlink-install
161 dnl
162 AC_ARG_ENABLE([symlink-install],
163 [  --enable-symlink-install use symlinks when installing instead of hard links],
164 if test "$enableval" = "no"
165 then
166         LINK_INSTALL_FLAGS=-f
167         AC_MSG_RESULT([Disabling symlinks for install])
168 else
169         LINK_INSTALL_FLAGS=-sf
170         AC_MSG_RESULT([Enabling symlinks for install])
171 fi
172 ,
173 LINK_INSTALL_FLAGS=-f
174 AC_MSG_RESULT([Disabling symlinks for install by default])
175 )
176 AC_SUBST(LINK_INSTALL_FLAGS)
177 dnl
178 dnl handle --enable-relative-symlinks
179 dnl
180 relative_symlink_defined=
181 AC_ARG_ENABLE([relative-symlinks],
182 [  --enable-relative-symlinks use relative symlinks when installing],
183 if test "$enableval" = "no"
184 then
185         SYMLINK_RELATIVE=
186         relative_symlink_defined=yes
187         AC_MSG_RESULT([Disabling relative symlinks for install])
188 else
189         SYMLINK_RELATIVE=--relative
190         relative_symlink_defined=yes
191         AC_MSG_RESULT([Enabling relative symlinks for install])
192 fi)
193 AC_ARG_ENABLE([symlink-relative-symlinks],,
194 if test "$enableval" = "no"
195 then
196         SYMLINK_RELATIVE=yes
197         AC_MSG_RESULT([Disabling relative symlinks for install])
198 else
199         SYMLINK_RELATIVE=--relative
200         AC_MSG_RESULT([Enabling relative symlinks for install])
201 fi
202 ,
203 if test -z "$relative_symlink_defined"
204 then
205         SYMLINK_RELATIVE=
206 AC_MSG_RESULT([Disabling relative symlinks for install by default])
207 fi
208 )
209 AC_SUBST(SYMLINK_RELATIVE)
210 dnl
211 dnl handle --enable-symlink-build
212 dnl
213 AC_ARG_ENABLE([symlink-build],
214 [  --enable-symlink-build  use symlinks while building instead of hard links],
215 if test "$enableval" = "no"
216 then
217         LINK_BUILD_FLAGS=
218         AC_MSG_RESULT([Disabling symlinks for build])
219 else
220         LINK_BUILD_FLAGS=-s
221         AC_MSG_RESULT([Enabling symlinks for build])
222 fi
223 ,
224 LINK_BUILD_FLAGS=
225 AC_MSG_RESULT([Disabling symlinks for build by default])
226 )
227 AC_SUBST(LINK_BUILD_FLAGS)
228 dnl
229 dnl handle --enable-verbose-makecmds
230 dnl
231 AC_ARG_ENABLE([verbose-makecmds],
232 [  --enable-verbose-makecmds enable verbose make command output],
233 if test "$enableval" = "no"
234 then
235         AC_MSG_RESULT([Disabling verbose make commands])
236         E=@echo
237         ES=echo
238         Q=@
239 else
240         AC_MSG_RESULT([Enabling verbose make commands])
241         E=@\\#
242         ES=\\#
243         Q= 
244 fi
245 ,
246 AC_MSG_RESULT([Disabling verbose make commands])
247 E=@echo
248 ES=echo
249 Q=@
250 )
251 AC_SUBST(E)
252 AC_SUBST(ES)
253 AC_SUBST(Q)
254 dnl
255 dnl handle --enable-compression
256 dnl
257 AC_ARG_ENABLE([compression],
258 [  --enable-compression   enable EXPERIMENTAL compression support],
259 if test "$enableval" = "no"
260 then
261         AC_MSG_RESULT([Disabling compression support])
262 else
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])
267 fi
268 ,
269 AC_MSG_RESULT([Disabling compression support by default])
270 )
271 dnl
272 dnl handle --enable-htree
273 dnl
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"
278 then
279         HTREE_CMT=#
280         AC_MSG_RESULT([Disabling htree directory support])
281 else
282         HTREE_CMT=
283         AC_DEFINE(ENABLE_HTREE, 1)
284         AC_MSG_RESULT([Enabling htree directory support])
285 fi
286 ,
287 HTREE_CMT=
288 AC_DEFINE(ENABLE_HTREE, 1)
289 AC_MSG_RESULT([Enabling htree directory support by default])
290 )
291 AC_SUBST(HTREE_CMT)
292 dnl
293 dnl This needs to be before all of the --enable-*-shlibs options
294 dnl
295 E2_PKG_CONFIG_STATIC=--static
296 LDFLAG_DYNAMIC=
297 PRIVATE_LIBS_CMT=
298 dnl
299 dnl handle --enable-elf-shlibs
300 dnl
301 AC_ARG_ENABLE([elf-shlibs],
302 [  --enable-elf-shlibs    select ELF shared libraries],
303 if test "$enableval" = "no"
304 then
305         ELF_CMT=#
306         MAKEFILE_ELF=/dev/null
307         AC_MSG_RESULT([Disabling ELF shared libraries])
308 else
309         E2_PKG_CONFIG_STATIC=
310         ELF_CMT=
311         MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
312         [case "$host_os" in
313         solaris2.*)
314                 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
315         ;;
316         esac]
317         BINARY_TYPE=elfbin
318         LIB_EXT=.so
319         PRIVATE_LIBS_CMT=#
320         LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
321         AC_MSG_RESULT([Enabling ELF shared libraries])
322 fi
323 ,
324 MAKEFILE_ELF=/dev/null
325 ELF_CMT=#
326 AC_MSG_RESULT([Disabling ELF shared libraries by default])
327 )
328 AC_SUBST(ELF_CMT)
329 AC_SUBST_FILE(MAKEFILE_ELF)
330 dnl
331 dnl handle --enable-bsd-shlibs
332 dnl
333 AC_ARG_ENABLE([bsd-shlibs],
334 [  --enable-bsd-shlibs    select BSD shared libraries],
335 if test "$enableval" = "no"
336 then
337         BSDLIB_CMT=#
338         MAKEFILE_BSDLIB=/dev/null
339         AC_MSG_RESULT([Disabling BSD shared libraries])
340 else
341         E2_PKG_CONFIG_STATIC=
342         BSDLIB_CMT=
343         MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
344         LIB_EXT=.so
345         [case "$host_os" in
346         darwin*)
347                 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
348                 LIB_EXT=.dylib
349         ;;
350         esac]
351         AC_MSG_RESULT([Enabling BSD shared libraries])
352 fi
353 ,
354 MAKEFILE_BSDLIB=/dev/null
355 BSDLIB_CMT=#
356 AC_MSG_RESULT([Disabling BSD shared libraries by default])
357 )
358 AC_SUBST(BSDLIB_CMT)
359 AC_SUBST_FILE(MAKEFILE_BSDLIB)
360 dnl
361 dnl handle --enable-profile
362 dnl
363 AC_ARG_ENABLE([profile],
364 [  --enable-profile       build profiling libraries],
365 if test "$enableval" = "no"
366 then
367         PROFILE_CMT=#
368         MAKEFILE_PROFILE=/dev/null
369         AC_MSG_RESULT([Disabling profiling libraries])
370 else
371         PROFILE_CMT=
372         MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
373         PROFILED_LIB_EXT=_p.a
374         AC_MSG_RESULT([Building profiling libraries])
375 fi
376 ,
377 PROFILE_CMT=#
378 MAKEFILE_PROFILE=/dev/null
379 AC_MSG_RESULT([Disabling profiling libraries by default])
380 )
381 AC_SUBST(PROFILE_CMT)
382 AC_SUBST_FILE(MAKEFILE_PROFILE)
383 dnl
384 dnl handle --enable-gcov
385 dnl
386 AC_ARG_ENABLE([gcov],
387 [  --enable-gcov                  build for coverage testing using gcov],
388 if test "$enableval" = "yes"
389 then
390         CFLAGS="-g -fprofile-arcs -ftest-coverage"
391         LDFLAGS="-fprofile-arcs -ftest-coverage"
392         AC_MSG_RESULT([Enabling gcov support])
393 fi
394 )
395 dnl
396 dnl handle --enable-checker
397 dnl
398 AC_ARG_ENABLE([checker],
399 [  --enable-checker       build checker libraries],
400 if test "$enableval" = "no"
401 then
402         CHECKER_CMT=#
403         MAKEFILE_CHECKER=/dev/null
404         AC_MSG_RESULT([Disabling checker libraries])
405 else
406         CHECKER_CMT=
407         MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
408         AC_MSG_RESULT([Building checker libraries])
409 fi
410 ,
411 CHECKER_CMT=#
412 MAKEFILE_CHECKER=/dev/null
413 AC_MSG_RESULT([Disabling checker libraries by default])
414 )
415 AC_SUBST(CHECKER_CMT)
416 AC_SUBST_FILE(MAKEFILE_CHECKER)
417 dnl
418 dnl Substitute library extensions
419 dnl
420 AC_SUBST(LIB_EXT)
421 AC_SUBST(STATIC_LIB_EXT)
422 AC_SUBST(PROFILED_LIB_EXT)
423 AC_SUBST(LDFLAG_DYNAMIC)
424 AC_SUBST(PRIVATE_LIBS_CMT)
425 dnl
426 dnl handle --enable-jbd-debug
427 dnl
428 AC_ARG_ENABLE([jbd-debug],
429 [  --enable-jbd-debug     enable journal debugging],
430 if test "$enableval" = "no"
431 then
432         AC_MSG_RESULT([Disabling journal debugging])
433 else
434         AC_DEFINE(CONFIG_JBD_DEBUG, 1,
435                 [Define to 1 if debugging ext3/4 journal code])
436         AC_MSG_RESULT([Enabling journal debugging])
437 fi
438 ,
439 AC_MSG_RESULT([Disabling journal debugging by default])
440 )
441 dnl
442 dnl handle --enable-blkid-debug
443 dnl
444 AC_ARG_ENABLE([blkid-debug],
445 [  --enable-blkid-debug    enable blkid debugging],
446 if test "$enableval" = "no"
447 then
448         AC_MSG_RESULT([Disabling blkid debugging])
449 else
450         AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
451                 [Define to 1 if debugging the blkid library])
452         AC_MSG_RESULT([Enabling blkid debugging])
453 fi
454 ,
455 AC_MSG_RESULT([Disabling blkid debugging by default])
456 )
457 dnl
458 dnl handle --enable-testio-debug
459 dnl
460 AC_ARG_ENABLE([testio-debug],
461 [  --disable-testio-debug  disable the use of the test I/O manager for debugging],
462 AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
463         [Define to 1 if the testio I/O manager should be enabled])
464 if test "$enableval" = "no"
465 then
466         AC_MSG_RESULT([Disabling testio debugging])
467         TEST_IO_CMT="#"
468 else
469         TEST_IO_CMT=
470         AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
471         AC_MSG_RESULT([Enabling testio debugging])
472 fi
473 ,
474 AC_MSG_RESULT([Enabling testio debugging by default])
475 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
476 TEST_IO_CMT=
477 )
478 AC_SUBST(TEST_IO_CMT)
479 dnl
480 dnl handle --disable-libuuid
481 dnl
482 PKG_PROG_PKG_CONFIG
483 LIBUUID=
484 DEPLIBUUID=
485 STATIC_LIBUUID=
486 DEPSTATIC_LIBUUID=
487 PROFILED_LIBUUID=
488 DEPPROFILED_LIBUUID=
489 UUID_CMT=
490 AC_ARG_ENABLE([libuuid],
491 [  --disable-libuuid      do not build private uuid library],
492 if test "$enableval" = "no"
493 then
494         if test -z "$PKG_CONFIG"; then
495                 AC_MSG_ERROR([pkg-config not installed; please install it.])
496         fi
497
498         AC_CHECK_LIB(uuid, uuid_generate,
499                 [LIBUUID=`$PKG_CONFIG --libs uuid`;
500                  STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
501                 [AC_MSG_ERROR([external uuid library not found])],
502                 [$LIBUUID])
503         UUID_CMT=#
504         AC_MSG_RESULT([Disabling private uuid library])
505 else
506         LIBUUID='$(LIB)/libuuid'$LIB_EXT
507         DEPLIBUUID=$LIBUUID
508         STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
509         DEPSTATIC_LIBUUID=$STATIC_LIBUUID
510         PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
511         DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
512         AC_MSG_RESULT([Enabling private uuid library])
513 fi
514 ,
515 LIBUUID='$(LIB)/libuuid'$LIB_EXT
516 DEPLIBUUID=$LIBUUID
517 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
518 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
519 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
520 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
521 AC_MSG_RESULT([Enabling private uuid library by default])
522 )
523 AC_SUBST(LIBUUID)
524 AC_SUBST(DEPLIBUUID)
525 AC_SUBST(STATIC_LIBUUID)
526 AC_SUBST(DEPSTATIC_LIBUUID)
527 AC_SUBST(PROFILED_LIBUUID)
528 AC_SUBST(DEPPROFILED_LIBUUID)
529 AC_SUBST(UUID_CMT)
530 dnl
531 dnl handle --disable-libblkid
532 dnl
533 PKG_PROG_PKG_CONFIG
534 LIBBLKID=
535 DEPLIBBLKID=
536 STATIC_LIBBLKID=
537 DEPSTATIC_LIBBLKID=
538 PROFILED_LIBBLKID=
539 DEPPROFILED_LIBBLKID=
540 BLKID_CMT=
541 AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
542 AC_ARG_ENABLE([libblkid],
543 [  --disable-libblkid     do not build private blkid library],
544 if test "$enableval" = "no"
545 then
546         if test -z "$PKG_CONFIG"; then
547                 AC_MSG_ERROR([pkg-config not installed; please install it.])
548         fi
549
550         AC_CHECK_LIB(blkid, blkid_get_cache,
551                 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
552                  STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
553                 [AC_MSG_ERROR([external blkid library not found])],
554                 [$LIBBLKID])
555         BLKID_CMT=#
556         AC_MSG_RESULT([Disabling private blkid library])
557 else
558         LIBBLKID='$(LIB)/libblkid'$LIB_EXT
559         DEPLIBBLKID=$LIBBLKID
560         STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
561         DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
562         PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
563         DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
564         AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
565         AC_MSG_RESULT([Enabling private blkid library])
566 fi
567 ,
568 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
569 DEPLIBBLKID=$LIBBLKID
570 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
571 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
572 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
573 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
574 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
575 AC_MSG_RESULT([Enabling private blkid library by default])
576 )
577 AC_SUBST(LIBBLKID)
578 AC_SUBST(DEPLIBBLKID)
579 AC_SUBST(STATIC_LIBBLKID)
580 AC_SUBST(DEPSTATIC_LIBBLKID)
581 AC_SUBST(PROFILED_LIBBLKID)
582 AC_SUBST(DEPPROFILED_LIBBLKID)
583 AC_SUBST(BLKID_CMT)
584 dnl
585 dnl handle --enable-quota
586 dnl
587 QUOTA_MAN_COMMENT='.\"'
588 QUOTA_CMT=
589 AC_SUBST(QUOTA_MAN_COMMENT)
590 PKG_PROG_PKG_CONFIG
591 AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
592 AC_ARG_ENABLE([quota],
593 [  --enable-quota         enable quota support],
594 if test "$enableval" = "no"
595 then
596         QUOTA_CMT=#
597         AC_MSG_RESULT([Disabling quota support])
598 else
599         QUOTA_CMT=
600         AC_DEFINE(CONFIG_QUOTA, 1)
601         AC_MSG_RESULT([Enabling quota support])
602         QUOTA_MAN_COMMENT=""
603         AC_SUBST(QUOTA_MAN_COMMENT)
604 fi
605 ,
606 QUOTA_CMT=#
607 AC_MSG_RESULT([Disabling quota support by default])
608 )
609 dnl
610 dnl Define stuff expected for quota library
611 dnl
612 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
613 DEPLIBQUOTA=$LIBQUOTA
614 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
615 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
616 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
617 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
618 AC_SUBST(LIBQUOTA)
619 AC_SUBST(DEPLIBQUOTA)
620 AC_SUBST(STATIC_LIBQUOTA)
621 AC_SUBST(DEPSTATIC_LIBQUOTA)
622 AC_SUBST(PROFILED_LIBQUOTA)
623 AC_SUBST(DEPPROFILED_LIBQUOTA)
624 AC_SUBST(QUOTA_CMT)
625 dnl
626 dnl handle --disable-backtrace
627 dnl
628 AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
629 AC_ARG_ENABLE([backtrace],
630 [  --disable-backtrace    disable use backtrace],
631 if test "$enableval" = "no"
632 then
633         AC_MSG_RESULT([Disabling use of backtrace])
634         AC_DEFINE(DISABLE_BACKTRACE, 1)
635 else
636         AC_MSG_RESULT([Enabling use of backtrace])
637 fi
638 ,
639 AC_MSG_RESULT([Enabling use of backtrace by default])
640 )
641 dnl
642 dnl handle --enable-debugfs
643 dnl
644 AC_ARG_ENABLE([debugfs],
645 [  --disable-debugfs      disable support of debugfs program],
646 if test "$enableval" = "no"
647 then
648         AC_MSG_RESULT([Disabling debugfs support])
649         DEBUGFS_CMT="#"
650 else
651         DEBUGFS_CMT=
652         AC_MSG_RESULT([Enabling debugfs support])
653 fi
654 ,
655 AC_MSG_RESULT([Enabling debugfs support by default])
656 DEBUGFS_CMT=
657 )
658 AC_SUBST(DEBUGFS_CMT)
659 dnl
660 dnl handle --enable-imager
661 dnl
662 AC_ARG_ENABLE([imager],
663 [  --disable-imager       disable support of e2image program],
664 if test "$enableval" = "no"
665 then
666         AC_MSG_RESULT([Disabling e2image support])
667         IMAGER_CMT="#"
668 else
669         IMAGER_CMT=
670         AC_MSG_RESULT([Enabling e2image support])
671 fi
672 ,
673 AC_MSG_RESULT([Enabling e2image support by default])
674 IMAGER_CMT=
675 )
676 AC_SUBST(IMAGER_CMT)
677 dnl
678 dnl handle --enable-resizer
679 dnl
680 AC_ARG_ENABLE([resizer],
681 [  --disable-resizer      disable support of e2resize program],
682 if test "$enableval" = "no"
683 then
684         AC_MSG_RESULT([Disabling e2resize support])
685         RESIZER_CMT="#"
686 else
687         RESIZER_CMT=
688         AC_MSG_RESULT([Enabling e2resize support])
689 fi
690 ,
691 AC_MSG_RESULT([Enabling e2resize support by default])
692 RESIZER_CMT=
693 )
694 AC_SUBST(RESIZER_CMT)
695 dnl
696 dnl handle --enable-defrag
697 dnl
698 AC_ARG_ENABLE([defrag],
699 [  --disable-defrag       disable support of e4defrag program],
700 if test "$enableval" = "no"
701 then
702         AC_MSG_RESULT([Disabling e4defrag support])
703         DEFRAG_CMT="#"
704 else
705         DEFRAG_CMT=
706         AC_MSG_RESULT([Enabling e4defrag support])
707 fi
708 ,
709 if test -z "$WITH_DIET_LIBC"
710 then
711         AC_MSG_RESULT([Enabling e4defrag support by default])
712         DEFRAG_CMT=
713 else
714         AC_MSG_RESULT([Disabling e4defrag support by default])
715         DEFRAG_CMT="#"
716 fi
717 )
718 AC_SUBST(DEFRAG_CMT)
719 dnl
720 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
721 dnl
722 AC_ARG_ENABLE([fsck],
723 [  --enable-fsck           build fsck wrapper program],
724 [if test "$enableval" = "no"
725 then
726         FSCK_PROG='' FSCK_MAN=''
727         AC_MSG_RESULT([Not building fsck wrapper])
728 else
729         FSCK_PROG=fsck FSCK_MAN=fsck.8
730         AC_MSG_RESULT([Building fsck wrapper])
731 fi]
732 ,
733 [case "$host_os" in
734   gnu*)
735     FSCK_PROG='' FSCK_MAN=''
736     AC_MSG_RESULT([Not building fsck wrapper by default])
737     ;;
738   *)
739     FSCK_PROG=fsck FSCK_MAN=fsck.8
740     AC_MSG_RESULT([Building fsck wrapper by default])
741 esac]
742 )
743 AC_SUBST(FSCK_PROG)
744 AC_SUBST(FSCK_MAN)
745 dnl
746 dnl See whether to install the `e2initrd-helper' program
747 dnl
748 AC_ARG_ENABLE([e2initrd-helper],
749 [  --enable-e2initrd-helper build e2initrd-helper program],
750 [if test "$enableval" = "no"
751 then
752         E2INITRD_PROG='' E2INITRD_MAN=''
753         AC_MSG_RESULT([Not building e2initrd helper])
754 else
755         E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
756         AC_MSG_RESULT([Building e2initrd helper])
757 fi]
758 ,
759 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
760 AC_MSG_RESULT([Building e2initrd helper by default])
761 )
762 AC_SUBST(E2INITRD_PROG)
763 AC_SUBST(E2INITRD_MAN)
764 dnl
765 dnl
766 dnl
767 AC_ARG_ENABLE([tls],
768 [  --disable-tls           disable use of thread local support],
769 [if test "$enableval" = "no"
770 then
771         try_tls=""
772         AC_MSG_RESULT([Disabling thread local support])
773 else
774         try_tls="yes"
775         AC_MSG_RESULT([Enabling thread local support])
776 fi]
777 ,
778 if test -n "$WITH_DIET_LIBC"
779 then
780         try_tls=""
781         AC_MSG_RESULT([Diet libc does not support thread local support])
782 else
783         try_tls="yes"
784         AC_MSG_RESULT([Try using thread local support by default])
785 fi
786 )
787 if test "$try_tls" = "yes"
788 then
789 AX_TLS
790 fi
791 dnl
792 dnl
793 dnl
794 AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
795 AC_ARG_ENABLE([uuidd],
796 [  --disable-uuidd         disable building the uuid daemon],
797 [if test "$enableval" = "no"
798 then
799         AC_MSG_RESULT([Not building uuidd])
800         UUIDD_CMT="#"
801 else
802         AC_DEFINE(USE_UUIDD, 1)
803         UUIDD_CMT=""
804         AC_MSG_RESULT([Building uuidd])
805 fi]
806 ,
807 AC_DEFINE(USE_UUIDD, 1)
808 UUIDD_CMT=""
809 AC_MSG_RESULT([Building uuidd by default])
810 )
811 AC_SUBST(UUIDD_CMT)
812 dnl
813 dnl
814 dnl
815 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
816 AC_SUBST_FILE(MAKEFILE_LIBRARY)
817 dnl
818 dnl Add internationalization support, using gettext.
819 dnl
820 GETTEXT_PACKAGE=e2fsprogs
821 PACKAGE=e2fsprogs
822 VERSION="$E2FSPROGS_VERSION"
823 VERSION=0.14.1
824 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
825 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
826 AC_SUBST(GETTEXT_PACKAGE)
827 AC_SUBST(PACKAGE)
828 AC_SUBST(VERSION)
829
830 AM_GNU_GETTEXT
831 dnl
832 dnl End of configuration options
833 dnl
834 AC_SUBST(BINARY_TYPE)
835 AC_PROG_MAKE_SET
836 CHECK_GNU_MAKE
837 AC_PATH_PROG(LN, ln, ln)
838 AC_PROG_LN_S
839 AC_PATH_PROG(MV, mv, mv)
840 AC_PATH_PROG(CP, cp, cp)
841 AC_PATH_PROG(RM, rm, rm)
842 AC_PATH_PROG(CHMOD, chmod, :)
843 AC_PROG_AWK
844 AC_PROG_EGREP
845 AC_PATH_PROG(SED, sed, sed)
846 AC_PATH_PROG(PERL, perl, perl)
847 AC_PATH_PROG(LDCONFIG, ldconfig, :)
848 AC_CHECK_TOOL(AR, ar, ar)
849 AC_CHECK_TOOL(RANLIB, ranlib, :)
850 AC_CHECK_TOOL(STRIP, strip, :)
851 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
852 if test "_$MAKEINFO" = "_"; then
853     MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
854 else
855     case "$MAKEINFO" in
856       */missing.*)
857         AC_MSG_WARN([
858 *** Makeinfo is missing. Info documentation will not be built.])
859         ;;
860       *)
861         ;;
862     esac
863 fi
864 AC_SUBST(MAKEINFO)
865 AC_PROG_INSTALL
866 # See if we need a separate native compiler.
867 if test $cross_compiling = no; then
868   BUILD_CC="$CC"
869   AC_SUBST(BUILD_CC)
870 else
871   AC_CHECK_PROGS(BUILD_CC, gcc cc)
872 fi
873 AC_CHECK_HEADERS(m4_flatten([
874         dirent.h
875         errno.h
876         execinfo.h
877         getopt.h
878         malloc.h
879         mntent.h
880         paths.h
881         semaphore.h
882         setjmp.h
883         signal.h
884         stdarg.h
885         stdint.h
886         stdlib.h
887         termios.h
888         termio.h
889         unistd.h
890         utime.h
891         linux/falloc.h
892         linux/fd.h
893         linux/major.h
894         linux/loop.h
895         net/if_dl.h
896         netinet/in.h
897         sys/disklabel.h
898         sys/file.h
899         sys/ioctl.h
900         sys/mkdev.h
901         sys/mman.h
902         sys/prctl.h
903         sys/queue.h
904         sys/resource.h
905         sys/select.h
906         sys/socket.h
907         sys/sockio.h
908         sys/stat.h
909         sys/syscall.h
910         sys/sysmacros.h
911         sys/time.h
912         sys/types.h
913         sys/un.h
914         sys/wait.h
915 ]))
916 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
917 [[
918 #if HAVE_SYS_QUEUE_H
919 #include <sys/queue.h>
920 #endif
921 ]])
922 AC_CHECK_HEADERS(net/if.h,,,
923 [[
924 #if HAVE_SYS_TYPES_H
925 #include <sys/types.h>
926 #endif
927 #if HAVE_SYS_SOCKET
928 #include <sys/socket.h>
929 #endif
930 ]])
931 AC_FUNC_VPRINTF
932 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
933 dnl is not decleared.
934 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
935                        [Define to 1 if dirent has d_reclen])],,
936                 [#include <dirent.h>])
937 AC_CHECK_MEMBERS([struct stat.st_atim])
938 dnl Check to see if ssize_t was declared
939 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
940                 [Define to 1 if ssize_t declared])],,
941               [#include <sys/types.h>])
942 dnl
943 dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
944 dnl it is, and on others it isn't..... Thank you glibc developers....
945 dnl
946 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
947                         [Define to 1 if llseek declared in unistd.h])],,
948               [#include <unistd.h>])
949 dnl
950 dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
951 dnl are so convoluted that I can't tell whether it will always be defined,
952 dnl and if it isn't defined while lseek64 is defined in the library, 
953 dnl disaster will strike.  
954 dnl
955 dnl Warning!  Use of --enable-gcc-wall may throw off this test.
956 dnl
957 dnl
958 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
959                         [Define to 1 if lseek64 declared in unistd.h])],,
960                 [#define _LARGEFILE_SOURCE
961                  #define _LARGEFILE64_SOURCE
962                  #include <unistd.h>])
963 dnl
964 dnl Word sizes...
965 dnl
966 AC_CHECK_SIZEOF(short)
967 AC_CHECK_SIZEOF(int)
968 AC_CHECK_SIZEOF(long)
969 AC_CHECK_SIZEOF(long long)
970 AC_CHECK_SIZEOF(off_t)
971 SIZEOF_SHORT=$ac_cv_sizeof_short
972 SIZEOF_INT=$ac_cv_sizeof_int
973 SIZEOF_LONG=$ac_cv_sizeof_long
974 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
975 SIZEOF_OFF_T=$ac_cv_sizeof_off_t
976 AC_SUBST(SIZEOF_SHORT)
977 AC_SUBST(SIZEOF_INT)
978 AC_SUBST(SIZEOF_LONG)
979 AC_SUBST(SIZEOF_LONG_LONG)
980 AC_SUBST(SIZEOF_OFF_T)
981 AC_C_BIGENDIAN
982 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
983 ASM_TYPES_HEADER=./asm_types.h
984 AC_SUBST_FILE(ASM_TYPES_HEADER)
985 dnl
986 dnl Save the configuration #defines needed for the public ext2fs.h
987 dnl header file
988 dnl
989 echo "/* These defines are needed for the public ext2fs.h header file */" \
990      > public_config.h
991 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
992   uniq tmp_config.$$ >> public_config.h
993 else
994   echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
995 fi
996 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
997   uniq tmp_config.$$ >> public_config.h
998 else
999   echo "#undef WORDS_BIGENDIAN" >> public_config.h
1000 fi
1001 rm -f tmp_config.$$
1002 PUBLIC_CONFIG_HEADER=./public_config.h
1003 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1004 dnl
1005 dnl See if we have inttypes.h and if intptr_t is defined
1006 dnl
1007 AC_CHECK_HEADERS([inttypes.h])
1008 AC_CHECK_TYPES(intptr_t)
1009 dnl
1010 dnl See if struct stat has a st_flags field, in which case we can get file
1011 dnl flags somewhat portably.  Also check for the analogous setter, chflags().
1012 dnl
1013 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1014 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1015         AC_TRY_COMPILE([#include <sys/stat.h>],
1016                 [struct stat stat; stat.st_flags = 0;],
1017                 [e2fsprogs_cv_struct_st_flags=yes],
1018                 [e2fsprogs_cv_struct_st_flags=no]))
1019 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1020 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1021   AC_MSG_CHECKING(whether st_flags field is useful)
1022   AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1023         AC_TRY_COMPILE([#include <sys/stat.h>],
1024                 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1025                 [e2fsprogs_cv_struct_st_flags_immut=yes],
1026                 [e2fsprogs_cv_struct_st_flags_immut=no]))
1027   AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1028   if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1029           AC_DEFINE(HAVE_STAT_FLAGS, 1,
1030                 [Define to 1 if struct stat has st_flags])
1031   fi
1032 fi
1033 dnl
1034 dnl Check for the presence of SA_LEN
1035 dnl
1036 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1037                 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1038                         [Define to 1 if if struct sockaddr contains sa_len]),,
1039         [#include <sys/types.h>
1040          #include <sys/socket.h>])
1041 dnl
1042 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1043 dnl the system-provided blkid library
1044 dnl
1045 if test -n "$BLKID_CMT"; then
1046   AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1047 fi
1048 dnl
1049 AC_CHECK_FUNCS(m4_flatten([
1050         __secure_getenv
1051         backtrace
1052         blkid_probe_get_topology
1053         chflags
1054         fadvise64
1055         fallocate
1056         fallocate64
1057         fchown
1058         fdatasync
1059         fstat64
1060         ftruncate64
1061         futimes
1062         getcwd
1063         getdtablesize
1064         getmntinfo
1065         getpwuid_r
1066         getrlimit
1067         getrusage
1068         jrand48
1069         llseek
1070         lseek64
1071         mallinfo
1072         mbstowcs
1073         memalign
1074         mempcpy
1075         mmap
1076         msync
1077         nanosleep
1078         open64
1079         pathconf
1080         posix_fadvise
1081         posix_fadvise64
1082         posix_memalign
1083         prctl
1084         secure_getenv
1085         setmntent
1086         setresgid
1087         setresuid
1088         srandom
1089         stpcpy
1090         strcasecmp
1091         strdup
1092         strnlen
1093         strptime
1094         strtoull
1095         sync_file_range
1096         sysconf
1097         usleep
1098         utime
1099         valloc
1100 ]))
1101 dnl
1102 dnl Check to see if -lsocket is required (solaris) to make something
1103 dnl that uses socket() to compile; this is needed for the UUID library
1104 dnl
1105 SOCKET_LIB=''
1106 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1107 AC_SUBST(SOCKET_LIB)
1108 dnl
1109 dnl See if optreset exists
1110 dnl
1111 AC_MSG_CHECKING(for optreset)
1112 AC_CACHE_VAL(ac_cv_have_optreset,
1113 [AC_EGREP_HEADER(optreset, unistd.h,
1114   ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1115 AC_MSG_RESULT($ac_cv_have_optreset)
1116 if test $ac_cv_have_optreset = yes; then
1117   AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1118 fi
1119 dnl
1120 dnl Test for sem_init, and which library it might require:
1121 dnl
1122 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1123 SEM_INIT_LIB=''
1124 AC_CHECK_FUNC(sem_init, ,
1125   AC_CHECK_LIB(pthread, sem_init,
1126         AC_DEFINE(HAVE_SEM_INIT, 1)
1127         SEM_INIT_LIB=-lpthread,
1128   AC_CHECK_LIB(rt, sem_init,
1129         AC_DEFINE(HAVE_SEM_INIT, 1)
1130         SEM_INIT_LIB=-lrt,
1131   AC_CHECK_LIB(posix4, sem_init,
1132         AC_DEFINE(HAVE_SEM_INIT, 1)
1133         SEM_INIT_LIB=-lposix4))))dnl
1134 AC_SUBST(SEM_INIT_LIB)
1135 dnl
1136 dnl Check for unified diff
1137 dnl
1138 AC_MSG_CHECKING(for unified diff option)
1139 if diff -u $0 $0 > /dev/null 2>&1 ; then
1140    UNI_DIFF_OPTS=-u
1141 else
1142    UNI_DIFF_OPTS=-c
1143 fi
1144 AC_MSG_RESULT($UNI_DIFF_OPTS)
1145 AC_SUBST(UNI_DIFF_OPTS)
1146 dnl
1147 dnl We use the EXT2 ioctls only under Linux
1148 dnl
1149 case "$host_os" in
1150 linux*)
1151         AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1152         ;;
1153 esac
1154 dnl
1155 dnl OS-specific uncomment control
1156 dnl
1157 LINUX_CMT="#"
1158 CYGWIN_CMT="#"
1159 UNIX_CMT=
1160 case "$host_os" in
1161 linux*)
1162         LINUX_CMT=
1163         ;;
1164 cygwin)
1165         CYGWIN_CMT=
1166         UNIX_CMT="#"
1167         ;;
1168 esac
1169 AC_SUBST(LINUX_CMT)
1170 AC_SUBST(CYGWIN_CMT)
1171 AC_SUBST(UNIX_CMT)
1172 dnl
1173 dnl Linux and Hurd places root files in the / by default
1174 dnl
1175 case "$host_os" in
1176 linux* | gnu* | k*bsd*-gnu)
1177         if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1178                 root_prefix="";
1179                 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1180         fi
1181         ;;
1182 esac
1183 dnl
1184 dnl On Linux/hurd, force the prefix to be /usr
1185 dnl
1186 case "$host_os" in
1187 linux* | gnu* | k*bsd*-gnu)
1188         if test "$prefix" = NONE ; then
1189                 prefix="/usr";
1190                 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1191                 if test "$mandir" = '${prefix}/man' ; then
1192                         AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1193                         mandir=/usr/share/man
1194                 fi
1195         fi
1196 ;;
1197 esac
1198 if test "$root_prefix" = NONE ; then
1199         if test "$prefix" = NONE ; then
1200                 root_prefix="$ac_default_prefix"
1201         else
1202                 root_prefix="$prefix"
1203         fi
1204         root_bindir=$bindir
1205         root_sbindir=$sbindir
1206         root_libdir=$libdir
1207         root_sysconfdir=$sysconfdir
1208 else
1209         root_bindir='${root_prefix}/bin'
1210         root_sbindir='${root_prefix}/sbin'
1211         root_libdir='${root_prefix}/lib'
1212         root_sysconfdir='${root_prefix}/etc'
1213 fi
1214 if test "$bindir" != '${exec_prefix}/bin'; then
1215     root_bindir=$bindir
1216     AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1217 fi
1218 if test "$sbindir" != '${exec_prefix}/sbin'; then
1219     root_sbindir=$sbindir
1220     AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1221 fi
1222 if test "$libdir" != '${exec_prefix}/lib'; then
1223     root_libdir=$libdir
1224     AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1225 fi
1226 if test "$sysconfdir" != '${prefix}/etc'; then
1227     root_sysconfdir=$sysconfdir
1228     AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1229 fi
1230 AC_SUBST(root_prefix)
1231 AC_SUBST(root_bindir)
1232 AC_SUBST(root_sbindir)
1233 AC_SUBST(root_libdir)
1234 AC_SUBST(root_sysconfdir)
1235 dnl
1236 dnl Allow specification of the multiarch arch
1237 dnl
1238 AC_ARG_WITH([multiarch],
1239 [  --with-multiarch=ARCH specify the multiarch triplet],
1240 if test "$withval" = "lib64"; then
1241     libdir=/usr/lib64
1242     root_libdir=/lib64
1243 else
1244     libdir=$libdir/$withval
1245     root_libdir=$root_libdir/$withval
1246 fi
1247 )dnl
1248 dnl
1249 dnl See if -static works.  This could fail if the linker does not
1250 dnl support -static, or if required external libraries are not available
1251 dnl in static form.
1252 dnl
1253 AC_MSG_CHECKING([whether we can link with -static])
1254 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1255 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1256 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1257  ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1258 LDFLAGS=$SAVE_LDFLAGS])
1259 dnl
1260 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1261 dnl This is caused by the socket library requiring the nsl library, which
1262 dnl requires the -dl library, which only works for dynamically linked 
1263 dnl programs.  It basically means you can't have statically linked programs
1264 dnl which use the network under Solaris.  
1265 dnl
1266 case "$host_os" in
1267 solaris2.*)
1268         ac_cv_e2fsprogs_use_static=no   
1269 ;;
1270 esac
1271 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1272 LDFLAG_STATIC=
1273 if test $ac_cv_e2fsprogs_use_static = yes; then
1274         LDFLAG_STATIC=-static
1275 fi
1276 AC_SUBST(LDFLAG_STATIC)
1277 dnl
1278 dnl Work around mysterious Darwin / GNU libintl problem
1279 dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
1280 dnl Apple hacked gcc somehow?)
1281 dnl
1282 case "$host_os" in
1283 darwin*)
1284         AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1285         AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1286                 [Define to 1 if Apple Darwin libintl workaround is needed])
1287         ;;
1288 esac
1289 dnl
1290 dnl Make the ss and et directories work correctly.
1291 dnl
1292 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1293 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1294 AC_SUBST(SS_DIR)
1295 AC_SUBST(ET_DIR)
1296 dnl
1297 dnl Only try to run the test suite if we're not cross compiling.
1298 dnl
1299 if test "$cross_compiling" = yes ; then
1300   DO_TEST_SUITE=
1301 else
1302   DO_TEST_SUITE=check
1303 fi
1304 AC_SUBST(DO_TEST_SUITE)
1305 dnl
1306 dnl Only include the intl include files if we're building with them
1307 dnl
1308 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1309 if test -n "$CPPFLAGS" ; then
1310         INCLUDES="$INCLUDES $CPPFLAGS"
1311 fi
1312 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1313         INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1314 fi
1315 if test -n "$WITH_DIET_LIBC" ; then
1316         INCLUDES="$INCLUDES -D_REENTRANT"
1317 fi
1318 AC_SUBST(INCLUDES)
1319 dnl
1320 dnl Build CFLAGS
1321 dnl
1322 if test $cross_compiling = no; then
1323    BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1324    BUILD_LDFLAGS="$LDFLAGS"
1325 else
1326    BUILD_CFLAGS=
1327    BUILD_LDFLAGS=
1328 fi
1329 AC_SUBST(BUILD_CFLAGS)
1330 AC_SUBST(BUILD_LDFLAGS)
1331 dnl
1332 dnl Make our output files, being sure that we create the some miscellaneous 
1333 dnl directories
1334 dnl
1335 test -d lib || mkdir lib
1336 test -d include || mkdir include
1337 test -d include/linux || mkdir include/linux
1338 test -d include/asm || mkdir include/asm
1339 for i in MCONFIG Makefile e2fsprogs.spec \
1340         util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1341         lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1342         lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1343         lib/uuid/Makefile lib/uuid/uuid_types.h \
1344         lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1345         lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1346         lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1347         misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1348         debugfs/Makefile tests/Makefile tests/progs/Makefile \
1349         resize/Makefile doc/Makefile intl/Makefile \
1350         intl/libgnuintl.h po/Makefile.in ; do
1351         if test -d `dirname ${srcdir}/$i` ; then
1352                 outlist="$outlist $i"
1353         fi
1354 done
1355 AC_OUTPUT($outlist)
1356 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi