blob: b82f64e085207bcb70b8310e461876a89eac56bb [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`],
481 [AC_MSG_ERROR([external uuid library not found])],
482 [$LIBUUID])
483 UUID_CMT=#
484 AC_MSG_RESULT([Disabling private uuid library])
485else
486 LIBUUID='$(LIB)/libuuid'$LIB_EXT
487 DEPLIBUUID=$LIBUUID
488 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
489 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
490 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
491 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
492 AC_MSG_RESULT([Enabling private uuid library])
493fi
494,
495LIBUUID='$(LIB)/libuuid'$LIB_EXT
496DEPLIBUUID=$LIBUUID
497STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
498DEPSTATIC_LIBUUID=$STATIC_LIBUUID
499PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
500DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
501AC_MSG_RESULT([Enabling private uuid library by default])
502)
503AC_SUBST(LIBUUID)
504AC_SUBST(DEPLIBUUID)
505AC_SUBST(STATIC_LIBUUID)
506AC_SUBST(DEPSTATIC_LIBUUID)
507AC_SUBST(PROFILED_LIBUUID)
508AC_SUBST(DEPPROFILED_LIBUUID)
509AC_SUBST(UUID_CMT)
510dnl
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400511dnl handle --disable-libblkid
512dnl
513PKG_PROG_PKG_CONFIG
514LIBBLKID=
515DEPLIBBLKID=
516STATIC_LIBBLKID=
517DEPSTATIC_LIBBLKID=
518PROFILED_LIBBLKID=
519DEPPROFILED_LIBBLKID=
520BLKID_CMT=
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400521AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400522AC_ARG_ENABLE([libblkid],
523[ --disable-libblkid do not build private blkid library],
524if test "$enableval" = "no"
525then
526 if test -z "$PKG_CONFIG"; then
527 AC_MSG_ERROR([pkg-config not installed; please install it.])
528 fi
529
530 AC_CHECK_LIB(blkid, blkid_get_cache,
531 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
532 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
533 [AC_MSG_ERROR([external blkid library not found])],
534 [$LIBBLKID])
535 BLKID_CMT=#
536 AC_MSG_RESULT([Disabling private blkid library])
537else
538 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
539 DEPLIBBLKID=$LIBBLKID
540 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
541 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
542 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
543 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400544 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400545 AC_MSG_RESULT([Enabling private blkid library])
546fi
547,
548LIBBLKID='$(LIB)/libblkid'$LIB_EXT
549DEPLIBBLKID=$LIBBLKID
550STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
551DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
552PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
553DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400554AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
Theodore Ts'o14b596d2009-04-22 09:18:30 -0400555AC_MSG_RESULT([Enabling private blkid library by default])
556)
557AC_SUBST(LIBBLKID)
558AC_SUBST(DEPLIBBLKID)
559AC_SUBST(STATIC_LIBBLKID)
560AC_SUBST(DEPSTATIC_LIBBLKID)
561AC_SUBST(PROFILED_LIBBLKID)
562AC_SUBST(DEPPROFILED_LIBBLKID)
563AC_SUBST(BLKID_CMT)
564dnl
Theodore Ts'o7becb202011-11-14 10:40:43 -0500565dnl handle --enable-quota
Aditya Kalif239fef2011-07-20 11:40:02 -0700566dnl
Eric Sandeenf5589f42013-10-14 08:54:15 -0400567QUOTA_MAN_COMMENT='.\"'
Niu Yawei43075b42013-10-14 09:49:27 -0400568QUOTA_CMT=
Eric Sandeenf5589f42013-10-14 08:54:15 -0400569AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700570PKG_PROG_PKG_CONFIG
Theodore Ts'o7becb202011-11-14 10:40:43 -0500571AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
572AC_ARG_ENABLE([quota],
Eric Sandeen7b8912e2012-11-27 12:21:56 -0600573[ --enable-quota enable quota support],
Aditya Kalif239fef2011-07-20 11:40:02 -0700574if test "$enableval" = "no"
575then
Niu Yawei43075b42013-10-14 09:49:27 -0400576 QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500577 AC_MSG_RESULT([Disabling quota support])
Aditya Kalif239fef2011-07-20 11:40:02 -0700578else
Niu Yawei43075b42013-10-14 09:49:27 -0400579 QUOTA_CMT=
Theodore Ts'o7becb202011-11-14 10:40:43 -0500580 AC_DEFINE(CONFIG_QUOTA, 1)
581 AC_MSG_RESULT([Enabling quota support])
Eric Sandeenf5589f42013-10-14 08:54:15 -0400582 QUOTA_MAN_COMMENT=""
583 AC_SUBST(QUOTA_MAN_COMMENT)
Aditya Kalif239fef2011-07-20 11:40:02 -0700584fi
585,
Niu Yawei43075b42013-10-14 09:49:27 -0400586QUOTA_CMT=#
Theodore Ts'o7becb202011-11-14 10:40:43 -0500587AC_MSG_RESULT([Disabling quota support by default])
588)
589dnl
590dnl Define stuff expected for quota library
591dnl
Aditya Kalif239fef2011-07-20 11:40:02 -0700592LIBQUOTA='$(LIB)/libquota'$LIB_EXT
593DEPLIBQUOTA=$LIBQUOTA
594STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
595DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
596PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
597DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
Aditya Kalif239fef2011-07-20 11:40:02 -0700598AC_SUBST(LIBQUOTA)
599AC_SUBST(DEPLIBQUOTA)
600AC_SUBST(STATIC_LIBQUOTA)
601AC_SUBST(DEPSTATIC_LIBQUOTA)
602AC_SUBST(PROFILED_LIBQUOTA)
603AC_SUBST(DEPPROFILED_LIBQUOTA)
604AC_SUBST(QUOTA_CMT)
605dnl
Theodore Ts'o3df60142013-06-16 16:14:40 -0400606dnl handle --disable-backtrace
607dnl
608AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
609AC_ARG_ENABLE([backtrace],
610[ --disable-backtrace disable use backtrace],
611if test "$enableval" = "no"
612then
613 AC_MSG_RESULT([Disabling use of backtrace])
614 AC_DEFINE(DISABLE_BACKTRACE, 1)
615else
616 AC_MSG_RESULT([Enabling use of backtrace])
617fi
618,
619AC_MSG_RESULT([Enabling use of backtrace by default])
620)
621dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000622dnl handle --enable-debugfs
623dnl
624AC_ARG_ENABLE([debugfs],
625[ --disable-debugfs disable support of debugfs program],
626if test "$enableval" = "no"
627then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400628 AC_MSG_RESULT([Disabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000629 DEBUGFS_CMT="#"
630else
631 DEBUGFS_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400632 AC_MSG_RESULT([Enabling debugfs support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000633fi
634,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400635AC_MSG_RESULT([Enabling debugfs support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000636DEBUGFS_CMT=
637)
638AC_SUBST(DEBUGFS_CMT)
639dnl
640dnl handle --enable-imager
641dnl
642AC_ARG_ENABLE([imager],
643[ --disable-imager disable support of e2image program],
644if test "$enableval" = "no"
645then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400646 AC_MSG_RESULT([Disabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000647 IMAGER_CMT="#"
648else
649 IMAGER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400650 AC_MSG_RESULT([Enabling e2image support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000651fi
652,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400653AC_MSG_RESULT([Enabling e2image support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000654IMAGER_CMT=
655)
656AC_SUBST(IMAGER_CMT)
657dnl
658dnl handle --enable-resizer
659dnl
660AC_ARG_ENABLE([resizer],
661[ --disable-resizer disable support of e2resize program],
662if test "$enableval" = "no"
663then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400664 AC_MSG_RESULT([Disabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000665 RESIZER_CMT="#"
666else
667 RESIZER_CMT=
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400668 AC_MSG_RESULT([Enabling e2resize support])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000669fi
670,
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400671AC_MSG_RESULT([Enabling e2resize support by default])
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000672RESIZER_CMT=
673)
674AC_SUBST(RESIZER_CMT)
675dnl
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500676dnl handle --enable-defrag
677dnl
678AC_ARG_ENABLE([defrag],
679[ --disable-defrag disable support of e4defrag program],
680if test "$enableval" = "no"
681then
682 AC_MSG_RESULT([Disabling e4defrag support])
683 DEFRAG_CMT="#"
684else
685 DEFRAG_CMT=
686 AC_MSG_RESULT([Enabling e4defrag support])
687fi
688,
Theodore Ts'o6c59a662014-01-04 20:44:29 -0500689if test -z "$WITH_DIET_LIBC"
690then
691 AC_MSG_RESULT([Enabling e4defrag support by default])
692 DEFRAG_CMT=
693else
694 AC_MSG_RESULT([Disabling e4defrag support by default])
695 DEFRAG_CMT="#"
696fi
Theodore Ts'o8d9c50c2010-12-24 15:19:44 -0500697)
698AC_SUBST(DEFRAG_CMT)
699dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000700dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
701dnl
702AC_ARG_ENABLE([fsck],
703[ --enable-fsck build fsck wrapper program],
704[if test "$enableval" = "no"
705then
706 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400707 AC_MSG_RESULT([Not building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000708else
709 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400710 AC_MSG_RESULT([Building fsck wrapper])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000711fi]
712,
713[case "$host_os" in
Theodore Ts'oe3632402004-05-04 19:39:54 -0400714 gnu*)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000715 FSCK_PROG='' FSCK_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400716 AC_MSG_RESULT([Not building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000717 ;;
718 *)
719 FSCK_PROG=fsck FSCK_MAN=fsck.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400720 AC_MSG_RESULT([Building fsck wrapper by default])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000721esac]
722)
723AC_SUBST(FSCK_PROG)
724AC_SUBST(FSCK_MAN)
725dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400726dnl See whether to install the `e2initrd-helper' program
727dnl
728AC_ARG_ENABLE([e2initrd-helper],
729[ --enable-e2initrd-helper build e2initrd-helper program],
730[if test "$enableval" = "no"
731then
732 E2INITRD_PROG='' E2INITRD_MAN=''
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400733 AC_MSG_RESULT([Not building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400734else
735 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400736 AC_MSG_RESULT([Building e2initrd helper])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400737fi]
738,
739E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400740AC_MSG_RESULT([Building e2initrd helper by default])
Theodore Ts'o5d407732004-09-18 14:53:14 -0400741)
742AC_SUBST(E2INITRD_PROG)
743AC_SUBST(E2INITRD_MAN)
Karel Zak4db2f592006-03-08 14:17:28 -0500744dnl
Theodore Ts'o5d407732004-09-18 14:53:14 -0400745dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000746dnl
Theodore Ts'o32493942007-12-31 10:45:01 -0500747AC_ARG_ENABLE([tls],
748[ --disable-tls disable use of thread local support],
749[if test "$enableval" = "no"
750then
751 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400752 AC_MSG_RESULT([Disabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500753else
754 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400755 AC_MSG_RESULT([Enabling thread local support])
Theodore Ts'o32493942007-12-31 10:45:01 -0500756fi]
757,
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400758if test -n "$WITH_DIET_LIBC"
759then
760 try_tls=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400761 AC_MSG_RESULT([Diet libc does not support thread local support])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400762else
763 try_tls="yes"
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400764 AC_MSG_RESULT([Try using thread local support by default])
Theodore Ts'oeafba6c2008-07-10 10:21:42 -0400765fi
Theodore Ts'o32493942007-12-31 10:45:01 -0500766)
767if test "$try_tls" = "yes"
768then
769AX_TLS
770fi
771dnl
772dnl
773dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400774AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500775AC_ARG_ENABLE([uuidd],
776[ --disable-uuidd disable building the uuid daemon],
777[if test "$enableval" = "no"
778then
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400779 AC_MSG_RESULT([Not building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500780 UUIDD_CMT="#"
781else
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400782 AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500783 UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400784 AC_MSG_RESULT([Building uuidd])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500785fi]
786,
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400787AC_DEFINE(USE_UUIDD, 1)
Theodore Ts'o5610f992007-12-31 11:16:56 -0500788UUIDD_CMT=""
Theodore Ts'o02d04db2008-08-22 10:52:42 -0400789AC_MSG_RESULT([Building uuidd by default])
Theodore Ts'o5610f992007-12-31 11:16:56 -0500790)
791AC_SUBST(UUIDD_CMT)
792dnl
793dnl
794dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000795MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
796AC_SUBST_FILE(MAKEFILE_LIBRARY)
797dnl
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000798dnl Add internationalization support, using gettext.
799dnl
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500800GETTEXT_PACKAGE=e2fsprogs
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000801PACKAGE=e2fsprogs
802VERSION="$E2FSPROGS_VERSION"
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500803VERSION=0.14.1
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400804AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
805AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
Theodore Ts'ob0cacab2004-11-30 19:00:19 -0500806AC_SUBST(GETTEXT_PACKAGE)
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000807AC_SUBST(PACKAGE)
808AC_SUBST(VERSION)
809
Theodore Ts'ocdf186e2001-06-13 22:16:47 +0000810AM_GNU_GETTEXT
811dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000812dnl End of configuration options
813dnl
Theodore Ts'o74becf31997-04-26 14:37:06 +0000814AC_SUBST(BINARY_TYPE)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000815AC_PROG_MAKE_SET
Theodore Ts'obcb915b2009-07-02 18:19:10 -0400816CHECK_GNU_MAKE
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000817AC_PATH_PROG(LN, ln, ln)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000818AC_PROG_LN_S
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000819AC_PATH_PROG(MV, mv, mv)
820AC_PATH_PROG(CP, cp, cp)
821AC_PATH_PROG(RM, rm, rm)
822AC_PATH_PROG(CHMOD, chmod, :)
Theodore Ts'o32237012005-01-17 19:13:39 -0500823AC_PROG_AWK
824AC_PROG_EGREP
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000825AC_PATH_PROG(SED, sed, sed)
Theodore Ts'o9d564f71999-07-03 20:25:58 +0000826AC_PATH_PROG(PERL, perl, perl)
Theodore Ts'o250f79f2001-05-19 22:02:22 +0000827AC_PATH_PROG(LDCONFIG, ldconfig, :)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000828AC_CHECK_TOOL(AR, ar, ar)
829AC_CHECK_TOOL(RANLIB, ranlib, :)
830AC_CHECK_TOOL(STRIP, strip, :)
Manish Katiyar7321d942008-04-14 17:20:03 +0530831AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
832if test "_$MAKEINFO" = "_"; then
833 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
834else
835 case "$MAKEINFO" in
836 */missing.*)
837 AC_MSG_WARN([
838*** Makeinfo is missing. Info documentation will not be built.])
839 ;;
840 *)
841 ;;
842 esac
843fi
844AC_SUBST(MAKEINFO)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000845AC_PROG_INSTALL
Theodore Ts'o6c133521999-07-03 20:37:03 +0000846# See if we need a separate native compiler.
847if test $cross_compiling = no; then
848 BUILD_CC="$CC"
849 AC_SUBST(BUILD_CC)
850else
851 AC_CHECK_PROGS(BUILD_CC, gcc cc)
852fi
Mike Frysinger677fc912012-03-06 20:13:54 -0500853AC_CHECK_HEADERS(m4_flatten([
854 dirent.h
855 errno.h
856 execinfo.h
857 getopt.h
858 malloc.h
859 mntent.h
860 paths.h
861 semaphore.h
862 setjmp.h
863 signal.h
864 stdarg.h
865 stdint.h
866 stdlib.h
867 termios.h
868 termio.h
869 unistd.h
870 utime.h
871 linux/falloc.h
872 linux/fd.h
873 linux/major.h
Kazuya Miofbabd5c2013-12-16 00:48:12 -0500874 linux/loop.h
Mike Frysinger677fc912012-03-06 20:13:54 -0500875 net/if_dl.h
876 netinet/in.h
877 sys/disklabel.h
878 sys/file.h
879 sys/ioctl.h
880 sys/mkdev.h
881 sys/mman.h
882 sys/prctl.h
883 sys/queue.h
884 sys/resource.h
885 sys/select.h
886 sys/socket.h
887 sys/sockio.h
888 sys/stat.h
889 sys/syscall.h
890 sys/sysmacros.h
891 sys/time.h
892 sys/types.h
893 sys/un.h
894 sys/wait.h
895]))
Theodore Ts'oda76d6b2005-01-18 23:29:01 -0500896AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
897[[
898#if HAVE_SYS_QUEUE_H
899#include <sys/queue.h>
900#endif
901]])
902AC_CHECK_HEADERS(net/if.h,,,
903[[
904#if HAVE_SYS_TYPES_H
905#include <sys/types.h>
906#endif
907#if HAVE_SYS_SOCKET
908#include <sys/socket.h>
909#endif
910]])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000911AC_FUNC_VPRINTF
Theodore Ts'offf45482003-04-13 00:44:19 -0400912dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
913dnl is not decleared.
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400914AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
915 [Define to 1 if dirent has d_reclen])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500916 [#include <dirent.h>])
Theodore Ts'o28739272014-01-03 00:26:43 -0500917AC_CHECK_MEMBERS([struct stat.st_atim])
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400918dnl Check to see if ssize_t was declared
919AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
920 [Define to 1 if ssize_t declared])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500921 [#include <sys/types.h>])
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000922dnl
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000923dnl Check to see if llseek() is declared in unistd.h. On some libc's
924dnl it is, and on others it isn't..... Thank you glibc developers....
925dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400926AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
927 [Define to 1 if llseek declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500928 [#include <unistd.h>])
Theodore Ts'ob0b9c4d1997-10-20 23:36:30 +0000929dnl
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000930dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
931dnl are so convoluted that I can't tell whether it will always be defined,
932dnl and if it isn't defined while lseek64 is defined in the library,
933dnl disaster will strike.
934dnl
935dnl Warning! Use of --enable-gcc-wall may throw off this test.
936dnl
937dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -0400938AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
939 [Define to 1 if lseek64 declared in unistd.h])],,
Theodore Ts'o6c65d252005-01-19 12:59:48 -0500940 [#define _LARGEFILE_SOURCE
941 #define _LARGEFILE64_SOURCE
942 #include <unistd.h>])
Theodore Ts'o6928adc2000-05-25 23:28:50 +0000943dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000944dnl Word sizes...
945dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000946AC_CHECK_SIZEOF(short)
947AC_CHECK_SIZEOF(int)
948AC_CHECK_SIZEOF(long)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000949AC_CHECK_SIZEOF(long long)
Phillip Susi274d46e2013-01-24 11:21:56 -0500950AC_CHECK_SIZEOF(off_t)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000951SIZEOF_SHORT=$ac_cv_sizeof_short
952SIZEOF_INT=$ac_cv_sizeof_int
953SIZEOF_LONG=$ac_cv_sizeof_long
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000954SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
Phillip Susi274d46e2013-01-24 11:21:56 -0500955SIZEOF_OFF_T=$ac_cv_sizeof_off_t
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000956AC_SUBST(SIZEOF_SHORT)
957AC_SUBST(SIZEOF_INT)
958AC_SUBST(SIZEOF_LONG)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +0000959AC_SUBST(SIZEOF_LONG_LONG)
Phillip Susi274d46e2013-01-24 11:21:56 -0500960AC_SUBST(SIZEOF_OFF_T)
Theodore Ts'o877eb6d2001-06-11 06:54:13 +0000961AC_C_BIGENDIAN
Chen Qi91f04682014-05-05 21:08:42 -0400962if test $cross_compiling = no; then
963 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
964else
965 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
966fi
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -0400967ASM_TYPES_HEADER=./asm_types.h
968AC_SUBST_FILE(ASM_TYPES_HEADER)
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000969dnl
Theodore Ts'o488c75a2008-06-07 08:55:21 -0400970dnl Save the configuration #defines needed for the public ext2fs.h
971dnl header file
972dnl
973echo "/* These defines are needed for the public ext2fs.h header file */" \
974 > public_config.h
975if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
976 uniq tmp_config.$$ >> public_config.h
977else
978 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
979fi
980if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
981 uniq tmp_config.$$ >> public_config.h
982else
983 echo "#undef WORDS_BIGENDIAN" >> public_config.h
984fi
985rm -f tmp_config.$$
986PUBLIC_CONFIG_HEADER=./public_config.h
987AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
988dnl
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400989dnl See if we have inttypes.h and if intptr_t is defined
990dnl
991AC_CHECK_HEADERS([inttypes.h])
Theodore Ts'od2ee56d2005-01-09 00:57:45 -0500992AC_CHECK_TYPES(intptr_t)
Theodore Ts'o0c193f82003-08-01 14:26:23 -0400993dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +0000994dnl See if struct stat has a st_flags field, in which case we can get file
995dnl flags somewhat portably. Also check for the analogous setter, chflags().
996dnl
997AC_MSG_CHECKING(whether struct stat has a st_flags field)
998AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
999 AC_TRY_COMPILE([#include <sys/stat.h>],
1000 [struct stat stat; stat.st_flags = 0;],
1001 [e2fsprogs_cv_struct_st_flags=yes],
1002 [e2fsprogs_cv_struct_st_flags=no]))
1003AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1004if test "$e2fsprogs_cv_struct_st_flags" = yes; then
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001005 AC_MSG_CHECKING(whether st_flags field is useful)
1006 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1007 AC_TRY_COMPILE([#include <sys/stat.h>],
1008 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1009 [e2fsprogs_cv_struct_st_flags_immut=yes],
1010 [e2fsprogs_cv_struct_st_flags_immut=no]))
1011 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1012 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001013 AC_DEFINE(HAVE_STAT_FLAGS, 1,
1014 [Define to 1 if struct stat has st_flags])
Theodore Ts'oc03bc4e1999-10-20 18:20:36 +00001015 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001016fi
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001017dnl
1018dnl Check for the presence of SA_LEN
1019dnl
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001020AC_CHECK_MEMBER(struct sockaddr.sa_len,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001021 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1022 [Define to 1 if if struct sockaddr contains sa_len]),,
Theodore Ts'o6c65d252005-01-19 12:59:48 -05001023 [#include <sys/types.h>
1024 #include <sys/socket.h>])
Theodore Ts'o84ea6e72004-03-19 19:29:17 -05001025dnl
Eric Sandeen9ed8e5f2009-10-02 11:32:42 -05001026dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
1027dnl the system-provided blkid library
1028dnl
1029if test -n "$BLKID_CMT"; then
1030 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
1031fi
1032dnl
Mike Frysinger677fc912012-03-06 20:13:54 -05001033AC_CHECK_FUNCS(m4_flatten([
1034 __secure_getenv
1035 backtrace
1036 blkid_probe_get_topology
Theodore Ts'o2de26282014-05-05 01:22:22 -04001037 blkid_probe_enable_partitions
Mike Frysinger677fc912012-03-06 20:13:54 -05001038 chflags
Baruch Siach9a393892014-01-02 13:05:37 -05001039 fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001040 fallocate
1041 fallocate64
1042 fchown
1043 fdatasync
1044 fstat64
1045 ftruncate64
Theodore Ts'o28739272014-01-03 00:26:43 -05001046 futimes
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001047 getcwd
Mike Frysinger677fc912012-03-06 20:13:54 -05001048 getdtablesize
1049 getmntinfo
Theodore Ts'o25ff7722012-04-05 15:16:50 -07001050 getpwuid_r
Mike Frysinger677fc912012-03-06 20:13:54 -05001051 getrlimit
1052 getrusage
1053 jrand48
1054 llseek
1055 lseek64
1056 mallinfo
1057 mbstowcs
1058 memalign
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001059 mempcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001060 mmap
1061 msync
1062 nanosleep
1063 open64
1064 pathconf
1065 posix_fadvise
Baruch Siach9a393892014-01-02 13:05:37 -05001066 posix_fadvise64
Mike Frysinger677fc912012-03-06 20:13:54 -05001067 posix_memalign
1068 prctl
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001069 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001070 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001071 setresgid
1072 setresuid
1073 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001074 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001075 strcasecmp
1076 strdup
1077 strnlen
1078 strptime
1079 strtoull
1080 sync_file_range
1081 sysconf
1082 usleep
1083 utime
1084 valloc
1085]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001086dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001087dnl Check to see if -lsocket is required (solaris) to make something
1088dnl that uses socket() to compile; this is needed for the UUID library
1089dnl
1090SOCKET_LIB=''
1091AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1092AC_SUBST(SOCKET_LIB)
1093dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001094dnl See if optreset exists
1095dnl
1096AC_MSG_CHECKING(for optreset)
1097AC_CACHE_VAL(ac_cv_have_optreset,
1098[AC_EGREP_HEADER(optreset, unistd.h,
1099 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1100AC_MSG_RESULT($ac_cv_have_optreset)
1101if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001102 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001103fi
1104dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001105dnl Test for sem_init, and which library it might require:
1106dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001107AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001108SEM_INIT_LIB=''
1109AC_CHECK_FUNC(sem_init, ,
1110 AC_CHECK_LIB(pthread, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001111 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001112 SEM_INIT_LIB=-lpthread,
1113 AC_CHECK_LIB(rt, 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=-lrt,
1116 AC_CHECK_LIB(posix4, 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=-lposix4))))dnl
1119AC_SUBST(SEM_INIT_LIB)
1120dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001121dnl Check for unified diff
1122dnl
1123AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001124if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001125 UNI_DIFF_OPTS=-u
1126else
1127 UNI_DIFF_OPTS=-c
1128fi
1129AC_MSG_RESULT($UNI_DIFF_OPTS)
1130AC_SUBST(UNI_DIFF_OPTS)
1131dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001132dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001133dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001134case "$host_os" in
1135linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001136 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001137 ;;
1138esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001139dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001140dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001141dnl
1142LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001143CYGWIN_CMT="#"
1144UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001145case "$host_os" in
1146linux*)
1147 LINUX_CMT=
1148 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001149cygwin)
1150 CYGWIN_CMT=
1151 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001152 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001153esac
1154AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001155AC_SUBST(CYGWIN_CMT)
1156AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001157dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001158dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001159dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001160case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001161linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001162 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1163 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001164 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001165 fi
1166 ;;
1167esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001168dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001169dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001170dnl
1171case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001172linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001173 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001174 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001175 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001176 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001177 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001178 mandir=/usr/share/man
1179 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001180 fi
1181;;
1182esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001183if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001184 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001185 root_prefix="$ac_default_prefix"
1186 else
1187 root_prefix="$prefix"
1188 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001189 root_bindir=$bindir
1190 root_sbindir=$sbindir
1191 root_libdir=$libdir
1192 root_sysconfdir=$sysconfdir
1193else
1194 root_bindir='${root_prefix}/bin'
1195 root_sbindir='${root_prefix}/sbin'
1196 root_libdir='${root_prefix}/lib'
1197 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001198fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001199if test "$bindir" != '${exec_prefix}/bin'; then
1200 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001201 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001202fi
1203if test "$sbindir" != '${exec_prefix}/sbin'; then
1204 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001205 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001206fi
1207if test "$libdir" != '${exec_prefix}/lib'; then
1208 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001209 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001210fi
1211if test "$sysconfdir" != '${prefix}/etc'; then
1212 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001213 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001214fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001215AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001216AC_SUBST(root_bindir)
1217AC_SUBST(root_sbindir)
1218AC_SUBST(root_libdir)
1219AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001220dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001221dnl Allow specification of the multiarch arch
1222dnl
1223AC_ARG_WITH([multiarch],
1224[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001225if test "$withval" = "lib64"; then
1226 libdir=/usr/lib64
1227 root_libdir=/lib64
1228else
1229 libdir=$libdir/$withval
1230 root_libdir=$root_libdir/$withval
1231fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001232)dnl
1233dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001234dnl See if -static works. This could fail if the linker does not
1235dnl support -static, or if required external libraries are not available
1236dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001237dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001238AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001239AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1240[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1241AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1242 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1243LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001244dnl
1245dnl Regardless of how the test turns out, Solaris doesn't handle -static
1246dnl This is caused by the socket library requiring the nsl library, which
1247dnl requires the -dl library, which only works for dynamically linked
1248dnl programs. It basically means you can't have statically linked programs
1249dnl which use the network under Solaris.
1250dnl
1251case "$host_os" in
1252solaris2.*)
1253 ac_cv_e2fsprogs_use_static=no
1254;;
1255esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001256AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001257LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001258if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001259 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001260fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001261AC_SUBST(LDFLAG_STATIC)
1262dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001263dnl Work around mysterious Darwin / GNU libintl problem
1264dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1265dnl Apple hacked gcc somehow?)
1266dnl
1267case "$host_os" in
1268darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001269 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001270 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1271 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001272 ;;
1273esac
1274dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001275dnl Make the ss and et directories work correctly.
1276dnl
1277SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1278ET_DIR=`cd ${srcdir}/lib/et; pwd`
1279AC_SUBST(SS_DIR)
1280AC_SUBST(ET_DIR)
1281dnl
1282dnl Only try to run the test suite if we're not cross compiling.
1283dnl
1284if test "$cross_compiling" = yes ; then
1285 DO_TEST_SUITE=
1286else
1287 DO_TEST_SUITE=check
1288fi
1289AC_SUBST(DO_TEST_SUITE)
1290dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001291dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001292dnl
1293INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1294if test -n "$CPPFLAGS" ; then
1295 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001296fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001297if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1298 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1299fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001300if test -n "$WITH_DIET_LIBC" ; then
1301 INCLUDES="$INCLUDES -D_REENTRANT"
1302fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001303AC_SUBST(INCLUDES)
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001304dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001305dnl Build CFLAGS
1306dnl
1307if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001308 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001309 BUILD_LDFLAGS="$LDFLAGS"
1310else
1311 BUILD_CFLAGS=
1312 BUILD_LDFLAGS=
1313fi
1314AC_SUBST(BUILD_CFLAGS)
1315AC_SUBST(BUILD_LDFLAGS)
1316dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001317dnl Make our output files, being sure that we create the some miscellaneous
1318dnl directories
1319dnl
1320test -d lib || mkdir lib
1321test -d include || mkdir include
1322test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001323test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001324for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001325 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001326 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1327 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001328 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001329 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001330 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1331 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001332 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001333 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001334 resize/Makefile doc/Makefile intl/Makefile \
1335 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001336 if test -d `dirname ${srcdir}/$i` ; then
1337 outlist="$outlist $i"
1338 fi
1339done
1340AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001341if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi