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