blob: 77ab08e7561eb3adc31a71b6c42368fd13ccdaa6 [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])
5AH_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
384dnl handle --enable-checker
385dnl
386AC_ARG_ENABLE([checker],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000387[ --enable-checker build checker libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000388if test "$enableval" = "no"
389then
390 CHECKER_CMT=#
391 MAKEFILE_CHECKER=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400392 AC_MSG_RESULT([Disabling checker libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000393else
394 CHECKER_CMT=
395 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400396 AC_MSG_RESULT([Building checker libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000397fi
398,
399CHECKER_CMT=#
400MAKEFILE_CHECKER=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400401AC_MSG_RESULT([Disabling checker libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000402)
403AC_SUBST(CHECKER_CMT)
404AC_SUBST_FILE(MAKEFILE_CHECKER)
405dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000406dnl Substitute library extensions
407dnl
408AC_SUBST(LIB_EXT)
409AC_SUBST(STATIC_LIB_EXT)
410AC_SUBST(PROFILED_LIB_EXT)
Theodore Ts'o55da9872008-09-02 23:12:38 -0400411AC_SUBST(LDFLAG_DYNAMIC)
412AC_SUBST(PRIVATE_LIBS_CMT)
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000413dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500414dnl handle --enable-jbd-debug
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000415dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500416AC_ARG_ENABLE([jbd-debug],
417[ --enable-jbd-debug enable journal debugging],
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000418if test "$enableval" = "no"
419then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400420 AC_MSG_RESULT([Disabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000421else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400422 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
423 [Define to 1 if debugging ext3/4 journal code])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400424 AC_MSG_RESULT([Enabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000425fi
426,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400427AC_MSG_RESULT([Disabling journal debugging by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000428)
429dnl
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500430dnl handle --enable-blkid-debug
431dnl
432AC_ARG_ENABLE([blkid-debug],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -0400433[ --enable-blkid-debug enable blkid debugging],
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500434if test "$enableval" = "no"
435then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400436 AC_MSG_RESULT([Disabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500437else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400438 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
439 [Define to 1 if debugging the blkid library])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400440 AC_MSG_RESULT([Enabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500441fi
442,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400443AC_MSG_RESULT([Disabling blkid debugging by default])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500444)
445dnl
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400446dnl handle --enable-testio-debug
447dnl
448AC_ARG_ENABLE([testio-debug],
Theodore Ts'oaf773652008-09-01 11:27:27 -0400449[ --disable-testio-debug disable the use of the test I/O manager for debugging],
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400450AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
451 [Define to 1 if the testio I/O manager should be enabled])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400452if test "$enableval" = "no"
453then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400454 AC_MSG_RESULT([Disabling testio debugging])
Theodore Ts'oaf773652008-09-01 11:27:27 -0400455 TEST_IO_CMT="#"
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400456else
Theodore Ts'oaf773652008-09-01 11:27:27 -0400457 TEST_IO_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400458 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400459 AC_MSG_RESULT([Enabling testio debugging])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400460fi
461,
Theodore Ts'oaf773652008-09-01 11:27:27 -0400462AC_MSG_RESULT([Enabling testio debugging by default])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400463AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400464TEST_IO_CMT=
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400465)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400466AC_SUBST(TEST_IO_CMT)
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400467dnl
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100468dnl handle --disable-libuuid
469dnl
470PKG_PROG_PKG_CONFIG
471LIBUUID=
472DEPLIBUUID=
473STATIC_LIBUUID=
474DEPSTATIC_LIBUUID=
475PROFILED_LIBUUID=
476DEPPROFILED_LIBUUID=
477UUID_CMT=
478AC_ARG_ENABLE([libuuid],
479[ --disable-libuuid do not build private uuid library],
480if test "$enableval" = "no"
481then
482 if test -z "$PKG_CONFIG"; then
483 AC_MSG_ERROR([pkg-config not installed; please install it.])
484 fi
485
486 AC_CHECK_LIB(uuid, uuid_generate,
487 [LIBUUID=`$PKG_CONFIG --libs uuid`;
488 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
489 [AC_MSG_ERROR([external uuid library not found])],
490 [$LIBUUID])
491 UUID_CMT=#
492 AC_MSG_RESULT([Disabling private uuid library])
493else
494 LIBUUID='$(LIB)/libuuid'$LIB_EXT
495 DEPLIBUUID=$LIBUUID
496 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
497 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
498 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
499 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
500 AC_MSG_RESULT([Enabling private uuid library])
501fi
502,
503LIBUUID='$(LIB)/libuuid'$LIB_EXT
504DEPLIBUUID=$LIBUUID
505STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
506DEPSTATIC_LIBUUID=$STATIC_LIBUUID
507PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
508DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
509AC_MSG_RESULT([Enabling private uuid library by default])
510)
511AC_SUBST(LIBUUID)
512AC_SUBST(DEPLIBUUID)
513AC_SUBST(STATIC_LIBUUID)
514AC_SUBST(DEPSTATIC_LIBUUID)
515AC_SUBST(PROFILED_LIBUUID)
516AC_SUBST(DEPPROFILED_LIBUUID)
517AC_SUBST(UUID_CMT)
518dnl
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400519dnl handle --disable-libblkid
520dnl
521PKG_PROG_PKG_CONFIG
522LIBBLKID=
523DEPLIBBLKID=
524STATIC_LIBBLKID=
525DEPSTATIC_LIBBLKID=
526PROFILED_LIBBLKID=
527DEPPROFILED_LIBBLKID=
528BLKID_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400529AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400530AC_ARG_ENABLE([libblkid],
531[ --disable-libblkid do not build private blkid library],
532if test "$enableval" = "no"
533then
534 if test -z "$PKG_CONFIG"; then
535 AC_MSG_ERROR([pkg-config not installed; please install it.])
536 fi
537
538 AC_CHECK_LIB(blkid, blkid_get_cache,
539 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
540 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
541 [AC_MSG_ERROR([external blkid library not found])],
542 [$LIBBLKID])
543 BLKID_CMT=#
544 AC_MSG_RESULT([Disabling private blkid library])
545else
546 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
547 DEPLIBBLKID=$LIBBLKID
548 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
549 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
550 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
551 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400552 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400553 AC_MSG_RESULT([Enabling private blkid library])
554fi
555,
556LIBBLKID='$(LIB)/libblkid'$LIB_EXT
557DEPLIBBLKID=$LIBBLKID
558STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
559DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
560PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
561DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400562AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400563AC_MSG_RESULT([Enabling private blkid library by default])
564)
565AC_SUBST(LIBBLKID)
566AC_SUBST(DEPLIBBLKID)
567AC_SUBST(STATIC_LIBBLKID)
568AC_SUBST(DEPSTATIC_LIBBLKID)
569AC_SUBST(PROFILED_LIBBLKID)
570AC_SUBST(DEPPROFILED_LIBBLKID)
571AC_SUBST(BLKID_CMT)
572dnl
Theodore Ts'o7becb202011-11-14 10:40:43 -0500573dnl handle --enable-quota
Aditya Kalif239fef2011-07-20 11:40:02 -0700574dnl
Eric Sandeenf5589f42013-10-14 08:54:15 -0400575QUOTA_MAN_COMMENT='.\"'
Niu Yawei43075b42013-10-14 09:49:27 -0400576QUOTA_CMT=
Eric Sandeenf5589f42013-10-14 08:54:15 -0400577AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700578PKG_PROG_PKG_CONFIG
Theodore Ts'o7becb202011-11-14 10:40:43 -0500579AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
580AC_ARG_ENABLE([quota],
Eric Sandeen7b8912e2012-11-27 12:21:56 -0600581[ --enable-quota enable quota support],
Aditya Kalif239fef2011-07-20 11:40:02 -0700582if test "$enableval" = "no"
583then
Niu Yawei43075b42013-10-14 09:49:27 -0400584 QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500585 AC_MSG_RESULT([Disabling quota support])
Aditya Kalif239fef2011-07-20 11:40:02 -0700586else
Niu Yawei43075b42013-10-14 09:49:27 -0400587 QUOTA_CMT=
Theodore Ts'o7becb202011-11-14 10:40:43 -0500588 AC_DEFINE(CONFIG_QUOTA, 1)
589 AC_MSG_RESULT([Enabling quota support])
Eric Sandeenf5589f42013-10-14 08:54:15 -0400590 QUOTA_MAN_COMMENT=""
591 AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700592fi
593,
Niu Yawei43075b42013-10-14 09:49:27 -0400594QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500595AC_MSG_RESULT([Disabling quota support by default])
596)
597dnl
598dnl Define stuff expected for quota library
599dnl
Aditya Kalif239fef2011-07-20 11:40:02 -0700600LIBQUOTA='$(LIB)/libquota'$LIB_EXT
601DEPLIBQUOTA=$LIBQUOTA
602STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
603DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
604PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
605DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
Aditya Kalif239fef2011-07-20 11:40:02 -0700606AC_SUBST(LIBQUOTA)
607AC_SUBST(DEPLIBQUOTA)
608AC_SUBST(STATIC_LIBQUOTA)
609AC_SUBST(DEPSTATIC_LIBQUOTA)
610AC_SUBST(PROFILED_LIBQUOTA)
611AC_SUBST(DEPPROFILED_LIBQUOTA)
612AC_SUBST(QUOTA_CMT)
613dnl
Theodore Ts'o3df60142013-06-16 16:14:40 -0400614dnl handle --disable-backtrace
615dnl
616AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
617AC_ARG_ENABLE([backtrace],
618[ --disable-backtrace disable use backtrace],
619if test "$enableval" = "no"
620then
621 AC_MSG_RESULT([Disabling use of backtrace])
622 AC_DEFINE(DISABLE_BACKTRACE, 1)
623else
624 AC_MSG_RESULT([Enabling use of backtrace])
625fi
626,
627AC_MSG_RESULT([Enabling use of backtrace by default])
628)
629dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000630dnl handle --enable-debugfs
631dnl
632AC_ARG_ENABLE([debugfs],
633[ --disable-debugfs disable support of debugfs program],
634if test "$enableval" = "no"
635then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400636 AC_MSG_RESULT([Disabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000637 DEBUGFS_CMT="#"
638else
639 DEBUGFS_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400640 AC_MSG_RESULT([Enabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000641fi
642,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400643AC_MSG_RESULT([Enabling debugfs support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000644DEBUGFS_CMT=
645)
646AC_SUBST(DEBUGFS_CMT)
647dnl
648dnl handle --enable-imager
649dnl
650AC_ARG_ENABLE([imager],
651[ --disable-imager disable support of e2image program],
652if test "$enableval" = "no"
653then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400654 AC_MSG_RESULT([Disabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000655 IMAGER_CMT="#"
656else
657 IMAGER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400658 AC_MSG_RESULT([Enabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000659fi
660,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400661AC_MSG_RESULT([Enabling e2image support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000662IMAGER_CMT=
663)
664AC_SUBST(IMAGER_CMT)
665dnl
666dnl handle --enable-resizer
667dnl
668AC_ARG_ENABLE([resizer],
669[ --disable-resizer disable support of e2resize program],
670if test "$enableval" = "no"
671then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400672 AC_MSG_RESULT([Disabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000673 RESIZER_CMT="#"
674else
675 RESIZER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400676 AC_MSG_RESULT([Enabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000677fi
678,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400679AC_MSG_RESULT([Enabling e2resize support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000680RESIZER_CMT=
681)
682AC_SUBST(RESIZER_CMT)
683dnl
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500684dnl handle --enable-defrag
685dnl
686AC_ARG_ENABLE([defrag],
687[ --disable-defrag disable support of e4defrag program],
688if test "$enableval" = "no"
689then
690 AC_MSG_RESULT([Disabling e4defrag support])
691 DEFRAG_CMT="#"
692else
693 DEFRAG_CMT=
694 AC_MSG_RESULT([Enabling e4defrag support])
695fi
696,
Theodore Ts'o6c59a662014-01-04 20:44:29 -0500697if test -z "$WITH_DIET_LIBC"
698then
699 AC_MSG_RESULT([Enabling e4defrag support by default])
700 DEFRAG_CMT=
701else
702 AC_MSG_RESULT([Disabling e4defrag support by default])
703 DEFRAG_CMT="#"
704fi
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500705)
706AC_SUBST(DEFRAG_CMT)
707dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000708dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
709dnl
710AC_ARG_ENABLE([fsck],
711[ --enable-fsck build fsck wrapper program],
712[if test "$enableval" = "no"
713then
714 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400715 AC_MSG_RESULT([Not building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000716else
717 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400718 AC_MSG_RESULT([Building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000719fi]
720,
721[case "$host_os" in
Theodore Ts'oe3632402004-05-04 19:39:54 -0400722 gnu*)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000723 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400724 AC_MSG_RESULT([Not building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000725 ;;
726 *)
727 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400728 AC_MSG_RESULT([Building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000729esac]
730)
731AC_SUBST(FSCK_PROG)
732AC_SUBST(FSCK_MAN)
733dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400734dnl See whether to install the `e2initrd-helper' program
735dnl
736AC_ARG_ENABLE([e2initrd-helper],
737[ --enable-e2initrd-helper build e2initrd-helper program],
738[if test "$enableval" = "no"
739then
740 E2INITRD_PROG='' E2INITRD_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400741 AC_MSG_RESULT([Not building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400742else
743 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400744 AC_MSG_RESULT([Building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400745fi]
746,
747E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400748AC_MSG_RESULT([Building e2initrd helper by default])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400749)
750AC_SUBST(E2INITRD_PROG)
751AC_SUBST(E2INITRD_MAN)
Karel Zak4db2f592006-03-08 14:17:28 -0500752dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400753dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000754dnl
Theodore Ts'o32493942007-12-31 10:45:01 -0500755AC_ARG_ENABLE([tls],
756[ --disable-tls disable use of thread local support],
757[if test "$enableval" = "no"
758then
759 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400760 AC_MSG_RESULT([Disabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500761else
762 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400763 AC_MSG_RESULT([Enabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500764fi]
765,
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400766if test -n "$WITH_DIET_LIBC"
767then
768 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400769 AC_MSG_RESULT([Diet libc does not support thread local support])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400770else
771 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400772 AC_MSG_RESULT([Try using thread local support by default])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400773fi
Theodore Ts'o32493942007-12-31 10:45:01 -0500774)
775if test "$try_tls" = "yes"
776then
777AX_TLS
778fi
779dnl
780dnl
781dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400782AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500783AC_ARG_ENABLE([uuidd],
784[ --disable-uuidd disable building the uuid daemon],
785[if test "$enableval" = "no"
786then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400787 AC_MSG_RESULT([Not building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500788 UUIDD_CMT="#"
789else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400790 AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500791 UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400792 AC_MSG_RESULT([Building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500793fi]
794,
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400795AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500796UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400797AC_MSG_RESULT([Building uuidd by default])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500798)
799AC_SUBST(UUIDD_CMT)
800dnl
801dnl
802dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000803MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
804AC_SUBST_FILE(MAKEFILE_LIBRARY)
805dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000806dnl Add internationalization support, using gettext.
807dnl
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500808GETTEXT_PACKAGE=e2fsprogs
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000809PACKAGE=e2fsprogs
810VERSION="$E2FSPROGS_VERSION"
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500811VERSION=0.14.1
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400812AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
813AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500814AC_SUBST(GETTEXT_PACKAGE)
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000815AC_SUBST(PACKAGE)
816AC_SUBST(VERSION)
817
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000818AM_GNU_GETTEXT
819dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000820dnl End of configuration options
821dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +0000822AC_SUBST(BINARY_TYPE)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000823AC_PROG_MAKE_SET
Theodore Ts'obcb915b2009-07-02 18:19:10 -0400824CHECK_GNU_MAKE
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000825AC_PATH_PROG(LN, ln, ln)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000826AC_PROG_LN_S
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000827AC_PATH_PROG(MV, mv, mv)
828AC_PATH_PROG(CP, cp, cp)
829AC_PATH_PROG(RM, rm, rm)
830AC_PATH_PROG(CHMOD, chmod, :)
Theodore Ts'o32237012005-01-17 19:13:39 -0500831AC_PROG_AWK
832AC_PROG_EGREP
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000833AC_PATH_PROG(SED, sed, sed)
Theodore Ts'o9d564f71999-07-03 20:25:58 +0000834AC_PATH_PROG(PERL, perl, perl)
Theodore Ts'o250f79f2001-05-19 22:02:22 +0000835AC_PATH_PROG(LDCONFIG, ldconfig, :)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000836AC_CHECK_TOOL(AR, ar, ar)
837AC_CHECK_TOOL(RANLIB, ranlib, :)
838AC_CHECK_TOOL(STRIP, strip, :)
Manish Katiyar7321d942008-04-14 17:20:03 +0530839AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
840if test "_$MAKEINFO" = "_"; then
841 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
842else
843 case "$MAKEINFO" in
844 */missing.*)
845 AC_MSG_WARN([
846*** Makeinfo is missing. Info documentation will not be built.])
847 ;;
848 *)
849 ;;
850 esac
851fi
852AC_SUBST(MAKEINFO)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000853AC_PROG_INSTALL
Theodore Ts'o6c133521999-07-03 20:37:03 +0000854# See if we need a separate native compiler.
855if test $cross_compiling = no; then
856 BUILD_CC="$CC"
857 AC_SUBST(BUILD_CC)
858else
859 AC_CHECK_PROGS(BUILD_CC, gcc cc)
860fi
Mike Frysinger677fc912012-03-06 20:13:54 -0500861AC_CHECK_HEADERS(m4_flatten([
862 dirent.h
863 errno.h
864 execinfo.h
865 getopt.h
866 malloc.h
867 mntent.h
868 paths.h
869 semaphore.h
870 setjmp.h
871 signal.h
872 stdarg.h
873 stdint.h
874 stdlib.h
875 termios.h
876 termio.h
877 unistd.h
878 utime.h
879 linux/falloc.h
880 linux/fd.h
881 linux/major.h
Kazuya Miofbabd5c2013-12-16 00:48:12 -0500882 linux/loop.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500883 net/if_dl.h
884 netinet/in.h
885 sys/disklabel.h
886 sys/file.h
887 sys/ioctl.h
888 sys/mkdev.h
889 sys/mman.h
890 sys/prctl.h
891 sys/queue.h
892 sys/resource.h
893 sys/select.h
894 sys/socket.h
895 sys/sockio.h
896 sys/stat.h
897 sys/syscall.h
898 sys/sysmacros.h
899 sys/time.h
900 sys/types.h
901 sys/un.h
902 sys/wait.h
903]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500904AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
905[[
906#if HAVE_SYS_QUEUE_H
907#include <sys/queue.h>
908#endif
909]])
910AC_CHECK_HEADERS(net/if.h,,,
911[[
912#if HAVE_SYS_TYPES_H
913#include <sys/types.h>
914#endif
915#if HAVE_SYS_SOCKET
916#include <sys/socket.h>
917#endif
918]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000919AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400920dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
921dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400922AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
923 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500924 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500925AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400926dnl Check to see if ssize_t was declared
927AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
928 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500929 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000930dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000931dnl Check to see if llseek() is declared in unistd.h. On some libc's
932dnl it is, and on others it isn't..... Thank you glibc developers....
933dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400934AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
935 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500936 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000937dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000938dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
939dnl are so convoluted that I can't tell whether it will always be defined,
940dnl and if it isn't defined while lseek64 is defined in the library,
941dnl disaster will strike.
942dnl
943dnl Warning! Use of --enable-gcc-wall may throw off this test.
944dnl
945dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400946AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
947 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500948 [#define _LARGEFILE_SOURCE
949 #define _LARGEFILE64_SOURCE
950 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000951dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000952dnl Word sizes...
953dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000954AC_CHECK_SIZEOF(short)
955AC_CHECK_SIZEOF(int)
956AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000957AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500958AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000959SIZEOF_SHORT=$ac_cv_sizeof_short
960SIZEOF_INT=$ac_cv_sizeof_int
961SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000962SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500963SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000964AC_SUBST(SIZEOF_SHORT)
965AC_SUBST(SIZEOF_INT)
966AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000967AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -0500968AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +0000969AC_C_BIGENDIAN
Theodore Ts'o29a5dee2007-07-04 16:28:47 -0400970BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400971ASM_TYPES_HEADER=./asm_types.h
972AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000973dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -0400974dnl Save the configuration #defines needed for the public ext2fs.h
975dnl header file
976dnl
977echo "/* These defines are needed for the public ext2fs.h header file */" \
978 > public_config.h
979if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
980 uniq tmp_config.$$ >> public_config.h
981else
982 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
983fi
984if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
985 uniq tmp_config.$$ >> public_config.h
986else
987 echo "#undef WORDS_BIGENDIAN" >> public_config.h
988fi
989rm -f tmp_config.$$
990PUBLIC_CONFIG_HEADER=./public_config.h
991AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
992dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400993dnl See if we have inttypes.h and if intptr_t is defined
994dnl
995AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -0500996AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400997dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000998dnl See if struct stat has a st_flags field, in which case we can get file
999dnl flags somewhat portably. Also check for the analogous setter, chflags().
1000dnl
1001AC_MSG_CHECKING(whether struct stat has a st_flags field)
1002AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1003 AC_TRY_COMPILE([#include <sys/stat.h>],
1004 [struct stat stat; stat.st_flags = 0;],
1005 [e2fsprogs_cv_struct_st_flags=yes],
1006 [e2fsprogs_cv_struct_st_flags=no]))
1007AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1008if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001009 AC_MSG_CHECKING(whether st_flags field is useful)
1010 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1011 AC_TRY_COMPILE([#include <sys/stat.h>],
1012 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1013 [e2fsprogs_cv_struct_st_flags_immut=yes],
1014 [e2fsprogs_cv_struct_st_flags_immut=no]))
1015 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1016 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001017 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1018 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001019 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001020fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001021dnl
1022dnl Check for the presence of SA_LEN
1023dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001024AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001025 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1026 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001027 [#include <sys/types.h>
1028 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001029dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001030dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1031dnl the system-provided blkid library
1032dnl
1033if test -n "$BLKID_CMT"; then
1034 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1035fi
1036dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001037AC_CHECK_FUNCS(m4_flatten([
1038 __secure_getenv
1039 backtrace
1040 blkid_probe_get_topology
1041 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001042 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001043 fallocate
1044 fallocate64
1045 fchown
1046 fdatasync
1047 fstat64
1048 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001049 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001050 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001051 getdtablesize
1052 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001053 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001054 getrlimit
1055 getrusage
1056 jrand48
1057 llseek
1058 lseek64
1059 mallinfo
1060 mbstowcs
1061 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001062 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001063 mmap
1064 msync
1065 nanosleep
1066 open64
1067 pathconf
1068 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001069 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001070 posix_memalign
1071 prctl
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001072 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001073 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001074 setresgid
1075 setresuid
1076 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001077 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001078 strcasecmp
1079 strdup
1080 strnlen
1081 strptime
1082 strtoull
1083 sync_file_range
1084 sysconf
1085 usleep
1086 utime
1087 valloc
1088]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001089dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001090dnl Check to see if -lsocket is required (solaris) to make something
1091dnl that uses socket() to compile; this is needed for the UUID library
1092dnl
1093SOCKET_LIB=''
1094AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1095AC_SUBST(SOCKET_LIB)
1096dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001097dnl See if optreset exists
1098dnl
1099AC_MSG_CHECKING(for optreset)
1100AC_CACHE_VAL(ac_cv_have_optreset,
1101[AC_EGREP_HEADER(optreset, unistd.h,
1102 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1103AC_MSG_RESULT($ac_cv_have_optreset)
1104if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001105 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001106fi
1107dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001108dnl Test for sem_init, and which library it might require:
1109dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001110AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001111SEM_INIT_LIB=''
1112AC_CHECK_FUNC(sem_init, ,
1113 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001114 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001115 SEM_INIT_LIB=-lpthread,
1116 AC_CHECK_LIB(rt, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001117 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001118 SEM_INIT_LIB=-lrt,
1119 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001120 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001121 SEM_INIT_LIB=-lposix4))))dnl
1122AC_SUBST(SEM_INIT_LIB)
1123dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001124dnl Check for unified diff
1125dnl
1126AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001127if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001128 UNI_DIFF_OPTS=-u
1129else
1130 UNI_DIFF_OPTS=-c
1131fi
1132AC_MSG_RESULT($UNI_DIFF_OPTS)
1133AC_SUBST(UNI_DIFF_OPTS)
1134dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001135dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001136dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001137case "$host_os" in
1138linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001139 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001140 ;;
1141esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001142dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001143dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001144dnl
1145LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001146CYGWIN_CMT="#"
1147UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001148case "$host_os" in
1149linux*)
1150 LINUX_CMT=
1151 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001152cygwin)
1153 CYGWIN_CMT=
1154 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001155 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001156esac
1157AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001158AC_SUBST(CYGWIN_CMT)
1159AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001160dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001161dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001162dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001163case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001164linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001165 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1166 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001167 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001168 fi
1169 ;;
1170esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001171dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001172dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001173dnl
1174case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001175linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001176 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001177 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001178 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001179 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001180 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001181 mandir=/usr/share/man
1182 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001183 fi
1184;;
1185esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001186if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001187 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001188 root_prefix="$ac_default_prefix"
1189 else
1190 root_prefix="$prefix"
1191 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001192 root_bindir=$bindir
1193 root_sbindir=$sbindir
1194 root_libdir=$libdir
1195 root_sysconfdir=$sysconfdir
1196else
1197 root_bindir='${root_prefix}/bin'
1198 root_sbindir='${root_prefix}/sbin'
1199 root_libdir='${root_prefix}/lib'
1200 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001201fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001202if test "$bindir" != '${exec_prefix}/bin'; then
1203 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001204 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001205fi
1206if test "$sbindir" != '${exec_prefix}/sbin'; then
1207 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001208 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001209fi
1210if test "$libdir" != '${exec_prefix}/lib'; then
1211 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001212 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001213fi
1214if test "$sysconfdir" != '${prefix}/etc'; then
1215 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001216 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001217fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001218AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001219AC_SUBST(root_bindir)
1220AC_SUBST(root_sbindir)
1221AC_SUBST(root_libdir)
1222AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001223dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001224dnl Allow specification of the multiarch arch
1225dnl
1226AC_ARG_WITH([multiarch],
1227[ --with-multiarch=ARCH specify the multiarch triplet],
1228libdir=$libdir/$withval
1229root_libdir=$root_libdir/$withval
1230)dnl
1231dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001232dnl See if -static works. This could fail if the linker does not
1233dnl support -static, or if required external libraries are not available
1234dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001235dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001236AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001237AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1238[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1239AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1240 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1241LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001242dnl
1243dnl Regardless of how the test turns out, Solaris doesn't handle -static
1244dnl This is caused by the socket library requiring the nsl library, which
1245dnl requires the -dl library, which only works for dynamically linked
1246dnl programs. It basically means you can't have statically linked programs
1247dnl which use the network under Solaris.
1248dnl
1249case "$host_os" in
1250solaris2.*)
1251 ac_cv_e2fsprogs_use_static=no
1252;;
1253esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001254AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001255LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001256if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001257 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001258fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001259AC_SUBST(LDFLAG_STATIC)
1260dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001261dnl Work around mysterious Darwin / GNU libintl problem
1262dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1263dnl Apple hacked gcc somehow?)
1264dnl
1265case "$host_os" in
1266darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001267 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001268 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1269 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001270 ;;
1271esac
1272dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001273dnl Make the ss and et directories work correctly.
1274dnl
1275SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1276ET_DIR=`cd ${srcdir}/lib/et; pwd`
1277AC_SUBST(SS_DIR)
1278AC_SUBST(ET_DIR)
1279dnl
1280dnl Only try to run the test suite if we're not cross compiling.
1281dnl
1282if test "$cross_compiling" = yes ; then
1283 DO_TEST_SUITE=
1284else
1285 DO_TEST_SUITE=check
1286fi
1287AC_SUBST(DO_TEST_SUITE)
1288dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001289dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001290dnl
1291INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1292if test -n "$CPPFLAGS" ; then
1293 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001294fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001295if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1296 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1297fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001298if test -n "$WITH_DIET_LIBC" ; then
1299 INCLUDES="$INCLUDES -D_REENTRANT"
1300fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001301AC_SUBST(INCLUDES)
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001302dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001303dnl Build CFLAGS
1304dnl
1305if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001306 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001307 BUILD_LDFLAGS="$LDFLAGS"
1308else
1309 BUILD_CFLAGS=
1310 BUILD_LDFLAGS=
1311fi
1312AC_SUBST(BUILD_CFLAGS)
1313AC_SUBST(BUILD_LDFLAGS)
1314dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001315dnl Make our output files, being sure that we create the some miscellaneous
1316dnl directories
1317dnl
1318test -d lib || mkdir lib
1319test -d include || mkdir include
1320test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001321test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001322for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001323 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001324 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1325 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001326 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001327 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001328 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1329 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001330 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001331 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001332 resize/Makefile doc/Makefile intl/Makefile \
1333 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001334 if test -d `dirname ${srcdir}/$i` ; then
1335 outlist="$outlist $i"
1336 fi
1337done
1338AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001339if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi