Whamcloud - gitweb
e2fsck: fully and properly gettextize two error messages
[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 if test $cross_compiling = no; then
983   BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
984 else
985   CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
986 fi
987 ASM_TYPES_HEADER=./asm_types.h
988 AC_SUBST_FILE(ASM_TYPES_HEADER)
989 dnl
990 dnl Save the configuration #defines needed for the public ext2fs.h
991 dnl header file
992 dnl
993 echo "/* These defines are needed for the public ext2fs.h header file */" \
994      > public_config.h
995 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
996   uniq tmp_config.$$ >> public_config.h
997 else
998   echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
999 fi
1000 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1001   uniq tmp_config.$$ >> public_config.h
1002 else
1003   echo "#undef WORDS_BIGENDIAN" >> public_config.h
1004 fi
1005 rm -f tmp_config.$$
1006 PUBLIC_CONFIG_HEADER=./public_config.h
1007 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1008 dnl
1009 dnl See if we have inttypes.h and if intptr_t is defined
1010 dnl
1011 AC_CHECK_HEADERS([inttypes.h])
1012 AC_CHECK_TYPES(intptr_t)
1013 dnl
1014 dnl See if struct stat has a st_flags field, in which case we can get file
1015 dnl flags somewhat portably.  Also check for the analogous setter, chflags().
1016 dnl
1017 AC_MSG_CHECKING(whether struct stat has a st_flags field)
1018 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1019         AC_TRY_COMPILE([#include <sys/stat.h>],
1020                 [struct stat stat; stat.st_flags = 0;],
1021                 [e2fsprogs_cv_struct_st_flags=yes],
1022                 [e2fsprogs_cv_struct_st_flags=no]))
1023 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1024 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1025   AC_MSG_CHECKING(whether st_flags field is useful)
1026   AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1027         AC_TRY_COMPILE([#include <sys/stat.h>],
1028                 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1029                 [e2fsprogs_cv_struct_st_flags_immut=yes],
1030                 [e2fsprogs_cv_struct_st_flags_immut=no]))
1031   AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1032   if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1033           AC_DEFINE(HAVE_STAT_FLAGS, 1,
1034                 [Define to 1 if struct stat has st_flags])
1035   fi
1036 fi
1037 dnl
1038 dnl Check for the presence of SA_LEN
1039 dnl
1040 AC_CHECK_MEMBER(struct sockaddr.sa_len,
1041                 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1042                         [Define to 1 if if struct sockaddr contains sa_len]),,
1043         [#include <sys/types.h>
1044          #include <sys/socket.h>])
1045 dnl
1046 dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1047 dnl the system-provided blkid library
1048 dnl
1049 if test -n "$BLKID_CMT"; then
1050   AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1051 fi
1052 dnl
1053 AC_CHECK_FUNCS(m4_flatten([
1054         __secure_getenv
1055         backtrace
1056         blkid_probe_get_topology
1057         blkid_probe_enable_partitions
1058         chflags
1059         fadvise64
1060         fallocate
1061         fallocate64
1062         fchown
1063         fdatasync
1064         fstat64
1065         ftruncate64
1066         futimes
1067         getcwd
1068         getdtablesize
1069         getmntinfo
1070         getpwuid_r
1071         getrlimit
1072         getrusage
1073         jrand48
1074         llseek
1075         lseek64
1076         mallinfo
1077         mbstowcs
1078         memalign
1079         mempcpy
1080         mmap
1081         msync
1082         nanosleep
1083         open64
1084         pathconf
1085         posix_fadvise
1086         posix_fadvise64
1087         posix_memalign
1088         prctl
1089         secure_getenv
1090         setmntent
1091         setresgid
1092         setresuid
1093         srandom
1094         stpcpy
1095         strcasecmp
1096         strdup
1097         strnlen
1098         strptime
1099         strtoull
1100         sync_file_range
1101         sysconf
1102         usleep
1103         utime
1104         valloc
1105 ]))
1106 dnl
1107 dnl Check to see if -lsocket is required (solaris) to make something
1108 dnl that uses socket() to compile; this is needed for the UUID library
1109 dnl
1110 SOCKET_LIB=''
1111 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1112 AC_SUBST(SOCKET_LIB)
1113 dnl
1114 dnl See if optreset exists
1115 dnl
1116 AC_MSG_CHECKING(for optreset)
1117 AC_CACHE_VAL(ac_cv_have_optreset,
1118 [AC_EGREP_HEADER(optreset, unistd.h,
1119   ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1120 AC_MSG_RESULT($ac_cv_have_optreset)
1121 if test $ac_cv_have_optreset = yes; then
1122   AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1123 fi
1124 dnl
1125 dnl Test for sem_init, and which library it might require:
1126 dnl
1127 AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1128 SEM_INIT_LIB=''
1129 AC_CHECK_FUNC(sem_init, ,
1130   AC_CHECK_LIB(pthread, sem_init,
1131         AC_DEFINE(HAVE_SEM_INIT, 1)
1132         SEM_INIT_LIB=-lpthread,
1133   AC_CHECK_LIB(rt, sem_init,
1134         AC_DEFINE(HAVE_SEM_INIT, 1)
1135         SEM_INIT_LIB=-lrt,
1136   AC_CHECK_LIB(posix4, sem_init,
1137         AC_DEFINE(HAVE_SEM_INIT, 1)
1138         SEM_INIT_LIB=-lposix4))))dnl
1139 AC_SUBST(SEM_INIT_LIB)
1140 dnl
1141 dnl Check for unified diff
1142 dnl
1143 AC_MSG_CHECKING(for unified diff option)
1144 if diff -u $0 $0 > /dev/null 2>&1 ; then
1145    UNI_DIFF_OPTS=-u
1146 else
1147    UNI_DIFF_OPTS=-c
1148 fi
1149 AC_MSG_RESULT($UNI_DIFF_OPTS)
1150 AC_SUBST(UNI_DIFF_OPTS)
1151 dnl
1152 dnl We use the EXT2 ioctls only under Linux
1153 dnl
1154 case "$host_os" in
1155 linux*)
1156         AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1157         ;;
1158 esac
1159 dnl
1160 dnl OS-specific uncomment control
1161 dnl
1162 LINUX_CMT="#"
1163 CYGWIN_CMT="#"
1164 UNIX_CMT=
1165 case "$host_os" in
1166 linux*)
1167         LINUX_CMT=
1168         ;;
1169 cygwin)
1170         CYGWIN_CMT=
1171         UNIX_CMT="#"
1172         ;;
1173 esac
1174 AC_SUBST(LINUX_CMT)
1175 AC_SUBST(CYGWIN_CMT)
1176 AC_SUBST(UNIX_CMT)
1177 dnl
1178 dnl Linux and Hurd places root files in the / by default
1179 dnl
1180 case "$host_os" in
1181 linux* | gnu* | k*bsd*-gnu)
1182         if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1183                 root_prefix="";
1184                 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1185         fi
1186         ;;
1187 esac
1188 dnl
1189 dnl On Linux/hurd, force the prefix to be /usr
1190 dnl
1191 case "$host_os" in
1192 linux* | gnu* | k*bsd*-gnu)
1193         if test "$prefix" = NONE ; then
1194                 prefix="/usr";
1195                 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1196                 if test "$mandir" = '${prefix}/man' ; then
1197                         AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1198                         mandir=/usr/share/man
1199                 fi
1200         fi
1201 ;;
1202 esac
1203 if test "$root_prefix" = NONE ; then
1204         if test "$prefix" = NONE ; then
1205                 root_prefix="$ac_default_prefix"
1206         else
1207                 root_prefix="$prefix"
1208         fi
1209         root_bindir=$bindir
1210         root_sbindir=$sbindir
1211         root_libdir=$libdir
1212         root_sysconfdir=$sysconfdir
1213 else
1214         root_bindir='${root_prefix}/bin'
1215         root_sbindir='${root_prefix}/sbin'
1216         root_libdir='${root_prefix}/lib'
1217         root_sysconfdir='${root_prefix}/etc'
1218 fi
1219 if test "$bindir" != '${exec_prefix}/bin'; then
1220     root_bindir=$bindir
1221     AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1222 fi
1223 if test "$sbindir" != '${exec_prefix}/sbin'; then
1224     root_sbindir=$sbindir
1225     AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1226 fi
1227 if test "$libdir" != '${exec_prefix}/lib'; then
1228     root_libdir=$libdir
1229     AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1230 fi
1231 if test "$sysconfdir" != '${prefix}/etc'; then
1232     root_sysconfdir=$sysconfdir
1233     AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1234 fi
1235 AC_SUBST(root_prefix)
1236 AC_SUBST(root_bindir)
1237 AC_SUBST(root_sbindir)
1238 AC_SUBST(root_libdir)
1239 AC_SUBST(root_sysconfdir)
1240 dnl
1241 dnl Allow specification of the multiarch arch
1242 dnl
1243 AC_ARG_WITH([multiarch],
1244 [  --with-multiarch=ARCH specify the multiarch triplet],
1245 if test "$withval" = "lib64"; then
1246     libdir=/usr/lib64
1247     root_libdir=/lib64
1248 else
1249     libdir=$libdir/$withval
1250     root_libdir=$root_libdir/$withval
1251 fi
1252 )dnl
1253 dnl
1254 dnl See if -static works.  This could fail if the linker does not
1255 dnl support -static, or if required external libraries are not available
1256 dnl in static form.
1257 dnl
1258 AC_MSG_CHECKING([whether we can link with -static])
1259 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1260 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1261 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1262  ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1263 LDFLAGS=$SAVE_LDFLAGS])
1264 dnl
1265 dnl Regardless of how the test turns out, Solaris doesn't handle -static
1266 dnl This is caused by the socket library requiring the nsl library, which
1267 dnl requires the -dl library, which only works for dynamically linked 
1268 dnl programs.  It basically means you can't have statically linked programs
1269 dnl which use the network under Solaris.  
1270 dnl
1271 case "$host_os" in
1272 solaris2.*)
1273         ac_cv_e2fsprogs_use_static=no   
1274 ;;
1275 esac
1276 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1277 LDFLAG_STATIC=
1278 if test $ac_cv_e2fsprogs_use_static = yes; then
1279         LDFLAG_STATIC=-static
1280 fi
1281 AC_SUBST(LDFLAG_STATIC)
1282 dnl
1283 dnl Work around mysterious Darwin / GNU libintl problem
1284 dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
1285 dnl Apple hacked gcc somehow?)
1286 dnl
1287 case "$host_os" in
1288 darwin*)
1289         AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1290         AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1291                 [Define to 1 if Apple Darwin libintl workaround is needed])
1292         ;;
1293 esac
1294 dnl
1295 dnl Make the ss and et directories work correctly.
1296 dnl
1297 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1298 ET_DIR=`cd ${srcdir}/lib/et; pwd`
1299 AC_SUBST(SS_DIR)
1300 AC_SUBST(ET_DIR)
1301 dnl
1302 dnl Only try to run the test suite if we're not cross compiling.
1303 dnl
1304 if test "$cross_compiling" = yes ; then
1305   DO_TEST_SUITE=
1306 else
1307   DO_TEST_SUITE=check
1308 fi
1309 AC_SUBST(DO_TEST_SUITE)
1310 dnl
1311 dnl Only include the intl include files if we're building with them
1312 dnl
1313 INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1314 if test -n "$CPPFLAGS" ; then
1315         INCLUDES="$INCLUDES $CPPFLAGS"
1316 fi
1317 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1318         INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1319 fi
1320 if test -n "$WITH_DIET_LIBC" ; then
1321         INCLUDES="$INCLUDES -D_REENTRANT"
1322 fi
1323 AC_SUBST(INCLUDES)
1324 dnl
1325 dnl Build CFLAGS
1326 dnl
1327 if test $cross_compiling = no; then
1328    BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1329    BUILD_LDFLAGS="$LDFLAGS"
1330 else
1331    BUILD_CFLAGS=
1332    BUILD_LDFLAGS=
1333 fi
1334 AC_SUBST(BUILD_CFLAGS)
1335 AC_SUBST(BUILD_LDFLAGS)
1336 dnl
1337 dnl Make our output files, being sure that we create the some miscellaneous 
1338 dnl directories
1339 dnl
1340 test -d lib || mkdir lib
1341 test -d include || mkdir include
1342 test -d include/linux || mkdir include/linux
1343 test -d include/asm || mkdir include/asm
1344 for i in MCONFIG Makefile e2fsprogs.spec \
1345         util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1346         lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1347         lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1348         lib/uuid/Makefile lib/uuid/uuid_types.h \
1349         lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
1350         lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1351         lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
1352         misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1353         debugfs/Makefile tests/Makefile tests/progs/Makefile \
1354         resize/Makefile doc/Makefile intl/Makefile \
1355         intl/libgnuintl.h po/Makefile.in ; do
1356         if test -d `dirname ${srcdir}/$i` ; then
1357                 outlist="$outlist $i"
1358         fi
1359 done
1360 AC_OUTPUT($outlist)
1361 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi