blob: 9a18617971e1b9d5e207a1bdc85cb0c07e9fd576 [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
921 sys/disklabel.h
Andreas Dilger51050542014-06-11 12:59:05 -0600922 sys/disk.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500923 sys/file.h
924 sys/ioctl.h
925 sys/mkdev.h
926 sys/mman.h
Andreas Dilger51050542014-06-11 12:59:05 -0600927 sys/mount.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500928 sys/prctl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500929 sys/resource.h
930 sys/select.h
931 sys/socket.h
932 sys/sockio.h
933 sys/stat.h
934 sys/syscall.h
Darrick J. Wong79614b22015-04-20 22:27:19 -0400935 sys/sysctl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500936 sys/sysmacros.h
937 sys/time.h
938 sys/types.h
939 sys/un.h
940 sys/wait.h
941]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500942AC_CHECK_HEADERS(net/if.h,,,
943[[
944#if HAVE_SYS_TYPES_H
945#include <sys/types.h>
946#endif
947#if HAVE_SYS_SOCKET
948#include <sys/socket.h>
949#endif
950]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000951AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400952dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
953dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400954AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
955 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500956 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500957AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400958dnl Check to see if ssize_t was declared
959AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
960 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500961 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000962dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000963dnl Check to see if llseek() is declared in unistd.h. On some libc's
964dnl it is, and on others it isn't..... Thank you glibc developers....
965dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400966AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
967 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500968 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000969dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000970dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
971dnl are so convoluted that I can't tell whether it will always be defined,
972dnl and if it isn't defined while lseek64 is defined in the library,
973dnl disaster will strike.
974dnl
975dnl Warning! Use of --enable-gcc-wall may throw off this test.
976dnl
977dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400978AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
979 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500980 [#define _LARGEFILE_SOURCE
981 #define _LARGEFILE64_SOURCE
982 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000983dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000984dnl Word sizes...
985dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000986AC_CHECK_SIZEOF(short)
987AC_CHECK_SIZEOF(int)
988AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000989AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500990AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000991SIZEOF_SHORT=$ac_cv_sizeof_short
992SIZEOF_INT=$ac_cv_sizeof_int
993SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000994SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500995SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000996AC_SUBST(SIZEOF_SHORT)
997AC_SUBST(SIZEOF_INT)
998AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000999AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -05001000AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +00001001AC_C_BIGENDIAN
Chen Qi91f04682014-05-05 21:08:42 -04001002if test $cross_compiling = no; then
1003 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1004else
1005 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1006fi
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001007ASM_TYPES_HEADER=./asm_types.h
1008AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001009dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -04001010dnl Save the configuration #defines needed for the public ext2fs.h
1011dnl header file
1012dnl
1013echo "/* These defines are needed for the public ext2fs.h header file */" \
1014 > public_config.h
1015if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1016 uniq tmp_config.$$ >> public_config.h
1017else
1018 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1019fi
1020if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1021 uniq tmp_config.$$ >> public_config.h
1022else
1023 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1024fi
1025rm -f tmp_config.$$
1026PUBLIC_CONFIG_HEADER=./public_config.h
1027AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1028dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001029dnl See if we have inttypes.h and if intptr_t is defined
1030dnl
1031AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -05001032AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001033dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001034dnl See if struct stat has a st_flags field, in which case we can get file
1035dnl flags somewhat portably. Also check for the analogous setter, chflags().
1036dnl
1037AC_MSG_CHECKING(whether struct stat has a st_flags field)
1038AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1039 AC_TRY_COMPILE([#include <sys/stat.h>],
1040 [struct stat stat; stat.st_flags = 0;],
1041 [e2fsprogs_cv_struct_st_flags=yes],
1042 [e2fsprogs_cv_struct_st_flags=no]))
1043AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1044if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001045 AC_MSG_CHECKING(whether st_flags field is useful)
1046 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1047 AC_TRY_COMPILE([#include <sys/stat.h>],
1048 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1049 [e2fsprogs_cv_struct_st_flags_immut=yes],
1050 [e2fsprogs_cv_struct_st_flags_immut=no]))
1051 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1052 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001053 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1054 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001055 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001056fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001057dnl
1058dnl Check for the presence of SA_LEN
1059dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001060AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001061 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1062 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001063 [#include <sys/types.h>
1064 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001065dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001066dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1067dnl the system-provided blkid library
1068dnl
1069if test -n "$BLKID_CMT"; then
1070 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1071fi
1072dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001073AC_CHECK_FUNCS(m4_flatten([
1074 __secure_getenv
1075 backtrace
1076 blkid_probe_get_topology
Theodore Ts'o2de26282014-05-05 01:22:22 -04001077 blkid_probe_enable_partitions
Mike Frysinger677fc912012-03-06 20:13:54 -05001078 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001079 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001080 fallocate
1081 fallocate64
1082 fchown
1083 fdatasync
1084 fstat64
1085 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001086 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001087 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001088 getdtablesize
1089 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001090 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001091 getrlimit
1092 getrusage
1093 jrand48
Ross Burtonc84da2e2014-07-10 17:44:38 +01001094 llistxattr
Mike Frysinger677fc912012-03-06 20:13:54 -05001095 llseek
1096 lseek64
1097 mallinfo
1098 mbstowcs
1099 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001100 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001101 mmap
1102 msync
1103 nanosleep
1104 open64
1105 pathconf
1106 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001107 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001108 posix_memalign
1109 prctl
Darrick J. Wongbaa35442014-08-02 19:18:03 -04001110 pread
1111 pwrite
Theodore Ts'of00948a2014-08-08 16:42:05 -04001112 pread64
1113 pwrite64
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001114 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001115 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001116 setresgid
1117 setresuid
Theodore Ts'oc42de752014-07-08 20:02:48 -04001118 snprintf
Mike Frysinger677fc912012-03-06 20:13:54 -05001119 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001120 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001121 strcasecmp
1122 strdup
1123 strnlen
1124 strptime
1125 strtoull
1126 sync_file_range
1127 sysconf
1128 usleep
1129 utime
Theodore Ts'o441eb332014-10-19 22:02:48 -04001130 utimes
Mike Frysinger677fc912012-03-06 20:13:54 -05001131 valloc
1132]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001133dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001134dnl Check to see if -lsocket is required (solaris) to make something
1135dnl that uses socket() to compile; this is needed for the UUID library
1136dnl
1137SOCKET_LIB=''
1138AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1139AC_SUBST(SOCKET_LIB)
1140dnl
Darrick J. Wongb291c112014-09-13 15:12:46 -07001141dnl See if libmagic exists
1142dnl
1143AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1144AC_CHECK_HEADERS([magic.h])])
Theodore Ts'od2e3c0d2014-09-21 01:25:58 -04001145if test "$ac_cv_lib_dl_dlopen" = yes ; then
1146 MAGIC_LIB=$DLOPEN_LIB
1147fi
Darrick J. Wongb291c112014-09-13 15:12:46 -07001148AC_SUBST(MAGIC_LIB)
1149dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001150dnl See if optreset exists
1151dnl
1152AC_MSG_CHECKING(for optreset)
1153AC_CACHE_VAL(ac_cv_have_optreset,
1154[AC_EGREP_HEADER(optreset, unistd.h,
1155 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1156AC_MSG_RESULT($ac_cv_have_optreset)
1157if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001158 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001159fi
1160dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001161dnl Test for sem_init, and which library it might require:
1162dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001163AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001164SEM_INIT_LIB=''
1165AC_CHECK_FUNC(sem_init, ,
1166 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001167 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001168 SEM_INIT_LIB=-lpthread,
1169 AC_CHECK_LIB(rt, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001170 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001171 SEM_INIT_LIB=-lrt,
1172 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001173 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001174 SEM_INIT_LIB=-lposix4))))dnl
1175AC_SUBST(SEM_INIT_LIB)
1176dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001177dnl Check for unified diff
1178dnl
1179AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001180if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001181 UNI_DIFF_OPTS=-u
1182else
1183 UNI_DIFF_OPTS=-c
1184fi
1185AC_MSG_RESULT($UNI_DIFF_OPTS)
1186AC_SUBST(UNI_DIFF_OPTS)
1187dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001188dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001189dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001190case "$host_os" in
1191linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001192 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001193 ;;
1194esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001195dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001196dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001197dnl
1198LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001199CYGWIN_CMT="#"
1200UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001201case "$host_os" in
1202linux*)
1203 LINUX_CMT=
1204 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001205cygwin)
1206 CYGWIN_CMT=
1207 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001208 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001209esac
1210AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001211AC_SUBST(CYGWIN_CMT)
1212AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001213dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001214dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001215dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001216case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001217linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001218 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1219 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001220 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001221 fi
1222 ;;
1223esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001224dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001225dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001226dnl
1227case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001228linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001229 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001230 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001231 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001232 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001233 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001234 mandir=/usr/share/man
1235 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001236 fi
1237;;
1238esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001239if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001240 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001241 root_prefix="$ac_default_prefix"
1242 else
1243 root_prefix="$prefix"
1244 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001245 root_bindir=$bindir
1246 root_sbindir=$sbindir
1247 root_libdir=$libdir
1248 root_sysconfdir=$sysconfdir
1249else
1250 root_bindir='${root_prefix}/bin'
1251 root_sbindir='${root_prefix}/sbin'
1252 root_libdir='${root_prefix}/lib'
1253 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001254fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001255if test "$bindir" != '${exec_prefix}/bin'; then
1256 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001257 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001258fi
1259if test "$sbindir" != '${exec_prefix}/sbin'; then
1260 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001261 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001262fi
1263if test "$libdir" != '${exec_prefix}/lib'; then
1264 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001265 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001266fi
1267if test "$sysconfdir" != '${prefix}/etc'; then
1268 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001269 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001270fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001271AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001272AC_SUBST(root_bindir)
1273AC_SUBST(root_sbindir)
1274AC_SUBST(root_libdir)
1275AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001276dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001277dnl Allow specification of the multiarch arch
1278dnl
1279AC_ARG_WITH([multiarch],
1280[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001281if test "$withval" = "lib64"; then
1282 libdir=/usr/lib64
1283 root_libdir=/lib64
1284else
1285 libdir=$libdir/$withval
1286 root_libdir=$root_libdir/$withval
1287fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001288)dnl
1289dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001290dnl See if -static works. This could fail if the linker does not
1291dnl support -static, or if required external libraries are not available
1292dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001293dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001294AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001295AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1296[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1297AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1298 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1299LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001300dnl
1301dnl Regardless of how the test turns out, Solaris doesn't handle -static
1302dnl This is caused by the socket library requiring the nsl library, which
1303dnl requires the -dl library, which only works for dynamically linked
1304dnl programs. It basically means you can't have statically linked programs
1305dnl which use the network under Solaris.
1306dnl
1307case "$host_os" in
1308solaris2.*)
1309 ac_cv_e2fsprogs_use_static=no
1310;;
1311esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001312AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001313LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001314if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001315 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001316fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001317AC_SUBST(LDFLAG_STATIC)
1318dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001319dnl Work around mysterious Darwin / GNU libintl problem
1320dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1321dnl Apple hacked gcc somehow?)
1322dnl
1323case "$host_os" in
1324darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001325 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001326 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1327 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001328 ;;
1329esac
1330dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001331dnl Make the ss and et directories work correctly.
1332dnl
1333SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1334ET_DIR=`cd ${srcdir}/lib/et; pwd`
1335AC_SUBST(SS_DIR)
1336AC_SUBST(ET_DIR)
1337dnl
1338dnl Only try to run the test suite if we're not cross compiling.
1339dnl
1340if test "$cross_compiling" = yes ; then
1341 DO_TEST_SUITE=
1342else
1343 DO_TEST_SUITE=check
1344fi
1345AC_SUBST(DO_TEST_SUITE)
1346dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001347dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001348dnl
1349INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1350if test -n "$CPPFLAGS" ; then
1351 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001352fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001353if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1354 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1355fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001356if test -n "$WITH_DIET_LIBC" ; then
1357 INCLUDES="$INCLUDES -D_REENTRANT"
1358fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001359AC_SUBST(INCLUDES)
Theodore Ts'o5b5bd2c2014-07-10 00:17:05 -04001360AM_MKINSTALLDIRS
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001361dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001362dnl Build CFLAGS
1363dnl
1364if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001365 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001366 BUILD_LDFLAGS="$LDFLAGS"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001367fi
1368AC_SUBST(BUILD_CFLAGS)
1369AC_SUBST(BUILD_LDFLAGS)
1370dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001371dnl Make our output files, being sure that we create the some miscellaneous
1372dnl directories
1373dnl
1374test -d lib || mkdir lib
1375test -d include || mkdir include
1376test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001377test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001378for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001379 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001380 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1381 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001382 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001383 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001384 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1385 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001386 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001387 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001388 resize/Makefile doc/Makefile intl/Makefile \
1389 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001390 if test -d `dirname ${srcdir}/$i` ; then
1391 outlist="$outlist $i"
1392 fi
1393done
1394AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001395if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi