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