]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.ac
enable gcc/clang address sanitizer if the builder wants it
[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
3df6014a
TT
569dnl handle --disable-backtrace
570dnl
571AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
572AC_ARG_ENABLE([backtrace],
573[ --disable-backtrace disable use backtrace],
574if test "$enableval" = "no"
575then
576 AC_MSG_RESULT([Disabling use of backtrace])
577 AC_DEFINE(DISABLE_BACKTRACE, 1)
578else
579 AC_MSG_RESULT([Enabling use of backtrace])
580fi
581,
582AC_MSG_RESULT([Enabling use of backtrace by default])
583)
584dnl
cdf186e4
TT
585dnl handle --enable-debugfs
586dnl
587AC_ARG_ENABLE([debugfs],
588[ --disable-debugfs disable support of debugfs program],
589if test "$enableval" = "no"
590then
02d04db4 591 AC_MSG_RESULT([Disabling debugfs support])
cdf186e4
TT
592 DEBUGFS_CMT="#"
593else
594 DEBUGFS_CMT=
02d04db4 595 AC_MSG_RESULT([Enabling debugfs support])
cdf186e4
TT
596fi
597,
02d04db4 598AC_MSG_RESULT([Enabling debugfs support by default])
cdf186e4
TT
599DEBUGFS_CMT=
600)
601AC_SUBST(DEBUGFS_CMT)
602dnl
603dnl handle --enable-imager
604dnl
605AC_ARG_ENABLE([imager],
606[ --disable-imager disable support of e2image program],
607if test "$enableval" = "no"
608then
02d04db4 609 AC_MSG_RESULT([Disabling e2image support])
cdf186e4
TT
610 IMAGER_CMT="#"
611else
612 IMAGER_CMT=
02d04db4 613 AC_MSG_RESULT([Enabling e2image support])
cdf186e4
TT
614fi
615,
02d04db4 616AC_MSG_RESULT([Enabling e2image support by default])
cdf186e4
TT
617IMAGER_CMT=
618)
619AC_SUBST(IMAGER_CMT)
620dnl
621dnl handle --enable-resizer
622dnl
623AC_ARG_ENABLE([resizer],
624[ --disable-resizer disable support of e2resize program],
625if test "$enableval" = "no"
626then
02d04db4 627 AC_MSG_RESULT([Disabling e2resize support])
cdf186e4
TT
628 RESIZER_CMT="#"
629else
630 RESIZER_CMT=
02d04db4 631 AC_MSG_RESULT([Enabling e2resize support])
cdf186e4
TT
632fi
633,
02d04db4 634AC_MSG_RESULT([Enabling e2resize support by default])
cdf186e4
TT
635RESIZER_CMT=
636)
637AC_SUBST(RESIZER_CMT)
638dnl
8d9c50c5
TT
639dnl handle --enable-defrag
640dnl
641AC_ARG_ENABLE([defrag],
642[ --disable-defrag disable support of e4defrag program],
643if test "$enableval" = "no"
644then
645 AC_MSG_RESULT([Disabling e4defrag support])
646 DEFRAG_CMT="#"
647else
648 DEFRAG_CMT=
649 AC_MSG_RESULT([Enabling e4defrag support])
650fi
651,
6c59a665
TT
652if test -z "$WITH_DIET_LIBC"
653then
654 AC_MSG_RESULT([Enabling e4defrag support by default])
655 DEFRAG_CMT=
656else
657 AC_MSG_RESULT([Disabling e4defrag support by default])
658 DEFRAG_CMT="#"
659fi
8d9c50c5
TT
660)
661AC_SUBST(DEFRAG_CMT)
662dnl
fc6d9d51
TT
663dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
664dnl
665AC_ARG_ENABLE([fsck],
666[ --enable-fsck build fsck wrapper program],
667[if test "$enableval" = "no"
668then
669 FSCK_PROG='' FSCK_MAN=''
02d04db4 670 AC_MSG_RESULT([Not building fsck wrapper])
fc6d9d51
TT
671else
672 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 673 AC_MSG_RESULT([Building fsck wrapper])
fc6d9d51
TT
674fi]
675,
676[case "$host_os" in
e363240d 677 gnu*)
fc6d9d51 678 FSCK_PROG='' FSCK_MAN=''
02d04db4 679 AC_MSG_RESULT([Not building fsck wrapper by default])
fc6d9d51
TT
680 ;;
681 *)
682 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 683 AC_MSG_RESULT([Building fsck wrapper by default])
fc6d9d51
TT
684esac]
685)
686AC_SUBST(FSCK_PROG)
687AC_SUBST(FSCK_MAN)
688dnl
5d40773b
TT
689dnl See whether to install the `e2initrd-helper' program
690dnl
691AC_ARG_ENABLE([e2initrd-helper],
692[ --enable-e2initrd-helper build e2initrd-helper program],
693[if test "$enableval" = "no"
694then
695 E2INITRD_PROG='' E2INITRD_MAN=''
02d04db4 696 AC_MSG_RESULT([Not building e2initrd helper])
5d40773b
TT
697else
698 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 699 AC_MSG_RESULT([Building e2initrd helper])
5d40773b
TT
700fi]
701,
702E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 703AC_MSG_RESULT([Building e2initrd helper by default])
5d40773b
TT
704)
705AC_SUBST(E2INITRD_PROG)
706AC_SUBST(E2INITRD_MAN)
4db2f59a 707dnl
5d40773b 708dnl
50e1e10f 709dnl
3249394d
TT
710AC_ARG_ENABLE([tls],
711[ --disable-tls disable use of thread local support],
712[if test "$enableval" = "no"
713then
714 try_tls=""
02d04db4 715 AC_MSG_RESULT([Disabling thread local support])
3249394d
TT
716else
717 try_tls="yes"
02d04db4 718 AC_MSG_RESULT([Enabling thread local support])
3249394d
TT
719fi]
720,
eafba6c3
TT
721if test -n "$WITH_DIET_LIBC"
722then
723 try_tls=""
02d04db4 724 AC_MSG_RESULT([Diet libc does not support thread local support])
eafba6c3
TT
725else
726 try_tls="yes"
02d04db4 727 AC_MSG_RESULT([Try using thread local support by default])
eafba6c3 728fi
3249394d
TT
729)
730if test "$try_tls" = "yes"
731then
732AX_TLS
733fi
734dnl
735dnl
736dnl
d1154eb4 737AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
5610f992
TT
738AC_ARG_ENABLE([uuidd],
739[ --disable-uuidd disable building the uuid daemon],
740[if test "$enableval" = "no"
741then
02d04db4 742 AC_MSG_RESULT([Not building uuidd])
5610f992
TT
743 UUIDD_CMT="#"
744else
d1154eb4 745 AC_DEFINE(USE_UUIDD, 1)
5610f992 746 UUIDD_CMT=""
02d04db4 747 AC_MSG_RESULT([Building uuidd])
5610f992
TT
748fi]
749,
d1154eb4 750AC_DEFINE(USE_UUIDD, 1)
e3d10158
TT
751if test -z "$UUID_CMT"
752then
753 UUIDD_CMT=""
754 AC_MSG_RESULT([Building uuidd by default])
755else
756 UUIDD_CMT="#"
757 AC_MSG_RESULT([Disabling uuidd by default])
758fi
5610f992
TT
759)
760AC_SUBST(UUIDD_CMT)
761dnl
d6a4bcb5
TB
762dnl handle --disable-mmp
763dnl
764AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
765AC_ARG_ENABLE([mmp],
766[ --disable-mmp disable support mmp, Multi Mount Protection],
767if test "$enableval" = "no"
768then
769 AC_MSG_RESULT([Disabling mmp support])
770else
771 AC_MSG_RESULT([Enabling mmp support])
772 AC_DEFINE(CONFIG_MMP, 1)
773fi
774,
775AC_MSG_RESULT([Enabling mmp support by default])
776AC_DEFINE(CONFIG_MMP, 1)
777)
778dnl
749f0712
TT
779dnl handle --disable-tdb
780dnl
781AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support])
782AC_ARG_ENABLE([tdb],
783[ --disable-tdb disable tdb support],
784if test "$enableval" = "no"
785then
786 AC_MSG_RESULT([Disabling tdb support])
787 TDB_CMT="#"
788 TDB_MAN_COMMENT='.\"'
789else
790 AC_MSG_RESULT([Enabling tdb support])
791 AC_DEFINE(CONFIG_TDB, 1)
792 TDB_CMT=""
793 TDB_MAN_COMMENT=""
794fi
795,
796AC_MSG_RESULT([Enabling mmp support by default])
797AC_DEFINE(CONFIG_TDB, 1)
798TDB_CMT=""
799TDB_MAN_COMMENT=""
800)
801AC_SUBST(TDB_CMT)
802AC_SUBST(TDB_MAN_COMMENT)
803dnl
1625bf42
TB
804dnl handle --disable-bmap-stats
805dnl
806AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
807AC_ARG_ENABLE([bmap-stats],
808[ --disable-bmap-stats disable collection of bitmap stats.],
809if test "$enableval" = "no"
810then
811 AC_MSG_RESULT([Disabling bitmap statistics support])
812else
813 AC_MSG_RESULT([Enabling bitmap statistics support])
814 AC_DEFINE(ENABLE_BMAP_STATS, 1)
815fi
816,
817AC_MSG_RESULT([Enabling bitmap statistics support by default])
818AC_DEFINE(ENABLE_BMAP_STATS, 1)
819)
820dnl
821dnl handle --enable-bmap-stats-ops
822dnl
823AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
824AC_ARG_ENABLE([bmap-stats-ops],
825[ --enable-bmap-stats-ops enable collection of additional bitmap stats],
826if test "$enableval" = "no"
827then
828 AC_MSG_RESULT([Disabling additional bitmap statistics])
829else
830 dnl There has to be a better way!
831 AS_IF([test "x${enable_bmap_stats}" = "xno"],
832 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
833
834 AC_MSG_RESULT([Enabling additional bitmap statistics])
835 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
836fi
837,
838AC_MSG_RESULT([Disabling additional bitmap statistics by default])
839)
840dnl
5610f992
TT
841dnl
842dnl
50e1e10f
TT
843MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
844AC_SUBST_FILE(MAKEFILE_LIBRARY)
845dnl
cdf186e4
TT
846dnl Add internationalization support, using gettext.
847dnl
b0cacab0 848GETTEXT_PACKAGE=e2fsprogs
cdf186e4
TT
849PACKAGE=e2fsprogs
850VERSION="$E2FSPROGS_VERSION"
b0cacab0 851VERSION=0.14.1
d1154eb4
TT
852AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
853AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
b0cacab0 854AC_SUBST(GETTEXT_PACKAGE)
cdf186e4
TT
855AC_SUBST(PACKAGE)
856AC_SUBST(VERSION)
857
cdf186e4
TT
858AM_GNU_GETTEXT
859dnl
50e1e10f
TT
860dnl End of configuration options
861dnl
74becf3c 862AC_SUBST(BINARY_TYPE)
50e1e10f 863AC_PROG_MAKE_SET
bcb915b0 864CHECK_GNU_MAKE
50e1e10f 865AC_PATH_PROG(LN, ln, ln)
fc6d9d51 866AC_PROG_LN_S
50e1e10f
TT
867AC_PATH_PROG(MV, mv, mv)
868AC_PATH_PROG(CP, cp, cp)
869AC_PATH_PROG(RM, rm, rm)
870AC_PATH_PROG(CHMOD, chmod, :)
32237014
TT
871AC_PROG_AWK
872AC_PROG_EGREP
50e1e10f 873AC_PATH_PROG(SED, sed, sed)
9d564f73 874AC_PATH_PROG(PERL, perl, perl)
250f79f0 875AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
876AC_CHECK_TOOL(AR, ar, ar)
877AC_CHECK_TOOL(RANLIB, ranlib, :)
878AC_CHECK_TOOL(STRIP, strip, :)
7321d94e
MK
879AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
880if test "_$MAKEINFO" = "_"; then
ca1de98a 881 MAKEINFO="echo Makeinfo is missing. Info documentation will not be built."
7321d94e
MK
882else
883 case "$MAKEINFO" in
884 */missing.*)
885 AC_MSG_WARN([
886*** Makeinfo is missing. Info documentation will not be built.])
887 ;;
888 *)
889 ;;
890 esac
891fi
892AC_SUBST(MAKEINFO)
50e1e10f 893AC_PROG_INSTALL
6c133523
TT
894# See if we need a separate native compiler.
895if test $cross_compiling = no; then
896 BUILD_CC="$CC"
897 AC_SUBST(BUILD_CC)
898else
899 AC_CHECK_PROGS(BUILD_CC, gcc cc)
900fi
677fc916
MF
901AC_CHECK_HEADERS(m4_flatten([
902 dirent.h
903 errno.h
904 execinfo.h
905 getopt.h
906 malloc.h
907 mntent.h
908 paths.h
909 semaphore.h
910 setjmp.h
911 signal.h
912 stdarg.h
913 stdint.h
914 stdlib.h
915 termios.h
916 termio.h
917 unistd.h
918 utime.h
c84da2ee 919 attr/xattr.h
677fc916
MF
920 linux/falloc.h
921 linux/fd.h
82424fc6 922 linux/fsmap.h
677fc916 923 linux/major.h
fbabd5c4 924 linux/loop.h
f47f3195 925 linux/types.h
677fc916
MF
926 net/if_dl.h
927 netinet/in.h
81cbf1ef 928 sys/acl.h
677fc916 929 sys/disklabel.h
51050544 930 sys/disk.h
677fc916
MF
931 sys/file.h
932 sys/ioctl.h
74f2c4aa 933 sys/key.h
677fc916
MF
934 sys/mkdev.h
935 sys/mman.h
51050544 936 sys/mount.h
677fc916 937 sys/prctl.h
677fc916
MF
938 sys/resource.h
939 sys/select.h
940 sys/socket.h
941 sys/sockio.h
942 sys/stat.h
943 sys/syscall.h
79614b27 944 sys/sysctl.h
677fc916
MF
945 sys/sysmacros.h
946 sys/time.h
947 sys/types.h
948 sys/un.h
949 sys/wait.h
d7de3f3d 950 sys/xattr.h
677fc916 951]))
ec3a69bb
MA
952dnl Check where to find a dd(1) that supports iflag=fullblock
953dnl and oflag=append
954AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock])
955DD=
956for i in dd gdd ; do
957 if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then
958 DD=$i
959 break
960 fi
961done
962if test -n "$DD" ; then
963 AC_MSG_RESULT([$DD])
964else
965 AC_MSG_RESULT([not found, using dd])
966 DD=dd
967 AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.])
968fi
969AC_SUBST([DD])
970
da76d6b7
TT
971AC_CHECK_HEADERS(net/if.h,,,
972[[
973#if HAVE_SYS_TYPES_H
974#include <sys/types.h>
975#endif
976#if HAVE_SYS_SOCKET
977#include <sys/socket.h>
978#endif
979]])
50e1e10f 980AC_FUNC_VPRINTF
fff45483 981dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
055866d8 982dnl is not declared.
d1154eb4
TT
983AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
984 [Define to 1 if dirent has d_reclen])],,
6c65d251 985 [#include <dirent.h>])
2873927d 986AC_CHECK_MEMBERS([struct stat.st_atim])
d1154eb4
TT
987dnl Check to see if ssize_t was declared
988AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
989 [Define to 1 if ssize_t declared])],,
6c65d251 990 [#include <sys/types.h>])
50e1e10f 991dnl
b0b9c4de
TT
992dnl Check to see if llseek() is declared in unistd.h. On some libc's
993dnl it is, and on others it isn't..... Thank you glibc developers....
994dnl
d1154eb4
TT
995AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
996 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 997 [#include <unistd.h>])
b0b9c4de 998dnl
6928adc9
TT
999dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
1000dnl are so convoluted that I can't tell whether it will always be defined,
1001dnl and if it isn't defined while lseek64 is defined in the library,
1002dnl disaster will strike.
1003dnl
1004dnl Warning! Use of --enable-gcc-wall may throw off this test.
1005dnl
1006dnl
d1154eb4
TT
1007AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
1008 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
1009 [#define _LARGEFILE_SOURCE
1010 #define _LARGEFILE64_SOURCE
1011 #include <unistd.h>])
6928adc9 1012dnl
50e1e10f
TT
1013dnl Word sizes...
1014dnl
50e1e10f
TT
1015AC_CHECK_SIZEOF(short)
1016AC_CHECK_SIZEOF(int)
1017AC_CHECK_SIZEOF(long)
fc6d9d51 1018AC_CHECK_SIZEOF(long long)
274d46e1 1019AC_CHECK_SIZEOF(off_t)
2dd680f3 1020AC_CHECK_SIZEOF(time_t)
50e1e10f
TT
1021SIZEOF_SHORT=$ac_cv_sizeof_short
1022SIZEOF_INT=$ac_cv_sizeof_int
1023SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 1024SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
274d46e1 1025SIZEOF_OFF_T=$ac_cv_sizeof_off_t
2dd680f3 1026SIZEOF_TIME_T=$ac_cv_sizeof_time_t
50e1e10f
TT
1027AC_SUBST(SIZEOF_SHORT)
1028AC_SUBST(SIZEOF_INT)
1029AC_SUBST(SIZEOF_LONG)
fc6d9d51 1030AC_SUBST(SIZEOF_LONG_LONG)
274d46e1 1031AC_SUBST(SIZEOF_OFF_T)
2dd680f3 1032AC_SUBST(SIZEOF_TIME_T)
877eb6d9 1033AC_C_BIGENDIAN
91f04685
CQ
1034if test $cross_compiling = no; then
1035 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1036else
1037 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1038fi
4ea7ea00
TT
1039ASM_TYPES_HEADER=./asm_types.h
1040AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 1041dnl
488c75a6
TT
1042dnl Save the configuration #defines needed for the public ext2fs.h
1043dnl header file
1044dnl
1045echo "/* These defines are needed for the public ext2fs.h header file */" \
1046 > public_config.h
1047if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1048 uniq tmp_config.$$ >> public_config.h
1049else
1050 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1051fi
1052if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1053 uniq tmp_config.$$ >> public_config.h
1054else
1055 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1056fi
1057rm -f tmp_config.$$
1058PUBLIC_CONFIG_HEADER=./public_config.h
1059AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1060dnl
0c193f82
TT
1061dnl See if we have inttypes.h and if intptr_t is defined
1062dnl
1063AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 1064AC_CHECK_TYPES(intptr_t)
0c193f82 1065dnl
50e1e10f
TT
1066dnl See if struct stat has a st_flags field, in which case we can get file
1067dnl flags somewhat portably. Also check for the analogous setter, chflags().
1068dnl
1069AC_MSG_CHECKING(whether struct stat has a st_flags field)
1070AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1071 AC_TRY_COMPILE([#include <sys/stat.h>],
1072 [struct stat stat; stat.st_flags = 0;],
1073 [e2fsprogs_cv_struct_st_flags=yes],
1074 [e2fsprogs_cv_struct_st_flags=no]))
1075AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1076if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
1077 AC_MSG_CHECKING(whether st_flags field is useful)
1078 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1079 AC_TRY_COMPILE([#include <sys/stat.h>],
1080 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1081 [e2fsprogs_cv_struct_st_flags_immut=yes],
1082 [e2fsprogs_cv_struct_st_flags_immut=no]))
1083 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1084 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
1085 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1086 [Define to 1 if struct stat has st_flags])
c03bc4e8 1087 fi
50e1e10f 1088fi
84ea6e70
TT
1089dnl
1090dnl Check for the presence of SA_LEN
1091dnl
6c65d251 1092AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
1093 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1094 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
1095 [#include <sys/types.h>
1096 #include <sys/socket.h>])
84ea6e70 1097dnl
9ed8e5fe
ES
1098dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1099dnl the system-provided blkid library
1100dnl
1101if test -n "$BLKID_CMT"; then
1102 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1103fi
1104dnl
32179ce2
TT
1105if test -n "$DLOPEN_LIB" ; then
1106 ac_cv_func_dlopen=yes
1107fi
677fc916
MF
1108AC_CHECK_FUNCS(m4_flatten([
1109 __secure_getenv
74f2c4aa 1110 add_key
677fc916
MF
1111 backtrace
1112 blkid_probe_get_topology
2de2628b 1113 blkid_probe_enable_partitions
677fc916 1114 chflags
32179ce2 1115 dlopen
9a393891 1116 fadvise64
677fc916
MF
1117 fallocate
1118 fallocate64
1119 fchown
f47f3195 1120 fcntl
677fc916
MF
1121 fdatasync
1122 fstat64
f47f3195 1123 fsync
677fc916 1124 ftruncate64
2873927d 1125 futimes
6c59a665 1126 getcwd
677fc916 1127 getdtablesize
32b8802a 1128 gethostname
677fc916 1129 getmntinfo
25ff7725 1130 getpwuid_r
677fc916
MF
1131 getrlimit
1132 getrusage
1133 jrand48
74f2c4aa 1134 keyctl
c84da2ee 1135 llistxattr
677fc916
MF
1136 llseek
1137 lseek64
1138 mallinfo
1139 mbstowcs
1140 memalign
6c59a665 1141 mempcpy
677fc916
MF
1142 mmap
1143 msync
1144 nanosleep
1145 open64
1146 pathconf
1147 posix_fadvise
9a393891 1148 posix_fadvise64
677fc916
MF
1149 posix_memalign
1150 prctl
baa35446
DW
1151 pread
1152 pwrite
f00948ad
TT
1153 pread64
1154 pwrite64
1ad3174a 1155 secure_getenv
b24efa21 1156 setmntent
677fc916
MF
1157 setresgid
1158 setresuid
c42de75b 1159 snprintf
677fc916 1160 srandom
6c59a665 1161 stpcpy
677fc916
MF
1162 strcasecmp
1163 strdup
1164 strnlen
1165 strptime
1166 strtoull
1167 sync_file_range
1168 sysconf
1169 usleep
1170 utime
441eb337 1171 utimes
677fc916
MF
1172 valloc
1173]))
fc6d9d51 1174dnl
fc6d9d51
TT
1175dnl Check to see if -lsocket is required (solaris) to make something
1176dnl that uses socket() to compile; this is needed for the UUID library
1177dnl
1178SOCKET_LIB=''
1179AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1180AC_SUBST(SOCKET_LIB)
1181dnl
b291c11f
DW
1182dnl See if libmagic exists
1183dnl
1184AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1185AC_CHECK_HEADERS([magic.h])])
32179ce2 1186if test "$ac_cv_func_dlopen" = yes ; then
d2e3c0dc
TT
1187 MAGIC_LIB=$DLOPEN_LIB
1188fi
b291c11f
DW
1189AC_SUBST(MAGIC_LIB)
1190dnl
62bc243f
GZ
1191dnl Check to see if librt is required for clock_gettime() (glibc < 2.17)
1192dnl
1193AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt])
1194AC_SUBST(CLOCK_GETTIME_LIB)
1195dnl
81cbf1ef
DW
1196dnl Check to see if the FUSE library is -lfuse or -losxfuse
1197dnl
1198FUSE_CMT=
1199FUSE_LIB=
1200dnl osxfuse.dylib supersedes fuselib.dylib
1201AC_ARG_ENABLE([fuse2fs],
f5dffb81 1202[ --disable-fuse2fs do not build fuse2fs],
81cbf1ef
DW
1203if test "$enableval" = "no"
1204then
1205 FUSE_CMT="#"
1206 AC_MSG_RESULT([Disabling fuse2fs])
1207else
1208 AC_CHECK_HEADERS([pthread.h fuse.h], [],
1209[AC_MSG_FAILURE([Cannot find fuse2fs headers.])],
1210[#define _FILE_OFFSET_BITS 64
1211#define FUSE_USE_VERSION 29])
1212
1213 AC_PREPROC_IFELSE(
1214[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29
1215#ifdef __linux__
1216#include <linux/fs.h>
1217#include <linux/falloc.h>
1218#include <linux/xattr.h>
1219#endif
1220]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])])
1221
1222 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1223 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse],
1224 [AC_MSG_FAILURE([Cannot find fuse library.])])])
1225 AC_MSG_RESULT([Enabling fuse2fs])
1226fi
1227,
1228AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"],
1229[#define _FILE_OFFSET_BITS 64
1230#define FUSE_USE_VERSION 29
1231#ifdef __linux__
1232# include <linux/fs.h>
1233# include <linux/falloc.h>
1234# include <linux/xattr.h>
1235#endif])
1236if test -z "$FUSE_CMT"
1237then
1238 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1239[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])])
1240fi
1241if test -z "$FUSE_CMT"
1242then
1243 AC_MSG_RESULT([Enabling fuse2fs by default.])
1244fi
1245)
1246AC_SUBST(FUSE_LIB)
1247AC_SUBST(FUSE_CMT)
1248dnl
50e1e10f
TT
1249dnl See if optreset exists
1250dnl
1251AC_MSG_CHECKING(for optreset)
1252AC_CACHE_VAL(ac_cv_have_optreset,
1253[AC_EGREP_HEADER(optreset, unistd.h,
1254 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1255AC_MSG_RESULT($ac_cv_have_optreset)
1256if test $ac_cv_have_optreset = yes; then
d1154eb4 1257 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
1258fi
1259dnl
d7f45af8
TT
1260dnl Test for sem_init, and which library it might require:
1261dnl
d1154eb4 1262AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8 1263SEM_INIT_LIB=''
cfb8e0bd
TT
1264echo GL_THREADS_API: ${gl_threads_api}
1265if test "${gl_threads_api}" != none
1266then
1267 AC_CHECK_FUNC(sem_init, ,
1268 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 1269 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1270 SEM_INIT_LIB=-lpthread,
cfb8e0bd 1271 AC_CHECK_LIB(rt, sem_init,
d1154eb4 1272 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1273 SEM_INIT_LIB=-lrt,
cfb8e0bd 1274 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 1275 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8 1276 SEM_INIT_LIB=-lposix4))))dnl
cfb8e0bd 1277fi
d7f45af8
TT
1278AC_SUBST(SEM_INIT_LIB)
1279dnl
e54635de
TT
1280dnl Check for unified diff
1281dnl
1282AC_MSG_CHECKING(for unified diff option)
27f991b0 1283if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
1284 UNI_DIFF_OPTS=-u
1285else
1286 UNI_DIFF_OPTS=-c
1287fi
1288AC_MSG_RESULT($UNI_DIFF_OPTS)
1289AC_SUBST(UNI_DIFF_OPTS)
1290dnl
8f3f29d3
TT
1291dnl We use the EXT2 ioctls only under Linux
1292dnl
1293case "$host_os" in
1294linux*)
d1154eb4 1295 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
1296 ;;
1297esac
50e1e10f 1298dnl
4aece328
DW
1299dnl Enable LTO for all packages
1300dnl
1301AC_ARG_ENABLE([lto],
1302[ --enable-lto enable link time optimization],,
1303enable_lto=probe)
1304if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
1305 AC_MSG_CHECKING([if C compiler supports LTO])
1306 OLD_CFLAGS="$CFLAGS"
1307 OLD_LDFLAGS="$LDFLAGS"
1308 LTO_FLAGS="-flto -ffat-lto-objects"
1309 CFLAGS="$CFLAGS $LTO_FLAGS"
1310 LDFLAGS="$LDFLAGS $LTO_FLAGS"
1311 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1312 [AC_MSG_RESULT([yes])]
1313 [lto_cflags=$LTO_FLAGS]
1314 [lto_ldflags=$LTO_FLAGS]
1315 [AC_PATH_PROG(gcc_ar, gcc-ar,,)]
1316 [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)],
1317 [AC_MSG_RESULT([no])])
1318 if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then
1319 have_lto=yes
1320 AR="${gcc_ar}"
1321 RANLIB="${gcc_ranlib}"
1322 fi
1323 CFLAGS="${OLD_CFLAGS}"
1324 LDFLAGS="${OLD_LDFLAGS}"
1325 AC_SUBST(have_lto)
1326 AC_SUBST(lto_cflags)
1327 AC_SUBST(lto_ldflags)
1328fi
1329if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then
1330 AC_MSG_ERROR([LTO not supported by compiler.])
1331fi
1332dnl
1c2a76ae
DW
1333dnl Enable UBSAN for all packages
1334dnl
1335AC_ARG_ENABLE([ubsan],
1336[ --enable-ubsan enable undefined behavior sanitizer],,
1337enable_ubsan=no)
1338if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then
1339 AC_MSG_CHECKING([if C compiler supports UBSAN])
1340 OLD_CFLAGS="$CFLAGS"
1341 OLD_LDFLAGS="$LDFLAGS"
1342 UBSAN_FLAGS="-fsanitize=undefined"
1343 CFLAGS="$CFLAGS $UBSAN_FLAGS"
1344 LDFLAGS="$LDFLAGS $UBSAN_FLAGS"
1345 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1346 [AC_MSG_RESULT([yes])]
1347 [ubsan_cflags=$UBSAN_FLAGS]
1348 [ubsan_ldflags=$UBSAN_FLAGS]
1349 [have_ubsan=yes],
1350 [AC_MSG_RESULT([no])])
1351 CFLAGS="${OLD_CFLAGS}"
1352 LDFLAGS="${OLD_LDFLAGS}"
1353 AC_SUBST(have_ubsan)
1354 AC_SUBST(ubsan_cflags)
1355 AC_SUBST(ubsan_ldflags)
1356fi
1357if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then
1358 AC_MSG_ERROR([UBSAN not supported by compiler.])
1359fi
1360dnl
5e666e3d
DW
1361dnl Enable ADDRSAN for all packages
1362dnl
1363AC_ARG_ENABLE([addrsan],
1364[ --enable-addrsan enable address sanitizer],,
1365enable_addrsan=no)
1366if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then
1367 AC_MSG_CHECKING([if C compiler supports ADDRSAN])
1368 OLD_CFLAGS="$CFLAGS"
1369 OLD_LDFLAGS="$LDFLAGS"
1370 ADDRSAN_FLAGS="-fsanitize=address"
1371 CFLAGS="$CFLAGS $ADDRSAN_FLAGS"
1372 LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS"
1373 AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1374 [AC_MSG_RESULT([yes])]
1375 [addrsan_cflags=$ADDRSAN_FLAGS]
1376 [addrsan_ldflags=$ADDRSAN_FLAGS]
1377 [have_addrsan=yes],
1378 [AC_MSG_RESULT([no])])
1379 CFLAGS="${OLD_CFLAGS}"
1380 LDFLAGS="${OLD_LDFLAGS}"
1381 AC_SUBST(have_addrsan)
1382 AC_SUBST(addrsan_cflags)
1383 AC_SUBST(addrsan_ldflags)
1384fi
1385if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then
1386 AC_MSG_ERROR([ADDRSAN not supported by compiler.])
1387fi
1388dnl
fff45483 1389dnl OS-specific uncomment control
e6f2bda3
TT
1390dnl
1391LINUX_CMT="#"
fff45483
TT
1392CYGWIN_CMT="#"
1393UNIX_CMT=
e6f2bda3
TT
1394case "$host_os" in
1395linux*)
1396 LINUX_CMT=
1397 ;;
fff45483
TT
1398cygwin)
1399 CYGWIN_CMT=
1400 UNIX_CMT="#"
fff45483 1401 ;;
e6f2bda3
TT
1402esac
1403AC_SUBST(LINUX_CMT)
fff45483
TT
1404AC_SUBST(CYGWIN_CMT)
1405AC_SUBST(UNIX_CMT)
e6f2bda3 1406dnl
5ce368f0
DW
1407dnl e2scrub only builds on linux
1408dnl
1409E2SCRUB_CMT="$LINUX_CMT"
1410AC_SUBST(E2SCRUB_CMT)
1411dnl
6c133523 1412dnl Linux and Hurd places root files in the / by default
50e1e10f 1413dnl
50e1e10f 1414case "$host_os" in
93636bde 1415linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
1416 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1417 root_prefix="";
02d04db4 1418 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
1419 fi
1420 ;;
1421esac
fc6d9d51 1422dnl
a4b2d3ce 1423dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1424dnl
1425case "$host_os" in
93636bde 1426linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1427 if test "$prefix" = NONE ; then
a4b2d3ce 1428 prefix="/usr";
02d04db4 1429 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1430 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1431 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1432 mandir=/usr/share/man
1433 fi
50e1e10f
TT
1434 fi
1435;;
1436esac
a4b2d3ce 1437if test "$root_prefix" = NONE ; then
ffe1991f 1438 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1439 root_prefix="$ac_default_prefix"
1440 else
1441 root_prefix="$prefix"
1442 fi
b5ffeade
TT
1443 root_bindir=$bindir
1444 root_sbindir=$sbindir
1445 root_libdir=$libdir
1446 root_sysconfdir=$sysconfdir
1447else
1448 root_bindir='${root_prefix}/bin'
1449 root_sbindir='${root_prefix}/sbin'
1450 root_libdir='${root_prefix}/lib'
1451 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1452fi
c4ef11c5
TT
1453if test "$bindir" != '${exec_prefix}/bin'; then
1454 root_bindir=$bindir
02d04db4 1455 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1456fi
1457if test "$sbindir" != '${exec_prefix}/sbin'; then
1458 root_sbindir=$sbindir
02d04db4 1459 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1460fi
1461if test "$libdir" != '${exec_prefix}/lib'; then
1462 root_libdir=$libdir
02d04db4 1463 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1464fi
1465if test "$sysconfdir" != '${prefix}/etc'; then
1466 root_sysconfdir=$sysconfdir
02d04db4 1467 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1468fi
a4b2d3ce 1469AC_SUBST(root_prefix)
b5ffeade
TT
1470AC_SUBST(root_bindir)
1471AC_SUBST(root_sbindir)
1472AC_SUBST(root_libdir)
1473AC_SUBST(root_sysconfdir)
50e1e10f 1474dnl
55e00a25
TT
1475dnl Allow specification of the multiarch arch
1476dnl
1477AC_ARG_WITH([multiarch],
1478[ --with-multiarch=ARCH specify the multiarch triplet],
d7fa4103
TT
1479if test "$withval" = "lib64"; then
1480 libdir=/usr/lib64
1481 root_libdir=/lib64
1482else
1483 libdir=$libdir/$withval
1484 root_libdir=$root_libdir/$withval
1485fi
a2df5894
DW
1486)
1487dnl
55e00a25 1488dnl
d3de1a71
TT
1489dnl See if -static works. This could fail if the linker does not
1490dnl support -static, or if required external libraries are not available
1491dnl in static form.
50e1e10f 1492dnl
d3de1a71 1493AC_MSG_CHECKING([whether we can link with -static])
ae851482 1494AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
fd1677e8 1495[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
ae851482
TT
1496AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1497 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1498LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1499dnl
1500dnl Regardless of how the test turns out, Solaris doesn't handle -static
1501dnl This is caused by the socket library requiring the nsl library, which
1502dnl requires the -dl library, which only works for dynamically linked
1503dnl programs. It basically means you can't have statically linked programs
1504dnl which use the network under Solaris.
1505dnl
1506case "$host_os" in
1507solaris2.*)
1508 ac_cv_e2fsprogs_use_static=no
1509;;
1510esac
ae851482 1511AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
ae851482 1512if test $ac_cv_e2fsprogs_use_static = yes; then
fd1677e8 1513 LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
ae851482 1514fi
fd1677e8 1515AC_SUBST(LDFLAGS_STATIC)
50e1e10f 1516dnl
07a0db15
TT
1517dnl Work around mysterious Darwin / GNU libintl problem
1518dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1519dnl Apple hacked gcc somehow?)
1520dnl
1521case "$host_os" in
1522darwin*)
02d04db4 1523 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1524 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1525 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1526 ;;
1527esac
1528dnl
50e1e10f
TT
1529dnl Only try to run the test suite if we're not cross compiling.
1530dnl
1531if test "$cross_compiling" = yes ; then
1532 DO_TEST_SUITE=
1533else
1534 DO_TEST_SUITE=check
1535fi
1536AC_SUBST(DO_TEST_SUITE)
1537dnl
c6f35b8a 1538dnl Only include the intl include files if we're building with them
d1154eb4
TT
1539dnl
1540INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1541if test -n "$CPPFLAGS" ; then
1542 INCLUDES="$INCLUDES $CPPFLAGS"
1543fi
c6f35b8a 1544if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1545 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1546fi
6c59a665
TT
1547if test -n "$WITH_DIET_LIBC" ; then
1548 INCLUDES="$INCLUDES -D_REENTRANT"
1549fi
d1154eb4 1550AC_SUBST(INCLUDES)
5b5bd2c2 1551AM_MKINSTALLDIRS
c6f35b8a 1552dnl
dd947da2
TT
1553dnl Build CFLAGS
1554dnl
1555if test $cross_compiling = no; then
2873927d 1556 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
dd947da2 1557 BUILD_LDFLAGS="$LDFLAGS"
dd947da2
TT
1558fi
1559AC_SUBST(BUILD_CFLAGS)
1560AC_SUBST(BUILD_LDFLAGS)
1561dnl
fd1677e8
TT
1562dnl Define CFLAGS and LDFLAGS for shared libraries
1563dnl
1564CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
1565CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
1566LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
1567AC_SUBST(CFLAGS_SHLIB)
1568AC_SUBST(CFLAGS_STLIB)
1569AC_SUBST(LDFLAGS_SHLIB)
5ce368f0
DW
1570
1571dnl
1572dnl Where do udev rules go?
1573dnl
1574AC_ARG_WITH([udev_rules_dir],
1575 [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@],
1576 [Install udev rules into DIR.])],
1577 [],
1578 [with_udev_rules_dir=yes])
1579AS_IF([test "x${with_udev_rules_dir}" != "xno"],
1580 [
1581 AS_IF([test "x${with_udev_rules_dir}" = "xyes"],
1582 [
1583 PKG_CHECK_MODULES([udev], [udev],
1584 [
1585 with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d"
1586 ], [
1587 with_udev_rules_dir=""
1588 ])
1589 ])
1590 AC_MSG_CHECKING([for udev rules dir])
1591 pkg_udev_rules_dir="${with_udev_rules_dir}"
1592 AS_IF([test -n "${pkg_udev_rules_dir}"],
1593 [
1594 AC_MSG_RESULT(${pkg_udev_rules_dir})
1595 have_udev="yes"
1596 ],
1597 [
1598 AC_MSG_RESULT(no)
1599 have_udev="no"
1600 ])
1601 ],
1602 [
1603 have_udev="disabled"
1604 ])
1605AC_SUBST(have_udev)
1606AC_SUBST(pkg_udev_rules_dir)
1607
a2df5894
DW
1608dnl
1609dnl Where do cron jobs go?
1610dnl
1611AC_ARG_WITH([crond_dir],
1612 [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@],
1613 [Install system crontabs into DIR.])],
1614 [],
1615 [with_crond_dir=yes])
1616AS_IF([test "x${with_crond_dir}" != "xno"],
1617 [
1618 AS_IF([test "x${with_crond_dir}" = "xyes"],
1619 [
1620 AS_IF([test -d "/etc/cron.d"],
1621 [with_crond_dir="/etc/cron.d"])
1622 ])
1623 AC_MSG_CHECKING([for system crontab dir])
1624 crond_dir="${with_crond_dir}"
1625 AS_IF([test -n "${crond_dir}"],
1626 [
1627 AC_MSG_RESULT(${crond_dir})
1628 have_crond="yes"
1629 ],
1630 [
1631 AC_MSG_RESULT(no)
1632 have_crond="no"
1633 ])
1634 ],
1635 [
1636 have_crond="disabled"
1637 ])
1638AC_SUBST(have_crond)
1639AC_SUBST(crond_dir)
1640
1641dnl
1642dnl Where do systemd services go?
1643dnl
1644AC_ARG_WITH([systemd_unit_dir],
1645 [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@],
1646 [Install systemd system units into DIR.])],
1647 [],
1648 [with_systemd_unit_dir=yes])
1649AS_IF([test "x${with_systemd_unit_dir}" != "xno"],
1650 [
1651 AS_IF([test "x${with_systemd_unit_dir}" = "xyes"],
1652 [
1653 PKG_CHECK_MODULES([systemd], [systemd],
1654 [
1655 with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)"
1656 ], [
1657 with_systemd_unit_dir=""
1658 ])
1659 m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$])
1660 ])
1661 AC_MSG_CHECKING([for systemd system unit dir])
1662 systemd_system_unit_dir="${with_systemd_unit_dir}"
1663 AS_IF([test -n "${systemd_system_unit_dir}"],
1664 [
1665 AC_MSG_RESULT(${systemd_system_unit_dir})
1666 have_systemd="yes"
1667 ],
1668 [
1669 AC_MSG_RESULT(no)
1670 have_systemd="no"
1671 ])
1672 ],
1673 [
1674 have_systemd="disabled"
1675 ])
1676AC_SUBST(have_systemd)
1677AC_SUBST(systemd_system_unit_dir)
1678
fd1677e8 1679dnl
50e1e10f
TT
1680dnl Make our output files, being sure that we create the some miscellaneous
1681dnl directories
1682dnl
1683test -d lib || mkdir lib
1684test -d include || mkdir include
1685test -d include/linux || mkdir include/linux
defde784 1686test -d include/asm || mkdir include/asm
44dfb378
TT
1687if test -z "$UUID_CMT" ; then
1688 uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \
1689 lib/uuid/uuid_types.h"
1690fi
1691if test -z "$BLKID_CMT" ; then
1692 blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \
1693 lib/blkid/blkid_types.h"
1694fi
bff0cc95 1695for i in MCONFIG Makefile e2fsprogs.spec \
183c73b0 1696 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
4ea7ea00
TT
1697 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1698 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
f34af41b 1699 $uuid_out_list $blkid_out_list lib/support/Makefile \
44dfb378 1700 lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1701 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1702 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61 1703 resize/Makefile doc/Makefile intl/Makefile \
5ce368f0 1704 intl/libgnuintl.h po/Makefile.in scrub/Makefile; do
94ba8c75
TT
1705 if test -d `dirname ${srcdir}/$i` ; then
1706 outlist="$outlist $i"
1707 fi
1708done
1709AC_OUTPUT($outlist)
ee683a13 1710if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi