blob: e0e6d4890a724b2f05ba69b78a7620da609fefdd [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
127dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000128dnl Set default values for library extentions. Will be dealt with after
129dnl parsing configuration opions, which may modify these
130dnl
131LIB_EXT=.a
132STATIC_LIB_EXT=.a
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400133PROFILED_LIB_EXT=.a
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000134dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000135dnl Allow separate `root_prefix' to be specified
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000136dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000137AC_ARG_WITH([root-prefix],
138[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
139root_prefix=$withval,
140root_prefix=NONE)dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000141dnl
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500142dnl handle --enable-maintainer-mode
143dnl
144AC_ARG_ENABLE([maintainer-mode],
145[ --enable-maintainer-mode enable makefile rules useful for maintainers],
146if test "$enableval" = "no"
147then
148 MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400149 AC_MSG_RESULT([Disabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500150else
151 MAINTAINER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400152 AC_MSG_RESULT([Enabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500153fi
154,
155MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400156AC_MSG_RESULT([Disabling maintainer mode by default])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500157)
158AC_SUBST(MAINTAINER_CMT)
159dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400160dnl handle --enable-symlink-install
161dnl
162AC_ARG_ENABLE([symlink-install],
163[ --enable-symlink-install use symlinks when installing instead of hard links],
164if test "$enableval" = "no"
165then
166 LINK_INSTALL_FLAGS=-f
167 AC_MSG_RESULT([Disabling symlinks for install])
168else
169 LINK_INSTALL_FLAGS=-sf
170 AC_MSG_RESULT([Enabling symlinks for install])
171fi
172,
173LINK_INSTALL_FLAGS=-f
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400174AC_MSG_RESULT([Disabling symlinks for install by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400175)
176AC_SUBST(LINK_INSTALL_FLAGS)
177dnl
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400178dnl handle --enable-relative-symlinks
179dnl
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400180relative_symlink_defined=
181AC_ARG_ENABLE([relative-symlinks],
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400182[ --enable-relative-symlinks use relative symlinks when installing],
183if test "$enableval" = "no"
184then
185 SYMLINK_RELATIVE=
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400186 relative_symlink_defined=yes
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400187 AC_MSG_RESULT([Disabling relative symlinks for install])
188else
189 SYMLINK_RELATIVE=--relative
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400190 relative_symlink_defined=yes
191 AC_MSG_RESULT([Enabling relative symlinks for install])
192fi)
193AC_ARG_ENABLE([symlink-relative-symlinks],,
194if test "$enableval" = "no"
195then
196 SYMLINK_RELATIVE=yes
197 AC_MSG_RESULT([Disabling relative symlinks for install])
198else
199 SYMLINK_RELATIVE=--relative
200 AC_MSG_RESULT([Enabling relative symlinks for install])
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400201fi
202,
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400203if test -z "$relative_symlink_defined"
204then
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400205 SYMLINK_RELATIVE=
206AC_MSG_RESULT([Disabling relative symlinks for install by default])
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400207fi
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400208)
209AC_SUBST(SYMLINK_RELATIVE)
210dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400211dnl handle --enable-symlink-build
212dnl
213AC_ARG_ENABLE([symlink-build],
214[ --enable-symlink-build use symlinks while building instead of hard links],
215if test "$enableval" = "no"
216then
217 LINK_BUILD_FLAGS=
218 AC_MSG_RESULT([Disabling symlinks for build])
219else
220 LINK_BUILD_FLAGS=-s
221 AC_MSG_RESULT([Enabling symlinks for build])
222fi
223,
224LINK_BUILD_FLAGS=
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400225AC_MSG_RESULT([Disabling symlinks for build by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400226)
227AC_SUBST(LINK_BUILD_FLAGS)
228dnl
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400229dnl handle --enable-verbose-makecmds
230dnl
231AC_ARG_ENABLE([verbose-makecmds],
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400232[ --enable-verbose-makecmds enable verbose make command output],
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400233if test "$enableval" = "no"
234then
235 AC_MSG_RESULT([Disabling verbose make commands])
236 E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400237 ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400238 Q=@
239else
240 AC_MSG_RESULT([Enabling verbose make commands])
241 E=@\\#
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400242 ES=\\#
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400243 Q=
244fi
245,
246AC_MSG_RESULT([Disabling verbose make commands])
247E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400248ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400249Q=@
250)
251AC_SUBST(E)
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400252AC_SUBST(ES)
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400253AC_SUBST(Q)
254dnl
Theodore Ts'o19178752000-02-11 15:55:07 +0000255dnl handle --enable-compression
256dnl
257AC_ARG_ENABLE([compression],
258[ --enable-compression enable EXPERIMENTAL compression support],
259if test "$enableval" = "no"
260then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400261 AC_MSG_RESULT([Disabling compression support])
Theodore Ts'o19178752000-02-11 15:55:07 +0000262else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400263 AC_DEFINE(ENABLE_COMPRESSION, 1,
264 [Define to 1 if ext2 compression enabled])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400265 AC_MSG_RESULT([Enabling compression support])
266 AC_MSG_WARN([Compression support is experimental])
Theodore Ts'o19178752000-02-11 15:55:07 +0000267fi
268,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400269AC_MSG_RESULT([Disabling compression support by default])
Theodore Ts'o19178752000-02-11 15:55:07 +0000270)
271dnl
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400272dnl handle --enable-htree
273dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400274AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400275AC_ARG_ENABLE([htree],
276[ --enable-htree enable EXPERIMENTAL htree directory support],
277if test "$enableval" = "no"
278then
279 HTREE_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400280 AC_MSG_RESULT([Disabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400281else
282 HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400283 AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400284 AC_MSG_RESULT([Enabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400285fi
286,
Theodore Ts'o559ca6c2002-08-18 03:48:55 -0400287HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400288AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400289AC_MSG_RESULT([Enabling htree directory support by default])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400290)
291AC_SUBST(HTREE_CMT)
292dnl
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500293dnl This needs to be before all of the --enable-*-shlibs options
294dnl
295E2_PKG_CONFIG_STATIC=--static
Theodore Ts'o55da9872008-09-02 23:12:38 -0400296LDFLAG_DYNAMIC=
297PRIVATE_LIBS_CMT=
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500298dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000299dnl handle --enable-elf-shlibs
300dnl
301AC_ARG_ENABLE([elf-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000302[ --enable-elf-shlibs select ELF shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000303if test "$enableval" = "no"
304then
305 ELF_CMT=#
306 MAKEFILE_ELF=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400307 AC_MSG_RESULT([Disabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000308else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500309 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000310 ELF_CMT=
311 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
Theodore Ts'of5955dd2000-10-25 02:38:39 +0000312 [case "$host_os" in
313 solaris2.*)
314 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
315 ;;
316 esac]
Theodore Ts'o74becf31997-04-26 14:37:06 +0000317 BINARY_TYPE=elfbin
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000318 LIB_EXT=.so
Theodore Ts'o55da9872008-09-02 23:12:38 -0400319 PRIVATE_LIBS_CMT=#
320 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400321 AC_MSG_RESULT([Enabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000322fi
323,
324MAKEFILE_ELF=/dev/null
325ELF_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400326AC_MSG_RESULT([Disabling ELF shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000327)
328AC_SUBST(ELF_CMT)
329AC_SUBST_FILE(MAKEFILE_ELF)
330dnl
331dnl handle --enable-bsd-shlibs
332dnl
333AC_ARG_ENABLE([bsd-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000334[ --enable-bsd-shlibs select BSD shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000335if test "$enableval" = "no"
336then
337 BSDLIB_CMT=#
338 MAKEFILE_BSDLIB=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400339 AC_MSG_RESULT([Disabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000340else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500341 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000342 BSDLIB_CMT=
343 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000344 LIB_EXT=.so
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500345 [case "$host_os" in
Theodore Ts'oaa75ecc2003-03-17 10:01:22 -0500346 darwin*)
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500347 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
348 LIB_EXT=.dylib
349 ;;
350 esac]
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400351 AC_MSG_RESULT([Enabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000352fi
353,
354MAKEFILE_BSDLIB=/dev/null
355BSDLIB_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400356AC_MSG_RESULT([Disabling BSD shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000357)
358AC_SUBST(BSDLIB_CMT)
359AC_SUBST_FILE(MAKEFILE_BSDLIB)
360dnl
361dnl handle --enable-profile
362dnl
363AC_ARG_ENABLE([profile],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000364[ --enable-profile build profiling libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000365if test "$enableval" = "no"
366then
367 PROFILE_CMT=#
368 MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400369 AC_MSG_RESULT([Disabling profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000370else
371 PROFILE_CMT=
372 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000373 PROFILED_LIB_EXT=_p.a
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400374 AC_MSG_RESULT([Building profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000375fi
376,
377PROFILE_CMT=#
378MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400379AC_MSG_RESULT([Disabling profiling libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000380)
381AC_SUBST(PROFILE_CMT)
382AC_SUBST_FILE(MAKEFILE_PROFILE)
383dnl
Theodore Ts'ofedfb272014-02-23 00:17:09 -0500384dnl handle --enable-gcov
385dnl
386AC_ARG_ENABLE([gcov],
387[ --enable-gcov build for coverage testing using gcov],
388if test "$enableval" = "yes"
389then
390 CFLAGS="-g -fprofile-arcs -ftest-coverage"
391 LDFLAGS="-fprofile-arcs -ftest-coverage"
392 AC_MSG_RESULT([Enabling gcov support])
393fi
394)
395dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000396dnl handle --enable-checker
397dnl
398AC_ARG_ENABLE([checker],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000399[ --enable-checker build checker libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000400if test "$enableval" = "no"
401then
402 CHECKER_CMT=#
403 MAKEFILE_CHECKER=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400404 AC_MSG_RESULT([Disabling checker libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000405else
406 CHECKER_CMT=
407 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400408 AC_MSG_RESULT([Building checker libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000409fi
410,
411CHECKER_CMT=#
412MAKEFILE_CHECKER=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400413AC_MSG_RESULT([Disabling checker libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000414)
415AC_SUBST(CHECKER_CMT)
416AC_SUBST_FILE(MAKEFILE_CHECKER)
417dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000418dnl Substitute library extensions
419dnl
420AC_SUBST(LIB_EXT)
421AC_SUBST(STATIC_LIB_EXT)
422AC_SUBST(PROFILED_LIB_EXT)
Theodore Ts'o55da9872008-09-02 23:12:38 -0400423AC_SUBST(LDFLAG_DYNAMIC)
424AC_SUBST(PRIVATE_LIBS_CMT)
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000425dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500426dnl handle --enable-jbd-debug
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000427dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500428AC_ARG_ENABLE([jbd-debug],
429[ --enable-jbd-debug enable journal debugging],
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000430if test "$enableval" = "no"
431then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400432 AC_MSG_RESULT([Disabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000433else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400434 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
435 [Define to 1 if debugging ext3/4 journal code])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400436 AC_MSG_RESULT([Enabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000437fi
438,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400439AC_MSG_RESULT([Disabling journal debugging by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000440)
441dnl
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500442dnl handle --enable-blkid-debug
443dnl
444AC_ARG_ENABLE([blkid-debug],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -0400445[ --enable-blkid-debug enable blkid debugging],
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500446if test "$enableval" = "no"
447then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400448 AC_MSG_RESULT([Disabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500449else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400450 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
451 [Define to 1 if debugging the blkid library])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400452 AC_MSG_RESULT([Enabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500453fi
454,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400455AC_MSG_RESULT([Disabling blkid debugging by default])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500456)
457dnl
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400458dnl handle --enable-testio-debug
459dnl
460AC_ARG_ENABLE([testio-debug],
Theodore Ts'oaf773652008-09-01 11:27:27 -0400461[ --disable-testio-debug disable the use of the test I/O manager for debugging],
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400462AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
463 [Define to 1 if the testio I/O manager should be enabled])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400464if test "$enableval" = "no"
465then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400466 AC_MSG_RESULT([Disabling testio debugging])
Theodore Ts'oaf773652008-09-01 11:27:27 -0400467 TEST_IO_CMT="#"
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400468else
Theodore Ts'oaf773652008-09-01 11:27:27 -0400469 TEST_IO_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400470 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400471 AC_MSG_RESULT([Enabling testio debugging])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400472fi
473,
Theodore Ts'oaf773652008-09-01 11:27:27 -0400474AC_MSG_RESULT([Enabling testio debugging by default])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400475AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400476TEST_IO_CMT=
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400477)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400478AC_SUBST(TEST_IO_CMT)
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400479dnl
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100480dnl handle --disable-libuuid
481dnl
482PKG_PROG_PKG_CONFIG
483LIBUUID=
484DEPLIBUUID=
485STATIC_LIBUUID=
486DEPSTATIC_LIBUUID=
487PROFILED_LIBUUID=
488DEPPROFILED_LIBUUID=
489UUID_CMT=
490AC_ARG_ENABLE([libuuid],
491[ --disable-libuuid do not build private uuid library],
492if test "$enableval" = "no"
493then
494 if test -z "$PKG_CONFIG"; then
495 AC_MSG_ERROR([pkg-config not installed; please install it.])
496 fi
497
498 AC_CHECK_LIB(uuid, uuid_generate,
499 [LIBUUID=`$PKG_CONFIG --libs uuid`;
500 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
501 [AC_MSG_ERROR([external uuid library not found])],
502 [$LIBUUID])
503 UUID_CMT=#
504 AC_MSG_RESULT([Disabling private uuid library])
505else
506 LIBUUID='$(LIB)/libuuid'$LIB_EXT
507 DEPLIBUUID=$LIBUUID
508 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
509 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
510 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
511 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
512 AC_MSG_RESULT([Enabling private uuid library])
513fi
514,
515LIBUUID='$(LIB)/libuuid'$LIB_EXT
516DEPLIBUUID=$LIBUUID
517STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
518DEPSTATIC_LIBUUID=$STATIC_LIBUUID
519PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
520DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
521AC_MSG_RESULT([Enabling private uuid library by default])
522)
523AC_SUBST(LIBUUID)
524AC_SUBST(DEPLIBUUID)
525AC_SUBST(STATIC_LIBUUID)
526AC_SUBST(DEPSTATIC_LIBUUID)
527AC_SUBST(PROFILED_LIBUUID)
528AC_SUBST(DEPPROFILED_LIBUUID)
529AC_SUBST(UUID_CMT)
530dnl
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400531dnl handle --disable-libblkid
532dnl
533PKG_PROG_PKG_CONFIG
534LIBBLKID=
535DEPLIBBLKID=
536STATIC_LIBBLKID=
537DEPSTATIC_LIBBLKID=
538PROFILED_LIBBLKID=
539DEPPROFILED_LIBBLKID=
540BLKID_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400541AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400542AC_ARG_ENABLE([libblkid],
543[ --disable-libblkid do not build private blkid library],
544if test "$enableval" = "no"
545then
546 if test -z "$PKG_CONFIG"; then
547 AC_MSG_ERROR([pkg-config not installed; please install it.])
548 fi
549
550 AC_CHECK_LIB(blkid, blkid_get_cache,
551 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
552 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
553 [AC_MSG_ERROR([external blkid library not found])],
554 [$LIBBLKID])
555 BLKID_CMT=#
556 AC_MSG_RESULT([Disabling private blkid library])
557else
558 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
559 DEPLIBBLKID=$LIBBLKID
560 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
561 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
562 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
563 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400564 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400565 AC_MSG_RESULT([Enabling private blkid library])
566fi
567,
568LIBBLKID='$(LIB)/libblkid'$LIB_EXT
569DEPLIBBLKID=$LIBBLKID
570STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
571DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
572PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
573DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400574AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400575AC_MSG_RESULT([Enabling private blkid library by default])
576)
577AC_SUBST(LIBBLKID)
578AC_SUBST(DEPLIBBLKID)
579AC_SUBST(STATIC_LIBBLKID)
580AC_SUBST(DEPSTATIC_LIBBLKID)
581AC_SUBST(PROFILED_LIBBLKID)
582AC_SUBST(DEPPROFILED_LIBBLKID)
583AC_SUBST(BLKID_CMT)
584dnl
Theodore Ts'o7becb202011-11-14 10:40:43 -0500585dnl handle --enable-quota
Aditya Kalif239fef2011-07-20 11:40:02 -0700586dnl
Eric Sandeenf5589f42013-10-14 08:54:15 -0400587QUOTA_MAN_COMMENT='.\"'
Niu Yawei43075b42013-10-14 09:49:27 -0400588QUOTA_CMT=
Eric Sandeenf5589f42013-10-14 08:54:15 -0400589AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700590PKG_PROG_PKG_CONFIG
Theodore Ts'o7becb202011-11-14 10:40:43 -0500591AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
592AC_ARG_ENABLE([quota],
Eric Sandeen7b8912e2012-11-27 12:21:56 -0600593[ --enable-quota enable quota support],
Aditya Kalif239fef2011-07-20 11:40:02 -0700594if test "$enableval" = "no"
595then
Niu Yawei43075b42013-10-14 09:49:27 -0400596 QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500597 AC_MSG_RESULT([Disabling quota support])
Aditya Kalif239fef2011-07-20 11:40:02 -0700598else
Niu Yawei43075b42013-10-14 09:49:27 -0400599 QUOTA_CMT=
Theodore Ts'o7becb202011-11-14 10:40:43 -0500600 AC_DEFINE(CONFIG_QUOTA, 1)
601 AC_MSG_RESULT([Enabling quota support])
Eric Sandeenf5589f42013-10-14 08:54:15 -0400602 QUOTA_MAN_COMMENT=""
603 AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700604fi
605,
Niu Yawei43075b42013-10-14 09:49:27 -0400606QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500607AC_MSG_RESULT([Disabling quota support by default])
608)
609dnl
610dnl Define stuff expected for quota library
611dnl
Aditya Kalif239fef2011-07-20 11:40:02 -0700612LIBQUOTA='$(LIB)/libquota'$LIB_EXT
613DEPLIBQUOTA=$LIBQUOTA
614STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
615DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
616PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
617DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
Aditya Kalif239fef2011-07-20 11:40:02 -0700618AC_SUBST(LIBQUOTA)
619AC_SUBST(DEPLIBQUOTA)
620AC_SUBST(STATIC_LIBQUOTA)
621AC_SUBST(DEPSTATIC_LIBQUOTA)
622AC_SUBST(PROFILED_LIBQUOTA)
623AC_SUBST(DEPPROFILED_LIBQUOTA)
624AC_SUBST(QUOTA_CMT)
625dnl
Theodore Ts'o3df60142013-06-16 16:14:40 -0400626dnl handle --disable-backtrace
627dnl
628AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
629AC_ARG_ENABLE([backtrace],
630[ --disable-backtrace disable use backtrace],
631if test "$enableval" = "no"
632then
633 AC_MSG_RESULT([Disabling use of backtrace])
634 AC_DEFINE(DISABLE_BACKTRACE, 1)
635else
636 AC_MSG_RESULT([Enabling use of backtrace])
637fi
638,
639AC_MSG_RESULT([Enabling use of backtrace by default])
640)
641dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000642dnl handle --enable-debugfs
643dnl
644AC_ARG_ENABLE([debugfs],
645[ --disable-debugfs disable support of debugfs program],
646if test "$enableval" = "no"
647then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400648 AC_MSG_RESULT([Disabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000649 DEBUGFS_CMT="#"
650else
651 DEBUGFS_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400652 AC_MSG_RESULT([Enabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000653fi
654,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400655AC_MSG_RESULT([Enabling debugfs support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000656DEBUGFS_CMT=
657)
658AC_SUBST(DEBUGFS_CMT)
659dnl
660dnl handle --enable-imager
661dnl
662AC_ARG_ENABLE([imager],
663[ --disable-imager disable support of e2image program],
664if test "$enableval" = "no"
665then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400666 AC_MSG_RESULT([Disabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000667 IMAGER_CMT="#"
668else
669 IMAGER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400670 AC_MSG_RESULT([Enabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000671fi
672,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400673AC_MSG_RESULT([Enabling e2image support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000674IMAGER_CMT=
675)
676AC_SUBST(IMAGER_CMT)
677dnl
678dnl handle --enable-resizer
679dnl
680AC_ARG_ENABLE([resizer],
681[ --disable-resizer disable support of e2resize program],
682if test "$enableval" = "no"
683then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400684 AC_MSG_RESULT([Disabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000685 RESIZER_CMT="#"
686else
687 RESIZER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400688 AC_MSG_RESULT([Enabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000689fi
690,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400691AC_MSG_RESULT([Enabling e2resize support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000692RESIZER_CMT=
693)
694AC_SUBST(RESIZER_CMT)
695dnl
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500696dnl handle --enable-defrag
697dnl
698AC_ARG_ENABLE([defrag],
699[ --disable-defrag disable support of e4defrag program],
700if test "$enableval" = "no"
701then
702 AC_MSG_RESULT([Disabling e4defrag support])
703 DEFRAG_CMT="#"
704else
705 DEFRAG_CMT=
706 AC_MSG_RESULT([Enabling e4defrag support])
707fi
708,
Theodore Ts'o6c59a662014-01-04 20:44:29 -0500709if test -z "$WITH_DIET_LIBC"
710then
711 AC_MSG_RESULT([Enabling e4defrag support by default])
712 DEFRAG_CMT=
713else
714 AC_MSG_RESULT([Disabling e4defrag support by default])
715 DEFRAG_CMT="#"
716fi
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500717)
718AC_SUBST(DEFRAG_CMT)
719dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000720dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
721dnl
722AC_ARG_ENABLE([fsck],
723[ --enable-fsck build fsck wrapper program],
724[if test "$enableval" = "no"
725then
726 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400727 AC_MSG_RESULT([Not building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000728else
729 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400730 AC_MSG_RESULT([Building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000731fi]
732,
733[case "$host_os" in
Theodore Ts'oe3632402004-05-04 19:39:54 -0400734 gnu*)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000735 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400736 AC_MSG_RESULT([Not building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000737 ;;
738 *)
739 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400740 AC_MSG_RESULT([Building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000741esac]
742)
743AC_SUBST(FSCK_PROG)
744AC_SUBST(FSCK_MAN)
745dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400746dnl See whether to install the `e2initrd-helper' program
747dnl
748AC_ARG_ENABLE([e2initrd-helper],
749[ --enable-e2initrd-helper build e2initrd-helper program],
750[if test "$enableval" = "no"
751then
752 E2INITRD_PROG='' E2INITRD_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400753 AC_MSG_RESULT([Not building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400754else
755 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400756 AC_MSG_RESULT([Building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400757fi]
758,
759E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400760AC_MSG_RESULT([Building e2initrd helper by default])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400761)
762AC_SUBST(E2INITRD_PROG)
763AC_SUBST(E2INITRD_MAN)
Karel Zak4db2f592006-03-08 14:17:28 -0500764dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400765dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000766dnl
Theodore Ts'o32493942007-12-31 10:45:01 -0500767AC_ARG_ENABLE([tls],
768[ --disable-tls disable use of thread local support],
769[if test "$enableval" = "no"
770then
771 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400772 AC_MSG_RESULT([Disabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500773else
774 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400775 AC_MSG_RESULT([Enabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500776fi]
777,
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400778if test -n "$WITH_DIET_LIBC"
779then
780 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400781 AC_MSG_RESULT([Diet libc does not support thread local support])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400782else
783 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400784 AC_MSG_RESULT([Try using thread local support by default])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400785fi
Theodore Ts'o32493942007-12-31 10:45:01 -0500786)
787if test "$try_tls" = "yes"
788then
789AX_TLS
790fi
791dnl
792dnl
793dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400794AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500795AC_ARG_ENABLE([uuidd],
796[ --disable-uuidd disable building the uuid daemon],
797[if test "$enableval" = "no"
798then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400799 AC_MSG_RESULT([Not building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500800 UUIDD_CMT="#"
801else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400802 AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500803 UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400804 AC_MSG_RESULT([Building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500805fi]
806,
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400807AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500808UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400809AC_MSG_RESULT([Building uuidd by default])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500810)
811AC_SUBST(UUIDD_CMT)
812dnl
813dnl
814dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000815MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
816AC_SUBST_FILE(MAKEFILE_LIBRARY)
817dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000818dnl Add internationalization support, using gettext.
819dnl
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500820GETTEXT_PACKAGE=e2fsprogs
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000821PACKAGE=e2fsprogs
822VERSION="$E2FSPROGS_VERSION"
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500823VERSION=0.14.1
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400824AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
825AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500826AC_SUBST(GETTEXT_PACKAGE)
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000827AC_SUBST(PACKAGE)
828AC_SUBST(VERSION)
829
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000830AM_GNU_GETTEXT
831dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000832dnl End of configuration options
833dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +0000834AC_SUBST(BINARY_TYPE)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000835AC_PROG_MAKE_SET
Theodore Ts'obcb915b2009-07-02 18:19:10 -0400836CHECK_GNU_MAKE
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000837AC_PATH_PROG(LN, ln, ln)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000838AC_PROG_LN_S
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000839AC_PATH_PROG(MV, mv, mv)
840AC_PATH_PROG(CP, cp, cp)
841AC_PATH_PROG(RM, rm, rm)
842AC_PATH_PROG(CHMOD, chmod, :)
Theodore Ts'o32237012005-01-17 19:13:39 -0500843AC_PROG_AWK
844AC_PROG_EGREP
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000845AC_PATH_PROG(SED, sed, sed)
Theodore Ts'o9d564f71999-07-03 20:25:58 +0000846AC_PATH_PROG(PERL, perl, perl)
Theodore Ts'o250f79f2001-05-19 22:02:22 +0000847AC_PATH_PROG(LDCONFIG, ldconfig, :)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000848AC_CHECK_TOOL(AR, ar, ar)
849AC_CHECK_TOOL(RANLIB, ranlib, :)
850AC_CHECK_TOOL(STRIP, strip, :)
Manish Katiyar7321d942008-04-14 17:20:03 +0530851AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
852if test "_$MAKEINFO" = "_"; then
853 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
854else
855 case "$MAKEINFO" in
856 */missing.*)
857 AC_MSG_WARN([
858*** Makeinfo is missing. Info documentation will not be built.])
859 ;;
860 *)
861 ;;
862 esac
863fi
864AC_SUBST(MAKEINFO)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000865AC_PROG_INSTALL
Theodore Ts'o6c133521999-07-03 20:37:03 +0000866# See if we need a separate native compiler.
867if test $cross_compiling = no; then
868 BUILD_CC="$CC"
869 AC_SUBST(BUILD_CC)
870else
871 AC_CHECK_PROGS(BUILD_CC, gcc cc)
872fi
Mike Frysinger677fc912012-03-06 20:13:54 -0500873AC_CHECK_HEADERS(m4_flatten([
874 dirent.h
875 errno.h
876 execinfo.h
877 getopt.h
878 malloc.h
879 mntent.h
880 paths.h
881 semaphore.h
882 setjmp.h
883 signal.h
884 stdarg.h
885 stdint.h
886 stdlib.h
887 termios.h
888 termio.h
889 unistd.h
890 utime.h
891 linux/falloc.h
892 linux/fd.h
893 linux/major.h
Kazuya Miofbabd5c2013-12-16 00:48:12 -0500894 linux/loop.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500895 net/if_dl.h
896 netinet/in.h
897 sys/disklabel.h
898 sys/file.h
899 sys/ioctl.h
900 sys/mkdev.h
901 sys/mman.h
902 sys/prctl.h
903 sys/queue.h
904 sys/resource.h
905 sys/select.h
906 sys/socket.h
907 sys/sockio.h
908 sys/stat.h
909 sys/syscall.h
910 sys/sysmacros.h
911 sys/time.h
912 sys/types.h
913 sys/un.h
914 sys/wait.h
915]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500916AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
917[[
918#if HAVE_SYS_QUEUE_H
919#include <sys/queue.h>
920#endif
921]])
922AC_CHECK_HEADERS(net/if.h,,,
923[[
924#if HAVE_SYS_TYPES_H
925#include <sys/types.h>
926#endif
927#if HAVE_SYS_SOCKET
928#include <sys/socket.h>
929#endif
930]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000931AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400932dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
933dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400934AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
935 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500936 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500937AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400938dnl Check to see if ssize_t was declared
939AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
940 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500941 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000942dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000943dnl Check to see if llseek() is declared in unistd.h. On some libc's
944dnl it is, and on others it isn't..... Thank you glibc developers....
945dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400946AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
947 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500948 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000949dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000950dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
951dnl are so convoluted that I can't tell whether it will always be defined,
952dnl and if it isn't defined while lseek64 is defined in the library,
953dnl disaster will strike.
954dnl
955dnl Warning! Use of --enable-gcc-wall may throw off this test.
956dnl
957dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400958AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
959 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500960 [#define _LARGEFILE_SOURCE
961 #define _LARGEFILE64_SOURCE
962 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000963dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000964dnl Word sizes...
965dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000966AC_CHECK_SIZEOF(short)
967AC_CHECK_SIZEOF(int)
968AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000969AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500970AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000971SIZEOF_SHORT=$ac_cv_sizeof_short
972SIZEOF_INT=$ac_cv_sizeof_int
973SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000974SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500975SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000976AC_SUBST(SIZEOF_SHORT)
977AC_SUBST(SIZEOF_INT)
978AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000979AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -0500980AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +0000981AC_C_BIGENDIAN
Theodore Ts'o29a5dee2007-07-04 16:28:47 -0400982BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400983ASM_TYPES_HEADER=./asm_types.h
984AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000985dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -0400986dnl Save the configuration #defines needed for the public ext2fs.h
987dnl header file
988dnl
989echo "/* These defines are needed for the public ext2fs.h header file */" \
990 > public_config.h
991if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
992 uniq tmp_config.$$ >> public_config.h
993else
994 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
995fi
996if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
997 uniq tmp_config.$$ >> public_config.h
998else
999 echo "#undef WORDS_BIGENDIAN" >> public_config.h
1000fi
1001rm -f tmp_config.$$
1002PUBLIC_CONFIG_HEADER=./public_config.h
1003AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1004dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001005dnl See if we have inttypes.h and if intptr_t is defined
1006dnl
1007AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -05001008AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -04001009dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001010dnl See if struct stat has a st_flags field, in which case we can get file
1011dnl flags somewhat portably. Also check for the analogous setter, chflags().
1012dnl
1013AC_MSG_CHECKING(whether struct stat has a st_flags field)
1014AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1015 AC_TRY_COMPILE([#include <sys/stat.h>],
1016 [struct stat stat; stat.st_flags = 0;],
1017 [e2fsprogs_cv_struct_st_flags=yes],
1018 [e2fsprogs_cv_struct_st_flags=no]))
1019AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1020if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001021 AC_MSG_CHECKING(whether st_flags field is useful)
1022 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1023 AC_TRY_COMPILE([#include <sys/stat.h>],
1024 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1025 [e2fsprogs_cv_struct_st_flags_immut=yes],
1026 [e2fsprogs_cv_struct_st_flags_immut=no]))
1027 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1028 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001029 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1030 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001031 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001032fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001033dnl
1034dnl Check for the presence of SA_LEN
1035dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001036AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001037 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1038 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001039 [#include <sys/types.h>
1040 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001041dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001042dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1043dnl the system-provided blkid library
1044dnl
1045if test -n "$BLKID_CMT"; then
1046 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1047fi
1048dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001049AC_CHECK_FUNCS(m4_flatten([
1050 __secure_getenv
1051 backtrace
1052 blkid_probe_get_topology
1053 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001054 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001055 fallocate
1056 fallocate64
1057 fchown
1058 fdatasync
1059 fstat64
1060 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001061 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001062 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001063 getdtablesize
1064 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001065 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001066 getrlimit
1067 getrusage
1068 jrand48
1069 llseek
1070 lseek64
1071 mallinfo
1072 mbstowcs
1073 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001074 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001075 mmap
1076 msync
1077 nanosleep
1078 open64
1079 pathconf
1080 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001081 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001082 posix_memalign
1083 prctl
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001084 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001085 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001086 setresgid
1087 setresuid
1088 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001089 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001090 strcasecmp
1091 strdup
1092 strnlen
1093 strptime
1094 strtoull
1095 sync_file_range
1096 sysconf
1097 usleep
1098 utime
1099 valloc
1100]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001101dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001102dnl Check to see if -lsocket is required (solaris) to make something
1103dnl that uses socket() to compile; this is needed for the UUID library
1104dnl
1105SOCKET_LIB=''
1106AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1107AC_SUBST(SOCKET_LIB)
1108dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001109dnl See if optreset exists
1110dnl
1111AC_MSG_CHECKING(for optreset)
1112AC_CACHE_VAL(ac_cv_have_optreset,
1113[AC_EGREP_HEADER(optreset, unistd.h,
1114 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1115AC_MSG_RESULT($ac_cv_have_optreset)
1116if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001117 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001118fi
1119dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001120dnl Test for sem_init, and which library it might require:
1121dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001122AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001123SEM_INIT_LIB=''
1124AC_CHECK_FUNC(sem_init, ,
1125 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001126 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001127 SEM_INIT_LIB=-lpthread,
1128 AC_CHECK_LIB(rt, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001129 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001130 SEM_INIT_LIB=-lrt,
1131 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001132 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001133 SEM_INIT_LIB=-lposix4))))dnl
1134AC_SUBST(SEM_INIT_LIB)
1135dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001136dnl Check for unified diff
1137dnl
1138AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001139if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001140 UNI_DIFF_OPTS=-u
1141else
1142 UNI_DIFF_OPTS=-c
1143fi
1144AC_MSG_RESULT($UNI_DIFF_OPTS)
1145AC_SUBST(UNI_DIFF_OPTS)
1146dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001147dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001148dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001149case "$host_os" in
1150linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001151 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001152 ;;
1153esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001154dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001155dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001156dnl
1157LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001158CYGWIN_CMT="#"
1159UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001160case "$host_os" in
1161linux*)
1162 LINUX_CMT=
1163 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001164cygwin)
1165 CYGWIN_CMT=
1166 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001167 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001168esac
1169AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001170AC_SUBST(CYGWIN_CMT)
1171AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001172dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001173dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001174dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001175case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001176linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001177 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1178 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001179 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001180 fi
1181 ;;
1182esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001183dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001184dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001185dnl
1186case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001187linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001188 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001189 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001190 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001191 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001192 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001193 mandir=/usr/share/man
1194 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001195 fi
1196;;
1197esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001198if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001199 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001200 root_prefix="$ac_default_prefix"
1201 else
1202 root_prefix="$prefix"
1203 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001204 root_bindir=$bindir
1205 root_sbindir=$sbindir
1206 root_libdir=$libdir
1207 root_sysconfdir=$sysconfdir
1208else
1209 root_bindir='${root_prefix}/bin'
1210 root_sbindir='${root_prefix}/sbin'
1211 root_libdir='${root_prefix}/lib'
1212 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001213fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001214if test "$bindir" != '${exec_prefix}/bin'; then
1215 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001216 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001217fi
1218if test "$sbindir" != '${exec_prefix}/sbin'; then
1219 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001220 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001221fi
1222if test "$libdir" != '${exec_prefix}/lib'; then
1223 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001224 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001225fi
1226if test "$sysconfdir" != '${prefix}/etc'; then
1227 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001228 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001229fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001230AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001231AC_SUBST(root_bindir)
1232AC_SUBST(root_sbindir)
1233AC_SUBST(root_libdir)
1234AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001235dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001236dnl Allow specification of the multiarch arch
1237dnl
1238AC_ARG_WITH([multiarch],
1239[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001240if test "$withval" = "lib64"; then
1241 libdir=/usr/lib64
1242 root_libdir=/lib64
1243else
1244 libdir=$libdir/$withval
1245 root_libdir=$root_libdir/$withval
1246fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001247)dnl
1248dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001249dnl See if -static works. This could fail if the linker does not
1250dnl support -static, or if required external libraries are not available
1251dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001252dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001253AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001254AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1255[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1256AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1257 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1258LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001259dnl
1260dnl Regardless of how the test turns out, Solaris doesn't handle -static
1261dnl This is caused by the socket library requiring the nsl library, which
1262dnl requires the -dl library, which only works for dynamically linked
1263dnl programs. It basically means you can't have statically linked programs
1264dnl which use the network under Solaris.
1265dnl
1266case "$host_os" in
1267solaris2.*)
1268 ac_cv_e2fsprogs_use_static=no
1269;;
1270esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001271AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001272LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001273if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001274 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001275fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001276AC_SUBST(LDFLAG_STATIC)
1277dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001278dnl Work around mysterious Darwin / GNU libintl problem
1279dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1280dnl Apple hacked gcc somehow?)
1281dnl
1282case "$host_os" in
1283darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001284 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001285 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1286 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001287 ;;
1288esac
1289dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001290dnl Make the ss and et directories work correctly.
1291dnl
1292SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1293ET_DIR=`cd ${srcdir}/lib/et; pwd`
1294AC_SUBST(SS_DIR)
1295AC_SUBST(ET_DIR)
1296dnl
1297dnl Only try to run the test suite if we're not cross compiling.
1298dnl
1299if test "$cross_compiling" = yes ; then
1300 DO_TEST_SUITE=
1301else
1302 DO_TEST_SUITE=check
1303fi
1304AC_SUBST(DO_TEST_SUITE)
1305dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001306dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001307dnl
1308INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1309if test -n "$CPPFLAGS" ; then
1310 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001311fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001312if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1313 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1314fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001315if test -n "$WITH_DIET_LIBC" ; then
1316 INCLUDES="$INCLUDES -D_REENTRANT"
1317fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001318AC_SUBST(INCLUDES)
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001319dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001320dnl Build CFLAGS
1321dnl
1322if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001323 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001324 BUILD_LDFLAGS="$LDFLAGS"
1325else
1326 BUILD_CFLAGS=
1327 BUILD_LDFLAGS=
1328fi
1329AC_SUBST(BUILD_CFLAGS)
1330AC_SUBST(BUILD_LDFLAGS)
1331dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001332dnl Make our output files, being sure that we create the some miscellaneous
1333dnl directories
1334dnl
1335test -d lib || mkdir lib
1336test -d include || mkdir include
1337test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001338test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001339for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001340 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001341 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1342 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001343 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001344 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001345 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1346 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001347 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001348 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001349 resize/Makefile doc/Makefile intl/Makefile \
1350 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001351 if test -d `dirname ${srcdir}/$i` ; then
1352 outlist="$outlist $i"
1353 fi
1354done
1355AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001356if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi