blob: 3ca5d6386a1017bf4ecaab28a1c52f0ea38ae045 [file] [log] [blame]
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001AC_INIT(version.h)
Theodore Ts'o37cdbee2012-12-22 22:24:45 -05002AC_PREREQ(2.54)
Theodore Ts'ob0cacab2004-11-30 19:00:19 -05003AC_CONFIG_AUX_DIR(config)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04004AC_CONFIG_HEADERS([lib/config.h])
Theodore Ts'oc714d022014-01-30 18:48:23 -05005AH_BOTTOM([#include <dirpaths.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00006MCONFIG=./MCONFIG
7AC_SUBST_FILE(MCONFIG)
Theodore Ts'o74becf31997-04-26 14:37:06 +00008BINARY_TYPE=bin
9dnl
10dnl This is to figure out the version number and the date....
11dnl
12E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
13 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
14DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
15 | tr \" " "`
Theodore Ts'obff0cc92003-03-23 01:37:53 -050016E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
Theodore Ts'o74becf31997-04-26 14:37:06 +000017MONTH=`echo $DATE | awk -F- '{print $2}'`
18YEAR=`echo $DATE | awk -F- '{print $3}'`
19
Theodore Ts'o40fa8cc1999-01-09 05:06:02 +000020if expr $YEAR ">" 1900 > /dev/null ; then
21 E2FSPROGS_YEAR=$YEAR
22elif expr $YEAR ">" 90 >/dev/null ; then
Theodore Ts'o74becf31997-04-26 14:37:06 +000023 E2FSPROGS_YEAR=19$YEAR
24else
25 E2FSPROGS_YEAR=20$YEAR
26fi
27
28case $MONTH in
Andreas Dilger927566a2006-11-12 19:41:25 -050029Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
30Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
31Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
32Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
33May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
34Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
35Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
36Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
37Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
38Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
39Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
40Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
Theodore Ts'o02d04db2008-08-22 10:52:42 -040041*) AC_MSG_WARN([Unknown month $MONTH??]) ;;
Theodore Ts'o74becf31997-04-26 14:37:06 +000042esac
43
Andreas Dilger927566a2006-11-12 19:41:25 -050044base_ver=`echo $E2FSPROGS_VERSION | \
45 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
Andreas Dilger927566a2006-11-12 19:41:25 -050046
47date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
48
49case $E2FSPROGS_VERSION in
50*-WIP|pre-*)
Theodore Ts'oab063962008-07-07 16:07:43 -040051 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
Andreas Dilger927566a2006-11-12 19:41:25 -050052 ;;
53*)
54 E2FSPROGS_PKGVER="$base_ver"
55 ;;
56esac
57
58unset DATE MONTH YEAR base_ver pre_vers date_spec
Theodore Ts'o02d04db2008-08-22 10:52:42 -040059AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
60AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
Theodore Ts'o74becf31997-04-26 14:37:06 +000061AC_SUBST(E2FSPROGS_YEAR)
62AC_SUBST(E2FSPROGS_MONTH)
Theodore Ts'obff0cc92003-03-23 01:37:53 -050063AC_SUBST(E2FSPROGS_DAY)
Theodore Ts'o74becf31997-04-26 14:37:06 +000064AC_SUBST(E2FSPROGS_VERSION)
Andreas Dilger927566a2006-11-12 19:41:25 -050065AC_SUBST(E2FSPROGS_PKGVER)
Theodore Ts'o57aa50d2009-11-26 10:38:04 -050066dnl
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040067dnl Use diet libc
68dnl
Theodore Ts'oeafba6c2008-07-10 10:21:42 -040069WITH_DIET_LIBC=
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040070AC_ARG_WITH([diet-libc],
Theodore Ts'o32493942007-12-31 10:45:01 -050071[ --with-diet-libc use diet libc],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040072CC="diet cc -nostdinc"
Theodore Ts'oeafba6c2008-07-10 10:21:42 -040073WITH_DIET_LIBC=yes
Theodore Ts'o6c59a662014-01-04 20:44:29 -050074if test -z "$LIBS"
75then
76 LIBS="-lcompat"
77else
78 LIBS="$LIBS -lcompat"
79fi
Theodore Ts'od21ae6c2003-05-05 09:00:24 -040080AC_MSG_RESULT(CC=$CC))dnl
81dnl
Theodore Ts'o6c59a662014-01-04 20:44:29 -050082AC_CANONICAL_HOST
83dnl
84dnl Check to see if libdl exists for the sake of dlopen
85dnl
86DLOPEN_LIB=''
87AC_CHECK_LIB(dl, dlopen,
88[DLOPEN_LIB=-ldl
89AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
90AC_SUBST(DLOPEN_LIB)
91dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +000092AC_ARG_WITH([cc],
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -040093AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
94AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
Theodore Ts'o74becf31997-04-26 14:37:06 +000095dnl
96AC_ARG_WITH([ccopts],
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -040097AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
98AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
99dnl
100AC_ARG_WITH([ldopts],
101AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
102AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
103dnl
104AC_PROG_CC
Theodore Ts'o9b3018a2011-08-11 14:56:49 -0400105if test "$GCC" = yes; then
106 RDYNAMIC="-rdynamic"
107 AC_SUBST(RDYNAMIC)
108fi
Theodore Ts'o0b5b9f92009-09-06 21:28:47 -0400109AC_PROG_CPP
Theodore Ts'o74becf31997-04-26 14:37:06 +0000110dnl
Matthias Andreeb1c92f92004-02-23 21:30:11 +0100111dnl Alpha computers use fast and imprecise floating point code that may
112dnl miss exceptions by default. Force sane options if we're using GCC.
113AC_MSG_CHECKING(for additional special compiler flags)
114if test "$GCC" = yes
115then
116 case "$host_cpu" in
117 alpha) addcflags="-mieee" ;;
118 esac
119fi
120if test "x$addcflags" != x
121then
122 AC_MSG_RESULT($addcflags)
123 CFLAGS="$addcflags $CFLAGS"
124else
125 AC_MSG_RESULT([[(none)]])
126fi
Theodore Ts'o93613952014-07-03 23:44:13 -0400127AC_USE_SYSTEM_EXTENSIONS
Matthias Andreeb1c92f92004-02-23 21:30:11 +0100128dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000129dnl Set default values for library extentions. Will be dealt with after
130dnl parsing configuration opions, which may modify these
131dnl
132LIB_EXT=.a
133STATIC_LIB_EXT=.a
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400134PROFILED_LIB_EXT=.a
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000135dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000136dnl Allow separate `root_prefix' to be specified
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000137dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +0000138AC_ARG_WITH([root-prefix],
139[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
140root_prefix=$withval,
141root_prefix=NONE)dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000142dnl
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500143dnl handle --enable-maintainer-mode
144dnl
145AC_ARG_ENABLE([maintainer-mode],
146[ --enable-maintainer-mode enable makefile rules useful for maintainers],
147if test "$enableval" = "no"
148then
149 MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400150 AC_MSG_RESULT([Disabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500151else
152 MAINTAINER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400153 AC_MSG_RESULT([Enabling maintainer mode])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500154fi
155,
156MAINTAINER_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400157AC_MSG_RESULT([Disabling maintainer mode by default])
Theodore Ts'o98919bd2005-02-04 10:43:58 -0500158)
159AC_SUBST(MAINTAINER_CMT)
160dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400161dnl handle --enable-symlink-install
162dnl
163AC_ARG_ENABLE([symlink-install],
164[ --enable-symlink-install use symlinks when installing instead of hard links],
165if test "$enableval" = "no"
166then
167 LINK_INSTALL_FLAGS=-f
168 AC_MSG_RESULT([Disabling symlinks for install])
169else
170 LINK_INSTALL_FLAGS=-sf
171 AC_MSG_RESULT([Enabling symlinks for install])
172fi
173,
174LINK_INSTALL_FLAGS=-f
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400175AC_MSG_RESULT([Disabling symlinks for install by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400176)
177AC_SUBST(LINK_INSTALL_FLAGS)
178dnl
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400179dnl handle --enable-relative-symlinks
180dnl
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400181relative_symlink_defined=
182AC_ARG_ENABLE([relative-symlinks],
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400183[ --enable-relative-symlinks use relative symlinks when installing],
184if test "$enableval" = "no"
185then
186 SYMLINK_RELATIVE=
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400187 relative_symlink_defined=yes
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400188 AC_MSG_RESULT([Disabling relative symlinks for install])
189else
190 SYMLINK_RELATIVE=--relative
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400191 relative_symlink_defined=yes
192 AC_MSG_RESULT([Enabling relative symlinks for install])
193fi)
194AC_ARG_ENABLE([symlink-relative-symlinks],,
195if test "$enableval" = "no"
196then
197 SYMLINK_RELATIVE=yes
198 AC_MSG_RESULT([Disabling relative symlinks for install])
199else
200 SYMLINK_RELATIVE=--relative
201 AC_MSG_RESULT([Enabling relative symlinks for install])
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400202fi
203,
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400204if test -z "$relative_symlink_defined"
205then
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400206 SYMLINK_RELATIVE=
207AC_MSG_RESULT([Disabling relative symlinks for install by default])
Theodore Ts'o91d11da2012-09-06 23:01:14 -0400208fi
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400209)
210AC_SUBST(SYMLINK_RELATIVE)
211dnl
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400212dnl handle --enable-symlink-build
213dnl
214AC_ARG_ENABLE([symlink-build],
215[ --enable-symlink-build use symlinks while building instead of hard links],
216if test "$enableval" = "no"
217then
218 LINK_BUILD_FLAGS=
219 AC_MSG_RESULT([Disabling symlinks for build])
220else
221 LINK_BUILD_FLAGS=-s
222 AC_MSG_RESULT([Enabling symlinks for build])
223fi
224,
225LINK_BUILD_FLAGS=
Theodore Ts'o183c73b2012-05-12 23:13:24 -0400226AC_MSG_RESULT([Disabling symlinks for build by default])
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400227)
228AC_SUBST(LINK_BUILD_FLAGS)
229dnl
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400230dnl handle --enable-verbose-makecmds
231dnl
232AC_ARG_ENABLE([verbose-makecmds],
Theodore Ts'o5aa6c3f2010-05-17 19:21:42 -0400233[ --enable-verbose-makecmds enable verbose make command output],
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400234if test "$enableval" = "no"
235then
236 AC_MSG_RESULT([Disabling verbose make commands])
237 E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400238 ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400239 Q=@
240else
241 AC_MSG_RESULT([Enabling verbose make commands])
242 E=@\\#
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400243 ES=\\#
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400244 Q=
245fi
246,
247AC_MSG_RESULT([Disabling verbose make commands])
248E=@echo
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400249ES=echo
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400250Q=@
251)
252AC_SUBST(E)
Theodore Ts'oc1986ec2012-06-13 15:29:13 -0400253AC_SUBST(ES)
Theodore Ts'oc13351f2009-07-02 00:11:17 -0400254AC_SUBST(Q)
255dnl
Theodore Ts'o19178752000-02-11 15:55:07 +0000256dnl handle --enable-compression
257dnl
258AC_ARG_ENABLE([compression],
259[ --enable-compression enable EXPERIMENTAL compression support],
260if test "$enableval" = "no"
261then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400262 AC_MSG_RESULT([Disabling compression support])
Theodore Ts'o19178752000-02-11 15:55:07 +0000263else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400264 AC_DEFINE(ENABLE_COMPRESSION, 1,
265 [Define to 1 if ext2 compression enabled])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400266 AC_MSG_RESULT([Enabling compression support])
267 AC_MSG_WARN([Compression support is experimental])
Theodore Ts'o19178752000-02-11 15:55:07 +0000268fi
269,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400270AC_MSG_RESULT([Disabling compression support by default])
Theodore Ts'o19178752000-02-11 15:55:07 +0000271)
272dnl
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400273dnl handle --enable-htree
274dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400275AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400276AC_ARG_ENABLE([htree],
277[ --enable-htree enable EXPERIMENTAL htree directory support],
278if test "$enableval" = "no"
279then
280 HTREE_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400281 AC_MSG_RESULT([Disabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400282else
283 HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400284 AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400285 AC_MSG_RESULT([Enabling htree directory support])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400286fi
287,
Theodore Ts'o559ca6c2002-08-18 03:48:55 -0400288HTREE_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400289AC_DEFINE(ENABLE_HTREE, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400290AC_MSG_RESULT([Enabling htree directory support by default])
Theodore Ts'o8fdc9982002-06-25 23:26:34 -0400291)
292AC_SUBST(HTREE_CMT)
293dnl
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500294dnl This needs to be before all of the --enable-*-shlibs options
295dnl
296E2_PKG_CONFIG_STATIC=--static
Theodore Ts'o55da9872008-09-02 23:12:38 -0400297LDFLAG_DYNAMIC=
298PRIVATE_LIBS_CMT=
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500299dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000300dnl handle --enable-elf-shlibs
301dnl
302AC_ARG_ENABLE([elf-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000303[ --enable-elf-shlibs select ELF shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000304if test "$enableval" = "no"
305then
306 ELF_CMT=#
307 MAKEFILE_ELF=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400308 AC_MSG_RESULT([Disabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000309else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500310 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000311 ELF_CMT=
312 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
Theodore Ts'of5955dd2000-10-25 02:38:39 +0000313 [case "$host_os" in
314 solaris2.*)
315 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
316 ;;
317 esac]
Theodore Ts'o74becf31997-04-26 14:37:06 +0000318 BINARY_TYPE=elfbin
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000319 LIB_EXT=.so
Theodore Ts'o55da9872008-09-02 23:12:38 -0400320 PRIVATE_LIBS_CMT=#
321 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400322 AC_MSG_RESULT([Enabling ELF shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000323fi
324,
325MAKEFILE_ELF=/dev/null
326ELF_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400327AC_MSG_RESULT([Disabling ELF shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000328)
329AC_SUBST(ELF_CMT)
330AC_SUBST_FILE(MAKEFILE_ELF)
331dnl
332dnl handle --enable-bsd-shlibs
333dnl
334AC_ARG_ENABLE([bsd-shlibs],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000335[ --enable-bsd-shlibs select BSD shared libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000336if test "$enableval" = "no"
337then
338 BSDLIB_CMT=#
339 MAKEFILE_BSDLIB=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400340 AC_MSG_RESULT([Disabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000341else
Theodore Ts'oa4ece352008-01-01 20:05:04 -0500342 E2_PKG_CONFIG_STATIC=
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000343 BSDLIB_CMT=
344 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000345 LIB_EXT=.so
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500346 [case "$host_os" in
Theodore Ts'oaa75ecc2003-03-17 10:01:22 -0500347 darwin*)
Theodore Ts'oe71d8732003-03-14 02:13:48 -0500348 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
349 LIB_EXT=.dylib
350 ;;
351 esac]
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400352 AC_MSG_RESULT([Enabling BSD shared libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000353fi
354,
355MAKEFILE_BSDLIB=/dev/null
356BSDLIB_CMT=#
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400357AC_MSG_RESULT([Disabling BSD shared libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000358)
359AC_SUBST(BSDLIB_CMT)
360AC_SUBST_FILE(MAKEFILE_BSDLIB)
361dnl
362dnl handle --enable-profile
363dnl
364AC_ARG_ENABLE([profile],
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000365[ --enable-profile build profiling libraries],
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000366if test "$enableval" = "no"
367then
368 PROFILE_CMT=#
369 MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400370 AC_MSG_RESULT([Disabling profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000371else
372 PROFILE_CMT=
373 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000374 PROFILED_LIB_EXT=_p.a
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400375 AC_MSG_RESULT([Building profiling libraries])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000376fi
377,
378PROFILE_CMT=#
379MAKEFILE_PROFILE=/dev/null
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400380AC_MSG_RESULT([Disabling profiling libraries by default])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000381)
382AC_SUBST(PROFILE_CMT)
383AC_SUBST_FILE(MAKEFILE_PROFILE)
384dnl
Theodore Ts'ofedfb272014-02-23 00:17:09 -0500385dnl handle --enable-gcov
386dnl
387AC_ARG_ENABLE([gcov],
388[ --enable-gcov build for coverage testing using gcov],
389if test "$enableval" = "yes"
390then
391 CFLAGS="-g -fprofile-arcs -ftest-coverage"
392 LDFLAGS="-fprofile-arcs -ftest-coverage"
393 AC_MSG_RESULT([Enabling gcov support])
394fi
395)
Eric Sandeen2f8d0252014-04-17 17:05:38 -0500396
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000397dnl
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000398dnl Substitute library extensions
399dnl
400AC_SUBST(LIB_EXT)
401AC_SUBST(STATIC_LIB_EXT)
402AC_SUBST(PROFILED_LIB_EXT)
Theodore Ts'o55da9872008-09-02 23:12:38 -0400403AC_SUBST(LDFLAG_DYNAMIC)
404AC_SUBST(PRIVATE_LIBS_CMT)
Theodore Ts'oa4d09611997-04-29 14:28:00 +0000405dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500406dnl handle --enable-jbd-debug
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000407dnl
Theodore Ts'o782bebf2002-11-08 18:46:45 -0500408AC_ARG_ENABLE([jbd-debug],
409[ --enable-jbd-debug enable journal debugging],
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000410if test "$enableval" = "no"
411then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400412 AC_MSG_RESULT([Disabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000413else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400414 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
415 [Define to 1 if debugging ext3/4 journal code])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400416 AC_MSG_RESULT([Enabling journal debugging])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000417fi
418,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400419AC_MSG_RESULT([Disabling journal debugging by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000420)
421dnl
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500422dnl handle --enable-blkid-debug
423dnl
424AC_ARG_ENABLE([blkid-debug],
Theodore Ts'od21ae6c2003-05-05 09:00:24 -0400425[ --enable-blkid-debug enable blkid debugging],
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500426if test "$enableval" = "no"
427then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400428 AC_MSG_RESULT([Disabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500429else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400430 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
431 [Define to 1 if debugging the blkid library])
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400432 AC_MSG_RESULT([Enabling blkid debugging])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500433fi
434,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400435AC_MSG_RESULT([Disabling blkid debugging by default])
Theodore Ts'of0a22d02003-02-22 13:19:53 -0500436)
437dnl
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400438dnl handle --enable-testio-debug
439dnl
440AC_ARG_ENABLE([testio-debug],
Theodore Ts'oaf773652008-09-01 11:27:27 -0400441[ --disable-testio-debug disable the use of the test I/O manager for debugging],
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400442AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
443 [Define to 1 if the testio I/O manager should be enabled])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400444if test "$enableval" = "no"
445then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400446 AC_MSG_RESULT([Disabling testio debugging])
Theodore Ts'oaf773652008-09-01 11:27:27 -0400447 TEST_IO_CMT="#"
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400448else
Theodore Ts'oaf773652008-09-01 11:27:27 -0400449 TEST_IO_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400450 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400451 AC_MSG_RESULT([Enabling testio debugging])
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400452fi
453,
Theodore Ts'oaf773652008-09-01 11:27:27 -0400454AC_MSG_RESULT([Enabling testio debugging by default])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400455AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400456TEST_IO_CMT=
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400457)
Theodore Ts'oaf773652008-09-01 11:27:27 -0400458AC_SUBST(TEST_IO_CMT)
Theodore Ts'o2a29f132003-05-05 12:08:47 -0400459dnl
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100460dnl handle --disable-libuuid
461dnl
462PKG_PROG_PKG_CONFIG
463LIBUUID=
464DEPLIBUUID=
465STATIC_LIBUUID=
466DEPSTATIC_LIBUUID=
467PROFILED_LIBUUID=
468DEPPROFILED_LIBUUID=
469UUID_CMT=
470AC_ARG_ENABLE([libuuid],
471[ --disable-libuuid do not build private uuid library],
472if test "$enableval" = "no"
473then
474 if test -z "$PKG_CONFIG"; then
475 AC_MSG_ERROR([pkg-config not installed; please install it.])
476 fi
477
478 AC_CHECK_LIB(uuid, uuid_generate,
479 [LIBUUID=`$PKG_CONFIG --libs uuid`;
480 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
Theodore Ts'o2d7583b2014-07-05 00:27:02 -0400481 [AC_MSG_ERROR([external uuid library not found])])
Scott James Remnant39fd3d42009-05-14 13:03:25 +0100482 UUID_CMT=#
483 AC_MSG_RESULT([Disabling private uuid library])
484else
485 LIBUUID='$(LIB)/libuuid'$LIB_EXT
486 DEPLIBUUID=$LIBUUID
487 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
488 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
489 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
490 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
491 AC_MSG_RESULT([Enabling private uuid library])
492fi
493,
494LIBUUID='$(LIB)/libuuid'$LIB_EXT
495DEPLIBUUID=$LIBUUID
496STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
497DEPSTATIC_LIBUUID=$STATIC_LIBUUID
498PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
499DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
500AC_MSG_RESULT([Enabling private uuid library by default])
501)
502AC_SUBST(LIBUUID)
503AC_SUBST(DEPLIBUUID)
504AC_SUBST(STATIC_LIBUUID)
505AC_SUBST(DEPSTATIC_LIBUUID)
506AC_SUBST(PROFILED_LIBUUID)
507AC_SUBST(DEPPROFILED_LIBUUID)
508AC_SUBST(UUID_CMT)
509dnl
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400510dnl handle --disable-libblkid
511dnl
512PKG_PROG_PKG_CONFIG
513LIBBLKID=
514DEPLIBBLKID=
515STATIC_LIBBLKID=
516DEPSTATIC_LIBBLKID=
517PROFILED_LIBBLKID=
518DEPPROFILED_LIBBLKID=
519BLKID_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400520AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400521AC_ARG_ENABLE([libblkid],
522[ --disable-libblkid do not build private blkid library],
523if test "$enableval" = "no"
524then
525 if test -z "$PKG_CONFIG"; then
526 AC_MSG_ERROR([pkg-config not installed; please install it.])
527 fi
528
529 AC_CHECK_LIB(blkid, blkid_get_cache,
530 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
531 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
Theodore Ts'o2d7583b2014-07-05 00:27:02 -0400532 [AC_MSG_ERROR([external blkid library not found])], -luuid)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400533 BLKID_CMT=#
534 AC_MSG_RESULT([Disabling private blkid library])
535else
536 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
537 DEPLIBBLKID=$LIBBLKID
538 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
539 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
540 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
541 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400542 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400543 AC_MSG_RESULT([Enabling private blkid library])
544fi
545,
546LIBBLKID='$(LIB)/libblkid'$LIB_EXT
547DEPLIBBLKID=$LIBBLKID
548STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
549DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
550PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
551DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400552AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400553AC_MSG_RESULT([Enabling private blkid library by default])
554)
555AC_SUBST(LIBBLKID)
556AC_SUBST(DEPLIBBLKID)
557AC_SUBST(STATIC_LIBBLKID)
558AC_SUBST(DEPSTATIC_LIBBLKID)
559AC_SUBST(PROFILED_LIBBLKID)
560AC_SUBST(DEPPROFILED_LIBBLKID)
561AC_SUBST(BLKID_CMT)
562dnl
Theodore Ts'o7becb202011-11-14 10:40:43 -0500563dnl handle --enable-quota
Aditya Kalif239fef2011-07-20 11:40:02 -0700564dnl
Eric Sandeenf5589f42013-10-14 08:54:15 -0400565QUOTA_MAN_COMMENT='.\"'
Niu Yawei43075b42013-10-14 09:49:27 -0400566QUOTA_CMT=
Eric Sandeenf5589f42013-10-14 08:54:15 -0400567AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700568PKG_PROG_PKG_CONFIG
Theodore Ts'o7becb202011-11-14 10:40:43 -0500569AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
570AC_ARG_ENABLE([quota],
Eric Sandeen7b8912e2012-11-27 12:21:56 -0600571[ --enable-quota enable quota support],
Aditya Kalif239fef2011-07-20 11:40:02 -0700572if test "$enableval" = "no"
573then
Niu Yawei43075b42013-10-14 09:49:27 -0400574 QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500575 AC_MSG_RESULT([Disabling quota support])
Aditya Kalif239fef2011-07-20 11:40:02 -0700576else
Niu Yawei43075b42013-10-14 09:49:27 -0400577 QUOTA_CMT=
Theodore Ts'o7becb202011-11-14 10:40:43 -0500578 AC_DEFINE(CONFIG_QUOTA, 1)
579 AC_MSG_RESULT([Enabling quota support])
Eric Sandeenf5589f42013-10-14 08:54:15 -0400580 QUOTA_MAN_COMMENT=""
581 AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700582fi
583,
Niu Yawei43075b42013-10-14 09:49:27 -0400584QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500585AC_MSG_RESULT([Disabling quota support by default])
586)
587dnl
588dnl Define stuff expected for quota library
589dnl
Aditya Kalif239fef2011-07-20 11:40:02 -0700590LIBQUOTA='$(LIB)/libquota'$LIB_EXT
591DEPLIBQUOTA=$LIBQUOTA
592STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
593DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
594PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
595DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
Aditya Kalif239fef2011-07-20 11:40:02 -0700596AC_SUBST(LIBQUOTA)
597AC_SUBST(DEPLIBQUOTA)
598AC_SUBST(STATIC_LIBQUOTA)
599AC_SUBST(DEPSTATIC_LIBQUOTA)
600AC_SUBST(PROFILED_LIBQUOTA)
601AC_SUBST(DEPPROFILED_LIBQUOTA)
602AC_SUBST(QUOTA_CMT)
603dnl
Theodore Ts'o3df60142013-06-16 16:14:40 -0400604dnl handle --disable-backtrace
605dnl
606AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
607AC_ARG_ENABLE([backtrace],
608[ --disable-backtrace disable use backtrace],
609if test "$enableval" = "no"
610then
611 AC_MSG_RESULT([Disabling use of backtrace])
612 AC_DEFINE(DISABLE_BACKTRACE, 1)
613else
614 AC_MSG_RESULT([Enabling use of backtrace])
615fi
616,
617AC_MSG_RESULT([Enabling use of backtrace by default])
618)
619dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000620dnl handle --enable-debugfs
621dnl
622AC_ARG_ENABLE([debugfs],
623[ --disable-debugfs disable support of debugfs program],
624if test "$enableval" = "no"
625then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400626 AC_MSG_RESULT([Disabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000627 DEBUGFS_CMT="#"
628else
629 DEBUGFS_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400630 AC_MSG_RESULT([Enabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000631fi
632,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400633AC_MSG_RESULT([Enabling debugfs support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000634DEBUGFS_CMT=
635)
636AC_SUBST(DEBUGFS_CMT)
637dnl
638dnl handle --enable-imager
639dnl
640AC_ARG_ENABLE([imager],
641[ --disable-imager disable support of e2image program],
642if test "$enableval" = "no"
643then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400644 AC_MSG_RESULT([Disabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000645 IMAGER_CMT="#"
646else
647 IMAGER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400648 AC_MSG_RESULT([Enabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000649fi
650,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400651AC_MSG_RESULT([Enabling e2image support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000652IMAGER_CMT=
653)
654AC_SUBST(IMAGER_CMT)
655dnl
656dnl handle --enable-resizer
657dnl
658AC_ARG_ENABLE([resizer],
659[ --disable-resizer disable support of e2resize program],
660if test "$enableval" = "no"
661then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400662 AC_MSG_RESULT([Disabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000663 RESIZER_CMT="#"
664else
665 RESIZER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400666 AC_MSG_RESULT([Enabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000667fi
668,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400669AC_MSG_RESULT([Enabling e2resize support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000670RESIZER_CMT=
671)
672AC_SUBST(RESIZER_CMT)
673dnl
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500674dnl handle --enable-defrag
675dnl
676AC_ARG_ENABLE([defrag],
677[ --disable-defrag disable support of e4defrag program],
678if test "$enableval" = "no"
679then
680 AC_MSG_RESULT([Disabling e4defrag support])
681 DEFRAG_CMT="#"
682else
683 DEFRAG_CMT=
684 AC_MSG_RESULT([Enabling e4defrag support])
685fi
686,
Theodore Ts'o6c59a662014-01-04 20:44:29 -0500687if test -z "$WITH_DIET_LIBC"
688then
689 AC_MSG_RESULT([Enabling e4defrag support by default])
690 DEFRAG_CMT=
691else
692 AC_MSG_RESULT([Disabling e4defrag support by default])
693 DEFRAG_CMT="#"
694fi
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500695)
696AC_SUBST(DEFRAG_CMT)
697dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000698dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
699dnl
700AC_ARG_ENABLE([fsck],
701[ --enable-fsck build fsck wrapper program],
702[if test "$enableval" = "no"
703then
704 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400705 AC_MSG_RESULT([Not building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000706else
707 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400708 AC_MSG_RESULT([Building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000709fi]
710,
711[case "$host_os" in
Theodore Ts'oe3632402004-05-04 19:39:54 -0400712 gnu*)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000713 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400714 AC_MSG_RESULT([Not building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000715 ;;
716 *)
717 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400718 AC_MSG_RESULT([Building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000719esac]
720)
721AC_SUBST(FSCK_PROG)
722AC_SUBST(FSCK_MAN)
723dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400724dnl See whether to install the `e2initrd-helper' program
725dnl
726AC_ARG_ENABLE([e2initrd-helper],
727[ --enable-e2initrd-helper build e2initrd-helper program],
728[if test "$enableval" = "no"
729then
730 E2INITRD_PROG='' E2INITRD_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400731 AC_MSG_RESULT([Not building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400732else
733 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400734 AC_MSG_RESULT([Building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400735fi]
736,
737E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400738AC_MSG_RESULT([Building e2initrd helper by default])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400739)
740AC_SUBST(E2INITRD_PROG)
741AC_SUBST(E2INITRD_MAN)
Karel Zak4db2f592006-03-08 14:17:28 -0500742dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400743dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000744dnl
Theodore Ts'o32493942007-12-31 10:45:01 -0500745AC_ARG_ENABLE([tls],
746[ --disable-tls disable use of thread local support],
747[if test "$enableval" = "no"
748then
749 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400750 AC_MSG_RESULT([Disabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500751else
752 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400753 AC_MSG_RESULT([Enabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500754fi]
755,
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400756if test -n "$WITH_DIET_LIBC"
757then
758 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400759 AC_MSG_RESULT([Diet libc does not support thread local support])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400760else
761 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400762 AC_MSG_RESULT([Try using thread local support by default])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400763fi
Theodore Ts'o32493942007-12-31 10:45:01 -0500764)
765if test "$try_tls" = "yes"
766then
767AX_TLS
768fi
769dnl
770dnl
771dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400772AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500773AC_ARG_ENABLE([uuidd],
774[ --disable-uuidd disable building the uuid daemon],
775[if test "$enableval" = "no"
776then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400777 AC_MSG_RESULT([Not building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500778 UUIDD_CMT="#"
779else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400780 AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500781 UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400782 AC_MSG_RESULT([Building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500783fi]
784,
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400785AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500786UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400787AC_MSG_RESULT([Building uuidd by default])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500788)
789AC_SUBST(UUIDD_CMT)
790dnl
791dnl
792dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000793MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
794AC_SUBST_FILE(MAKEFILE_LIBRARY)
795dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000796dnl Add internationalization support, using gettext.
797dnl
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500798GETTEXT_PACKAGE=e2fsprogs
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000799PACKAGE=e2fsprogs
800VERSION="$E2FSPROGS_VERSION"
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500801VERSION=0.14.1
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400802AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
803AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500804AC_SUBST(GETTEXT_PACKAGE)
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000805AC_SUBST(PACKAGE)
806AC_SUBST(VERSION)
807
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000808AM_GNU_GETTEXT
809dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000810dnl End of configuration options
811dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +0000812AC_SUBST(BINARY_TYPE)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000813AC_PROG_MAKE_SET
Theodore Ts'obcb915b2009-07-02 18:19:10 -0400814CHECK_GNU_MAKE
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000815AC_PATH_PROG(LN, ln, ln)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000816AC_PROG_LN_S
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000817AC_PATH_PROG(MV, mv, mv)
818AC_PATH_PROG(CP, cp, cp)
819AC_PATH_PROG(RM, rm, rm)
820AC_PATH_PROG(CHMOD, chmod, :)
Theodore Ts'o32237012005-01-17 19:13:39 -0500821AC_PROG_AWK
822AC_PROG_EGREP
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000823AC_PATH_PROG(SED, sed, sed)
Theodore Ts'o9d564f71999-07-03 20:25:58 +0000824AC_PATH_PROG(PERL, perl, perl)
Theodore Ts'o250f79f2001-05-19 22:02:22 +0000825AC_PATH_PROG(LDCONFIG, ldconfig, :)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000826AC_CHECK_TOOL(AR, ar, ar)
827AC_CHECK_TOOL(RANLIB, ranlib, :)
828AC_CHECK_TOOL(STRIP, strip, :)
Manish Katiyar7321d942008-04-14 17:20:03 +0530829AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
830if test "_$MAKEINFO" = "_"; then
831 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
832else
833 case "$MAKEINFO" in
834 */missing.*)
835 AC_MSG_WARN([
836*** Makeinfo is missing. Info documentation will not be built.])
837 ;;
838 *)
839 ;;
840 esac
841fi
842AC_SUBST(MAKEINFO)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000843AC_PROG_INSTALL
Theodore Ts'o6c133521999-07-03 20:37:03 +0000844# See if we need a separate native compiler.
845if test $cross_compiling = no; then
846 BUILD_CC="$CC"
847 AC_SUBST(BUILD_CC)
848else
849 AC_CHECK_PROGS(BUILD_CC, gcc cc)
850fi
Mike Frysinger677fc912012-03-06 20:13:54 -0500851AC_CHECK_HEADERS(m4_flatten([
852 dirent.h
853 errno.h
854 execinfo.h
855 getopt.h
856 malloc.h
857 mntent.h
858 paths.h
859 semaphore.h
860 setjmp.h
861 signal.h
862 stdarg.h
863 stdint.h
864 stdlib.h
865 termios.h
866 termio.h
867 unistd.h
868 utime.h
869 linux/falloc.h
870 linux/fd.h
871 linux/major.h
Kazuya Miofbabd5c2013-12-16 00:48:12 -0500872 linux/loop.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500873 net/if_dl.h
874 netinet/in.h
875 sys/disklabel.h
Andreas Dilger51050542014-06-11 12:59:05 -0600876 sys/disk.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500877 sys/file.h
878 sys/ioctl.h
879 sys/mkdev.h
880 sys/mman.h
Andreas Dilger51050542014-06-11 12:59:05 -0600881 sys/mount.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500882 sys/prctl.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500883 sys/resource.h
884 sys/select.h
885 sys/socket.h
886 sys/sockio.h
887 sys/stat.h
888 sys/syscall.h
889 sys/sysmacros.h
890 sys/time.h
891 sys/types.h
892 sys/un.h
893 sys/wait.h
894]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500895AC_CHECK_HEADERS(net/if.h,,,
896[[
897#if HAVE_SYS_TYPES_H
898#include <sys/types.h>
899#endif
900#if HAVE_SYS_SOCKET
901#include <sys/socket.h>
902#endif
903]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000904AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400905dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
906dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400907AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
908 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500909 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500910AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400911dnl Check to see if ssize_t was declared
912AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
913 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500914 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000915dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000916dnl Check to see if llseek() is declared in unistd.h. On some libc's
917dnl it is, and on others it isn't..... Thank you glibc developers....
918dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400919AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
920 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500921 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000922dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000923dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
924dnl are so convoluted that I can't tell whether it will always be defined,
925dnl and if it isn't defined while lseek64 is defined in the library,
926dnl disaster will strike.
927dnl
928dnl Warning! Use of --enable-gcc-wall may throw off this test.
929dnl
930dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400931AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
932 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500933 [#define _LARGEFILE_SOURCE
934 #define _LARGEFILE64_SOURCE
935 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000936dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000937dnl Word sizes...
938dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000939AC_CHECK_SIZEOF(short)
940AC_CHECK_SIZEOF(int)
941AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000942AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500943AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000944SIZEOF_SHORT=$ac_cv_sizeof_short
945SIZEOF_INT=$ac_cv_sizeof_int
946SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000947SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500948SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000949AC_SUBST(SIZEOF_SHORT)
950AC_SUBST(SIZEOF_INT)
951AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000952AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -0500953AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +0000954AC_C_BIGENDIAN
Chen Qi91f04682014-05-05 21:08:42 -0400955if test $cross_compiling = no; then
956 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
957else
958 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
959fi
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400960ASM_TYPES_HEADER=./asm_types.h
961AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000962dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -0400963dnl Save the configuration #defines needed for the public ext2fs.h
964dnl header file
965dnl
966echo "/* These defines are needed for the public ext2fs.h header file */" \
967 > public_config.h
968if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
969 uniq tmp_config.$$ >> public_config.h
970else
971 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
972fi
973if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
974 uniq tmp_config.$$ >> public_config.h
975else
976 echo "#undef WORDS_BIGENDIAN" >> public_config.h
977fi
978rm -f tmp_config.$$
979PUBLIC_CONFIG_HEADER=./public_config.h
980AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
981dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400982dnl See if we have inttypes.h and if intptr_t is defined
983dnl
984AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -0500985AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400986dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000987dnl See if struct stat has a st_flags field, in which case we can get file
988dnl flags somewhat portably. Also check for the analogous setter, chflags().
989dnl
990AC_MSG_CHECKING(whether struct stat has a st_flags field)
991AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
992 AC_TRY_COMPILE([#include <sys/stat.h>],
993 [struct stat stat; stat.st_flags = 0;],
994 [e2fsprogs_cv_struct_st_flags=yes],
995 [e2fsprogs_cv_struct_st_flags=no]))
996AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
997if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +0000998 AC_MSG_CHECKING(whether st_flags field is useful)
999 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1000 AC_TRY_COMPILE([#include <sys/stat.h>],
1001 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1002 [e2fsprogs_cv_struct_st_flags_immut=yes],
1003 [e2fsprogs_cv_struct_st_flags_immut=no]))
1004 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1005 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001006 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1007 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001008 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001009fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001010dnl
1011dnl Check for the presence of SA_LEN
1012dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001013AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001014 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1015 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001016 [#include <sys/types.h>
1017 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001018dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001019dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1020dnl the system-provided blkid library
1021dnl
1022if test -n "$BLKID_CMT"; then
1023 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1024fi
1025dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001026AC_CHECK_FUNCS(m4_flatten([
1027 __secure_getenv
1028 backtrace
1029 blkid_probe_get_topology
Theodore Ts'o2de26282014-05-05 01:22:22 -04001030 blkid_probe_enable_partitions
Mike Frysinger677fc912012-03-06 20:13:54 -05001031 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001032 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001033 fallocate
1034 fallocate64
1035 fchown
1036 fdatasync
1037 fstat64
1038 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001039 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001040 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001041 getdtablesize
1042 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001043 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001044 getrlimit
1045 getrusage
1046 jrand48
1047 llseek
1048 lseek64
1049 mallinfo
1050 mbstowcs
1051 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001052 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001053 mmap
1054 msync
1055 nanosleep
1056 open64
1057 pathconf
1058 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001059 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001060 posix_memalign
1061 prctl
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001062 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001063 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001064 setresgid
1065 setresuid
1066 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001067 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001068 strcasecmp
1069 strdup
1070 strnlen
1071 strptime
1072 strtoull
1073 sync_file_range
1074 sysconf
1075 usleep
1076 utime
1077 valloc
1078]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001079dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001080dnl Check to see if -lsocket is required (solaris) to make something
1081dnl that uses socket() to compile; this is needed for the UUID library
1082dnl
1083SOCKET_LIB=''
1084AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1085AC_SUBST(SOCKET_LIB)
1086dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001087dnl See if optreset exists
1088dnl
1089AC_MSG_CHECKING(for optreset)
1090AC_CACHE_VAL(ac_cv_have_optreset,
1091[AC_EGREP_HEADER(optreset, unistd.h,
1092 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1093AC_MSG_RESULT($ac_cv_have_optreset)
1094if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001095 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001096fi
1097dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001098dnl Test for sem_init, and which library it might require:
1099dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001100AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001101SEM_INIT_LIB=''
1102AC_CHECK_FUNC(sem_init, ,
1103 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001104 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001105 SEM_INIT_LIB=-lpthread,
1106 AC_CHECK_LIB(rt, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001107 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001108 SEM_INIT_LIB=-lrt,
1109 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001110 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001111 SEM_INIT_LIB=-lposix4))))dnl
1112AC_SUBST(SEM_INIT_LIB)
1113dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001114dnl Check for unified diff
1115dnl
1116AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001117if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001118 UNI_DIFF_OPTS=-u
1119else
1120 UNI_DIFF_OPTS=-c
1121fi
1122AC_MSG_RESULT($UNI_DIFF_OPTS)
1123AC_SUBST(UNI_DIFF_OPTS)
1124dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001125dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001126dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001127case "$host_os" in
1128linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001129 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001130 ;;
1131esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001132dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001133dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001134dnl
1135LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001136CYGWIN_CMT="#"
1137UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001138case "$host_os" in
1139linux*)
1140 LINUX_CMT=
1141 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001142cygwin)
1143 CYGWIN_CMT=
1144 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001145 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001146esac
1147AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001148AC_SUBST(CYGWIN_CMT)
1149AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001150dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001151dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001152dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001153case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001154linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001155 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1156 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001157 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001158 fi
1159 ;;
1160esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001161dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001162dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001163dnl
1164case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001165linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001166 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001167 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001168 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001169 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001170 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001171 mandir=/usr/share/man
1172 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001173 fi
1174;;
1175esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001176if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001177 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001178 root_prefix="$ac_default_prefix"
1179 else
1180 root_prefix="$prefix"
1181 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001182 root_bindir=$bindir
1183 root_sbindir=$sbindir
1184 root_libdir=$libdir
1185 root_sysconfdir=$sysconfdir
1186else
1187 root_bindir='${root_prefix}/bin'
1188 root_sbindir='${root_prefix}/sbin'
1189 root_libdir='${root_prefix}/lib'
1190 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001191fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001192if test "$bindir" != '${exec_prefix}/bin'; then
1193 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001194 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001195fi
1196if test "$sbindir" != '${exec_prefix}/sbin'; then
1197 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001198 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001199fi
1200if test "$libdir" != '${exec_prefix}/lib'; then
1201 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001202 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001203fi
1204if test "$sysconfdir" != '${prefix}/etc'; then
1205 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001206 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001207fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001208AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001209AC_SUBST(root_bindir)
1210AC_SUBST(root_sbindir)
1211AC_SUBST(root_libdir)
1212AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001213dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001214dnl Allow specification of the multiarch arch
1215dnl
1216AC_ARG_WITH([multiarch],
1217[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001218if test "$withval" = "lib64"; then
1219 libdir=/usr/lib64
1220 root_libdir=/lib64
1221else
1222 libdir=$libdir/$withval
1223 root_libdir=$root_libdir/$withval
1224fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001225)dnl
1226dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001227dnl See if -static works. This could fail if the linker does not
1228dnl support -static, or if required external libraries are not available
1229dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001230dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001231AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001232AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1233[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1234AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1235 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1236LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001237dnl
1238dnl Regardless of how the test turns out, Solaris doesn't handle -static
1239dnl This is caused by the socket library requiring the nsl library, which
1240dnl requires the -dl library, which only works for dynamically linked
1241dnl programs. It basically means you can't have statically linked programs
1242dnl which use the network under Solaris.
1243dnl
1244case "$host_os" in
1245solaris2.*)
1246 ac_cv_e2fsprogs_use_static=no
1247;;
1248esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001249AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001250LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001251if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001252 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001253fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001254AC_SUBST(LDFLAG_STATIC)
1255dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001256dnl Work around mysterious Darwin / GNU libintl problem
1257dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1258dnl Apple hacked gcc somehow?)
1259dnl
1260case "$host_os" in
1261darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001262 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001263 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1264 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001265 ;;
1266esac
1267dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001268dnl Make the ss and et directories work correctly.
1269dnl
1270SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1271ET_DIR=`cd ${srcdir}/lib/et; pwd`
1272AC_SUBST(SS_DIR)
1273AC_SUBST(ET_DIR)
1274dnl
1275dnl Only try to run the test suite if we're not cross compiling.
1276dnl
1277if test "$cross_compiling" = yes ; then
1278 DO_TEST_SUITE=
1279else
1280 DO_TEST_SUITE=check
1281fi
1282AC_SUBST(DO_TEST_SUITE)
1283dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001284dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001285dnl
1286INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1287if test -n "$CPPFLAGS" ; then
1288 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001289fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001290if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1291 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1292fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001293if test -n "$WITH_DIET_LIBC" ; then
1294 INCLUDES="$INCLUDES -D_REENTRANT"
1295fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001296AC_SUBST(INCLUDES)
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001297dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001298dnl Build CFLAGS
1299dnl
1300if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001301 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001302 BUILD_LDFLAGS="$LDFLAGS"
1303else
1304 BUILD_CFLAGS=
1305 BUILD_LDFLAGS=
1306fi
1307AC_SUBST(BUILD_CFLAGS)
1308AC_SUBST(BUILD_LDFLAGS)
1309dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001310dnl Make our output files, being sure that we create the some miscellaneous
1311dnl directories
1312dnl
1313test -d lib || mkdir lib
1314test -d include || mkdir include
1315test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001316test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001317for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001318 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001319 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1320 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001321 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001322 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001323 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1324 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001325 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001326 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001327 resize/Makefile doc/Makefile intl/Makefile \
1328 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001329 if test -d `dirname ${srcdir}/$i` ; then
1330 outlist="$outlist $i"
1331 fi
1332done
1333AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001334if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi