]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.in
configure: fix --with-diet-libc
[thirdparty/e2fsprogs.git] / configure.in
CommitLineData
50e1e10f 1AC_INIT(version.h)
37cdbee0 2AC_PREREQ(2.54)
b0cacab0 3AC_CONFIG_AUX_DIR(config)
d1154eb4
TT
4AC_CONFIG_HEADERS([lib/config.h])
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
384dnl handle --enable-checker
385dnl
386AC_ARG_ENABLE([checker],
a4d09610 387[ --enable-checker build checker libraries],
50e1e10f
TT
388if test "$enableval" = "no"
389then
390 CHECKER_CMT=#
391 MAKEFILE_CHECKER=/dev/null
02d04db4 392 AC_MSG_RESULT([Disabling checker libraries])
50e1e10f
TT
393else
394 CHECKER_CMT=
395 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
02d04db4 396 AC_MSG_RESULT([Building checker libraries])
50e1e10f
TT
397fi
398,
399CHECKER_CMT=#
400MAKEFILE_CHECKER=/dev/null
02d04db4 401AC_MSG_RESULT([Disabling checker libraries by default])
50e1e10f
TT
402)
403AC_SUBST(CHECKER_CMT)
404AC_SUBST_FILE(MAKEFILE_CHECKER)
405dnl
a4d09610
TT
406dnl Substitute library extensions
407dnl
408AC_SUBST(LIB_EXT)
409AC_SUBST(STATIC_LIB_EXT)
410AC_SUBST(PROFILED_LIB_EXT)
55da9876
TT
411AC_SUBST(LDFLAG_DYNAMIC)
412AC_SUBST(PRIVATE_LIBS_CMT)
a4d09610 413dnl
782bebfd 414dnl handle --enable-jbd-debug
cdf186e4 415dnl
782bebfd
TT
416AC_ARG_ENABLE([jbd-debug],
417[ --enable-jbd-debug enable journal debugging],
cdf186e4
TT
418if test "$enableval" = "no"
419then
02d04db4 420 AC_MSG_RESULT([Disabling journal debugging])
cdf186e4 421else
d1154eb4
TT
422 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
423 [Define to 1 if debugging ext3/4 journal code])
02d04db4 424 AC_MSG_RESULT([Enabling journal debugging])
cdf186e4
TT
425fi
426,
02d04db4 427AC_MSG_RESULT([Disabling journal debugging by default])
cdf186e4
TT
428)
429dnl
f0a22d0f
TT
430dnl handle --enable-blkid-debug
431dnl
432AC_ARG_ENABLE([blkid-debug],
d21ae6c5 433[ --enable-blkid-debug enable blkid debugging],
f0a22d0f
TT
434if test "$enableval" = "no"
435then
02d04db4 436 AC_MSG_RESULT([Disabling blkid debugging])
f0a22d0f 437else
d1154eb4
TT
438 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
439 [Define to 1 if debugging the blkid library])
02d04db4 440 AC_MSG_RESULT([Enabling blkid debugging])
f0a22d0f
TT
441fi
442,
02d04db4 443AC_MSG_RESULT([Disabling blkid debugging by default])
2a29f135
TT
444)
445dnl
446dnl handle --enable-testio-debug
447dnl
448AC_ARG_ENABLE([testio-debug],
af773654 449[ --disable-testio-debug disable the use of the test I/O manager for debugging],
d1154eb4
TT
450AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
451 [Define to 1 if the testio I/O manager should be enabled])
2a29f135
TT
452if test "$enableval" = "no"
453then
02d04db4 454 AC_MSG_RESULT([Disabling testio debugging])
af773654 455 TEST_IO_CMT="#"
2a29f135 456else
af773654 457 TEST_IO_CMT=
d1154eb4 458 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
02d04db4 459 AC_MSG_RESULT([Enabling testio debugging])
2a29f135
TT
460fi
461,
af773654 462AC_MSG_RESULT([Enabling testio debugging by default])
d1154eb4 463AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
af773654 464TEST_IO_CMT=
f0a22d0f 465)
af773654 466AC_SUBST(TEST_IO_CMT)
f0a22d0f 467dnl
39fd3d4f
SJR
468dnl handle --disable-libuuid
469dnl
470PKG_PROG_PKG_CONFIG
471LIBUUID=
472DEPLIBUUID=
473STATIC_LIBUUID=
474DEPSTATIC_LIBUUID=
475PROFILED_LIBUUID=
476DEPPROFILED_LIBUUID=
477UUID_CMT=
478AC_ARG_ENABLE([libuuid],
479[ --disable-libuuid do not build private uuid library],
480if test "$enableval" = "no"
481then
482 if test -z "$PKG_CONFIG"; then
483 AC_MSG_ERROR([pkg-config not installed; please install it.])
484 fi
485
486 AC_CHECK_LIB(uuid, uuid_generate,
487 [LIBUUID=`$PKG_CONFIG --libs uuid`;
488 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
489 [AC_MSG_ERROR([external uuid library not found])],
490 [$LIBUUID])
491 UUID_CMT=#
492 AC_MSG_RESULT([Disabling private uuid library])
493else
494 LIBUUID='$(LIB)/libuuid'$LIB_EXT
495 DEPLIBUUID=$LIBUUID
496 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
497 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
498 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
499 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
500 AC_MSG_RESULT([Enabling private uuid library])
501fi
502,
503LIBUUID='$(LIB)/libuuid'$LIB_EXT
504DEPLIBUUID=$LIBUUID
505STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
506DEPSTATIC_LIBUUID=$STATIC_LIBUUID
507PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
508DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
509AC_MSG_RESULT([Enabling private uuid library by default])
510)
511AC_SUBST(LIBUUID)
512AC_SUBST(DEPLIBUUID)
513AC_SUBST(STATIC_LIBUUID)
514AC_SUBST(DEPSTATIC_LIBUUID)
515AC_SUBST(PROFILED_LIBUUID)
516AC_SUBST(DEPPROFILED_LIBUUID)
517AC_SUBST(UUID_CMT)
518dnl
14b596d4
TT
519dnl handle --disable-libblkid
520dnl
521PKG_PROG_PKG_CONFIG
522LIBBLKID=
523DEPLIBBLKID=
524STATIC_LIBBLKID=
525DEPSTATIC_LIBBLKID=
526PROFILED_LIBBLKID=
527DEPPROFILED_LIBBLKID=
528BLKID_CMT=
d1154eb4 529AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
14b596d4
TT
530AC_ARG_ENABLE([libblkid],
531[ --disable-libblkid do not build private blkid library],
532if test "$enableval" = "no"
533then
534 if test -z "$PKG_CONFIG"; then
535 AC_MSG_ERROR([pkg-config not installed; please install it.])
536 fi
537
538 AC_CHECK_LIB(blkid, blkid_get_cache,
539 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
540 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
541 [AC_MSG_ERROR([external blkid library not found])],
542 [$LIBBLKID])
543 BLKID_CMT=#
544 AC_MSG_RESULT([Disabling private blkid library])
545else
546 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
547 DEPLIBBLKID=$LIBBLKID
548 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
549 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
550 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
551 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
d1154eb4 552 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
14b596d4
TT
553 AC_MSG_RESULT([Enabling private blkid library])
554fi
555,
556LIBBLKID='$(LIB)/libblkid'$LIB_EXT
557DEPLIBBLKID=$LIBBLKID
558STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
559DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
560PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
561DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
d1154eb4 562AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
14b596d4
TT
563AC_MSG_RESULT([Enabling private blkid library by default])
564)
565AC_SUBST(LIBBLKID)
566AC_SUBST(DEPLIBBLKID)
567AC_SUBST(STATIC_LIBBLKID)
568AC_SUBST(DEPSTATIC_LIBBLKID)
569AC_SUBST(PROFILED_LIBBLKID)
570AC_SUBST(DEPPROFILED_LIBBLKID)
571AC_SUBST(BLKID_CMT)
572dnl
7becb206 573dnl handle --enable-quota
f239fefc 574dnl
f5589f4c 575QUOTA_MAN_COMMENT='.\"'
43075b42 576QUOTA_CMT=
f5589f4c 577AC_SUBST(QUOTA_MAN_COMMENT)
f239fefc 578PKG_PROG_PKG_CONFIG
7becb206
TT
579AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
580AC_ARG_ENABLE([quota],
7b8912ea 581[ --enable-quota enable quota support],
f239fefc
AK
582if test "$enableval" = "no"
583then
43075b42 584 QUOTA_CMT=#
7becb206 585 AC_MSG_RESULT([Disabling quota support])
f239fefc 586else
43075b42 587 QUOTA_CMT=
7becb206
TT
588 AC_DEFINE(CONFIG_QUOTA, 1)
589 AC_MSG_RESULT([Enabling quota support])
f5589f4c
ES
590 QUOTA_MAN_COMMENT=""
591 AC_SUBST(QUOTA_MAN_COMMENT)
f239fefc
AK
592fi
593,
43075b42 594QUOTA_CMT=#
7becb206
TT
595AC_MSG_RESULT([Disabling quota support by default])
596)
597dnl
598dnl Define stuff expected for quota library
599dnl
f239fefc
AK
600LIBQUOTA='$(LIB)/libquota'$LIB_EXT
601DEPLIBQUOTA=$LIBQUOTA
602STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
603DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
604PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
605DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
f239fefc
AK
606AC_SUBST(LIBQUOTA)
607AC_SUBST(DEPLIBQUOTA)
608AC_SUBST(STATIC_LIBQUOTA)
609AC_SUBST(DEPSTATIC_LIBQUOTA)
610AC_SUBST(PROFILED_LIBQUOTA)
611AC_SUBST(DEPPROFILED_LIBQUOTA)
612AC_SUBST(QUOTA_CMT)
613dnl
3df6014a
TT
614dnl handle --disable-backtrace
615dnl
616AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
617AC_ARG_ENABLE([backtrace],
618[ --disable-backtrace disable use backtrace],
619if test "$enableval" = "no"
620then
621 AC_MSG_RESULT([Disabling use of backtrace])
622 AC_DEFINE(DISABLE_BACKTRACE, 1)
623else
624 AC_MSG_RESULT([Enabling use of backtrace])
625fi
626,
627AC_MSG_RESULT([Enabling use of backtrace by default])
628)
629dnl
cdf186e4
TT
630dnl handle --enable-debugfs
631dnl
632AC_ARG_ENABLE([debugfs],
633[ --disable-debugfs disable support of debugfs program],
634if test "$enableval" = "no"
635then
02d04db4 636 AC_MSG_RESULT([Disabling debugfs support])
cdf186e4
TT
637 DEBUGFS_CMT="#"
638else
639 DEBUGFS_CMT=
02d04db4 640 AC_MSG_RESULT([Enabling debugfs support])
cdf186e4
TT
641fi
642,
02d04db4 643AC_MSG_RESULT([Enabling debugfs support by default])
cdf186e4
TT
644DEBUGFS_CMT=
645)
646AC_SUBST(DEBUGFS_CMT)
647dnl
648dnl handle --enable-imager
649dnl
650AC_ARG_ENABLE([imager],
651[ --disable-imager disable support of e2image program],
652if test "$enableval" = "no"
653then
02d04db4 654 AC_MSG_RESULT([Disabling e2image support])
cdf186e4
TT
655 IMAGER_CMT="#"
656else
657 IMAGER_CMT=
02d04db4 658 AC_MSG_RESULT([Enabling e2image support])
cdf186e4
TT
659fi
660,
02d04db4 661AC_MSG_RESULT([Enabling e2image support by default])
cdf186e4
TT
662IMAGER_CMT=
663)
664AC_SUBST(IMAGER_CMT)
665dnl
666dnl handle --enable-resizer
667dnl
668AC_ARG_ENABLE([resizer],
669[ --disable-resizer disable support of e2resize program],
670if test "$enableval" = "no"
671then
02d04db4 672 AC_MSG_RESULT([Disabling e2resize support])
cdf186e4
TT
673 RESIZER_CMT="#"
674else
675 RESIZER_CMT=
02d04db4 676 AC_MSG_RESULT([Enabling e2resize support])
cdf186e4
TT
677fi
678,
02d04db4 679AC_MSG_RESULT([Enabling e2resize support by default])
cdf186e4
TT
680RESIZER_CMT=
681)
682AC_SUBST(RESIZER_CMT)
683dnl
8d9c50c5
TT
684dnl handle --enable-defrag
685dnl
686AC_ARG_ENABLE([defrag],
687[ --disable-defrag disable support of e4defrag program],
688if test "$enableval" = "no"
689then
690 AC_MSG_RESULT([Disabling e4defrag support])
691 DEFRAG_CMT="#"
692else
693 DEFRAG_CMT=
694 AC_MSG_RESULT([Enabling e4defrag support])
695fi
696,
6c59a665
TT
697if test -z "$WITH_DIET_LIBC"
698then
699 AC_MSG_RESULT([Enabling e4defrag support by default])
700 DEFRAG_CMT=
701else
702 AC_MSG_RESULT([Disabling e4defrag support by default])
703 DEFRAG_CMT="#"
704fi
8d9c50c5
TT
705)
706AC_SUBST(DEFRAG_CMT)
707dnl
fc6d9d51
TT
708dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
709dnl
710AC_ARG_ENABLE([fsck],
711[ --enable-fsck build fsck wrapper program],
712[if test "$enableval" = "no"
713then
714 FSCK_PROG='' FSCK_MAN=''
02d04db4 715 AC_MSG_RESULT([Not building fsck wrapper])
fc6d9d51
TT
716else
717 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 718 AC_MSG_RESULT([Building fsck wrapper])
fc6d9d51
TT
719fi]
720,
721[case "$host_os" in
e363240d 722 gnu*)
fc6d9d51 723 FSCK_PROG='' FSCK_MAN=''
02d04db4 724 AC_MSG_RESULT([Not building fsck wrapper by default])
fc6d9d51
TT
725 ;;
726 *)
727 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 728 AC_MSG_RESULT([Building fsck wrapper by default])
fc6d9d51
TT
729esac]
730)
731AC_SUBST(FSCK_PROG)
732AC_SUBST(FSCK_MAN)
733dnl
5d40773b
TT
734dnl See whether to install the `e2initrd-helper' program
735dnl
736AC_ARG_ENABLE([e2initrd-helper],
737[ --enable-e2initrd-helper build e2initrd-helper program],
738[if test "$enableval" = "no"
739then
740 E2INITRD_PROG='' E2INITRD_MAN=''
02d04db4 741 AC_MSG_RESULT([Not building e2initrd helper])
5d40773b
TT
742else
743 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 744 AC_MSG_RESULT([Building e2initrd helper])
5d40773b
TT
745fi]
746,
747E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 748AC_MSG_RESULT([Building e2initrd helper by default])
5d40773b
TT
749)
750AC_SUBST(E2INITRD_PROG)
751AC_SUBST(E2INITRD_MAN)
4db2f59a 752dnl
5d40773b 753dnl
50e1e10f 754dnl
3249394d
TT
755AC_ARG_ENABLE([tls],
756[ --disable-tls disable use of thread local support],
757[if test "$enableval" = "no"
758then
759 try_tls=""
02d04db4 760 AC_MSG_RESULT([Disabling thread local support])
3249394d
TT
761else
762 try_tls="yes"
02d04db4 763 AC_MSG_RESULT([Enabling thread local support])
3249394d
TT
764fi]
765,
eafba6c3
TT
766if test -n "$WITH_DIET_LIBC"
767then
768 try_tls=""
02d04db4 769 AC_MSG_RESULT([Diet libc does not support thread local support])
eafba6c3
TT
770else
771 try_tls="yes"
02d04db4 772 AC_MSG_RESULT([Try using thread local support by default])
eafba6c3 773fi
3249394d
TT
774)
775if test "$try_tls" = "yes"
776then
777AX_TLS
778fi
779dnl
780dnl
781dnl
d1154eb4 782AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
5610f992
TT
783AC_ARG_ENABLE([uuidd],
784[ --disable-uuidd disable building the uuid daemon],
785[if test "$enableval" = "no"
786then
02d04db4 787 AC_MSG_RESULT([Not building uuidd])
5610f992
TT
788 UUIDD_CMT="#"
789else
d1154eb4 790 AC_DEFINE(USE_UUIDD, 1)
5610f992 791 UUIDD_CMT=""
02d04db4 792 AC_MSG_RESULT([Building uuidd])
5610f992
TT
793fi]
794,
d1154eb4 795AC_DEFINE(USE_UUIDD, 1)
5610f992 796UUIDD_CMT=""
02d04db4 797AC_MSG_RESULT([Building uuidd by default])
5610f992
TT
798)
799AC_SUBST(UUIDD_CMT)
800dnl
801dnl
802dnl
50e1e10f
TT
803MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
804AC_SUBST_FILE(MAKEFILE_LIBRARY)
805dnl
cdf186e4
TT
806dnl Add internationalization support, using gettext.
807dnl
b0cacab0 808GETTEXT_PACKAGE=e2fsprogs
cdf186e4
TT
809PACKAGE=e2fsprogs
810VERSION="$E2FSPROGS_VERSION"
b0cacab0 811VERSION=0.14.1
d1154eb4
TT
812AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
813AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
b0cacab0 814AC_SUBST(GETTEXT_PACKAGE)
cdf186e4
TT
815AC_SUBST(PACKAGE)
816AC_SUBST(VERSION)
817
cdf186e4
TT
818AM_GNU_GETTEXT
819dnl
50e1e10f
TT
820dnl End of configuration options
821dnl
74becf3c 822AC_SUBST(BINARY_TYPE)
50e1e10f 823AC_PROG_MAKE_SET
bcb915b0 824CHECK_GNU_MAKE
50e1e10f 825AC_PATH_PROG(LN, ln, ln)
fc6d9d51 826AC_PROG_LN_S
50e1e10f
TT
827AC_PATH_PROG(MV, mv, mv)
828AC_PATH_PROG(CP, cp, cp)
829AC_PATH_PROG(RM, rm, rm)
830AC_PATH_PROG(CHMOD, chmod, :)
32237014
TT
831AC_PROG_AWK
832AC_PROG_EGREP
50e1e10f 833AC_PATH_PROG(SED, sed, sed)
9d564f73 834AC_PATH_PROG(PERL, perl, perl)
250f79f0 835AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
836AC_CHECK_TOOL(AR, ar, ar)
837AC_CHECK_TOOL(RANLIB, ranlib, :)
838AC_CHECK_TOOL(STRIP, strip, :)
7321d94e
MK
839AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
840if test "_$MAKEINFO" = "_"; then
841 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
842else
843 case "$MAKEINFO" in
844 */missing.*)
845 AC_MSG_WARN([
846*** Makeinfo is missing. Info documentation will not be built.])
847 ;;
848 *)
849 ;;
850 esac
851fi
852AC_SUBST(MAKEINFO)
50e1e10f 853AC_PROG_INSTALL
6c133523
TT
854# See if we need a separate native compiler.
855if test $cross_compiling = no; then
856 BUILD_CC="$CC"
857 AC_SUBST(BUILD_CC)
858else
859 AC_CHECK_PROGS(BUILD_CC, gcc cc)
860fi
677fc916
MF
861AC_CHECK_HEADERS(m4_flatten([
862 dirent.h
863 errno.h
864 execinfo.h
865 getopt.h
866 malloc.h
867 mntent.h
868 paths.h
869 semaphore.h
870 setjmp.h
871 signal.h
872 stdarg.h
873 stdint.h
874 stdlib.h
875 termios.h
876 termio.h
877 unistd.h
878 utime.h
879 linux/falloc.h
880 linux/fd.h
881 linux/major.h
fbabd5c4 882 linux/loop.h
677fc916
MF
883 net/if_dl.h
884 netinet/in.h
885 sys/disklabel.h
886 sys/file.h
887 sys/ioctl.h
888 sys/mkdev.h
889 sys/mman.h
890 sys/prctl.h
891 sys/queue.h
892 sys/resource.h
893 sys/select.h
894 sys/socket.h
895 sys/sockio.h
896 sys/stat.h
897 sys/syscall.h
898 sys/sysmacros.h
899 sys/time.h
900 sys/types.h
901 sys/un.h
902 sys/wait.h
903]))
da76d6b7
TT
904AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
905[[
906#if HAVE_SYS_QUEUE_H
907#include <sys/queue.h>
908#endif
909]])
910AC_CHECK_HEADERS(net/if.h,,,
911[[
912#if HAVE_SYS_TYPES_H
913#include <sys/types.h>
914#endif
915#if HAVE_SYS_SOCKET
916#include <sys/socket.h>
917#endif
918]])
50e1e10f 919AC_FUNC_VPRINTF
fff45483
TT
920dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
921dnl is not decleared.
d1154eb4
TT
922AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
923 [Define to 1 if dirent has d_reclen])],,
6c65d251 924 [#include <dirent.h>])
2873927d 925AC_CHECK_MEMBERS([struct stat.st_atim])
d1154eb4
TT
926dnl Check to see if ssize_t was declared
927AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
928 [Define to 1 if ssize_t declared])],,
6c65d251 929 [#include <sys/types.h>])
50e1e10f 930dnl
b0b9c4de
TT
931dnl Check to see if llseek() is declared in unistd.h. On some libc's
932dnl it is, and on others it isn't..... Thank you glibc developers....
933dnl
d1154eb4
TT
934AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
935 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 936 [#include <unistd.h>])
b0b9c4de 937dnl
6928adc9
TT
938dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
939dnl are so convoluted that I can't tell whether it will always be defined,
940dnl and if it isn't defined while lseek64 is defined in the library,
941dnl disaster will strike.
942dnl
943dnl Warning! Use of --enable-gcc-wall may throw off this test.
944dnl
945dnl
d1154eb4
TT
946AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
947 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
948 [#define _LARGEFILE_SOURCE
949 #define _LARGEFILE64_SOURCE
950 #include <unistd.h>])
6928adc9 951dnl
50e1e10f
TT
952dnl Word sizes...
953dnl
50e1e10f
TT
954AC_CHECK_SIZEOF(short)
955AC_CHECK_SIZEOF(int)
956AC_CHECK_SIZEOF(long)
fc6d9d51 957AC_CHECK_SIZEOF(long long)
274d46e1 958AC_CHECK_SIZEOF(off_t)
50e1e10f
TT
959SIZEOF_SHORT=$ac_cv_sizeof_short
960SIZEOF_INT=$ac_cv_sizeof_int
961SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 962SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
274d46e1 963SIZEOF_OFF_T=$ac_cv_sizeof_off_t
50e1e10f
TT
964AC_SUBST(SIZEOF_SHORT)
965AC_SUBST(SIZEOF_INT)
966AC_SUBST(SIZEOF_LONG)
fc6d9d51 967AC_SUBST(SIZEOF_LONG_LONG)
274d46e1 968AC_SUBST(SIZEOF_OFF_T)
877eb6d9 969AC_C_BIGENDIAN
29a5deed 970BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
4ea7ea00
TT
971ASM_TYPES_HEADER=./asm_types.h
972AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 973dnl
488c75a6
TT
974dnl Save the configuration #defines needed for the public ext2fs.h
975dnl header file
976dnl
977echo "/* These defines are needed for the public ext2fs.h header file */" \
978 > public_config.h
979if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
980 uniq tmp_config.$$ >> public_config.h
981else
982 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
983fi
984if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
985 uniq tmp_config.$$ >> public_config.h
986else
987 echo "#undef WORDS_BIGENDIAN" >> public_config.h
988fi
989rm -f tmp_config.$$
990PUBLIC_CONFIG_HEADER=./public_config.h
991AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
992dnl
0c193f82
TT
993dnl See if we have inttypes.h and if intptr_t is defined
994dnl
995AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 996AC_CHECK_TYPES(intptr_t)
0c193f82 997dnl
50e1e10f
TT
998dnl See if struct stat has a st_flags field, in which case we can get file
999dnl flags somewhat portably. Also check for the analogous setter, chflags().
1000dnl
1001AC_MSG_CHECKING(whether struct stat has a st_flags field)
1002AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1003 AC_TRY_COMPILE([#include <sys/stat.h>],
1004 [struct stat stat; stat.st_flags = 0;],
1005 [e2fsprogs_cv_struct_st_flags=yes],
1006 [e2fsprogs_cv_struct_st_flags=no]))
1007AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1008if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
1009 AC_MSG_CHECKING(whether st_flags field is useful)
1010 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1011 AC_TRY_COMPILE([#include <sys/stat.h>],
1012 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1013 [e2fsprogs_cv_struct_st_flags_immut=yes],
1014 [e2fsprogs_cv_struct_st_flags_immut=no]))
1015 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1016 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
1017 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1018 [Define to 1 if struct stat has st_flags])
c03bc4e8 1019 fi
50e1e10f 1020fi
84ea6e70
TT
1021dnl
1022dnl Check for the presence of SA_LEN
1023dnl
6c65d251 1024AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
1025 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1026 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
1027 [#include <sys/types.h>
1028 #include <sys/socket.h>])
84ea6e70 1029dnl
9ed8e5fe
ES
1030dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1031dnl the system-provided blkid library
1032dnl
1033if test -n "$BLKID_CMT"; then
1034 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1035fi
1036dnl
677fc916
MF
1037AC_CHECK_FUNCS(m4_flatten([
1038 __secure_getenv
1039 backtrace
1040 blkid_probe_get_topology
1041 chflags
9a393891 1042 fadvise64
677fc916
MF
1043 fallocate
1044 fallocate64
1045 fchown
1046 fdatasync
1047 fstat64
1048 ftruncate64
2873927d 1049 futimes
6c59a665 1050 getcwd
677fc916
MF
1051 getdtablesize
1052 getmntinfo
25ff7725 1053 getpwuid_r
677fc916
MF
1054 getrlimit
1055 getrusage
1056 jrand48
1057 llseek
1058 lseek64
1059 mallinfo
1060 mbstowcs
1061 memalign
6c59a665 1062 mempcpy
677fc916
MF
1063 mmap
1064 msync
1065 nanosleep
1066 open64
1067 pathconf
1068 posix_fadvise
9a393891 1069 posix_fadvise64
677fc916
MF
1070 posix_memalign
1071 prctl
1ad3174a 1072 secure_getenv
b24efa21 1073 setmntent
677fc916
MF
1074 setresgid
1075 setresuid
1076 srandom
6c59a665 1077 stpcpy
677fc916
MF
1078 strcasecmp
1079 strdup
1080 strnlen
1081 strptime
1082 strtoull
1083 sync_file_range
1084 sysconf
1085 usleep
1086 utime
1087 valloc
1088]))
fc6d9d51 1089dnl
fc6d9d51
TT
1090dnl Check to see if -lsocket is required (solaris) to make something
1091dnl that uses socket() to compile; this is needed for the UUID library
1092dnl
1093SOCKET_LIB=''
1094AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1095AC_SUBST(SOCKET_LIB)
1096dnl
50e1e10f
TT
1097dnl See if optreset exists
1098dnl
1099AC_MSG_CHECKING(for optreset)
1100AC_CACHE_VAL(ac_cv_have_optreset,
1101[AC_EGREP_HEADER(optreset, unistd.h,
1102 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1103AC_MSG_RESULT($ac_cv_have_optreset)
1104if test $ac_cv_have_optreset = yes; then
d1154eb4 1105 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
1106fi
1107dnl
d7f45af8
TT
1108dnl Test for sem_init, and which library it might require:
1109dnl
d1154eb4 1110AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8
TT
1111SEM_INIT_LIB=''
1112AC_CHECK_FUNC(sem_init, ,
1113 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 1114 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1115 SEM_INIT_LIB=-lpthread,
1116 AC_CHECK_LIB(rt, sem_init,
d1154eb4 1117 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1118 SEM_INIT_LIB=-lrt,
1119 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 1120 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1121 SEM_INIT_LIB=-lposix4))))dnl
1122AC_SUBST(SEM_INIT_LIB)
1123dnl
e54635de
TT
1124dnl Check for unified diff
1125dnl
1126AC_MSG_CHECKING(for unified diff option)
27f991b0 1127if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
1128 UNI_DIFF_OPTS=-u
1129else
1130 UNI_DIFF_OPTS=-c
1131fi
1132AC_MSG_RESULT($UNI_DIFF_OPTS)
1133AC_SUBST(UNI_DIFF_OPTS)
1134dnl
8f3f29d3
TT
1135dnl We use the EXT2 ioctls only under Linux
1136dnl
1137case "$host_os" in
1138linux*)
d1154eb4 1139 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
1140 ;;
1141esac
50e1e10f 1142dnl
fff45483 1143dnl OS-specific uncomment control
e6f2bda3
TT
1144dnl
1145LINUX_CMT="#"
fff45483
TT
1146CYGWIN_CMT="#"
1147UNIX_CMT=
e6f2bda3
TT
1148case "$host_os" in
1149linux*)
1150 LINUX_CMT=
1151 ;;
fff45483
TT
1152cygwin)
1153 CYGWIN_CMT=
1154 UNIX_CMT="#"
fff45483 1155 ;;
e6f2bda3
TT
1156esac
1157AC_SUBST(LINUX_CMT)
fff45483
TT
1158AC_SUBST(CYGWIN_CMT)
1159AC_SUBST(UNIX_CMT)
e6f2bda3 1160dnl
6c133523 1161dnl Linux and Hurd places root files in the / by default
50e1e10f 1162dnl
50e1e10f 1163case "$host_os" in
93636bde 1164linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
1165 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1166 root_prefix="";
02d04db4 1167 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
1168 fi
1169 ;;
1170esac
fc6d9d51 1171dnl
a4b2d3ce 1172dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1173dnl
1174case "$host_os" in
93636bde 1175linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1176 if test "$prefix" = NONE ; then
a4b2d3ce 1177 prefix="/usr";
02d04db4 1178 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1179 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1180 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1181 mandir=/usr/share/man
1182 fi
50e1e10f
TT
1183 fi
1184;;
1185esac
a4b2d3ce 1186if test "$root_prefix" = NONE ; then
ffe1991f 1187 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1188 root_prefix="$ac_default_prefix"
1189 else
1190 root_prefix="$prefix"
1191 fi
b5ffeade
TT
1192 root_bindir=$bindir
1193 root_sbindir=$sbindir
1194 root_libdir=$libdir
1195 root_sysconfdir=$sysconfdir
1196else
1197 root_bindir='${root_prefix}/bin'
1198 root_sbindir='${root_prefix}/sbin'
1199 root_libdir='${root_prefix}/lib'
1200 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1201fi
c4ef11c5
TT
1202if test "$bindir" != '${exec_prefix}/bin'; then
1203 root_bindir=$bindir
02d04db4 1204 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1205fi
1206if test "$sbindir" != '${exec_prefix}/sbin'; then
1207 root_sbindir=$sbindir
02d04db4 1208 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1209fi
1210if test "$libdir" != '${exec_prefix}/lib'; then
1211 root_libdir=$libdir
02d04db4 1212 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1213fi
1214if test "$sysconfdir" != '${prefix}/etc'; then
1215 root_sysconfdir=$sysconfdir
02d04db4 1216 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1217fi
a4b2d3ce 1218AC_SUBST(root_prefix)
b5ffeade
TT
1219AC_SUBST(root_bindir)
1220AC_SUBST(root_sbindir)
1221AC_SUBST(root_libdir)
1222AC_SUBST(root_sysconfdir)
50e1e10f 1223dnl
55e00a25
TT
1224dnl Allow specification of the multiarch arch
1225dnl
1226AC_ARG_WITH([multiarch],
1227[ --with-multiarch=ARCH specify the multiarch triplet],
1228libdir=$libdir/$withval
1229root_libdir=$root_libdir/$withval
1230)dnl
1231dnl
d3de1a71
TT
1232dnl See if -static works. This could fail if the linker does not
1233dnl support -static, or if required external libraries are not available
1234dnl in static form.
50e1e10f 1235dnl
d3de1a71 1236AC_MSG_CHECKING([whether we can link with -static])
ae851482
TT
1237AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1238[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1239AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1240 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1241LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1242dnl
1243dnl Regardless of how the test turns out, Solaris doesn't handle -static
1244dnl This is caused by the socket library requiring the nsl library, which
1245dnl requires the -dl library, which only works for dynamically linked
1246dnl programs. It basically means you can't have statically linked programs
1247dnl which use the network under Solaris.
1248dnl
1249case "$host_os" in
1250solaris2.*)
1251 ac_cv_e2fsprogs_use_static=no
1252;;
1253esac
ae851482 1254AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
74becf3c 1255LDFLAG_STATIC=
ae851482 1256if test $ac_cv_e2fsprogs_use_static = yes; then
50e1e10f 1257 LDFLAG_STATIC=-static
ae851482 1258fi
50e1e10f
TT
1259AC_SUBST(LDFLAG_STATIC)
1260dnl
07a0db15
TT
1261dnl Work around mysterious Darwin / GNU libintl problem
1262dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1263dnl Apple hacked gcc somehow?)
1264dnl
1265case "$host_os" in
1266darwin*)
02d04db4 1267 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1268 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1269 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1270 ;;
1271esac
1272dnl
50e1e10f
TT
1273dnl Make the ss and et directories work correctly.
1274dnl
1275SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1276ET_DIR=`cd ${srcdir}/lib/et; pwd`
1277AC_SUBST(SS_DIR)
1278AC_SUBST(ET_DIR)
1279dnl
1280dnl Only try to run the test suite if we're not cross compiling.
1281dnl
1282if test "$cross_compiling" = yes ; then
1283 DO_TEST_SUITE=
1284else
1285 DO_TEST_SUITE=check
1286fi
1287AC_SUBST(DO_TEST_SUITE)
1288dnl
c6f35b8a 1289dnl Only include the intl include files if we're building with them
d1154eb4
TT
1290dnl
1291INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1292if test -n "$CPPFLAGS" ; then
1293 INCLUDES="$INCLUDES $CPPFLAGS"
1294fi
c6f35b8a 1295if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1296 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1297fi
6c59a665
TT
1298if test -n "$WITH_DIET_LIBC" ; then
1299 INCLUDES="$INCLUDES -D_REENTRANT"
1300fi
d1154eb4 1301AC_SUBST(INCLUDES)
c6f35b8a 1302dnl
dd947da2
TT
1303dnl Build CFLAGS
1304dnl
1305if test $cross_compiling = no; then
2873927d 1306 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
dd947da2
TT
1307 BUILD_LDFLAGS="$LDFLAGS"
1308else
1309 BUILD_CFLAGS=
1310 BUILD_LDFLAGS=
1311fi
1312AC_SUBST(BUILD_CFLAGS)
1313AC_SUBST(BUILD_LDFLAGS)
1314dnl
50e1e10f
TT
1315dnl Make our output files, being sure that we create the some miscellaneous
1316dnl directories
1317dnl
1318test -d lib || mkdir lib
1319test -d include || mkdir include
1320test -d include/linux || mkdir include/linux
defde784 1321test -d include/asm || mkdir include/asm
bff0cc95 1322for i in MCONFIG Makefile e2fsprogs.spec \
183c73b0 1323 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
4ea7ea00
TT
1324 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1325 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
94ba8c75 1326 lib/uuid/Makefile lib/uuid/uuid_types.h \
f239fefc 1327 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
e6441865
TT
1328 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1329 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1330 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1331 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61
MA
1332 resize/Makefile doc/Makefile intl/Makefile \
1333 intl/libgnuintl.h po/Makefile.in ; do
94ba8c75
TT
1334 if test -d `dirname ${srcdir}/$i` ; then
1335 outlist="$outlist $i"
1336 fi
1337done
1338AC_OUTPUT($outlist)
ee683a13 1339if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi