]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.ac
Merge branch 'maint' into next
[thirdparty/e2fsprogs.git] / configure.ac
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}'`
5ce368f0
DW
14E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
15 | tr \" " " | awk '{print $1}'`
16E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/')
17MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'`
18YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'`
74becf3c 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-*)
2ab53829 51 E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec"
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)
5ce368f0 66AC_SUBST(E2FSPROGS_DATE)
57aa50d4 67dnl
d21ae6c5
TT
68dnl Use diet libc
69dnl
eafba6c3 70WITH_DIET_LIBC=
d21ae6c5 71AC_ARG_WITH([diet-libc],
3249394d 72[ --with-diet-libc use diet libc],
d21ae6c5 73CC="diet cc -nostdinc"
eafba6c3 74WITH_DIET_LIBC=yes
6c59a665
TT
75if test -z "$LIBS"
76then
77 LIBS="-lcompat"
78else
79 LIBS="$LIBS -lcompat"
80fi
d21ae6c5
TT
81AC_MSG_RESULT(CC=$CC))dnl
82dnl
6c59a665
TT
83AC_CANONICAL_HOST
84dnl
85dnl Check to see if libdl exists for the sake of dlopen
86dnl
87DLOPEN_LIB=''
32179ce2 88AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl)
6c59a665
TT
89AC_SUBST(DLOPEN_LIB)
90dnl
74becf3c 91AC_ARG_WITH([cc],
0b5b9f90
TT
92AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
93AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
74becf3c 94dnl
0b5b9f90
TT
95AC_ARG_WITH([ccopts],
96AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
97AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
74becf3c 98dnl
0b5b9f90
TT
99AC_ARG_WITH([ldopts],
100AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
101AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
74becf3c 102dnl
0b5b9f90 103AC_PROG_CC
9b3018a8
TT
104if test "$GCC" = yes; then
105 RDYNAMIC="-rdynamic"
106 AC_SUBST(RDYNAMIC)
107fi
0b5b9f90 108AC_PROG_CPP
74becf3c 109dnl
b1c92f91
MA
110dnl Alpha computers use fast and imprecise floating point code that may
111dnl miss exceptions by default. Force sane options if we're using GCC.
112AC_MSG_CHECKING(for additional special compiler flags)
113if test "$GCC" = yes
114then
115 case "$host_cpu" in
116 alpha) addcflags="-mieee" ;;
117 esac
118fi
119if test "x$addcflags" != x
120then
121 AC_MSG_RESULT($addcflags)
122 CFLAGS="$addcflags $CFLAGS"
123else
124 AC_MSG_RESULT([[(none)]])
125fi
93613951 126AC_USE_SYSTEM_EXTENSIONS
b1c92f91 127dnl
055866d8
SR
128dnl Set default values for library extensions. Will be dealt with after
129dnl parsing configuration options, which may modify these
a4d09610
TT
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
a4ece359
TT
255dnl This needs to be before all of the --enable-*-shlibs options
256dnl
257E2_PKG_CONFIG_STATIC=--static
55da9876
TT
258LDFLAG_DYNAMIC=
259PRIVATE_LIBS_CMT=
a4ece359 260dnl
50e1e10f
TT
261dnl handle --enable-elf-shlibs
262dnl
263AC_ARG_ENABLE([elf-shlibs],
a4d09610 264[ --enable-elf-shlibs select ELF shared libraries],
50e1e10f
TT
265if test "$enableval" = "no"
266then
267 ELF_CMT=#
268 MAKEFILE_ELF=/dev/null
02d04db4 269 AC_MSG_RESULT([Disabling ELF shared libraries])
50e1e10f 270else
a4ece359 271 E2_PKG_CONFIG_STATIC=
50e1e10f
TT
272 ELF_CMT=
273 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
f5955dda
TT
274 [case "$host_os" in
275 solaris2.*)
276 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
277 ;;
278 esac]
74becf3c 279 BINARY_TYPE=elfbin
a4d09610 280 LIB_EXT=.so
55da9876
TT
281 PRIVATE_LIBS_CMT=#
282 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
02d04db4 283 AC_MSG_RESULT([Enabling ELF shared libraries])
50e1e10f
TT
284fi
285,
286MAKEFILE_ELF=/dev/null
287ELF_CMT=#
02d04db4 288AC_MSG_RESULT([Disabling ELF shared libraries by default])
50e1e10f
TT
289)
290AC_SUBST(ELF_CMT)
291AC_SUBST_FILE(MAKEFILE_ELF)
292dnl
293dnl handle --enable-bsd-shlibs
294dnl
295AC_ARG_ENABLE([bsd-shlibs],
a4d09610 296[ --enable-bsd-shlibs select BSD shared libraries],
50e1e10f
TT
297if test "$enableval" = "no"
298then
299 BSDLIB_CMT=#
300 MAKEFILE_BSDLIB=/dev/null
02d04db4 301 AC_MSG_RESULT([Disabling BSD shared libraries])
50e1e10f 302else
a4ece359 303 E2_PKG_CONFIG_STATIC=
50e1e10f
TT
304 BSDLIB_CMT=
305 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
a4d09610 306 LIB_EXT=.so
e71d8731 307 [case "$host_os" in
aa75eccc 308 darwin*)
e71d8731
TT
309 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
310 LIB_EXT=.dylib
311 ;;
312 esac]
02d04db4 313 AC_MSG_RESULT([Enabling BSD shared libraries])
50e1e10f
TT
314fi
315,
316MAKEFILE_BSDLIB=/dev/null
317BSDLIB_CMT=#
02d04db4 318AC_MSG_RESULT([Disabling BSD shared libraries by default])
50e1e10f
TT
319)
320AC_SUBST(BSDLIB_CMT)
321AC_SUBST_FILE(MAKEFILE_BSDLIB)
322dnl
323dnl handle --enable-profile
324dnl
325AC_ARG_ENABLE([profile],
a4d09610 326[ --enable-profile build profiling libraries],
50e1e10f
TT
327if test "$enableval" = "no"
328then
329 PROFILE_CMT=#
330 MAKEFILE_PROFILE=/dev/null
02d04db4 331 AC_MSG_RESULT([Disabling profiling libraries])
50e1e10f
TT
332else
333 PROFILE_CMT=
334 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
a4d09610 335 PROFILED_LIB_EXT=_p.a
02d04db4 336 AC_MSG_RESULT([Building profiling libraries])
50e1e10f
TT
337fi
338,
339PROFILE_CMT=#
340MAKEFILE_PROFILE=/dev/null
02d04db4 341AC_MSG_RESULT([Disabling profiling libraries by default])
50e1e10f
TT
342)
343AC_SUBST(PROFILE_CMT)
344AC_SUBST_FILE(MAKEFILE_PROFILE)
345dnl
fedfb27f
TT
346dnl handle --enable-gcov
347dnl
348AC_ARG_ENABLE([gcov],
349[ --enable-gcov build for coverage testing using gcov],
350if test "$enableval" = "yes"
351then
352 CFLAGS="-g -fprofile-arcs -ftest-coverage"
353 LDFLAGS="-fprofile-arcs -ftest-coverage"
354 AC_MSG_RESULT([Enabling gcov support])
355fi
356)
fd1677e8
TT
357dnl
358dnl handle --enable-hardening
359dnl
360CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}"
361CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}"
362LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
363LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS}
364AC_ARG_ENABLE([hardening],
365[ --enable-hardening build for coverage testing using gcov],
366if test "$enableval" = "yes"
367then
368 HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
369 HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"]
370 CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE"
371 CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS"
372 CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE"
373 LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie"
374 LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS"
375 LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS"
376 AC_MSG_RESULT([Enabling hardening support])
377fi
378)
50e1e10f 379dnl
a4d09610
TT
380dnl Substitute library extensions
381dnl
382AC_SUBST(LIB_EXT)
383AC_SUBST(STATIC_LIB_EXT)
384AC_SUBST(PROFILED_LIB_EXT)
55da9876
TT
385AC_SUBST(LDFLAG_DYNAMIC)
386AC_SUBST(PRIVATE_LIBS_CMT)
a4d09610 387dnl
782bebfd 388dnl handle --enable-jbd-debug
cdf186e4 389dnl
782bebfd
TT
390AC_ARG_ENABLE([jbd-debug],
391[ --enable-jbd-debug enable journal debugging],
cdf186e4
TT
392if test "$enableval" = "no"
393then
02d04db4 394 AC_MSG_RESULT([Disabling journal debugging])
cdf186e4 395else
d1154eb4
TT
396 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
397 [Define to 1 if debugging ext3/4 journal code])
02d04db4 398 AC_MSG_RESULT([Enabling journal debugging])
cdf186e4
TT
399fi
400,
02d04db4 401AC_MSG_RESULT([Disabling journal debugging by default])
cdf186e4
TT
402)
403dnl
f0a22d0f
TT
404dnl handle --enable-blkid-debug
405dnl
406AC_ARG_ENABLE([blkid-debug],
d21ae6c5 407[ --enable-blkid-debug enable blkid debugging],
f0a22d0f
TT
408if test "$enableval" = "no"
409then
02d04db4 410 AC_MSG_RESULT([Disabling blkid debugging])
f0a22d0f 411else
d1154eb4
TT
412 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
413 [Define to 1 if debugging the blkid library])
02d04db4 414 AC_MSG_RESULT([Enabling blkid debugging])
f0a22d0f
TT
415fi
416,
02d04db4 417AC_MSG_RESULT([Disabling blkid debugging by default])
2a29f135
TT
418)
419dnl
420dnl handle --enable-testio-debug
421dnl
422AC_ARG_ENABLE([testio-debug],
af773654 423[ --disable-testio-debug disable the use of the test I/O manager for debugging],
d1154eb4
TT
424AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
425 [Define to 1 if the testio I/O manager should be enabled])
2a29f135
TT
426if test "$enableval" = "no"
427then
02d04db4 428 AC_MSG_RESULT([Disabling testio debugging])
af773654 429 TEST_IO_CMT="#"
2a29f135 430else
af773654 431 TEST_IO_CMT=
d1154eb4 432 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
02d04db4 433 AC_MSG_RESULT([Enabling testio debugging])
2a29f135
TT
434fi
435,
af773654 436AC_MSG_RESULT([Enabling testio debugging by default])
d1154eb4 437AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
af773654 438TEST_IO_CMT=
f0a22d0f 439)
af773654 440AC_SUBST(TEST_IO_CMT)
f0a22d0f 441dnl
39fd3d4f
SJR
442dnl handle --disable-libuuid
443dnl
444PKG_PROG_PKG_CONFIG
445LIBUUID=
446DEPLIBUUID=
447STATIC_LIBUUID=
448DEPSTATIC_LIBUUID=
449PROFILED_LIBUUID=
450DEPPROFILED_LIBUUID=
451UUID_CMT=
452AC_ARG_ENABLE([libuuid],
f5dffb81 453[ --enable-libuuid build and use private uuid library],
39fd3d4f
SJR
454if test "$enableval" = "no"
455then
456 if test -z "$PKG_CONFIG"; then
457 AC_MSG_ERROR([pkg-config not installed; please install it.])
458 fi
459
460 AC_CHECK_LIB(uuid, uuid_generate,
461 [LIBUUID=`$PKG_CONFIG --libs uuid`;
462 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
2d7583bd 463 [AC_MSG_ERROR([external uuid library not found])])
5afdf37b 464 PROFILED_LIBUUID=$LIBUUID
39fd3d4f
SJR
465 UUID_CMT=#
466 AC_MSG_RESULT([Disabling private uuid library])
467else
468 LIBUUID='$(LIB)/libuuid'$LIB_EXT
469 DEPLIBUUID=$LIBUUID
470 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
471 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
472 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
473 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
474 AC_MSG_RESULT([Enabling private uuid library])
475fi
476,
f5dffb81
TT
477if test -n "$PKG_CONFIG"; then
478 AC_CHECK_LIB(uuid, uuid_generate,
479 [LIBUUID=`$PKG_CONFIG --libs uuid`;
480 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`])
481fi
482if test -n "$LIBUUID"; then
483 PROFILED_LIBUUID=$LIBUUID
484 UUID_CMT=#
485 AC_MSG_RESULT([Using system uuid by default])
486else
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 by default])
494fi
39fd3d4f
SJR
495)
496AC_SUBST(LIBUUID)
497AC_SUBST(DEPLIBUUID)
498AC_SUBST(STATIC_LIBUUID)
499AC_SUBST(DEPSTATIC_LIBUUID)
500AC_SUBST(PROFILED_LIBUUID)
501AC_SUBST(DEPPROFILED_LIBUUID)
502AC_SUBST(UUID_CMT)
503dnl
14b596d4
TT
504dnl handle --disable-libblkid
505dnl
506PKG_PROG_PKG_CONFIG
507LIBBLKID=
508DEPLIBBLKID=
509STATIC_LIBBLKID=
510DEPSTATIC_LIBBLKID=
511PROFILED_LIBBLKID=
512DEPPROFILED_LIBBLKID=
513BLKID_CMT=
d1154eb4 514AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
14b596d4 515AC_ARG_ENABLE([libblkid],
f5dffb81 516[ --enable-libblkid build and use private blkid library],
14b596d4
TT
517if test "$enableval" = "no"
518then
519 if test -z "$PKG_CONFIG"; then
520 AC_MSG_ERROR([pkg-config not installed; please install it.])
521 fi
522
523 AC_CHECK_LIB(blkid, blkid_get_cache,
524 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
525 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
2d7583bd 526 [AC_MSG_ERROR([external blkid library not found])], -luuid)
14b596d4 527 BLKID_CMT=#
5afdf37b 528 PROFILED_LIBBLKID=$LIBBLKID
14b596d4
TT
529 AC_MSG_RESULT([Disabling private blkid library])
530else
531 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
532 DEPLIBBLKID=$LIBBLKID
533 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
534 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
535 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
536 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
d1154eb4 537 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
14b596d4
TT
538 AC_MSG_RESULT([Enabling private blkid library])
539fi
540,
f5dffb81
TT
541if test -n "$PKG_CONFIG"; then
542 AC_CHECK_LIB(blkid, blkid_get_cache,
543 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
544 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`])
545fi
546if test -n "$LIBBLKID"; then
547 BLKID_CMT=#
548 PROFILED_LIBBLKID=$LIBBLKID
549 AC_MSG_RESULT([Using system blkid library by default])
550else
551 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
552 DEPLIBBLKID=$LIBBLKID
553 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
554 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
555 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
556 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
557 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
558 AC_MSG_RESULT([Enabling private blkid library by default])
559fi
14b596d4
TT
560)
561AC_SUBST(LIBBLKID)
562AC_SUBST(DEPLIBBLKID)
563AC_SUBST(STATIC_LIBBLKID)
564AC_SUBST(DEPSTATIC_LIBBLKID)
565AC_SUBST(PROFILED_LIBBLKID)
566AC_SUBST(DEPPROFILED_LIBBLKID)
567AC_SUBST(BLKID_CMT)
568dnl
0afb9be6
TT
569dnl handle --enable-subset
570dnl
571ALL_CMT=
feb235e0 572SUBSET_CMT=
0afb9be6
TT
573AC_ARG_ENABLE([subset],
574[ --enable-subset enable subset-only build],
575if test "$enableval" = "no"
576then
feb235e0 577 SUBSET_CMT=#
0afb9be6
TT
578 AC_MSG_RESULT([Disabling subset-only build])
579else
580 ALL_CMT=#
581 AC_MSG_RESULT([Enabling subset-only-build])
582fi
583,)
584AC_SUBST(ALL_CMT)
feb235e0 585AC_SUBST(SUBSET_CMT)
0afb9be6 586dnl
3df6014a
TT
587dnl handle --disable-backtrace
588dnl
589AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
590AC_ARG_ENABLE([backtrace],
591[ --disable-backtrace disable use backtrace],
592if test "$enableval" = "no"
593then
594 AC_MSG_RESULT([Disabling use of backtrace])
595 AC_DEFINE(DISABLE_BACKTRACE, 1)
596else
597 AC_MSG_RESULT([Enabling use of backtrace])
598fi
599,
600AC_MSG_RESULT([Enabling use of backtrace by default])
601)
602dnl
cdf186e4
TT
603dnl handle --enable-debugfs
604dnl
605AC_ARG_ENABLE([debugfs],
606[ --disable-debugfs disable support of debugfs program],
607if test "$enableval" = "no"
608then
02d04db4 609 AC_MSG_RESULT([Disabling debugfs support])
cdf186e4
TT
610 DEBUGFS_CMT="#"
611else
612 DEBUGFS_CMT=
02d04db4 613 AC_MSG_RESULT([Enabling debugfs support])
cdf186e4
TT
614fi
615,
02d04db4 616AC_MSG_RESULT([Enabling debugfs support by default])
cdf186e4
TT
617DEBUGFS_CMT=
618)
619AC_SUBST(DEBUGFS_CMT)
620dnl
621dnl handle --enable-imager
622dnl
623AC_ARG_ENABLE([imager],
624[ --disable-imager disable support of e2image program],
625if test "$enableval" = "no"
626then
02d04db4 627 AC_MSG_RESULT([Disabling e2image support])
cdf186e4
TT
628 IMAGER_CMT="#"
629else
630 IMAGER_CMT=
02d04db4 631 AC_MSG_RESULT([Enabling e2image support])
cdf186e4
TT
632fi
633,
02d04db4 634AC_MSG_RESULT([Enabling e2image support by default])
cdf186e4
TT
635IMAGER_CMT=
636)
637AC_SUBST(IMAGER_CMT)
638dnl
639dnl handle --enable-resizer
640dnl
641AC_ARG_ENABLE([resizer],
642[ --disable-resizer disable support of e2resize program],
643if test "$enableval" = "no"
644then
02d04db4 645 AC_MSG_RESULT([Disabling e2resize support])
cdf186e4
TT
646 RESIZER_CMT="#"
647else
648 RESIZER_CMT=
02d04db4 649 AC_MSG_RESULT([Enabling e2resize support])
cdf186e4
TT
650fi
651,
02d04db4 652AC_MSG_RESULT([Enabling e2resize support by default])
cdf186e4
TT
653RESIZER_CMT=
654)
655AC_SUBST(RESIZER_CMT)
656dnl
8d9c50c5
TT
657dnl handle --enable-defrag
658dnl
659AC_ARG_ENABLE([defrag],
660[ --disable-defrag disable support of e4defrag program],
661if test "$enableval" = "no"
662then
663 AC_MSG_RESULT([Disabling e4defrag support])
664 DEFRAG_CMT="#"
665else
666 DEFRAG_CMT=
667 AC_MSG_RESULT([Enabling e4defrag support])
668fi
669,
6c59a665
TT
670if test -z "$WITH_DIET_LIBC"
671then
672 AC_MSG_RESULT([Enabling e4defrag support by default])
673 DEFRAG_CMT=
674else
675 AC_MSG_RESULT([Disabling e4defrag support by default])
676 DEFRAG_CMT="#"
677fi
8d9c50c5
TT
678)
679AC_SUBST(DEFRAG_CMT)
680dnl
fc6d9d51
TT
681dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
682dnl
683AC_ARG_ENABLE([fsck],
684[ --enable-fsck build fsck wrapper program],
685[if test "$enableval" = "no"
686then
687 FSCK_PROG='' FSCK_MAN=''
02d04db4 688 AC_MSG_RESULT([Not building fsck wrapper])
fc6d9d51
TT
689else
690 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 691 AC_MSG_RESULT([Building fsck wrapper])
fc6d9d51
TT
692fi]
693,
694[case "$host_os" in
e363240d 695 gnu*)
fc6d9d51 696 FSCK_PROG='' FSCK_MAN=''
02d04db4 697 AC_MSG_RESULT([Not building fsck wrapper by default])
fc6d9d51
TT
698 ;;
699 *)
700 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 701 AC_MSG_RESULT([Building fsck wrapper by default])
fc6d9d51
TT
702esac]
703)
704AC_SUBST(FSCK_PROG)
705AC_SUBST(FSCK_MAN)
706dnl
5d40773b
TT
707dnl See whether to install the `e2initrd-helper' program
708dnl
709AC_ARG_ENABLE([e2initrd-helper],
710[ --enable-e2initrd-helper build e2initrd-helper program],
711[if test "$enableval" = "no"
712then
713 E2INITRD_PROG='' E2INITRD_MAN=''
02d04db4 714 AC_MSG_RESULT([Not building e2initrd helper])
5d40773b
TT
715else
716 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 717 AC_MSG_RESULT([Building e2initrd helper])
5d40773b
TT
718fi]
719,
720E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 721AC_MSG_RESULT([Building e2initrd helper by default])
5d40773b
TT
722)
723AC_SUBST(E2INITRD_PROG)
724AC_SUBST(E2INITRD_MAN)
4db2f59a 725dnl
5d40773b 726dnl
50e1e10f 727dnl
3249394d
TT
728AC_ARG_ENABLE([tls],
729[ --disable-tls disable use of thread local support],
730[if test "$enableval" = "no"
731then
732 try_tls=""
02d04db4 733 AC_MSG_RESULT([Disabling thread local support])
3249394d
TT
734else
735 try_tls="yes"
02d04db4 736 AC_MSG_RESULT([Enabling thread local support])
3249394d
TT
737fi]
738,
eafba6c3
TT
739if test -n "$WITH_DIET_LIBC"
740then
741 try_tls=""
02d04db4 742 AC_MSG_RESULT([Diet libc does not support thread local support])
eafba6c3
TT
743else
744 try_tls="yes"
02d04db4 745 AC_MSG_RESULT([Try using thread local support by default])
eafba6c3 746fi
3249394d
TT
747)
748if test "$try_tls" = "yes"
749then
750AX_TLS
751fi
752dnl
753dnl
754dnl
d1154eb4 755AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
5610f992
TT
756AC_ARG_ENABLE([uuidd],
757[ --disable-uuidd disable building the uuid daemon],
758[if test "$enableval" = "no"
759then
02d04db4 760 AC_MSG_RESULT([Not building uuidd])
5610f992
TT
761 UUIDD_CMT="#"
762else
d1154eb4 763 AC_DEFINE(USE_UUIDD, 1)
5610f992 764 UUIDD_CMT=""
02d04db4 765 AC_MSG_RESULT([Building uuidd])
5610f992
TT
766fi]
767,
d1154eb4 768AC_DEFINE(USE_UUIDD, 1)
e3d10158
TT
769if test -z "$UUID_CMT"
770then
771 UUIDD_CMT=""
772 AC_MSG_RESULT([Building uuidd by default])
773else
774 UUIDD_CMT="#"
775 AC_MSG_RESULT([Disabling uuidd by default])
776fi
5610f992
TT
777)
778AC_SUBST(UUIDD_CMT)
779dnl
d6a4bcb5
TB
780dnl handle --disable-mmp
781dnl
782AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
783AC_ARG_ENABLE([mmp],
784[ --disable-mmp disable support mmp, Multi Mount Protection],
785if test "$enableval" = "no"
786then
787 AC_MSG_RESULT([Disabling mmp support])
788else
789 AC_MSG_RESULT([Enabling mmp support])
790 AC_DEFINE(CONFIG_MMP, 1)
791fi
792,
793AC_MSG_RESULT([Enabling mmp support by default])
794AC_DEFINE(CONFIG_MMP, 1)
795)
796dnl
749f0712
TT
797dnl handle --disable-tdb
798dnl
799AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support])
800AC_ARG_ENABLE([tdb],
801[ --disable-tdb disable tdb support],
802if test "$enableval" = "no"
803then
804 AC_MSG_RESULT([Disabling tdb support])
805 TDB_CMT="#"
806 TDB_MAN_COMMENT='.\"'
807else
808 AC_MSG_RESULT([Enabling tdb support])
809 AC_DEFINE(CONFIG_TDB, 1)
810 TDB_CMT=""
811 TDB_MAN_COMMENT=""
812fi
813,
814AC_MSG_RESULT([Enabling mmp support by default])
815AC_DEFINE(CONFIG_TDB, 1)
816TDB_CMT=""
817TDB_MAN_COMMENT=""
818)
819AC_SUBST(TDB_CMT)
820AC_SUBST(TDB_MAN_COMMENT)
821dnl
1625bf42
TB
822dnl handle --disable-bmap-stats
823dnl
824AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
825AC_ARG_ENABLE([bmap-stats],
826[ --disable-bmap-stats disable collection of bitmap stats.],
827if test "$enableval" = "no"
828then
829 AC_MSG_RESULT([Disabling bitmap statistics support])
830else
831 AC_MSG_RESULT([Enabling bitmap statistics support])
832 AC_DEFINE(ENABLE_BMAP_STATS, 1)
833fi
834,
835AC_MSG_RESULT([Enabling bitmap statistics support by default])
836AC_DEFINE(ENABLE_BMAP_STATS, 1)
837)
838dnl
839dnl handle --enable-bmap-stats-ops
840dnl
841AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
842AC_ARG_ENABLE([bmap-stats-ops],
843[ --enable-bmap-stats-ops enable collection of additional bitmap stats],
844if test "$enableval" = "no"
845then
846 AC_MSG_RESULT([Disabling additional bitmap statistics])
847else
848 dnl There has to be a better way!
849 AS_IF([test "x${enable_bmap_stats}" = "xno"],
850 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
851
852 AC_MSG_RESULT([Enabling additional bitmap statistics])
853 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
854fi
855,
856AC_MSG_RESULT([Disabling additional bitmap statistics by default])
857)
858dnl
5610f992
TT
859dnl
860dnl
50e1e10f
TT
861MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
862AC_SUBST_FILE(MAKEFILE_LIBRARY)
863dnl
cdf186e4
TT
864dnl Add internationalization support, using gettext.
865dnl
b0cacab0 866GETTEXT_PACKAGE=e2fsprogs
cdf186e4
TT
867PACKAGE=e2fsprogs
868VERSION="$E2FSPROGS_VERSION"
b0cacab0 869VERSION=0.14.1
d1154eb4
TT
870AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
871AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
b0cacab0 872AC_SUBST(GETTEXT_PACKAGE)
cdf186e4
TT
873AC_SUBST(PACKAGE)
874AC_SUBST(VERSION)
875
cdf186e4
TT
876AM_GNU_GETTEXT
877dnl
50e1e10f
TT
878dnl End of configuration options
879dnl
74becf3c 880AC_SUBST(BINARY_TYPE)
50e1e10f 881AC_PROG_MAKE_SET
bcb915b0 882CHECK_GNU_MAKE
50e1e10f 883AC_PATH_PROG(LN, ln, ln)
5abc0414 884AC_PROG_MKDIR_P
fc6d9d51 885AC_PROG_LN_S
50e1e10f
TT
886AC_PATH_PROG(MV, mv, mv)
887AC_PATH_PROG(CP, cp, cp)
888AC_PATH_PROG(RM, rm, rm)
889AC_PATH_PROG(CHMOD, chmod, :)
32237014
TT
890AC_PROG_AWK
891AC_PROG_EGREP
50e1e10f 892AC_PATH_PROG(SED, sed, sed)
9d564f73 893AC_PATH_PROG(PERL, perl, perl)
250f79f0 894AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
895AC_CHECK_TOOL(AR, ar, ar)
896AC_CHECK_TOOL(RANLIB, ranlib, :)
897AC_CHECK_TOOL(STRIP, strip, :)
7321d94e
MK
898AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
899if test "_$MAKEINFO" = "_"; then
ca1de98a 900 MAKEINFO="echo Makeinfo is missing. Info documentation will not be built."
7321d94e
MK
901else
902 case "$MAKEINFO" in
903 */missing.*)
904 AC_MSG_WARN([
905*** Makeinfo is missing. Info documentation will not be built.])
906 ;;
907 *)
908 ;;
909 esac
910fi
911AC_SUBST(MAKEINFO)
50e1e10f 912AC_PROG_INSTALL
6c133523
TT
913# See if we need a separate native compiler.
914if test $cross_compiling = no; then
915 BUILD_CC="$CC"
916 AC_SUBST(BUILD_CC)
917else
918 AC_CHECK_PROGS(BUILD_CC, gcc cc)
919fi
677fc916
MF
920AC_CHECK_HEADERS(m4_flatten([
921 dirent.h
922 errno.h
923 execinfo.h
924 getopt.h
925 malloc.h
926 mntent.h
927 paths.h
928 semaphore.h
929 setjmp.h
930 signal.h
931 stdarg.h
932 stdint.h
933 stdlib.h
934 termios.h
935 termio.h
936 unistd.h
937 utime.h
c84da2ee 938 attr/xattr.h
677fc916
MF
939 linux/falloc.h
940 linux/fd.h
82424fc6 941 linux/fsmap.h
677fc916 942 linux/major.h
fbabd5c4 943 linux/loop.h
f47f3195 944 linux/types.h
677fc916
MF
945 net/if_dl.h
946 netinet/in.h
81cbf1ef 947 sys/acl.h
677fc916 948 sys/disklabel.h
51050544 949 sys/disk.h
677fc916
MF
950 sys/file.h
951 sys/ioctl.h
74f2c4aa 952 sys/key.h
677fc916
MF
953 sys/mkdev.h
954 sys/mman.h
51050544 955 sys/mount.h
677fc916 956 sys/prctl.h
677fc916
MF
957 sys/resource.h
958 sys/select.h
959 sys/socket.h
960 sys/sockio.h
961 sys/stat.h
962 sys/syscall.h
79614b27 963 sys/sysctl.h
677fc916
MF
964 sys/sysmacros.h
965 sys/time.h
966 sys/types.h
967 sys/un.h
968 sys/wait.h
d7de3f3d 969 sys/xattr.h
677fc916 970]))
ec3a69bb
MA
971dnl Check where to find a dd(1) that supports iflag=fullblock
972dnl and oflag=append
973AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock])
974DD=
975for i in dd gdd ; do
976 if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then
977 DD=$i
978 break
979 fi
980done
981if test -n "$DD" ; then
982 AC_MSG_RESULT([$DD])
983else
984 AC_MSG_RESULT([not found, using dd])
985 DD=dd
986 AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.])
987fi
988AC_SUBST([DD])
989
da76d6b7
TT
990AC_CHECK_HEADERS(net/if.h,,,
991[[
992#if HAVE_SYS_TYPES_H
993#include <sys/types.h>
994#endif
995#if HAVE_SYS_SOCKET
996#include <sys/socket.h>
997#endif
998]])
50e1e10f 999AC_FUNC_VPRINTF
fff45483 1000dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
055866d8 1001dnl is not declared.
d1154eb4
TT
1002AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
1003 [Define to 1 if dirent has d_reclen])],,
6c65d251 1004 [#include <dirent.h>])
2873927d 1005AC_CHECK_MEMBERS([struct stat.st_atim])
d1154eb4
TT
1006dnl Check to see if ssize_t was declared
1007AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
1008 [Define to 1 if ssize_t declared])],,
6c65d251 1009 [#include <sys/types.h>])
50e1e10f 1010dnl
b0b9c4de
TT
1011dnl Check to see if llseek() is declared in unistd.h. On some libc's
1012dnl it is, and on others it isn't..... Thank you glibc developers....
1013dnl
d1154eb4
TT
1014AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
1015 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 1016 [#include <unistd.h>])
b0b9c4de 1017dnl
6928adc9
TT
1018dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
1019dnl are so convoluted that I can't tell whether it will always be defined,
1020dnl and if it isn't defined while lseek64 is defined in the library,
1021dnl disaster will strike.
1022dnl
1023dnl Warning! Use of --enable-gcc-wall may throw off this test.
1024dnl
1025dnl
d1154eb4
TT
1026AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
1027 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
1028 [#define _LARGEFILE_SOURCE
1029 #define _LARGEFILE64_SOURCE
1030 #include <unistd.h>])
6928adc9 1031dnl
50e1e10f
TT
1032dnl Word sizes...
1033dnl
50e1e10f
TT
1034AC_CHECK_SIZEOF(short)
1035AC_CHECK_SIZEOF(int)
1036AC_CHECK_SIZEOF(long)
fc6d9d51 1037AC_CHECK_SIZEOF(long long)
274d46e1 1038AC_CHECK_SIZEOF(off_t)
2dd680f3 1039AC_CHECK_SIZEOF(time_t)
50e1e10f
TT
1040SIZEOF_SHORT=$ac_cv_sizeof_short
1041SIZEOF_INT=$ac_cv_sizeof_int
1042SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 1043SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
274d46e1 1044SIZEOF_OFF_T=$ac_cv_sizeof_off_t
2dd680f3 1045SIZEOF_TIME_T=$ac_cv_sizeof_time_t
50e1e10f
TT
1046AC_SUBST(SIZEOF_SHORT)
1047AC_SUBST(SIZEOF_INT)
1048AC_SUBST(SIZEOF_LONG)
fc6d9d51 1049AC_SUBST(SIZEOF_LONG_LONG)
274d46e1 1050AC_SUBST(SIZEOF_OFF_T)
2dd680f3 1051AC_SUBST(SIZEOF_TIME_T)
877eb6d9 1052AC_C_BIGENDIAN
91f04685
CQ
1053if test $cross_compiling = no; then
1054 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1055else
1056 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1057fi
4ea7ea00
TT
1058ASM_TYPES_HEADER=./asm_types.h
1059AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 1060dnl
488c75a6
TT
1061dnl Save the configuration #defines needed for the public ext2fs.h
1062dnl header file
1063dnl
1064echo "/* These defines are needed for the public ext2fs.h header file */" \
1065 > public_config.h
1066if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1067 uniq tmp_config.$$ >> public_config.h
1068else
1069 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1070fi
1071if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1072 uniq tmp_config.$$ >> public_config.h
1073else
1074 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1075fi
1076rm -f tmp_config.$$
1077PUBLIC_CONFIG_HEADER=./public_config.h
1078AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1079dnl
0c193f82
TT
1080dnl See if we have inttypes.h and if intptr_t is defined
1081dnl
1082AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 1083AC_CHECK_TYPES(intptr_t)
0c193f82 1084dnl
50e1e10f
TT
1085dnl See if struct stat has a st_flags field, in which case we can get file
1086dnl flags somewhat portably. Also check for the analogous setter, chflags().
1087dnl
1088AC_MSG_CHECKING(whether struct stat has a st_flags field)
1089AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1090 AC_TRY_COMPILE([#include <sys/stat.h>],
1091 [struct stat stat; stat.st_flags = 0;],
1092 [e2fsprogs_cv_struct_st_flags=yes],
1093 [e2fsprogs_cv_struct_st_flags=no]))
1094AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1095if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
1096 AC_MSG_CHECKING(whether st_flags field is useful)
1097 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1098 AC_TRY_COMPILE([#include <sys/stat.h>],
1099 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1100 [e2fsprogs_cv_struct_st_flags_immut=yes],
1101 [e2fsprogs_cv_struct_st_flags_immut=no]))
1102 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1103 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
1104 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1105 [Define to 1 if struct stat has st_flags])
c03bc4e8 1106 fi
50e1e10f 1107fi
84ea6e70
TT
1108dnl
1109dnl Check for the presence of SA_LEN
1110dnl
6c65d251 1111AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
1112 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1113 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
1114 [#include <sys/types.h>
1115 #include <sys/socket.h>])
84ea6e70 1116dnl
9ed8e5fe
ES
1117dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1118dnl the system-provided blkid library
1119dnl
1120if test -n "$BLKID_CMT"; then
1121 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1122fi
1123dnl
32179ce2
TT
1124if test -n "$DLOPEN_LIB" ; then
1125 ac_cv_func_dlopen=yes
1126fi
677fc916
MF
1127AC_CHECK_FUNCS(m4_flatten([
1128 __secure_getenv
74f2c4aa 1129 add_key
677fc916
MF
1130 backtrace
1131 blkid_probe_get_topology
2de2628b 1132 blkid_probe_enable_partitions
677fc916 1133 chflags
32179ce2 1134 dlopen
9a393891 1135 fadvise64
677fc916
MF
1136 fallocate
1137 fallocate64
1138 fchown
f47f3195 1139 fcntl
677fc916
MF
1140 fdatasync
1141 fstat64
f47f3195 1142 fsync
677fc916 1143 ftruncate64
2873927d 1144 futimes
6c59a665 1145 getcwd
677fc916 1146 getdtablesize
32b8802a 1147 gethostname
677fc916 1148 getmntinfo
25ff7725 1149 getpwuid_r
677fc916
MF
1150 getrlimit
1151 getrusage
1152 jrand48
74f2c4aa 1153 keyctl
c84da2ee 1154 llistxattr
677fc916
MF
1155 llseek
1156 lseek64
1157 mallinfo
1158 mbstowcs
1159 memalign
6c59a665 1160 mempcpy
677fc916
MF
1161 mmap
1162 msync
1163 nanosleep
1164 open64
1165 pathconf
1166 posix_fadvise
9a393891 1167 posix_fadvise64
677fc916
MF
1168 posix_memalign
1169 prctl
baa35446
DW
1170 pread
1171 pwrite
f00948ad
TT
1172 pread64
1173 pwrite64
1ad3174a 1174 secure_getenv
b24efa21 1175 setmntent
677fc916
MF
1176 setresgid
1177 setresuid
c42de75b 1178 snprintf
677fc916 1179 srandom
6c59a665 1180 stpcpy
677fc916
MF
1181 strcasecmp
1182 strdup
1183 strnlen
1184 strptime
1185 strtoull
1186 sync_file_range
1187 sysconf
1188 usleep
1189 utime
441eb337 1190 utimes
677fc916
MF
1191 valloc
1192]))
fc6d9d51 1193dnl
fc6d9d51
TT
1194dnl Check to see if -lsocket is required (solaris) to make something
1195dnl that uses socket() to compile; this is needed for the UUID library
1196dnl
1197SOCKET_LIB=''
1198AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1199AC_SUBST(SOCKET_LIB)
1200dnl
b291c11f
DW
1201dnl See if libmagic exists
1202dnl
1203AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1204AC_CHECK_HEADERS([magic.h])])
32179ce2 1205if test "$ac_cv_func_dlopen" = yes ; then
d2e3c0dc
TT
1206 MAGIC_LIB=$DLOPEN_LIB
1207fi
b291c11f
DW
1208AC_SUBST(MAGIC_LIB)
1209dnl
62bc243f
GZ
1210dnl Check to see if librt is required for clock_gettime() (glibc < 2.17)
1211dnl
1212AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt])
1213AC_SUBST(CLOCK_GETTIME_LIB)
1214dnl
81cbf1ef
DW
1215dnl Check to see if the FUSE library is -lfuse or -losxfuse
1216dnl
1217FUSE_CMT=
1218FUSE_LIB=
1219dnl osxfuse.dylib supersedes fuselib.dylib
1220AC_ARG_ENABLE([fuse2fs],
f5dffb81 1221[ --disable-fuse2fs do not build fuse2fs],
81cbf1ef
DW
1222if test "$enableval" = "no"
1223then
1224 FUSE_CMT="#"
1225 AC_MSG_RESULT([Disabling fuse2fs])
1226else
1227 AC_CHECK_HEADERS([pthread.h fuse.h], [],
1228[AC_MSG_FAILURE([Cannot find fuse2fs headers.])],
1229[#define _FILE_OFFSET_BITS 64
1230#define FUSE_USE_VERSION 29])
1231
1232 AC_PREPROC_IFELSE(
1233[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29
1234#ifdef __linux__
1235#include <linux/fs.h>
1236#include <linux/falloc.h>
1237#include <linux/xattr.h>
1238#endif
1239]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])])
1240
1241 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1242 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse],
1243 [AC_MSG_FAILURE([Cannot find fuse library.])])])
1244 AC_MSG_RESULT([Enabling fuse2fs])
1245fi
1246,
1247AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"],
1248[#define _FILE_OFFSET_BITS 64
1249#define FUSE_USE_VERSION 29
1250#ifdef __linux__
1251# include <linux/fs.h>
1252# include <linux/falloc.h>
1253# include <linux/xattr.h>
1254#endif])
1255if test -z "$FUSE_CMT"
1256then
1257 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1258[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])])
1259fi
1260if test -z "$FUSE_CMT"
1261then
1262 AC_MSG_RESULT([Enabling fuse2fs by default.])
1263fi
1264)
1265AC_SUBST(FUSE_LIB)
1266AC_SUBST(FUSE_CMT)
1267dnl
50e1e10f
TT
1268dnl See if optreset exists
1269dnl
1270AC_MSG_CHECKING(for optreset)
1271AC_CACHE_VAL(ac_cv_have_optreset,
1272[AC_EGREP_HEADER(optreset, unistd.h,
1273 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1274AC_MSG_RESULT($ac_cv_have_optreset)
1275if test $ac_cv_have_optreset = yes; then
d1154eb4 1276 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
1277fi
1278dnl
d7f45af8
TT
1279dnl Test for sem_init, and which library it might require:
1280dnl
d1154eb4 1281AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8 1282SEM_INIT_LIB=''
cfb8e0bd
TT
1283echo GL_THREADS_API: ${gl_threads_api}
1284if test "${gl_threads_api}" != none
1285then
1286 AC_CHECK_FUNC(sem_init, ,
1287 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 1288 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1289 SEM_INIT_LIB=-lpthread,
cfb8e0bd 1290 AC_CHECK_LIB(rt, sem_init,
d1154eb4 1291 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1292 SEM_INIT_LIB=-lrt,
cfb8e0bd 1293 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 1294 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1295 SEM_INIT_LIB=-lposix4))))dnl
cfb8e0bd 1296fi
d7f45af8
TT
1297AC_SUBST(SEM_INIT_LIB)
1298dnl
e54635de
TT
1299dnl Check for unified diff
1300dnl
1301AC_MSG_CHECKING(for unified diff option)
27f991b0 1302if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
1303 UNI_DIFF_OPTS=-u
1304else
1305 UNI_DIFF_OPTS=-c
1306fi
1307AC_MSG_RESULT($UNI_DIFF_OPTS)
1308AC_SUBST(UNI_DIFF_OPTS)
1309dnl
8f3f29d3
TT
1310dnl We use the EXT2 ioctls only under Linux
1311dnl
1312case "$host_os" in
1313linux*)
d1154eb4 1314 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
1315 ;;
1316esac
50e1e10f 1317dnl
4aece328
DW
1318dnl Enable LTO for all packages
1319dnl
1320AC_ARG_ENABLE([lto],
1321[ --enable-lto enable link time optimization],,
139a3092 1322enable_lto=no)
4aece328
DW
1323if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
1324 AC_MSG_CHECKING([if C compiler supports LTO])
1325 OLD_CFLAGS="$CFLAGS"
1326 OLD_LDFLAGS="$LDFLAGS"
49715704 1327 LTO_FLAGS="-g -flto -ffat-lto-objects"
4aece328
DW
1328 CFLAGS="$CFLAGS $LTO_FLAGS"
1329 LDFLAGS="$LDFLAGS $LTO_FLAGS"
1330 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1331 [AC_MSG_RESULT([yes])]
1332 [lto_cflags=$LTO_FLAGS]
1333 [lto_ldflags=$LTO_FLAGS]
1334 [AC_PATH_PROG(gcc_ar, gcc-ar,,)]
1335 [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)],
1336 [AC_MSG_RESULT([no])])
1337 if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then
1338 have_lto=yes
1339 AR="${gcc_ar}"
1340 RANLIB="${gcc_ranlib}"
1341 fi
1342 CFLAGS="${OLD_CFLAGS}"
1343 LDFLAGS="${OLD_LDFLAGS}"
1344 AC_SUBST(have_lto)
1345 AC_SUBST(lto_cflags)
1346 AC_SUBST(lto_ldflags)
1347fi
1348if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then
1349 AC_MSG_ERROR([LTO not supported by compiler.])
1350fi
1351dnl
1c2a76ae
DW
1352dnl Enable UBSAN for all packages
1353dnl
1354AC_ARG_ENABLE([ubsan],
1355[ --enable-ubsan enable undefined behavior sanitizer],,
1356enable_ubsan=no)
1357if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then
1358 AC_MSG_CHECKING([if C compiler supports UBSAN])
1359 OLD_CFLAGS="$CFLAGS"
1360 OLD_LDFLAGS="$LDFLAGS"
1361 UBSAN_FLAGS="-fsanitize=undefined"
1362 CFLAGS="$CFLAGS $UBSAN_FLAGS"
1363 LDFLAGS="$LDFLAGS $UBSAN_FLAGS"
1364 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1365 [AC_MSG_RESULT([yes])]
1366 [ubsan_cflags=$UBSAN_FLAGS]
1367 [ubsan_ldflags=$UBSAN_FLAGS]
1368 [have_ubsan=yes],
1369 [AC_MSG_RESULT([no])])
1370 CFLAGS="${OLD_CFLAGS}"
1371 LDFLAGS="${OLD_LDFLAGS}"
1372 AC_SUBST(have_ubsan)
1373 AC_SUBST(ubsan_cflags)
1374 AC_SUBST(ubsan_ldflags)
1375fi
1376if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then
1377 AC_MSG_ERROR([UBSAN not supported by compiler.])
1378fi
1379dnl
5e666e3d
DW
1380dnl Enable ADDRSAN for all packages
1381dnl
1382AC_ARG_ENABLE([addrsan],
1383[ --enable-addrsan enable address sanitizer],,
1384enable_addrsan=no)
1385if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then
1386 AC_MSG_CHECKING([if C compiler supports ADDRSAN])
1387 OLD_CFLAGS="$CFLAGS"
1388 OLD_LDFLAGS="$LDFLAGS"
1389 ADDRSAN_FLAGS="-fsanitize=address"
1390 CFLAGS="$CFLAGS $ADDRSAN_FLAGS"
1391 LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS"
1392 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1393 [AC_MSG_RESULT([yes])]
1394 [addrsan_cflags=$ADDRSAN_FLAGS]
1395 [addrsan_ldflags=$ADDRSAN_FLAGS]
1396 [have_addrsan=yes],
1397 [AC_MSG_RESULT([no])])
1398 CFLAGS="${OLD_CFLAGS}"
1399 LDFLAGS="${OLD_LDFLAGS}"
1400 AC_SUBST(have_addrsan)
1401 AC_SUBST(addrsan_cflags)
1402 AC_SUBST(addrsan_ldflags)
1403fi
1404if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then
1405 AC_MSG_ERROR([ADDRSAN not supported by compiler.])
1406fi
1407dnl
bcca786b
DW
1408dnl Enable THREADSAN for all packages
1409dnl
1410AC_ARG_ENABLE([threadsan],
1411[ --enable-threadsan enable thread sanitizer],,
1412enable_threadsan=no)
1413if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then
1414 AC_MSG_CHECKING([if C compiler supports THREADSAN])
1415 OLD_CFLAGS="$CFLAGS"
1416 OLD_LDFLAGS="$LDFLAGS"
1417 THREADSAN_FLAGS="-fsanitize=thread"
1418 CFLAGS="$CFLAGS $THREADSAN_FLAGS"
1419 LDFLAGS="$LDFLAGS $THREADSAN_FLAGS"
1420 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1421 [AC_MSG_RESULT([yes])]
1422 [threadsan_cflags=$THREADSAN_FLAGS]
1423 [threadsan_ldflags=$THREADSAN_FLAGS]
1424 [have_threadsan=yes],
1425 [AC_MSG_RESULT([no])])
1426 CFLAGS="${OLD_CFLAGS}"
1427 LDFLAGS="${OLD_LDFLAGS}"
1428 AC_SUBST(have_threadsan)
1429 AC_SUBST(threadsan_cflags)
1430 AC_SUBST(threadsan_ldflags)
1431fi
1432if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then
1433 AC_MSG_ERROR([THREADSAN not supported by compiler.])
1434fi
1435if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then
1436 AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.])
1437fi
1438dnl
fff45483 1439dnl OS-specific uncomment control
e6f2bda3
TT
1440dnl
1441LINUX_CMT="#"
fff45483
TT
1442CYGWIN_CMT="#"
1443UNIX_CMT=
e6f2bda3
TT
1444case "$host_os" in
1445linux*)
1446 LINUX_CMT=
1447 ;;
fff45483
TT
1448cygwin)
1449 CYGWIN_CMT=
1450 UNIX_CMT="#"
fff45483 1451 ;;
e6f2bda3
TT
1452esac
1453AC_SUBST(LINUX_CMT)
fff45483
TT
1454AC_SUBST(CYGWIN_CMT)
1455AC_SUBST(UNIX_CMT)
e6f2bda3 1456dnl
5ce368f0
DW
1457dnl e2scrub only builds on linux
1458dnl
1459E2SCRUB_CMT="$LINUX_CMT"
1460AC_SUBST(E2SCRUB_CMT)
1461dnl
6c133523 1462dnl Linux and Hurd places root files in the / by default
50e1e10f 1463dnl
50e1e10f 1464case "$host_os" in
93636bde 1465linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
1466 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1467 root_prefix="";
02d04db4 1468 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
1469 fi
1470 ;;
1471esac
fc6d9d51 1472dnl
a4b2d3ce 1473dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1474dnl
1475case "$host_os" in
93636bde 1476linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1477 if test "$prefix" = NONE ; then
a4b2d3ce 1478 prefix="/usr";
02d04db4 1479 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1480 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1481 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1482 mandir=/usr/share/man
1483 fi
50e1e10f
TT
1484 fi
1485;;
1486esac
a4b2d3ce 1487if test "$root_prefix" = NONE ; then
ffe1991f 1488 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1489 root_prefix="$ac_default_prefix"
1490 else
1491 root_prefix="$prefix"
1492 fi
b5ffeade
TT
1493 root_bindir=$bindir
1494 root_sbindir=$sbindir
1495 root_libdir=$libdir
1496 root_sysconfdir=$sysconfdir
1497else
1498 root_bindir='${root_prefix}/bin'
1499 root_sbindir='${root_prefix}/sbin'
1500 root_libdir='${root_prefix}/lib'
1501 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1502fi
c4ef11c5
TT
1503if test "$bindir" != '${exec_prefix}/bin'; then
1504 root_bindir=$bindir
02d04db4 1505 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1506fi
1507if test "$sbindir" != '${exec_prefix}/sbin'; then
1508 root_sbindir=$sbindir
02d04db4 1509 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1510fi
1511if test "$libdir" != '${exec_prefix}/lib'; then
1512 root_libdir=$libdir
02d04db4 1513 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1514fi
1515if test "$sysconfdir" != '${prefix}/etc'; then
1516 root_sysconfdir=$sysconfdir
02d04db4 1517 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1518fi
a4b2d3ce 1519AC_SUBST(root_prefix)
b5ffeade
TT
1520AC_SUBST(root_bindir)
1521AC_SUBST(root_sbindir)
1522AC_SUBST(root_libdir)
1523AC_SUBST(root_sysconfdir)
50e1e10f 1524dnl
55e00a25
TT
1525dnl Allow specification of the multiarch arch
1526dnl
1527AC_ARG_WITH([multiarch],
1528[ --with-multiarch=ARCH specify the multiarch triplet],
d7fa4103
TT
1529if test "$withval" = "lib64"; then
1530 libdir=/usr/lib64
1531 root_libdir=/lib64
1532else
1533 libdir=$libdir/$withval
1534 root_libdir=$root_libdir/$withval
1535fi
a2df5894
DW
1536)
1537dnl
55e00a25 1538dnl
d3de1a71
TT
1539dnl See if -static works. This could fail if the linker does not
1540dnl support -static, or if required external libraries are not available
1541dnl in static form.
50e1e10f 1542dnl
d3de1a71 1543AC_MSG_CHECKING([whether we can link with -static])
ae851482 1544AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
fd1677e8 1545[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
ae851482
TT
1546AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1547 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1548LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1549dnl
1550dnl Regardless of how the test turns out, Solaris doesn't handle -static
1551dnl This is caused by the socket library requiring the nsl library, which
1552dnl requires the -dl library, which only works for dynamically linked
1553dnl programs. It basically means you can't have statically linked programs
1554dnl which use the network under Solaris.
1555dnl
1556case "$host_os" in
1557solaris2.*)
1558 ac_cv_e2fsprogs_use_static=no
1559;;
1560esac
ae851482 1561AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
ae851482 1562if test $ac_cv_e2fsprogs_use_static = yes; then
fd1677e8 1563 LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
ae851482 1564fi
fd1677e8 1565AC_SUBST(LDFLAGS_STATIC)
50e1e10f 1566dnl
07a0db15
TT
1567dnl Work around mysterious Darwin / GNU libintl problem
1568dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1569dnl Apple hacked gcc somehow?)
1570dnl
1571case "$host_os" in
1572darwin*)
02d04db4 1573 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1574 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1575 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1576 ;;
1577esac
1578dnl
50e1e10f
TT
1579dnl Only try to run the test suite if we're not cross compiling.
1580dnl
1581if test "$cross_compiling" = yes ; then
1582 DO_TEST_SUITE=
1583else
1584 DO_TEST_SUITE=check
1585fi
1586AC_SUBST(DO_TEST_SUITE)
1587dnl
c6f35b8a 1588dnl Only include the intl include files if we're building with them
d1154eb4
TT
1589dnl
1590INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1591if test -n "$CPPFLAGS" ; then
1592 INCLUDES="$INCLUDES $CPPFLAGS"
1593fi
c6f35b8a 1594if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1595 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1596fi
6c59a665
TT
1597if test -n "$WITH_DIET_LIBC" ; then
1598 INCLUDES="$INCLUDES -D_REENTRANT"
1599fi
d1154eb4 1600AC_SUBST(INCLUDES)
c6f35b8a 1601dnl
dd947da2
TT
1602dnl Build CFLAGS
1603dnl
1604if test $cross_compiling = no; then
2873927d 1605 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
dd947da2 1606 BUILD_LDFLAGS="$LDFLAGS"
dd947da2
TT
1607fi
1608AC_SUBST(BUILD_CFLAGS)
1609AC_SUBST(BUILD_LDFLAGS)
1610dnl
fd1677e8
TT
1611dnl Define CFLAGS and LDFLAGS for shared libraries
1612dnl
1613CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
1614CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
1615LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
1616AC_SUBST(CFLAGS_SHLIB)
1617AC_SUBST(CFLAGS_STLIB)
1618AC_SUBST(LDFLAGS_SHLIB)
5ce368f0
DW
1619
1620dnl
1621dnl Where do udev rules go?
1622dnl
1623AC_ARG_WITH([udev_rules_dir],
1624 [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@],
1625 [Install udev rules into DIR.])],
1626 [],
1627 [with_udev_rules_dir=yes])
1628AS_IF([test "x${with_udev_rules_dir}" != "xno"],
1629 [
1630 AS_IF([test "x${with_udev_rules_dir}" = "xyes"],
1631 [
1632 PKG_CHECK_MODULES([udev], [udev],
1633 [
1634 with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d"
1635 ], [
1636 with_udev_rules_dir=""
1637 ])
1638 ])
1639 AC_MSG_CHECKING([for udev rules dir])
1640 pkg_udev_rules_dir="${with_udev_rules_dir}"
1641 AS_IF([test -n "${pkg_udev_rules_dir}"],
1642 [
1643 AC_MSG_RESULT(${pkg_udev_rules_dir})
1644 have_udev="yes"
1645 ],
1646 [
1647 AC_MSG_RESULT(no)
1648 have_udev="no"
1649 ])
1650 ],
1651 [
1652 have_udev="disabled"
1653 ])
1654AC_SUBST(have_udev)
1655AC_SUBST(pkg_udev_rules_dir)
1656
a2df5894
DW
1657dnl
1658dnl Where do cron jobs go?
1659dnl
1660AC_ARG_WITH([crond_dir],
1661 [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@],
1662 [Install system crontabs into DIR.])],
1663 [],
1664 [with_crond_dir=yes])
1665AS_IF([test "x${with_crond_dir}" != "xno"],
1666 [
1667 AS_IF([test "x${with_crond_dir}" = "xyes"],
1668 [
1669 AS_IF([test -d "/etc/cron.d"],
1670 [with_crond_dir="/etc/cron.d"])
1671 ])
1672 AC_MSG_CHECKING([for system crontab dir])
1673 crond_dir="${with_crond_dir}"
1674 AS_IF([test -n "${crond_dir}"],
1675 [
1676 AC_MSG_RESULT(${crond_dir})
1677 have_crond="yes"
1678 ],
1679 [
1680 AC_MSG_RESULT(no)
1681 have_crond="no"
1682 ])
1683 ],
1684 [
1685 have_crond="disabled"
1686 ])
1687AC_SUBST(have_crond)
1688AC_SUBST(crond_dir)
1689
1690dnl
1691dnl Where do systemd services go?
1692dnl
1693AC_ARG_WITH([systemd_unit_dir],
1694 [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@],
1695 [Install systemd system units into DIR.])],
1696 [],
1697 [with_systemd_unit_dir=yes])
1698AS_IF([test "x${with_systemd_unit_dir}" != "xno"],
1699 [
1700 AS_IF([test "x${with_systemd_unit_dir}" = "xyes"],
1701 [
1702 PKG_CHECK_MODULES([systemd], [systemd],
1703 [
1704 with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)"
1705 ], [
1706 with_systemd_unit_dir=""
1707 ])
1708 m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$])
1709 ])
1710 AC_MSG_CHECKING([for systemd system unit dir])
1711 systemd_system_unit_dir="${with_systemd_unit_dir}"
1712 AS_IF([test -n "${systemd_system_unit_dir}"],
1713 [
1714 AC_MSG_RESULT(${systemd_system_unit_dir})
1715 have_systemd="yes"
1716 ],
1717 [
1718 AC_MSG_RESULT(no)
1719 have_systemd="no"
1720 ])
1721 ],
1722 [
1723 have_systemd="disabled"
1724 ])
1725AC_SUBST(have_systemd)
1726AC_SUBST(systemd_system_unit_dir)
1727
fd1677e8 1728dnl
50e1e10f
TT
1729dnl Make our output files, being sure that we create the some miscellaneous
1730dnl directories
1731dnl
1732test -d lib || mkdir lib
1733test -d include || mkdir include
1734test -d include/linux || mkdir include/linux
defde784 1735test -d include/asm || mkdir include/asm
44dfb378
TT
1736if test -z "$UUID_CMT" ; then
1737 uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \
1738 lib/uuid/uuid_types.h"
1739fi
1740if test -z "$BLKID_CMT" ; then
1741 blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \
1742 lib/blkid/blkid_types.h"
1743fi
e5f0f3ee 1744for i in MCONFIG Makefile \
183c73b0 1745 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
4ea7ea00
TT
1746 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1747 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
f34af41b 1748 $uuid_out_list $blkid_out_list lib/support/Makefile \
44dfb378 1749 lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1750 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1751 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61 1752 resize/Makefile doc/Makefile intl/Makefile \
5ce368f0 1753 intl/libgnuintl.h po/Makefile.in scrub/Makefile; do
94ba8c75
TT
1754 if test -d `dirname ${srcdir}/$i` ; then
1755 outlist="$outlist $i"
1756 fi
1757done
1758AC_OUTPUT($outlist)
ee683a13 1759if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi