blob: e75a84ec5c778f52329c870d227678da7bfa1a5a [file] [log] [blame]
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001AC_INIT(version.h)
Theodore Ts'o37cdbee2012-12-22 22:24:45 -05002AC_PREREQ(2.54)
Theodore Ts'ob0cacab2004-11-30 19:00:19 -05003AC_CONFIG_AUX_DIR(config)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04004AC_CONFIG_HEADERS([lib/config.h])
Theodore Ts'oc714d022014-01-30 18:48:23 -05005AH_BOTTOM([#include <dirpaths.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00006MCONFIG=./MCONFIG
7AC_SUBST_FILE(MCONFIG)
Theodore Ts'o74becf31997-04-26 14:37:06 +00008BINARY_TYPE=bin
9dnl
10dnl This is to figure out the version number and the date....
11dnl
12E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
13 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
14DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
15 | tr \" " "`
Theodore Ts'obff0cc92003-03-23 01:37:53 -050016E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
Theodore Ts'o74becf31997-04-26 14:37:06 +000017MONTH=`echo $DATE | awk -F- '{print $2}'`
18YEAR=`echo $DATE | awk -F- '{print $3}'`
19
Theodore Ts'o40fa8cc1999-01-09 05:06:02 +000020if expr $YEAR ">" 1900 > /dev/null ; then
21 E2FSPROGS_YEAR=$YEAR
22elif expr $YEAR ">" 90 >/dev/null ; then
Theodore Ts'o74becf31997-04-26 14:37:06 +000023 E2FSPROGS_YEAR=19$YEAR
24else
25 E2FSPROGS_YEAR=20$YEAR
26fi
27
28case $MONTH in
Andreas Dilger927566a2006-11-12 19:41:25 -050029Jan) 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" ;;
Theodore Ts'o02d04db2008-08-22 10:52:42 -040041*) AC_MSG_WARN([Unknown month $MONTH??]) ;;
Theodore Ts'o74becf31997-04-26 14:37:06 +000042esac
43
Andreas Dilger927566a2006-11-12 19:41:25 -050044base_ver=`echo $E2FSPROGS_VERSION | \
45 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
Andreas Dilger927566a2006-11-12 19:41:25 -050046
47date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
48
49case $E2FSPROGS_VERSION in
50*-WIP|pre-*)
Theodore Ts'oab063962008-07-07 16:07:43 -040051 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
Andreas Dilger927566a2006-11-12 19:41:25 -050052 ;;
53*)
54 E2FSPROGS_PKGVER="$base_ver"
55 ;;
56esac
57
58unset DATE MONTH YEAR base_ver pre_vers date_spec
Theodore Ts'o02d04db2008-08-22 10:52:42 -040059AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
60AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
Theodore Ts'o74becf31997-04-26 14:37:06 +000061AC_SUBST(E2FSPROGS_YEAR)
62AC_SUBST(E2FSPROGS_MONTH)
Theodore Ts'obff0cc92003-03-23 01:37:53 -050063AC_SUBST(E2FSPROGS_DAY)
Theodore Ts'o74becf31997-04-26 14:37:06 +000064AC_SUBST(E2FSPROGS_VERSION)
Andreas Dilger927566a2006-11-12 19:41:25 -050065AC_SUBST(E2FSPROGS_PKGVER)
Theodore Ts'o57aa50d2009-11-26 10:38:04 -050066dnl
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040067dnl Use diet libc
68dnl
Theodore Ts'oeafba6c2008-07-10 10:21:42 -040069WITH_DIET_LIBC=
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040070AC_ARG_WITH([diet-libc],
Theodore Ts'o32493942007-12-31 10:45:01 -050071[ --with-diet-libc use diet libc],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040072CC="diet cc -nostdinc"
Theodore Ts'oeafba6c2008-07-10 10:21:42 -040073WITH_DIET_LIBC=yes
Theodore Ts'o6c59a662014-01-04 20:44:29 -050074if test -z "$LIBS"
75then
76 LIBS="-lcompat"
77else
78 LIBS="$LIBS -lcompat"
79fi
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040080AC_MSG_RESULT(CC=$CC))dnl
81dnl
Theodore Ts'o6c59a662014-01-04 20:44:29 -050082AC_CANONICAL_HOST
83dnl
84dnl Check to see if libdl exists for the sake of dlopen
85dnl
86DLOPEN_LIB=''
87AC_CHECK_LIB(dl, dlopen,
88[DLOPEN_LIB=-ldl
89AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
90AC_SUBST(DLOPEN_LIB)
91dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +000092AC_ARG_WITH([cc],
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -040093AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
94AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
Theodore Ts'o74becf31997-04-26 14:37:06 +000095dnl
96AC_ARG_WITH([ccopts],
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -040097AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
98AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
99dnl
100AC_ARG_WITH([ldopts],
101AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
102AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
103dnl
104AC_PROG_CC
Theodore Ts'o9b3018a2011-08-11 14:56:49 -0400105if test "$GCC" = yes; then
106 RDYNAMIC="-rdynamic"
107 AC_SUBST(RDYNAMIC)
108fi
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -0400109AC_PROG_CPP
Theodore Ts'o74becf31997-04-26 14:37:06 +0000110dnl
Matthias Andreeb1c92f92004-02-23 21:30:11 +0100111dnl Alpha computers use fast and imprecise floating point code that may
112dnl miss exceptions by default. Force sane options if we're using GCC.
113AC_MSG_CHECKING(for additional special compiler flags)
114if test "$GCC" = yes
115then
116 case "$host_cpu" in
117 alpha) addcflags="-mieee" ;;
118 esac
119fi
120if test "x$addcflags" != x
121then
122 AC_MSG_RESULT($addcflags)
123 CFLAGS="$addcflags $CFLAGS"
124else
125 AC_MSG_RESULT([[(none)]])
126fi
Theodore Ts'o93613952014-07-03 23:44:13 -0400127AC_USE_SYSTEM_EXTENSIONS
Matthias Andreeb1c92f92004-02-23 21:30:11 +0100128dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000129dnl Set default values for library extentions. Will be dealt with after
130dnl parsing configuration opions, which may modify these
131dnl
132LIB_EXT=.a
133STATIC_LIB_EXT=.a
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400134PROFILED_LIB_EXT=.a
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000135dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000136dnl Allow separate `root_prefix' to be specified
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000137dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000138AC_ARG_WITH([root-prefix],
139[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
140root_prefix=$withval,
141root_prefix=NONE)dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000142dnl
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500143dnl handle --enable-maintainer-mode
144dnl
145AC_ARG_ENABLE([maintainer-mode],
146[ --enable-maintainer-mode enable makefile rules useful for maintainers],
147if test "$enableval" = "no"
148then
149 MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400150 AC_MSG_RESULT([Disabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500151else
152 MAINTAINER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400153 AC_MSG_RESULT([Enabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500154fi
155,
156MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400157AC_MSG_RESULT([Disabling maintainer mode by default])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500158)
159AC_SUBST(MAINTAINER_CMT)
160dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400161dnl handle --enable-symlink-install
162dnl
163AC_ARG_ENABLE([symlink-install],
164[ --enable-symlink-install use symlinks when installing instead of hard links],
165if test "$enableval" = "no"
166then
167 LINK_INSTALL_FLAGS=-f
168 AC_MSG_RESULT([Disabling symlinks for install])
169else
170 LINK_INSTALL_FLAGS=-sf
171 AC_MSG_RESULT([Enabling symlinks for install])
172fi
173,
174LINK_INSTALL_FLAGS=-f
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400175AC_MSG_RESULT([Disabling symlinks for install by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400176)
177AC_SUBST(LINK_INSTALL_FLAGS)
178dnl
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400179dnl handle --enable-relative-symlinks
180dnl
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400181relative_symlink_defined=
182AC_ARG_ENABLE([relative-symlinks],
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400183[ --enable-relative-symlinks use relative symlinks when installing],
184if test "$enableval" = "no"
185then
186 SYMLINK_RELATIVE=
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400187 relative_symlink_defined=yes
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400188 AC_MSG_RESULT([Disabling relative symlinks for install])
189else
190 SYMLINK_RELATIVE=--relative
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400191 relative_symlink_defined=yes
192 AC_MSG_RESULT([Enabling relative symlinks for install])
193fi)
194AC_ARG_ENABLE([symlink-relative-symlinks],,
195if test "$enableval" = "no"
196then
197 SYMLINK_RELATIVE=yes
198 AC_MSG_RESULT([Disabling relative symlinks for install])
199else
200 SYMLINK_RELATIVE=--relative
201 AC_MSG_RESULT([Enabling relative symlinks for install])
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400202fi
203,
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400204if test -z "$relative_symlink_defined"
205then
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400206 SYMLINK_RELATIVE=
207AC_MSG_RESULT([Disabling relative symlinks for install by default])
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400208fi
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400209)
210AC_SUBST(SYMLINK_RELATIVE)
211dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400212dnl handle --enable-symlink-build
213dnl
214AC_ARG_ENABLE([symlink-build],
215[ --enable-symlink-build use symlinks while building instead of hard links],
216if test "$enableval" = "no"
217then
218 LINK_BUILD_FLAGS=
219 AC_MSG_RESULT([Disabling symlinks for build])
220else
221 LINK_BUILD_FLAGS=-s
222 AC_MSG_RESULT([Enabling symlinks for build])
223fi
224,
225LINK_BUILD_FLAGS=
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400226AC_MSG_RESULT([Disabling symlinks for build by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400227)
228AC_SUBST(LINK_BUILD_FLAGS)
229dnl
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400230dnl handle --enable-verbose-makecmds
231dnl
232AC_ARG_ENABLE([verbose-makecmds],
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400233[ --enable-verbose-makecmds enable verbose make command output],
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400234if test "$enableval" = "no"
235then
236 AC_MSG_RESULT([Disabling verbose make commands])
237 E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400238 ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400239 Q=@
240else
241 AC_MSG_RESULT([Enabling verbose make commands])
242 E=@\\#
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400243 ES=\\#
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400244 Q=
245fi
246,
247AC_MSG_RESULT([Disabling verbose make commands])
248E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400249ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400250Q=@
251)
252AC_SUBST(E)
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400253AC_SUBST(ES)
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400254AC_SUBST(Q)
255dnl
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400256dnl handle --enable-htree
257dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400258AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400259AC_ARG_ENABLE([htree],
260[ --enable-htree enable EXPERIMENTAL htree directory support],
261if test "$enableval" = "no"
262then
263 HTREE_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400264 AC_MSG_RESULT([Disabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400265else
266 HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400267 AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400268 AC_MSG_RESULT([Enabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400269fi
270,
Theodore Ts'o559ca6c2002-08-18 03:48:55 -0400271HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400272AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400273AC_MSG_RESULT([Enabling htree directory support by default])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400274)
275AC_SUBST(HTREE_CMT)
276dnl
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500277dnl This needs to be before all of the --enable-*-shlibs options
278dnl
279E2_PKG_CONFIG_STATIC=--static
Theodore Ts'o55da9872008-09-02 23:12:38 -0400280LDFLAG_DYNAMIC=
281PRIVATE_LIBS_CMT=
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500282dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000283dnl handle --enable-elf-shlibs
284dnl
285AC_ARG_ENABLE([elf-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000286[ --enable-elf-shlibs select ELF shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000287if test "$enableval" = "no"
288then
289 ELF_CMT=#
290 MAKEFILE_ELF=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400291 AC_MSG_RESULT([Disabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000292else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500293 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000294 ELF_CMT=
295 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
Theodore Ts'of5955dd2000-10-25 02:38:39 +0000296 [case "$host_os" in
297 solaris2.*)
298 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
299 ;;
300 esac]
Theodore Ts'o74becf31997-04-26 14:37:06 +0000301 BINARY_TYPE=elfbin
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000302 LIB_EXT=.so
Theodore Ts'o55da9872008-09-02 23:12:38 -0400303 PRIVATE_LIBS_CMT=#
304 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400305 AC_MSG_RESULT([Enabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000306fi
307,
308MAKEFILE_ELF=/dev/null
309ELF_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400310AC_MSG_RESULT([Disabling ELF shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000311)
312AC_SUBST(ELF_CMT)
313AC_SUBST_FILE(MAKEFILE_ELF)
314dnl
315dnl handle --enable-bsd-shlibs
316dnl
317AC_ARG_ENABLE([bsd-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000318[ --enable-bsd-shlibs select BSD shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000319if test "$enableval" = "no"
320then
321 BSDLIB_CMT=#
322 MAKEFILE_BSDLIB=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400323 AC_MSG_RESULT([Disabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000324else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500325 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000326 BSDLIB_CMT=
327 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000328 LIB_EXT=.so
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500329 [case "$host_os" in
Theodore Ts'oaa75ecc2003-03-17 10:01:22 -0500330 darwin*)
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500331 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
332 LIB_EXT=.dylib
333 ;;
334 esac]
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400335 AC_MSG_RESULT([Enabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000336fi
337,
338MAKEFILE_BSDLIB=/dev/null
339BSDLIB_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400340AC_MSG_RESULT([Disabling BSD shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000341)
342AC_SUBST(BSDLIB_CMT)
343AC_SUBST_FILE(MAKEFILE_BSDLIB)
344dnl
345dnl handle --enable-profile
346dnl
347AC_ARG_ENABLE([profile],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000348[ --enable-profile build profiling libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000349if test "$enableval" = "no"
350then
351 PROFILE_CMT=#
352 MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400353 AC_MSG_RESULT([Disabling profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000354else
355 PROFILE_CMT=
356 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000357 PROFILED_LIB_EXT=_p.a
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400358 AC_MSG_RESULT([Building profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000359fi
360,
361PROFILE_CMT=#
362MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400363AC_MSG_RESULT([Disabling profiling libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000364)
365AC_SUBST(PROFILE_CMT)
366AC_SUBST_FILE(MAKEFILE_PROFILE)
367dnl
Theodore Ts'ofedfb272014-02-23 00:17:09 -0500368dnl handle --enable-gcov
369dnl
370AC_ARG_ENABLE([gcov],
371[ --enable-gcov build for coverage testing using gcov],
372if test "$enableval" = "yes"
373then
374 CFLAGS="-g -fprofile-arcs -ftest-coverage"
375 LDFLAGS="-fprofile-arcs -ftest-coverage"
376 AC_MSG_RESULT([Enabling gcov support])
377fi
378)
Eric Sandeen2f8d0252014-04-17 17:05:38 -0500379
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000380dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000381dnl Substitute library extensions
382dnl
383AC_SUBST(LIB_EXT)
384AC_SUBST(STATIC_LIB_EXT)
385AC_SUBST(PROFILED_LIB_EXT)
Theodore Ts'o55da9872008-09-02 23:12:38 -0400386AC_SUBST(LDFLAG_DYNAMIC)
387AC_SUBST(PRIVATE_LIBS_CMT)
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000388dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500389dnl handle --enable-jbd-debug
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000390dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500391AC_ARG_ENABLE([jbd-debug],
392[ --enable-jbd-debug enable journal debugging],
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000393if test "$enableval" = "no"
394then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400395 AC_MSG_RESULT([Disabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000396else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400397 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
398 [Define to 1 if debugging ext3/4 journal code])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400399 AC_MSG_RESULT([Enabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000400fi
401,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400402AC_MSG_RESULT([Disabling journal debugging by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000403)
404dnl
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500405dnl handle --enable-blkid-debug
406dnl
407AC_ARG_ENABLE([blkid-debug],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -0400408[ --enable-blkid-debug enable blkid debugging],
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500409if test "$enableval" = "no"
410then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400411 AC_MSG_RESULT([Disabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500412else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400413 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
414 [Define to 1 if debugging the blkid library])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400415 AC_MSG_RESULT([Enabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500416fi
417,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400418AC_MSG_RESULT([Disabling blkid debugging by default])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500419)
420dnl
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400421dnl handle --enable-testio-debug
422dnl
423AC_ARG_ENABLE([testio-debug],
Theodore Ts'oaf773652008-09-01 11:27:27 -0400424[ --disable-testio-debug disable the use of the test I/O manager for debugging],
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400425AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
426 [Define to 1 if the testio I/O manager should be enabled])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400427if test "$enableval" = "no"
428then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400429 AC_MSG_RESULT([Disabling testio debugging])
Theodore Ts'oaf773652008-09-01 11:27:27 -0400430 TEST_IO_CMT="#"
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400431else
Theodore Ts'oaf773652008-09-01 11:27:27 -0400432 TEST_IO_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400433 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400434 AC_MSG_RESULT([Enabling testio debugging])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400435fi
436,
Theodore Ts'oaf773652008-09-01 11:27:27 -0400437AC_MSG_RESULT([Enabling testio debugging by default])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400438AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400439TEST_IO_CMT=
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400440)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400441AC_SUBST(TEST_IO_CMT)
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400442dnl
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100443dnl handle --disable-libuuid
444dnl
445PKG_PROG_PKG_CONFIG
446LIBUUID=
447DEPLIBUUID=
448STATIC_LIBUUID=
449DEPSTATIC_LIBUUID=
450PROFILED_LIBUUID=
451DEPPROFILED_LIBUUID=
452UUID_CMT=
453AC_ARG_ENABLE([libuuid],
454[ --disable-libuuid do not build private uuid library],
455if test "$enableval" = "no"
456then
457 if test -z "$PKG_CONFIG"; then
458 AC_MSG_ERROR([pkg-config not installed; please install it.])
459 fi
460
461 AC_CHECK_LIB(uuid, uuid_generate,
462 [LIBUUID=`$PKG_CONFIG --libs uuid`;
463 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
Theodore Ts'o2d7583b2014-07-05 00:27:02 -0400464 [AC_MSG_ERROR([external uuid library not found])])
Theodore Ts'o5afdf372014-09-18 21:11:33 -0400465 PROFILED_LIBUUID=$LIBUUID
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100466 UUID_CMT=#
467 AC_MSG_RESULT([Disabling private uuid library])
468else
469 LIBUUID='$(LIB)/libuuid'$LIB_EXT
470 DEPLIBUUID=$LIBUUID
471 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
472 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
473 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
474 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
475 AC_MSG_RESULT([Enabling private uuid library])
476fi
477,
478LIBUUID='$(LIB)/libuuid'$LIB_EXT
479DEPLIBUUID=$LIBUUID
480STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
481DEPSTATIC_LIBUUID=$STATIC_LIBUUID
482PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
483DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
484AC_MSG_RESULT([Enabling private uuid library by default])
485)
486AC_SUBST(LIBUUID)
487AC_SUBST(DEPLIBUUID)
488AC_SUBST(STATIC_LIBUUID)
489AC_SUBST(DEPSTATIC_LIBUUID)
490AC_SUBST(PROFILED_LIBUUID)
491AC_SUBST(DEPPROFILED_LIBUUID)
492AC_SUBST(UUID_CMT)
493dnl
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400494dnl handle --disable-libblkid
495dnl
496PKG_PROG_PKG_CONFIG
497LIBBLKID=
498DEPLIBBLKID=
499STATIC_LIBBLKID=
500DEPSTATIC_LIBBLKID=
501PROFILED_LIBBLKID=
502DEPPROFILED_LIBBLKID=
503BLKID_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400504AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400505AC_ARG_ENABLE([libblkid],
506[ --disable-libblkid do not build private blkid library],
507if test "$enableval" = "no"
508then
509 if test -z "$PKG_CONFIG"; then
510 AC_MSG_ERROR([pkg-config not installed; please install it.])
511 fi
512
513 AC_CHECK_LIB(blkid, blkid_get_cache,
514 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
515 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
Theodore Ts'o2d7583b2014-07-05 00:27:02 -0400516 [AC_MSG_ERROR([external blkid library not found])], -luuid)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400517 BLKID_CMT=#
Theodore Ts'o5afdf372014-09-18 21:11:33 -0400518 PROFILED_LIBBLKID=$LIBBLKID
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400519 AC_MSG_RESULT([Disabling private blkid library])
520else
521 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
522 DEPLIBBLKID=$LIBBLKID
523 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
524 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
525 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
526 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400527 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400528 AC_MSG_RESULT([Enabling private blkid library])
529fi
530,
531LIBBLKID='$(LIB)/libblkid'$LIB_EXT
532DEPLIBBLKID=$LIBBLKID
533STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
534DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
535PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
536DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400537AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400538AC_MSG_RESULT([Enabling private blkid library by default])
539)
540AC_SUBST(LIBBLKID)
541AC_SUBST(DEPLIBBLKID)
542AC_SUBST(STATIC_LIBBLKID)
543AC_SUBST(DEPSTATIC_LIBBLKID)
544AC_SUBST(PROFILED_LIBBLKID)
545AC_SUBST(DEPPROFILED_LIBBLKID)
546AC_SUBST(BLKID_CMT)
547dnl
Theodore Ts'o7becb202011-11-14 10:40:43 -0500548dnl handle --enable-quota
Aditya Kalif239fef2011-07-20 11:40:02 -0700549dnl
Eric Sandeenf5589f42013-10-14 08:54:15 -0400550QUOTA_MAN_COMMENT='.\"'
Niu Yawei43075b42013-10-14 09:49:27 -0400551QUOTA_CMT=
Eric Sandeenf5589f42013-10-14 08:54:15 -0400552AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700553PKG_PROG_PKG_CONFIG
Theodore Ts'o7becb202011-11-14 10:40:43 -0500554AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
555AC_ARG_ENABLE([quota],
Eric Sandeen7b8912e2012-11-27 12:21:56 -0600556[ --enable-quota enable quota support],
Aditya Kalif239fef2011-07-20 11:40:02 -0700557if test "$enableval" = "no"
558then
Niu Yawei43075b42013-10-14 09:49:27 -0400559 QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500560 AC_MSG_RESULT([Disabling quota support])
Aditya Kalif239fef2011-07-20 11:40:02 -0700561else
Niu Yawei43075b42013-10-14 09:49:27 -0400562 QUOTA_CMT=
Theodore Ts'o7becb202011-11-14 10:40:43 -0500563 AC_DEFINE(CONFIG_QUOTA, 1)
564 AC_MSG_RESULT([Enabling quota support])
Eric Sandeenf5589f42013-10-14 08:54:15 -0400565 QUOTA_MAN_COMMENT=""
566 AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700567fi
568,
Niu Yawei43075b42013-10-14 09:49:27 -0400569QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500570AC_MSG_RESULT([Disabling quota support by default])
571)
572dnl
573dnl Define stuff expected for quota library
574dnl
Aditya Kalif239fef2011-07-20 11:40:02 -0700575LIBQUOTA='$(LIB)/libquota'$LIB_EXT
576DEPLIBQUOTA=$LIBQUOTA
577STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
578DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
579PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
580DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
Aditya Kalif239fef2011-07-20 11:40:02 -0700581AC_SUBST(LIBQUOTA)
582AC_SUBST(DEPLIBQUOTA)
583AC_SUBST(STATIC_LIBQUOTA)
584AC_SUBST(DEPSTATIC_LIBQUOTA)
585AC_SUBST(PROFILED_LIBQUOTA)
586AC_SUBST(DEPPROFILED_LIBQUOTA)
587AC_SUBST(QUOTA_CMT)
588dnl
Theodore Ts'o3df60142013-06-16 16:14:40 -0400589dnl handle --disable-backtrace
590dnl
591AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
592AC_ARG_ENABLE([backtrace],
593[ --disable-backtrace disable use backtrace],
594if test "$enableval" = "no"
595then
596 AC_MSG_RESULT([Disabling use of backtrace])
597 AC_DEFINE(DISABLE_BACKTRACE, 1)
598else
599 AC_MSG_RESULT([Enabling use of backtrace])
600fi
601,
602AC_MSG_RESULT([Enabling use of backtrace by default])
603)
604dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000605dnl handle --enable-debugfs
606dnl
607AC_ARG_ENABLE([debugfs],
608[ --disable-debugfs disable support of debugfs program],
609if test "$enableval" = "no"
610then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400611 AC_MSG_RESULT([Disabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000612 DEBUGFS_CMT="#"
613else
614 DEBUGFS_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400615 AC_MSG_RESULT([Enabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000616fi
617,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400618AC_MSG_RESULT([Enabling debugfs support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000619DEBUGFS_CMT=
620)
621AC_SUBST(DEBUGFS_CMT)
622dnl
623dnl handle --enable-imager
624dnl
625AC_ARG_ENABLE([imager],
626[ --disable-imager disable support of e2image program],
627if test "$enableval" = "no"
628then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400629 AC_MSG_RESULT([Disabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000630 IMAGER_CMT="#"
631else
632 IMAGER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400633 AC_MSG_RESULT([Enabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000634fi
635,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400636AC_MSG_RESULT([Enabling e2image support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000637IMAGER_CMT=
638)
639AC_SUBST(IMAGER_CMT)
640dnl
641dnl handle --enable-resizer
642dnl
643AC_ARG_ENABLE([resizer],
644[ --disable-resizer disable support of e2resize program],
645if test "$enableval" = "no"
646then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400647 AC_MSG_RESULT([Disabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000648 RESIZER_CMT="#"
649else
650 RESIZER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400651 AC_MSG_RESULT([Enabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000652fi
653,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400654AC_MSG_RESULT([Enabling e2resize support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000655RESIZER_CMT=
656)
657AC_SUBST(RESIZER_CMT)
658dnl
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500659dnl handle --enable-defrag
660dnl
661AC_ARG_ENABLE([defrag],
662[ --disable-defrag disable support of e4defrag program],
663if test "$enableval" = "no"
664then
665 AC_MSG_RESULT([Disabling e4defrag support])
666 DEFRAG_CMT="#"
667else
668 DEFRAG_CMT=
669 AC_MSG_RESULT([Enabling e4defrag support])
670fi
671,
Theodore Ts'o6c59a662014-01-04 20:44:29 -0500672if test -z "$WITH_DIET_LIBC"
673then
674 AC_MSG_RESULT([Enabling e4defrag support by default])
675 DEFRAG_CMT=
676else
677 AC_MSG_RESULT([Disabling e4defrag support by default])
678 DEFRAG_CMT="#"
679fi
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500680)
681AC_SUBST(DEFRAG_CMT)
682dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000683dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
684dnl
685AC_ARG_ENABLE([fsck],
686[ --enable-fsck build fsck wrapper program],
687[if test "$enableval" = "no"
688then
689 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400690 AC_MSG_RESULT([Not building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000691else
692 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400693 AC_MSG_RESULT([Building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000694fi]
695,
696[case "$host_os" in
Theodore Ts'oe3632402004-05-04 19:39:54 -0400697 gnu*)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000698 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400699 AC_MSG_RESULT([Not building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000700 ;;
701 *)
702 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400703 AC_MSG_RESULT([Building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000704esac]
705)
706AC_SUBST(FSCK_PROG)
707AC_SUBST(FSCK_MAN)
708dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400709dnl See whether to install the `e2initrd-helper' program
710dnl
711AC_ARG_ENABLE([e2initrd-helper],
712[ --enable-e2initrd-helper build e2initrd-helper program],
713[if test "$enableval" = "no"
714then
715 E2INITRD_PROG='' E2INITRD_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400716 AC_MSG_RESULT([Not building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400717else
718 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400719 AC_MSG_RESULT([Building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400720fi]
721,
722E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400723AC_MSG_RESULT([Building e2initrd helper by default])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400724)
725AC_SUBST(E2INITRD_PROG)
726AC_SUBST(E2INITRD_MAN)
Karel Zak4db2f592006-03-08 14:17:28 -0500727dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400728dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000729dnl
Theodore Ts'o32493942007-12-31 10:45:01 -0500730AC_ARG_ENABLE([tls],
731[ --disable-tls disable use of thread local support],
732[if test "$enableval" = "no"
733then
734 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400735 AC_MSG_RESULT([Disabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500736else
737 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400738 AC_MSG_RESULT([Enabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500739fi]
740,
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400741if test -n "$WITH_DIET_LIBC"
742then
743 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400744 AC_MSG_RESULT([Diet libc does not support thread local support])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400745else
746 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400747 AC_MSG_RESULT([Try using thread local support by default])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400748fi
Theodore Ts'o32493942007-12-31 10:45:01 -0500749)
750if test "$try_tls" = "yes"
751then
752AX_TLS
753fi
754dnl
755dnl
756dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400757AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500758AC_ARG_ENABLE([uuidd],
759[ --disable-uuidd disable building the uuid daemon],
760[if test "$enableval" = "no"
761then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400762 AC_MSG_RESULT([Not building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500763 UUIDD_CMT="#"
764else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400765 AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500766 UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400767 AC_MSG_RESULT([Building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500768fi]
769,
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400770AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'oe3d10152014-09-19 00:26:26 -0400771if test -z "$UUID_CMT"
772then
773 UUIDD_CMT=""
774 AC_MSG_RESULT([Building uuidd by default])
775else
776 UUIDD_CMT="#"
777 AC_MSG_RESULT([Disabling uuidd by default])
778fi
Theodore Ts'o5610f992007-12-31 11:16:56 -0500779)
780AC_SUBST(UUIDD_CMT)
781dnl
Tony Breedsd6a4bcb2012-06-26 11:42:15 +1000782dnl handle --disable-mmp
783dnl
784AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
785AC_ARG_ENABLE([mmp],
786[ --disable-mmp disable support mmp, Multi Mount Protection],
787if test "$enableval" = "no"
788then
789 AC_MSG_RESULT([Disabling mmp support])
790else
791 AC_MSG_RESULT([Enabling mmp support])
792 AC_DEFINE(CONFIG_MMP, 1)
793fi
794,
795AC_MSG_RESULT([Enabling mmp support by default])
796AC_DEFINE(CONFIG_MMP, 1)
797)
798dnl
Tony Breeds1625bf42012-07-30 14:44:12 -0400799dnl handle --disable-bmap-stats
800dnl
801AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
802AC_ARG_ENABLE([bmap-stats],
803[ --disable-bmap-stats disable collection of bitmap stats.],
804if test "$enableval" = "no"
805then
806 AC_MSG_RESULT([Disabling bitmap statistics support])
807else
808 AC_MSG_RESULT([Enabling bitmap statistics support])
809 AC_DEFINE(ENABLE_BMAP_STATS, 1)
810fi
811,
812AC_MSG_RESULT([Enabling bitmap statistics support by default])
813AC_DEFINE(ENABLE_BMAP_STATS, 1)
814)
815dnl
816dnl handle --enable-bmap-stats-ops
817dnl
818AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
819AC_ARG_ENABLE([bmap-stats-ops],
820[ --enable-bmap-stats-ops enable collection of additional bitmap stats],
821if test "$enableval" = "no"
822then
823 AC_MSG_RESULT([Disabling additional bitmap statistics])
824else
825 dnl There has to be a better way!
826 AS_IF([test "x${enable_bmap_stats}" = "xno"],
827 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
828
829 AC_MSG_RESULT([Enabling additional bitmap statistics])
830 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
831fi
832,
833AC_MSG_RESULT([Disabling additional bitmap statistics by default])
834)
835dnl
Theodore Ts'o5610f992007-12-31 11:16:56 -0500836dnl
837dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000838MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
839AC_SUBST_FILE(MAKEFILE_LIBRARY)
840dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000841dnl Add internationalization support, using gettext.
842dnl
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500843GETTEXT_PACKAGE=e2fsprogs
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000844PACKAGE=e2fsprogs
845VERSION="$E2FSPROGS_VERSION"
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500846VERSION=0.14.1
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400847AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
848AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500849AC_SUBST(GETTEXT_PACKAGE)
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000850AC_SUBST(PACKAGE)
851AC_SUBST(VERSION)
852
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000853AM_GNU_GETTEXT
854dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000855dnl End of configuration options
856dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +0000857AC_SUBST(BINARY_TYPE)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000858AC_PROG_MAKE_SET
Theodore Ts'obcb915b2009-07-02 18:19:10 -0400859CHECK_GNU_MAKE
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000860AC_PATH_PROG(LN, ln, ln)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000861AC_PROG_LN_S
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000862AC_PATH_PROG(MV, mv, mv)
863AC_PATH_PROG(CP, cp, cp)
864AC_PATH_PROG(RM, rm, rm)
865AC_PATH_PROG(CHMOD, chmod, :)
Theodore Ts'o32237012005-01-17 19:13:39 -0500866AC_PROG_AWK
867AC_PROG_EGREP
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000868AC_PATH_PROG(SED, sed, sed)
Theodore Ts'o9d564f71999-07-03 20:25:58 +0000869AC_PATH_PROG(PERL, perl, perl)
Theodore Ts'o250f79f2001-05-19 22:02:22 +0000870AC_PATH_PROG(LDCONFIG, ldconfig, :)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000871AC_CHECK_TOOL(AR, ar, ar)
872AC_CHECK_TOOL(RANLIB, ranlib, :)
873AC_CHECK_TOOL(STRIP, strip, :)
Manish Katiyar7321d942008-04-14 17:20:03 +0530874AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
875if test "_$MAKEINFO" = "_"; then
876 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
877else
878 case "$MAKEINFO" in
879 */missing.*)
880 AC_MSG_WARN([
881*** Makeinfo is missing. Info documentation will not be built.])
882 ;;
883 *)
884 ;;
885 esac
886fi
887AC_SUBST(MAKEINFO)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000888AC_PROG_INSTALL
Theodore Ts'o6c133521999-07-03 20:37:03 +0000889# See if we need a separate native compiler.
890if test $cross_compiling = no; then
891 BUILD_CC="$CC"
892 AC_SUBST(BUILD_CC)
893else
894 AC_CHECK_PROGS(BUILD_CC, gcc cc)
895fi
Mike Frysinger677fc912012-03-06 20:13:54 -0500896AC_CHECK_HEADERS(m4_flatten([
897 dirent.h
898 errno.h
899 execinfo.h
900 getopt.h
901 malloc.h
902 mntent.h
903 paths.h
904 semaphore.h
905 setjmp.h
906 signal.h
907 stdarg.h
908 stdint.h
909 stdlib.h
910 termios.h
911 termio.h
912 unistd.h
913 utime.h
Ross Burtonc84da2e2014-07-10 17:44:38 +0100914 attr/xattr.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500915 linux/falloc.h
916 linux/fd.h
917 linux/major.h
Kazuya Miofbabd5c2013-12-16 00:48:12 -0500918 linux/loop.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500919 net/if_dl.h
920 netinet/in.h
Darrick J. Wong81cbf1e2015-05-13 17:22:40 -0700921 sys/acl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500922 sys/disklabel.h
Andreas Dilger51050542014-06-11 12:59:05 -0600923 sys/disk.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500924 sys/file.h
925 sys/ioctl.h
926 sys/mkdev.h
927 sys/mman.h
Andreas Dilger51050542014-06-11 12:59:05 -0600928 sys/mount.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500929 sys/prctl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500930 sys/resource.h
931 sys/select.h
932 sys/socket.h
933 sys/sockio.h
934 sys/stat.h
935 sys/syscall.h
Darrick J. Wong79614b22015-04-20 22:27:19 -0400936 sys/sysctl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500937 sys/sysmacros.h
938 sys/time.h
939 sys/types.h
940 sys/un.h
941 sys/wait.h
942]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500943AC_CHECK_HEADERS(net/if.h,,,
944[[
945#if HAVE_SYS_TYPES_H
946#include <sys/types.h>
947#endif
948#if HAVE_SYS_SOCKET
949#include <sys/socket.h>
950#endif
951]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000952AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400953dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
954dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400955AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
956 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500957 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500958AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400959dnl Check to see if ssize_t was declared
960AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
961 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500962 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000963dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000964dnl Check to see if llseek() is declared in unistd.h. On some libc's
965dnl it is, and on others it isn't..... Thank you glibc developers....
966dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400967AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
968 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500969 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000970dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000971dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
972dnl are so convoluted that I can't tell whether it will always be defined,
973dnl and if it isn't defined while lseek64 is defined in the library,
974dnl disaster will strike.
975dnl
976dnl Warning! Use of --enable-gcc-wall may throw off this test.
977dnl
978dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400979AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
980 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500981 [#define _LARGEFILE_SOURCE
982 #define _LARGEFILE64_SOURCE
983 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000984dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000985dnl Word sizes...
986dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000987AC_CHECK_SIZEOF(short)
988AC_CHECK_SIZEOF(int)
989AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000990AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500991AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000992SIZEOF_SHORT=$ac_cv_sizeof_short
993SIZEOF_INT=$ac_cv_sizeof_int
994SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000995SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500996SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000997AC_SUBST(SIZEOF_SHORT)
998AC_SUBST(SIZEOF_INT)
999AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001000AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -05001001AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +00001002AC_C_BIGENDIAN
Chen Qi91f04682014-05-05 21:08:42 -04001003if test $cross_compiling = no; then
1004 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1005else
1006 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1007fi
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001008ASM_TYPES_HEADER=./asm_types.h
1009AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001010dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -04001011dnl Save the configuration #defines needed for the public ext2fs.h
1012dnl header file
1013dnl
1014echo "/* These defines are needed for the public ext2fs.h header file */" \
1015 > public_config.h
1016if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1017 uniq tmp_config.$$ >> public_config.h
1018else
1019 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1020fi
1021if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1022 uniq tmp_config.$$ >> public_config.h
1023else
1024 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1025fi
1026rm -f tmp_config.$$
1027PUBLIC_CONFIG_HEADER=./public_config.h
1028AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1029dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001030dnl See if we have inttypes.h and if intptr_t is defined
1031dnl
1032AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -05001033AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001034dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001035dnl See if struct stat has a st_flags field, in which case we can get file
1036dnl flags somewhat portably. Also check for the analogous setter, chflags().
1037dnl
1038AC_MSG_CHECKING(whether struct stat has a st_flags field)
1039AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1040 AC_TRY_COMPILE([#include <sys/stat.h>],
1041 [struct stat stat; stat.st_flags = 0;],
1042 [e2fsprogs_cv_struct_st_flags=yes],
1043 [e2fsprogs_cv_struct_st_flags=no]))
1044AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1045if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001046 AC_MSG_CHECKING(whether st_flags field is useful)
1047 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1048 AC_TRY_COMPILE([#include <sys/stat.h>],
1049 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1050 [e2fsprogs_cv_struct_st_flags_immut=yes],
1051 [e2fsprogs_cv_struct_st_flags_immut=no]))
1052 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1053 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001054 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1055 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001056 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001057fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001058dnl
1059dnl Check for the presence of SA_LEN
1060dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001061AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001062 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1063 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001064 [#include <sys/types.h>
1065 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001066dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001067dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1068dnl the system-provided blkid library
1069dnl
1070if test -n "$BLKID_CMT"; then
1071 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1072fi
1073dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001074AC_CHECK_FUNCS(m4_flatten([
1075 __secure_getenv
1076 backtrace
1077 blkid_probe_get_topology
Theodore Ts'o2de26282014-05-05 01:22:22 -04001078 blkid_probe_enable_partitions
Mike Frysinger677fc912012-03-06 20:13:54 -05001079 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001080 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001081 fallocate
1082 fallocate64
1083 fchown
1084 fdatasync
1085 fstat64
1086 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001087 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001088 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001089 getdtablesize
1090 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001091 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001092 getrlimit
1093 getrusage
1094 jrand48
Ross Burtonc84da2e2014-07-10 17:44:38 +01001095 llistxattr
Mike Frysinger677fc912012-03-06 20:13:54 -05001096 llseek
1097 lseek64
1098 mallinfo
1099 mbstowcs
1100 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001101 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001102 mmap
1103 msync
1104 nanosleep
1105 open64
1106 pathconf
1107 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001108 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001109 posix_memalign
1110 prctl
Darrick J. Wongbaa35442014-08-02 19:18:03 -04001111 pread
1112 pwrite
Theodore Ts'of00948a2014-08-08 16:42:05 -04001113 pread64
1114 pwrite64
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001115 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001116 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001117 setresgid
1118 setresuid
Theodore Ts'oc42de752014-07-08 20:02:48 -04001119 snprintf
Mike Frysinger677fc912012-03-06 20:13:54 -05001120 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001121 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001122 strcasecmp
1123 strdup
1124 strnlen
1125 strptime
1126 strtoull
1127 sync_file_range
1128 sysconf
1129 usleep
1130 utime
Theodore Ts'o441eb332014-10-19 22:02:48 -04001131 utimes
Mike Frysinger677fc912012-03-06 20:13:54 -05001132 valloc
1133]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001134dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001135dnl Check to see if -lsocket is required (solaris) to make something
1136dnl that uses socket() to compile; this is needed for the UUID library
1137dnl
1138SOCKET_LIB=''
1139AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1140AC_SUBST(SOCKET_LIB)
1141dnl
Darrick J. Wongb291c112014-09-13 15:12:46 -07001142dnl See if libmagic exists
1143dnl
1144AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1145AC_CHECK_HEADERS([magic.h])])
Theodore Ts'od2e3c0d2014-09-21 01:25:58 -04001146if test "$ac_cv_lib_dl_dlopen" = yes ; then
1147 MAGIC_LIB=$DLOPEN_LIB
1148fi
Darrick J. Wongb291c112014-09-13 15:12:46 -07001149AC_SUBST(MAGIC_LIB)
1150dnl
Darrick J. Wong81cbf1e2015-05-13 17:22:40 -07001151dnl Check to see if the FUSE library is -lfuse or -losxfuse
1152dnl
1153FUSE_CMT=
1154FUSE_LIB=
1155dnl osxfuse.dylib supersedes fuselib.dylib
1156AC_ARG_ENABLE([fuse2fs],
1157[ --disable-fuse2fs do not build fuse2fs],
1158if test "$enableval" = "no"
1159then
1160 FUSE_CMT="#"
1161 AC_MSG_RESULT([Disabling fuse2fs])
1162else
1163 AC_CHECK_HEADERS([pthread.h fuse.h], [],
1164[AC_MSG_FAILURE([Cannot find fuse2fs headers.])],
1165[#define _FILE_OFFSET_BITS 64
1166#define FUSE_USE_VERSION 29])
1167
1168 AC_PREPROC_IFELSE(
1169[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29
1170#ifdef __linux__
1171#include <linux/fs.h>
1172#include <linux/falloc.h>
1173#include <linux/xattr.h>
1174#endif
1175]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])])
1176
1177 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1178 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse],
1179 [AC_MSG_FAILURE([Cannot find fuse library.])])])
1180 AC_MSG_RESULT([Enabling fuse2fs])
1181fi
1182,
1183AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"],
1184[#define _FILE_OFFSET_BITS 64
1185#define FUSE_USE_VERSION 29
1186#ifdef __linux__
1187# include <linux/fs.h>
1188# include <linux/falloc.h>
1189# include <linux/xattr.h>
1190#endif])
1191if test -z "$FUSE_CMT"
1192then
1193 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1194[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])])
1195fi
1196if test -z "$FUSE_CMT"
1197then
1198 AC_MSG_RESULT([Enabling fuse2fs by default.])
1199fi
1200)
1201AC_SUBST(FUSE_LIB)
1202AC_SUBST(FUSE_CMT)
1203dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001204dnl See if optreset exists
1205dnl
1206AC_MSG_CHECKING(for optreset)
1207AC_CACHE_VAL(ac_cv_have_optreset,
1208[AC_EGREP_HEADER(optreset, unistd.h,
1209 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1210AC_MSG_RESULT($ac_cv_have_optreset)
1211if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001212 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001213fi
1214dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001215dnl Test for sem_init, and which library it might require:
1216dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001217AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001218SEM_INIT_LIB=''
1219AC_CHECK_FUNC(sem_init, ,
1220 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001221 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001222 SEM_INIT_LIB=-lpthread,
1223 AC_CHECK_LIB(rt, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001224 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001225 SEM_INIT_LIB=-lrt,
1226 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001227 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001228 SEM_INIT_LIB=-lposix4))))dnl
1229AC_SUBST(SEM_INIT_LIB)
1230dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001231dnl Check for unified diff
1232dnl
1233AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001234if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001235 UNI_DIFF_OPTS=-u
1236else
1237 UNI_DIFF_OPTS=-c
1238fi
1239AC_MSG_RESULT($UNI_DIFF_OPTS)
1240AC_SUBST(UNI_DIFF_OPTS)
1241dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001242dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001243dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001244case "$host_os" in
1245linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001246 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001247 ;;
1248esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001249dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001250dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001251dnl
1252LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001253CYGWIN_CMT="#"
1254UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001255case "$host_os" in
1256linux*)
1257 LINUX_CMT=
1258 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001259cygwin)
1260 CYGWIN_CMT=
1261 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001262 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001263esac
1264AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001265AC_SUBST(CYGWIN_CMT)
1266AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001267dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001268dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001269dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001270case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001271linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001272 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1273 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001274 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001275 fi
1276 ;;
1277esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001278dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001279dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001280dnl
1281case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001282linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001283 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001284 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001285 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001286 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001287 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001288 mandir=/usr/share/man
1289 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001290 fi
1291;;
1292esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001293if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001294 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001295 root_prefix="$ac_default_prefix"
1296 else
1297 root_prefix="$prefix"
1298 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001299 root_bindir=$bindir
1300 root_sbindir=$sbindir
1301 root_libdir=$libdir
1302 root_sysconfdir=$sysconfdir
1303else
1304 root_bindir='${root_prefix}/bin'
1305 root_sbindir='${root_prefix}/sbin'
1306 root_libdir='${root_prefix}/lib'
1307 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001308fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001309if test "$bindir" != '${exec_prefix}/bin'; then
1310 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001311 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001312fi
1313if test "$sbindir" != '${exec_prefix}/sbin'; then
1314 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001315 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001316fi
1317if test "$libdir" != '${exec_prefix}/lib'; then
1318 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001319 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001320fi
1321if test "$sysconfdir" != '${prefix}/etc'; then
1322 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001323 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001324fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001325AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001326AC_SUBST(root_bindir)
1327AC_SUBST(root_sbindir)
1328AC_SUBST(root_libdir)
1329AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001330dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001331dnl Allow specification of the multiarch arch
1332dnl
1333AC_ARG_WITH([multiarch],
1334[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001335if test "$withval" = "lib64"; then
1336 libdir=/usr/lib64
1337 root_libdir=/lib64
1338else
1339 libdir=$libdir/$withval
1340 root_libdir=$root_libdir/$withval
1341fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001342)dnl
1343dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001344dnl See if -static works. This could fail if the linker does not
1345dnl support -static, or if required external libraries are not available
1346dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001347dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001348AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001349AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1350[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1351AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1352 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1353LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001354dnl
1355dnl Regardless of how the test turns out, Solaris doesn't handle -static
1356dnl This is caused by the socket library requiring the nsl library, which
1357dnl requires the -dl library, which only works for dynamically linked
1358dnl programs. It basically means you can't have statically linked programs
1359dnl which use the network under Solaris.
1360dnl
1361case "$host_os" in
1362solaris2.*)
1363 ac_cv_e2fsprogs_use_static=no
1364;;
1365esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001366AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001367LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001368if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001369 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001370fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001371AC_SUBST(LDFLAG_STATIC)
1372dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001373dnl Work around mysterious Darwin / GNU libintl problem
1374dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1375dnl Apple hacked gcc somehow?)
1376dnl
1377case "$host_os" in
1378darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001379 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001380 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1381 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001382 ;;
1383esac
1384dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001385dnl Make the ss and et directories work correctly.
1386dnl
1387SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1388ET_DIR=`cd ${srcdir}/lib/et; pwd`
1389AC_SUBST(SS_DIR)
1390AC_SUBST(ET_DIR)
1391dnl
1392dnl Only try to run the test suite if we're not cross compiling.
1393dnl
1394if test "$cross_compiling" = yes ; then
1395 DO_TEST_SUITE=
1396else
1397 DO_TEST_SUITE=check
1398fi
1399AC_SUBST(DO_TEST_SUITE)
1400dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001401dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001402dnl
1403INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1404if test -n "$CPPFLAGS" ; then
1405 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001406fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001407if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1408 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1409fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001410if test -n "$WITH_DIET_LIBC" ; then
1411 INCLUDES="$INCLUDES -D_REENTRANT"
1412fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001413AC_SUBST(INCLUDES)
Theodore Ts'o5b5bd2c2014-07-10 00:17:05 -04001414AM_MKINSTALLDIRS
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001415dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001416dnl Build CFLAGS
1417dnl
1418if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001419 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001420 BUILD_LDFLAGS="$LDFLAGS"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001421fi
1422AC_SUBST(BUILD_CFLAGS)
1423AC_SUBST(BUILD_LDFLAGS)
1424dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001425dnl Make our output files, being sure that we create the some miscellaneous
1426dnl directories
1427dnl
1428test -d lib || mkdir lib
1429test -d include || mkdir include
1430test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001431test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001432for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001433 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001434 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1435 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001436 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001437 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001438 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1439 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001440 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001441 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001442 resize/Makefile doc/Makefile intl/Makefile \
1443 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001444 if test -d `dirname ${srcdir}/$i` ; then
1445 outlist="$outlist $i"
1446 fi
1447done
1448AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001449if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi