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