blob: b825f3df10d7c7f01934c15d17d42c50749c9f2a [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
Darrick J. Wongbaa35442014-08-02 19:18:03 -04001062 pread
1063 pwrite
Theodore Ts'o1ad31742013-06-16 14:34:59 -04001064 secure_getenv
Theodore Ts'ob24efa22012-04-05 15:31:09 -07001065 setmntent
Mike Frysinger677fc912012-03-06 20:13:54 -05001066 setresgid
1067 setresuid
Theodore Ts'oc42de752014-07-08 20:02:48 -04001068 snprintf
Mike Frysinger677fc912012-03-06 20:13:54 -05001069 srandom
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001070 stpcpy
Mike Frysinger677fc912012-03-06 20:13:54 -05001071 strcasecmp
1072 strdup
1073 strnlen
1074 strptime
1075 strtoull
1076 sync_file_range
1077 sysconf
1078 usleep
1079 utime
1080 valloc
1081]))
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001082dnl
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001083dnl Check to see if -lsocket is required (solaris) to make something
1084dnl that uses socket() to compile; this is needed for the UUID library
1085dnl
1086SOCKET_LIB=''
1087AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1088AC_SUBST(SOCKET_LIB)
1089dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001090dnl See if optreset exists
1091dnl
1092AC_MSG_CHECKING(for optreset)
1093AC_CACHE_VAL(ac_cv_have_optreset,
1094[AC_EGREP_HEADER(optreset, unistd.h,
1095 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1096AC_MSG_RESULT($ac_cv_have_optreset)
1097if test $ac_cv_have_optreset = yes; then
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001098 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001099fi
1100dnl
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001101dnl Test for sem_init, and which library it might require:
1102dnl
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001103AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001104SEM_INIT_LIB=''
1105AC_CHECK_FUNC(sem_init, ,
1106 AC_CHECK_LIB(pthread, 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=-lpthread,
1109 AC_CHECK_LIB(rt, 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=-lrt,
1112 AC_CHECK_LIB(posix4, sem_init,
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001113 AC_DEFINE(HAVE_SEM_INIT, 1)
Theodore Ts'od7f45af2008-09-12 10:15:26 -04001114 SEM_INIT_LIB=-lposix4))))dnl
1115AC_SUBST(SEM_INIT_LIB)
1116dnl
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001117dnl Check for unified diff
1118dnl
1119AC_MSG_CHECKING(for unified diff option)
Theodore Ts'o27f991b2008-04-01 20:32:55 -04001120if diff -u $0 $0 > /dev/null 2>&1 ; then
Theodore Ts'oe54635d2006-08-06 14:33:13 -04001121 UNI_DIFF_OPTS=-u
1122else
1123 UNI_DIFF_OPTS=-c
1124fi
1125AC_MSG_RESULT($UNI_DIFF_OPTS)
1126AC_SUBST(UNI_DIFF_OPTS)
1127dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001128dnl We use the EXT2 ioctls only under Linux
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001129dnl
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001130case "$host_os" in
1131linux*)
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001132 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
Theodore Ts'o8f3f29d2000-02-11 05:04:44 +00001133 ;;
1134esac
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001135dnl
Theodore Ts'offf45482003-04-13 00:44:19 -04001136dnl OS-specific uncomment control
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001137dnl
1138LINUX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001139CYGWIN_CMT="#"
1140UNIX_CMT=
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001141case "$host_os" in
1142linux*)
1143 LINUX_CMT=
1144 ;;
Theodore Ts'offf45482003-04-13 00:44:19 -04001145cygwin)
1146 CYGWIN_CMT=
1147 UNIX_CMT="#"
Theodore Ts'offf45482003-04-13 00:44:19 -04001148 ;;
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001149esac
1150AC_SUBST(LINUX_CMT)
Theodore Ts'offf45482003-04-13 00:44:19 -04001151AC_SUBST(CYGWIN_CMT)
1152AC_SUBST(UNIX_CMT)
Theodore Ts'oe6f2bda2002-08-18 03:37:10 -04001153dnl
Theodore Ts'o6c133521999-07-03 20:37:03 +00001154dnl Linux and Hurd places root files in the / by default
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001155dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001156case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001157linux* | gnu* | k*bsd*-gnu)
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001158 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1159 root_prefix="";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001160 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001161 fi
1162 ;;
1163esac
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001164dnl
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001165dnl On Linux/hurd, force the prefix to be /usr
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001166dnl
1167case "$host_os" in
Theodore Ts'o93636bd2003-07-12 02:45:05 -04001168linux* | gnu* | k*bsd*-gnu)
Theodore Ts'ofc6d9d51997-04-29 14:51:31 +00001169 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001170 prefix="/usr";
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001171 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001172 if test "$mandir" = '${prefix}/man' ; then
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001173 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
Theodore Ts'obff61a72002-05-21 22:21:38 -04001174 mandir=/usr/share/man
1175 fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001176 fi
1177;;
1178esac
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001179if test "$root_prefix" = NONE ; then
Theodore Ts'offe19911998-04-08 06:05:49 +00001180 if test "$prefix" = NONE ; then
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001181 root_prefix="$ac_default_prefix"
1182 else
1183 root_prefix="$prefix"
1184 fi
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001185 root_bindir=$bindir
1186 root_sbindir=$sbindir
1187 root_libdir=$libdir
1188 root_sysconfdir=$sysconfdir
1189else
1190 root_bindir='${root_prefix}/bin'
1191 root_sbindir='${root_prefix}/sbin'
1192 root_libdir='${root_prefix}/lib'
1193 root_sysconfdir='${root_prefix}/etc'
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001194fi
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001195if test "$bindir" != '${exec_prefix}/bin'; then
1196 root_bindir=$bindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001197 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001198fi
1199if test "$sbindir" != '${exec_prefix}/sbin'; then
1200 root_sbindir=$sbindir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001201 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001202fi
1203if test "$libdir" != '${exec_prefix}/lib'; then
1204 root_libdir=$libdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001205 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001206fi
1207if test "$sysconfdir" != '${prefix}/etc'; then
1208 root_sysconfdir=$sysconfdir
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001209 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
Theodore Ts'oc4ef11c2008-01-04 16:55:37 -05001210fi
Theodore Ts'oa4b2d3c1998-04-03 16:12:25 +00001211AC_SUBST(root_prefix)
Theodore Ts'ob5ffead2002-05-11 19:17:00 -04001212AC_SUBST(root_bindir)
1213AC_SUBST(root_sbindir)
1214AC_SUBST(root_libdir)
1215AC_SUBST(root_sysconfdir)
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001216dnl
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001217dnl Allow specification of the multiarch arch
1218dnl
1219AC_ARG_WITH([multiarch],
1220[ --with-multiarch=ARCH specify the multiarch triplet],
Theodore Ts'od7fa4102014-02-05 15:45:36 -05001221if test "$withval" = "lib64"; then
1222 libdir=/usr/lib64
1223 root_libdir=/lib64
1224else
1225 libdir=$libdir/$withval
1226 root_libdir=$root_libdir/$withval
1227fi
Theodore Ts'o55e00a22011-09-18 23:53:23 -04001228)dnl
1229dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001230dnl See if -static works. This could fail if the linker does not
1231dnl support -static, or if required external libraries are not available
1232dnl in static form.
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001233dnl
Theodore Ts'od3de1a72012-12-15 22:10:27 -05001234AC_MSG_CHECKING([whether we can link with -static])
Theodore Ts'oae851481997-04-29 18:13:24 +00001235AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1236[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1237AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1238 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1239LDFLAGS=$SAVE_LDFLAGS])
Theodore Ts'odefde781999-01-04 07:39:19 +00001240dnl
1241dnl Regardless of how the test turns out, Solaris doesn't handle -static
1242dnl This is caused by the socket library requiring the nsl library, which
1243dnl requires the -dl library, which only works for dynamically linked
1244dnl programs. It basically means you can't have statically linked programs
1245dnl which use the network under Solaris.
1246dnl
1247case "$host_os" in
1248solaris2.*)
1249 ac_cv_e2fsprogs_use_static=no
1250;;
1251esac
Theodore Ts'oae851481997-04-29 18:13:24 +00001252AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
Theodore Ts'o74becf31997-04-26 14:37:06 +00001253LDFLAG_STATIC=
Theodore Ts'oae851481997-04-29 18:13:24 +00001254if test $ac_cv_e2fsprogs_use_static = yes; then
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001255 LDFLAG_STATIC=-static
Theodore Ts'oae851481997-04-29 18:13:24 +00001256fi
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001257AC_SUBST(LDFLAG_STATIC)
1258dnl
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001259dnl Work around mysterious Darwin / GNU libintl problem
1260dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1261dnl Apple hacked gcc somehow?)
1262dnl
1263case "$host_os" in
1264darwin*)
Theodore Ts'o02d04db2008-08-22 10:52:42 -04001265 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001266 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1267 [Define to 1 if Apple Darwin libintl workaround is needed])
Theodore Ts'o07a0db12003-07-05 14:50:24 -04001268 ;;
1269esac
1270dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001271dnl Make the ss and et directories work correctly.
1272dnl
1273SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1274ET_DIR=`cd ${srcdir}/lib/et; pwd`
1275AC_SUBST(SS_DIR)
1276AC_SUBST(ET_DIR)
1277dnl
1278dnl Only try to run the test suite if we're not cross compiling.
1279dnl
1280if test "$cross_compiling" = yes ; then
1281 DO_TEST_SUITE=
1282else
1283 DO_TEST_SUITE=check
1284fi
1285AC_SUBST(DO_TEST_SUITE)
1286dnl
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001287dnl Only include the intl include files if we're building with them
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001288dnl
1289INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1290if test -n "$CPPFLAGS" ; then
1291 INCLUDES="$INCLUDES $CPPFLAGS"
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001292fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001293if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1294 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1295fi
Theodore Ts'o6c59a662014-01-04 20:44:29 -05001296if test -n "$WITH_DIET_LIBC" ; then
1297 INCLUDES="$INCLUDES -D_REENTRANT"
1298fi
Theodore Ts'od1154eb2011-09-18 17:34:37 -04001299AC_SUBST(INCLUDES)
Theodore Ts'o5b5bd2c2014-07-10 00:17:05 -04001300AM_MKINSTALLDIRS
Theodore Ts'oc6f35b82003-05-17 16:29:27 -04001301dnl
Theodore Ts'odd947da2005-11-09 18:37:07 -04001302dnl Build CFLAGS
1303dnl
1304if test $cross_compiling = no; then
Theodore Ts'o28739272014-01-03 00:26:43 -05001305 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
Theodore Ts'odd947da2005-11-09 18:37:07 -04001306 BUILD_LDFLAGS="$LDFLAGS"
1307else
1308 BUILD_CFLAGS=
1309 BUILD_LDFLAGS=
1310fi
1311AC_SUBST(BUILD_CFLAGS)
1312AC_SUBST(BUILD_LDFLAGS)
1313dnl
Theodore Ts'o50e1e101997-04-26 13:58:21 +00001314dnl Make our output files, being sure that we create the some miscellaneous
1315dnl directories
1316dnl
1317test -d lib || mkdir lib
1318test -d include || mkdir include
1319test -d include/linux || mkdir include/linux
Theodore Ts'odefde781999-01-04 07:39:19 +00001320test -d include/asm || mkdir include/asm
Theodore Ts'obff0cc92003-03-23 01:37:53 -05001321for i in MCONFIG Makefile e2fsprogs.spec \
Theodore Ts'o183c73b2012-05-12 23:13:24 -04001322 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
Theodore Ts'o4ea7ea02006-04-09 08:41:55 -04001323 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1324 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001325 lib/uuid/Makefile lib/uuid/uuid_types.h \
Aditya Kalif239fef2011-07-20 11:40:02 -07001326 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
Theodore Ts'oe6441862005-01-26 12:59:25 -05001327 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1328 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
Theodore Ts'o921f4ad2004-11-19 17:25:27 -05001329 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001330 debugfs/Makefile tests/Makefile tests/progs/Makefile \
Matthias Andree98a5ad62009-07-15 17:37:52 +02001331 resize/Makefile doc/Makefile intl/Makefile \
1332 intl/libgnuintl.h po/Makefile.in ; do
Theodore Ts'o94ba8c72003-03-02 02:07:14 -05001333 if test -d `dirname ${srcdir}/$i` ; then
1334 outlist="$outlist $i"
1335 fi
1336done
1337AC_OUTPUT($outlist)
Theodore Ts'oee683a12005-02-05 15:53:56 -05001338if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi