]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blob - configure.in
Add coverage testing using gcov
[thirdparty/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