]>
Commit | Line | Data |
---|---|---|
54445dc2 TT |
1 | AC_INIT |
2 | AC_CONFIG_SRCDIR([version.h]) | |
3 | AC_PREREQ([2.71]) | |
b0cacab0 | 4 | AC_CONFIG_AUX_DIR(config) |
d1154eb4 | 5 | AC_CONFIG_HEADERS([lib/config.h]) |
c714d024 | 6 | AH_BOTTOM([#include <dirpaths.h>]) |
54445dc2 | 7 | AC_USE_SYSTEM_EXTENSIONS |
50e1e10f TT |
8 | MCONFIG=./MCONFIG |
9 | AC_SUBST_FILE(MCONFIG) | |
74becf3c TT |
10 | BINARY_TYPE=bin |
11 | dnl | |
12 | dnl This is to figure out the version number and the date.... | |
13 | dnl | |
1ac00616 AD |
14 | E2FSPROGS_VERSION=`awk -F\" '/E2FSPROGS_VERS/ { print $2 }' ${srcdir}/version.h` |
15 | E2FSPROGS_DATE=`awk -F\" '/E2FSPROGS_DATE/ { print $2 }' ${srcdir}/version.h` | |
16 | E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{ printf "%02d", $1 }') | |
5ce368f0 DW |
17 | MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` |
18 | YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` | |
74becf3c | 19 | |
40fa8cc9 TT |
20 | if expr $YEAR ">" 1900 > /dev/null ; then |
21 | E2FSPROGS_YEAR=$YEAR | |
22 | elif expr $YEAR ">" 90 >/dev/null ; then | |
74becf3c TT |
23 | E2FSPROGS_YEAR=19$YEAR |
24 | else | |
25 | E2FSPROGS_YEAR=20$YEAR | |
26 | fi | |
27 | ||
28 | case $MONTH in | |
927566a3 AD |
29 | Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;; |
30 | Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;; | |
31 | Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;; | |
32 | Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;; | |
33 | May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;; | |
34 | Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;; | |
35 | Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;; | |
36 | Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;; | |
37 | Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; | |
38 | Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; | |
39 | Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; | |
40 | Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; | |
02d04db4 | 41 | *) AC_MSG_WARN([Unknown month $MONTH??]) ;; |
74becf3c TT |
42 | esac |
43 | ||
1ac00616 AD |
44 | base_ver=`echo $E2FSPROGS_VERSION | sed -e 's/pre-//' -e 's/-.*//'` |
45 | base_rel=`echo $E2FSPROGS_VERSION | awk -F- '{ print $2 }'` | |
927566a3 AD |
46 | |
47 | date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} | |
48 | ||
49 | case $E2FSPROGS_VERSION in | |
50 | *-WIP|pre-*) | |
1ac00616 AD |
51 | E2FSPROGS_PKGVER="$base_ver" |
52 | E2FSPROGS_PKGREL="WIP.$date_spec" | |
927566a3 AD |
53 | ;; |
54 | *) | |
55 | E2FSPROGS_PKGVER="$base_ver" | |
1ac00616 | 56 | E2FSPROGS_PKGREL="$base_rel" |
927566a3 AD |
57 | ;; |
58 | esac | |
59 | ||
60 | unset DATE MONTH YEAR base_ver pre_vers date_spec | |
02d04db4 | 61 | AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) |
1ac00616 | 62 | AC_MSG_RESULT([Package version ${E2FSPROGS_PKGVER} release ${E2FSPROGS_PKGREL}]) |
02d04db4 | 63 | AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) |
74becf3c TT |
64 | AC_SUBST(E2FSPROGS_YEAR) |
65 | AC_SUBST(E2FSPROGS_MONTH) | |
bff0cc95 | 66 | AC_SUBST(E2FSPROGS_DAY) |
74becf3c | 67 | AC_SUBST(E2FSPROGS_VERSION) |
1ac00616 | 68 | AC_SUBST(E2FSPROGS_PKGREL) |
927566a3 | 69 | AC_SUBST(E2FSPROGS_PKGVER) |
5ce368f0 | 70 | AC_SUBST(E2FSPROGS_DATE) |
57aa50d4 | 71 | dnl |
d21ae6c5 TT |
72 | dnl Use diet libc |
73 | dnl | |
eafba6c3 | 74 | WITH_DIET_LIBC= |
d21ae6c5 | 75 | AC_ARG_WITH([diet-libc], |
8c9e2921 | 76 | AS_HELP_STRING([--with-diet-libc],[use diet libc]), |
d21ae6c5 | 77 | CC="diet cc -nostdinc" |
eafba6c3 | 78 | WITH_DIET_LIBC=yes |
6c59a665 TT |
79 | if test -z "$LIBS" |
80 | then | |
81 | LIBS="-lcompat" | |
82 | else | |
83 | LIBS="$LIBS -lcompat" | |
84 | fi | |
d21ae6c5 TT |
85 | AC_MSG_RESULT(CC=$CC))dnl |
86 | dnl | |
6c59a665 TT |
87 | AC_CANONICAL_HOST |
88 | dnl | |
89 | dnl Check to see if libdl exists for the sake of dlopen | |
90 | dnl | |
91 | DLOPEN_LIB='' | |
32179ce2 | 92 | AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl) |
6c59a665 TT |
93 | AC_SUBST(DLOPEN_LIB) |
94 | dnl | |
74becf3c | 95 | AC_ARG_WITH([cc], |
8c9e2921 | 96 | AS_HELP_STRING([--with-cc],[no longer supported, use CC= instead]), |
0b5b9f90 | 97 | AC_MSG_ERROR([--with-cc no longer supported; use CC= instead])) |
74becf3c | 98 | dnl |
0b5b9f90 | 99 | AC_ARG_WITH([ccopts], |
8c9e2921 | 100 | AS_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]), |
0b5b9f90 | 101 | AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead])) |
74becf3c | 102 | dnl |
0b5b9f90 | 103 | AC_ARG_WITH([ldopts], |
8c9e2921 | 104 | AS_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]), |
0b5b9f90 | 105 | AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead])) |
74becf3c | 106 | dnl |
0b5b9f90 | 107 | AC_PROG_CC |
9b3018a8 TT |
108 | if test "$GCC" = yes; then |
109 | RDYNAMIC="-rdynamic" | |
110 | AC_SUBST(RDYNAMIC) | |
111 | fi | |
0b5b9f90 | 112 | AC_PROG_CPP |
74becf3c | 113 | dnl |
b1c92f91 MA |
114 | dnl Alpha computers use fast and imprecise floating point code that may |
115 | dnl miss exceptions by default. Force sane options if we're using GCC. | |
116 | AC_MSG_CHECKING(for additional special compiler flags) | |
117 | if test "$GCC" = yes | |
118 | then | |
119 | case "$host_cpu" in | |
120 | alpha) addcflags="-mieee" ;; | |
121 | esac | |
122 | fi | |
123 | if test "x$addcflags" != x | |
124 | then | |
125 | AC_MSG_RESULT($addcflags) | |
126 | CFLAGS="$addcflags $CFLAGS" | |
127 | else | |
128 | AC_MSG_RESULT([[(none)]]) | |
129 | fi | |
130 | dnl | |
055866d8 SR |
131 | dnl Set default values for library extensions. Will be dealt with after |
132 | dnl parsing configuration options, which may modify these | |
a4d09610 TT |
133 | dnl |
134 | LIB_EXT=.a | |
135 | STATIC_LIB_EXT=.a | |
14b596d4 | 136 | PROFILED_LIB_EXT=.a |
a4d09610 | 137 | dnl |
a4b2d3ce | 138 | dnl Allow separate `root_prefix' to be specified |
fc6d9d51 | 139 | dnl |
a4b2d3ce | 140 | AC_ARG_WITH([root-prefix], |
8c9e2921 | 141 | AS_HELP_STRING([--with-root-prefix=PREFIX],[override prefix variable for files to be placed in the root]), |
a4b2d3ce TT |
142 | root_prefix=$withval, |
143 | root_prefix=NONE)dnl | |
fc6d9d51 | 144 | dnl |
98919bdb TT |
145 | dnl handle --enable-maintainer-mode |
146 | dnl | |
147 | AC_ARG_ENABLE([maintainer-mode], | |
8c9e2921 | 148 | AS_HELP_STRING([--enable-maintainer-mode],[enable makefile rules useful for maintainers]), |
98919bdb TT |
149 | if test "$enableval" = "no" |
150 | then | |
151 | MAINTAINER_CMT=# | |
02d04db4 | 152 | AC_MSG_RESULT([Disabling maintainer mode]) |
98919bdb TT |
153 | else |
154 | MAINTAINER_CMT= | |
02d04db4 | 155 | AC_MSG_RESULT([Enabling maintainer mode]) |
98919bdb TT |
156 | fi |
157 | , | |
158 | MAINTAINER_CMT=# | |
02d04db4 | 159 | AC_MSG_RESULT([Disabling maintainer mode by default]) |
98919bdb TT |
160 | ) |
161 | AC_SUBST(MAINTAINER_CMT) | |
162 | dnl | |
5aa6c3f6 TT |
163 | dnl handle --enable-symlink-install |
164 | dnl | |
165 | AC_ARG_ENABLE([symlink-install], | |
8c9e2921 | 166 | AS_HELP_STRING([--enable-symlink-install],[use symlinks when installing instead of hard links]), |
5aa6c3f6 TT |
167 | if test "$enableval" = "no" |
168 | then | |
169 | LINK_INSTALL_FLAGS=-f | |
170 | AC_MSG_RESULT([Disabling symlinks for install]) | |
171 | else | |
172 | LINK_INSTALL_FLAGS=-sf | |
173 | AC_MSG_RESULT([Enabling symlinks for install]) | |
174 | fi | |
175 | , | |
176 | LINK_INSTALL_FLAGS=-f | |
183c73b0 | 177 | AC_MSG_RESULT([Disabling symlinks for install by default]) |
5aa6c3f6 TT |
178 | ) |
179 | AC_SUBST(LINK_INSTALL_FLAGS) | |
180 | dnl | |
183c73b0 TT |
181 | dnl handle --enable-relative-symlinks |
182 | dnl | |
91d11da1 TT |
183 | relative_symlink_defined= |
184 | AC_ARG_ENABLE([relative-symlinks], | |
8c9e2921 | 185 | AS_HELP_STRING([--enable-relative-symlinks],[use relative symlinks when installing]), |
183c73b0 TT |
186 | if test "$enableval" = "no" |
187 | then | |
188 | SYMLINK_RELATIVE= | |
91d11da1 | 189 | relative_symlink_defined=yes |
183c73b0 TT |
190 | AC_MSG_RESULT([Disabling relative symlinks for install]) |
191 | else | |
192 | SYMLINK_RELATIVE=--relative | |
91d11da1 TT |
193 | relative_symlink_defined=yes |
194 | AC_MSG_RESULT([Enabling relative symlinks for install]) | |
195 | fi) | |
196 | AC_ARG_ENABLE([symlink-relative-symlinks],, | |
197 | if test "$enableval" = "no" | |
198 | then | |
199 | SYMLINK_RELATIVE=yes | |
200 | AC_MSG_RESULT([Disabling relative symlinks for install]) | |
201 | else | |
202 | SYMLINK_RELATIVE=--relative | |
203 | AC_MSG_RESULT([Enabling relative symlinks for install]) | |
183c73b0 TT |
204 | fi |
205 | , | |
91d11da1 TT |
206 | if test -z "$relative_symlink_defined" |
207 | then | |
183c73b0 TT |
208 | SYMLINK_RELATIVE= |
209 | AC_MSG_RESULT([Disabling relative symlinks for install by default]) | |
91d11da1 | 210 | fi |
183c73b0 TT |
211 | ) |
212 | AC_SUBST(SYMLINK_RELATIVE) | |
213 | dnl | |
5aa6c3f6 TT |
214 | dnl handle --enable-symlink-build |
215 | dnl | |
216 | AC_ARG_ENABLE([symlink-build], | |
8c9e2921 | 217 | AS_HELP_STRING([--enable-symlink-build],[use symlinks while building instead of hard links]), |
5aa6c3f6 TT |
218 | if test "$enableval" = "no" |
219 | then | |
220 | LINK_BUILD_FLAGS= | |
221 | AC_MSG_RESULT([Disabling symlinks for build]) | |
222 | else | |
223 | LINK_BUILD_FLAGS=-s | |
224 | AC_MSG_RESULT([Enabling symlinks for build]) | |
225 | fi | |
226 | , | |
227 | LINK_BUILD_FLAGS= | |
183c73b0 | 228 | AC_MSG_RESULT([Disabling symlinks for build by default]) |
5aa6c3f6 TT |
229 | ) |
230 | AC_SUBST(LINK_BUILD_FLAGS) | |
231 | dnl | |
c13351f6 TT |
232 | dnl handle --enable-verbose-makecmds |
233 | dnl | |
234 | AC_ARG_ENABLE([verbose-makecmds], | |
8c9e2921 | 235 | AS_HELP_STRING([--enable-verbose-makecmds],[enable verbose make command output]), |
c13351f6 TT |
236 | if test "$enableval" = "no" |
237 | then | |
238 | AC_MSG_RESULT([Disabling verbose make commands]) | |
239 | E=@echo | |
c1986ecb | 240 | ES=echo |
c13351f6 TT |
241 | Q=@ |
242 | else | |
243 | AC_MSG_RESULT([Enabling verbose make commands]) | |
244 | E=@\\# | |
c1986ecb | 245 | ES=\\# |
c13351f6 TT |
246 | Q= |
247 | fi | |
248 | , | |
249 | AC_MSG_RESULT([Disabling verbose make commands]) | |
250 | E=@echo | |
c1986ecb | 251 | ES=echo |
c13351f6 TT |
252 | Q=@ |
253 | ) | |
254 | AC_SUBST(E) | |
c1986ecb | 255 | AC_SUBST(ES) |
c13351f6 TT |
256 | AC_SUBST(Q) |
257 | dnl | |
a4ece359 TT |
258 | dnl This needs to be before all of the --enable-*-shlibs options |
259 | dnl | |
260 | E2_PKG_CONFIG_STATIC=--static | |
55da9876 TT |
261 | LDFLAG_DYNAMIC= |
262 | PRIVATE_LIBS_CMT= | |
a4ece359 | 263 | dnl |
50e1e10f TT |
264 | dnl handle --enable-elf-shlibs |
265 | dnl | |
266 | AC_ARG_ENABLE([elf-shlibs], | |
8c9e2921 | 267 | AS_HELP_STRING([--enable-elf-shlibs],[select ELF shared libraries]), |
50e1e10f TT |
268 | if test "$enableval" = "no" |
269 | then | |
270 | ELF_CMT=# | |
271 | MAKEFILE_ELF=/dev/null | |
02d04db4 | 272 | AC_MSG_RESULT([Disabling ELF shared libraries]) |
50e1e10f | 273 | else |
a4ece359 | 274 | E2_PKG_CONFIG_STATIC= |
50e1e10f TT |
275 | ELF_CMT= |
276 | MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib | |
f5955dda TT |
277 | [case "$host_os" in |
278 | solaris2.*) | |
279 | MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib | |
280 | ;; | |
281 | esac] | |
74becf3c | 282 | BINARY_TYPE=elfbin |
a4d09610 | 283 | LIB_EXT=.so |
55da9876 TT |
284 | PRIVATE_LIBS_CMT=# |
285 | LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib'] | |
02d04db4 | 286 | AC_MSG_RESULT([Enabling ELF shared libraries]) |
50e1e10f TT |
287 | fi |
288 | , | |
289 | MAKEFILE_ELF=/dev/null | |
290 | ELF_CMT=# | |
02d04db4 | 291 | AC_MSG_RESULT([Disabling ELF shared libraries by default]) |
50e1e10f TT |
292 | ) |
293 | AC_SUBST(ELF_CMT) | |
294 | AC_SUBST_FILE(MAKEFILE_ELF) | |
295 | dnl | |
296 | dnl handle --enable-bsd-shlibs | |
297 | dnl | |
298 | AC_ARG_ENABLE([bsd-shlibs], | |
8c9e2921 | 299 | AS_HELP_STRING([--enable-bsd-shlibs],[select BSD shared libraries]), |
50e1e10f TT |
300 | if test "$enableval" = "no" |
301 | then | |
302 | BSDLIB_CMT=# | |
303 | MAKEFILE_BSDLIB=/dev/null | |
02d04db4 | 304 | AC_MSG_RESULT([Disabling BSD shared libraries]) |
50e1e10f | 305 | else |
a4ece359 | 306 | E2_PKG_CONFIG_STATIC= |
50e1e10f TT |
307 | BSDLIB_CMT= |
308 | MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib | |
a4d09610 | 309 | LIB_EXT=.so |
e71d8731 | 310 | [case "$host_os" in |
aa75eccc | 311 | darwin*) |
e71d8731 TT |
312 | MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib |
313 | LIB_EXT=.dylib | |
314 | ;; | |
315 | esac] | |
02d04db4 | 316 | AC_MSG_RESULT([Enabling BSD shared libraries]) |
50e1e10f TT |
317 | fi |
318 | , | |
319 | MAKEFILE_BSDLIB=/dev/null | |
320 | BSDLIB_CMT=# | |
02d04db4 | 321 | AC_MSG_RESULT([Disabling BSD shared libraries by default]) |
50e1e10f TT |
322 | ) |
323 | AC_SUBST(BSDLIB_CMT) | |
324 | AC_SUBST_FILE(MAKEFILE_BSDLIB) | |
325 | dnl | |
326 | dnl handle --enable-profile | |
327 | dnl | |
328 | AC_ARG_ENABLE([profile], | |
8c9e2921 | 329 | AS_HELP_STRING([--enable-profile],[build profiling libraries]), |
50e1e10f TT |
330 | if test "$enableval" = "no" |
331 | then | |
332 | PROFILE_CMT=# | |
333 | MAKEFILE_PROFILE=/dev/null | |
02d04db4 | 334 | AC_MSG_RESULT([Disabling profiling libraries]) |
50e1e10f TT |
335 | else |
336 | PROFILE_CMT= | |
337 | MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile | |
a4d09610 | 338 | PROFILED_LIB_EXT=_p.a |
02d04db4 | 339 | AC_MSG_RESULT([Building profiling libraries]) |
50e1e10f TT |
340 | fi |
341 | , | |
342 | PROFILE_CMT=# | |
343 | MAKEFILE_PROFILE=/dev/null | |
02d04db4 | 344 | AC_MSG_RESULT([Disabling profiling libraries by default]) |
50e1e10f TT |
345 | ) |
346 | AC_SUBST(PROFILE_CMT) | |
347 | AC_SUBST_FILE(MAKEFILE_PROFILE) | |
348 | dnl | |
fedfb27f TT |
349 | dnl handle --enable-gcov |
350 | dnl | |
351 | AC_ARG_ENABLE([gcov], | |
8c9e2921 | 352 | AS_HELP_STRING([--enable-gcov],[build for coverage testing using gcov]), |
fedfb27f TT |
353 | if test "$enableval" = "yes" |
354 | then | |
355 | CFLAGS="-g -fprofile-arcs -ftest-coverage" | |
356 | LDFLAGS="-fprofile-arcs -ftest-coverage" | |
357 | AC_MSG_RESULT([Enabling gcov support]) | |
358 | fi | |
359 | ) | |
fd1677e8 TT |
360 | dnl |
361 | dnl handle --enable-hardening | |
362 | dnl | |
363 | CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" | |
364 | CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" | |
365 | LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} | |
366 | LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} | |
367 | AC_ARG_ENABLE([hardening], | |
8c9e2921 | 368 | AS_HELP_STRING([--enable-hardening],[build for coverage testing using gcov]), |
fd1677e8 TT |
369 | if test "$enableval" = "yes" |
370 | then | |
371 | HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" | |
372 | HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"] | |
373 | CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" | |
374 | CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" | |
375 | CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" | |
376 | LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" | |
377 | LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" | |
378 | LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" | |
379 | AC_MSG_RESULT([Enabling hardening support]) | |
380 | fi | |
381 | ) | |
50e1e10f | 382 | dnl |
a4d09610 TT |
383 | dnl Substitute library extensions |
384 | dnl | |
385 | AC_SUBST(LIB_EXT) | |
386 | AC_SUBST(STATIC_LIB_EXT) | |
387 | AC_SUBST(PROFILED_LIB_EXT) | |
55da9876 TT |
388 | AC_SUBST(LDFLAG_DYNAMIC) |
389 | AC_SUBST(PRIVATE_LIBS_CMT) | |
a4d09610 | 390 | dnl |
782bebfd | 391 | dnl handle --enable-jbd-debug |
cdf186e4 | 392 | dnl |
782bebfd | 393 | AC_ARG_ENABLE([jbd-debug], |
8c9e2921 | 394 | AS_HELP_STRING([--enable-jbd-debug],[enable journal debugging]), |
cdf186e4 TT |
395 | if test "$enableval" = "no" |
396 | then | |
02d04db4 | 397 | AC_MSG_RESULT([Disabling journal debugging]) |
cdf186e4 | 398 | else |
d1154eb4 TT |
399 | AC_DEFINE(CONFIG_JBD_DEBUG, 1, |
400 | [Define to 1 if debugging ext3/4 journal code]) | |
02d04db4 | 401 | AC_MSG_RESULT([Enabling journal debugging]) |
cdf186e4 TT |
402 | fi |
403 | , | |
02d04db4 | 404 | AC_MSG_RESULT([Disabling journal debugging by default]) |
cdf186e4 TT |
405 | ) |
406 | dnl | |
f0a22d0f TT |
407 | dnl handle --enable-blkid-debug |
408 | dnl | |
409 | AC_ARG_ENABLE([blkid-debug], | |
8c9e2921 | 410 | AS_HELP_STRING([--enable-blkid-debug],[enable blkid debugging]), |
f0a22d0f TT |
411 | if test "$enableval" = "no" |
412 | then | |
02d04db4 | 413 | AC_MSG_RESULT([Disabling blkid debugging]) |
f0a22d0f | 414 | else |
d1154eb4 TT |
415 | AC_DEFINE(CONFIG_BLKID_DEBUG, 1, |
416 | [Define to 1 if debugging the blkid library]) | |
02d04db4 | 417 | AC_MSG_RESULT([Enabling blkid debugging]) |
f0a22d0f TT |
418 | fi |
419 | , | |
02d04db4 | 420 | AC_MSG_RESULT([Disabling blkid debugging by default]) |
2a29f135 TT |
421 | ) |
422 | dnl | |
423 | dnl handle --enable-testio-debug | |
424 | dnl | |
425 | AC_ARG_ENABLE([testio-debug], | |
8c9e2921 | 426 | AS_HELP_STRING([--disable-testio-debug],[disable the use of the test I/O manager for debugging]), |
d1154eb4 TT |
427 | AH_TEMPLATE([CONFIG_TESTIO_DEBUG], |
428 | [Define to 1 if the testio I/O manager should be enabled]) | |
2a29f135 TT |
429 | if test "$enableval" = "no" |
430 | then | |
02d04db4 | 431 | AC_MSG_RESULT([Disabling testio debugging]) |
af773654 | 432 | TEST_IO_CMT="#" |
2a29f135 | 433 | else |
af773654 | 434 | TEST_IO_CMT= |
d1154eb4 | 435 | AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) |
02d04db4 | 436 | AC_MSG_RESULT([Enabling testio debugging]) |
2a29f135 TT |
437 | fi |
438 | , | |
af773654 | 439 | AC_MSG_RESULT([Enabling testio debugging by default]) |
d1154eb4 | 440 | AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) |
af773654 | 441 | TEST_IO_CMT= |
f0a22d0f | 442 | ) |
af773654 | 443 | AC_SUBST(TEST_IO_CMT) |
f0a22d0f | 444 | dnl |
b9e66a18 TT |
445 | dnl handle --enable-developer-features |
446 | dnl | |
447 | AC_ARG_ENABLE([developer-features], | |
8c9e2921 | 448 | AS_HELP_STRING([--enable-developer-features],[enable features for use by ext4 developers]), |
b9e66a18 TT |
449 | AH_TEMPLATE([CONFIG_DEVELOPER_FEATURES], |
450 | [Define to 1 for features for use by ext4 developers]) | |
451 | if test "$enableval" = "yes" | |
452 | then | |
453 | DEV_FEATURES_CMT= | |
454 | AC_DEFINE(CONFIG_DEVELOPER_FEATURES, 1) | |
455 | AC_MSG_RESULT([Enabling ext4 developer features]) | |
456 | else | |
457 | AC_MSG_RESULT([Disabling ext4 developer features]) | |
458 | DEV_FEATURES_CMT="#" | |
459 | fi | |
460 | , | |
461 | AC_MSG_RESULT([Disabling ext4 developer features by default]) | |
462 | DEV_FEATURES_CMT= | |
463 | ) | |
464 | AC_SUBST(DEV_FEATURES_CMT) | |
465 | dnl | |
39fd3d4f SJR |
466 | dnl handle --disable-libuuid |
467 | dnl | |
468 | PKG_PROG_PKG_CONFIG | |
469 | LIBUUID= | |
470 | DEPLIBUUID= | |
471 | STATIC_LIBUUID= | |
472 | DEPSTATIC_LIBUUID= | |
473 | PROFILED_LIBUUID= | |
474 | DEPPROFILED_LIBUUID= | |
475 | UUID_CMT= | |
476 | AC_ARG_ENABLE([libuuid], | |
8c9e2921 | 477 | AS_HELP_STRING([--enable-libuuid],[build and use private uuid library]), |
39fd3d4f SJR |
478 | if test "$enableval" = "no" |
479 | then | |
480 | if test -z "$PKG_CONFIG"; then | |
481 | AC_MSG_ERROR([pkg-config not installed; please install it.]) | |
482 | fi | |
483 | ||
484 | AC_CHECK_LIB(uuid, uuid_generate, | |
485 | [LIBUUID=`$PKG_CONFIG --libs uuid`; | |
486 | STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`], | |
2d7583bd | 487 | [AC_MSG_ERROR([external uuid library not found])]) |
5afdf37b | 488 | PROFILED_LIBUUID=$LIBUUID |
39fd3d4f SJR |
489 | UUID_CMT=# |
490 | AC_MSG_RESULT([Disabling private uuid library]) | |
491 | else | |
492 | LIBUUID='$(LIB)/libuuid'$LIB_EXT | |
493 | DEPLIBUUID=$LIBUUID | |
494 | STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT | |
495 | DEPSTATIC_LIBUUID=$STATIC_LIBUUID | |
496 | PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT | |
497 | DEPPROFILED_LIBUUID=$PROFILED_LIBUUID | |
498 | AC_MSG_RESULT([Enabling private uuid library]) | |
499 | fi | |
500 | , | |
f5dffb81 TT |
501 | if test -n "$PKG_CONFIG"; then |
502 | AC_CHECK_LIB(uuid, uuid_generate, | |
503 | [LIBUUID=`$PKG_CONFIG --libs uuid`; | |
504 | STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`]) | |
505 | fi | |
506 | if test -n "$LIBUUID"; then | |
507 | PROFILED_LIBUUID=$LIBUUID | |
508 | UUID_CMT=# | |
509 | AC_MSG_RESULT([Using system uuid by default]) | |
510 | else | |
511 | LIBUUID='$(LIB)/libuuid'$LIB_EXT | |
512 | DEPLIBUUID=$LIBUUID | |
513 | STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT | |
514 | DEPSTATIC_LIBUUID=$STATIC_LIBUUID | |
515 | PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT | |
516 | DEPPROFILED_LIBUUID=$PROFILED_LIBUUID | |
517 | AC_MSG_RESULT([Enabling private uuid library by default]) | |
518 | fi | |
39fd3d4f SJR |
519 | ) |
520 | AC_SUBST(LIBUUID) | |
521 | AC_SUBST(DEPLIBUUID) | |
522 | AC_SUBST(STATIC_LIBUUID) | |
523 | AC_SUBST(DEPSTATIC_LIBUUID) | |
524 | AC_SUBST(PROFILED_LIBUUID) | |
525 | AC_SUBST(DEPPROFILED_LIBUUID) | |
526 | AC_SUBST(UUID_CMT) | |
527 | dnl | |
14b596d4 TT |
528 | dnl handle --disable-libblkid |
529 | dnl | |
530 | PKG_PROG_PKG_CONFIG | |
531 | LIBBLKID= | |
532 | DEPLIBBLKID= | |
533 | STATIC_LIBBLKID= | |
534 | DEPSTATIC_LIBBLKID= | |
535 | PROFILED_LIBBLKID= | |
536 | DEPPROFILED_LIBBLKID= | |
537 | BLKID_CMT= | |
d1154eb4 | 538 | AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs]) |
14b596d4 | 539 | AC_ARG_ENABLE([libblkid], |
8c9e2921 | 540 | AS_HELP_STRING([--enable-libblkid],[build and use private blkid library]), |
14b596d4 TT |
541 | if test "$enableval" = "no" |
542 | then | |
543 | if test -z "$PKG_CONFIG"; then | |
544 | AC_MSG_ERROR([pkg-config not installed; please install it.]) | |
545 | fi | |
546 | ||
547 | AC_CHECK_LIB(blkid, blkid_get_cache, | |
548 | [LIBBLKID=`$PKG_CONFIG --libs blkid`; | |
549 | STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`], | |
2d7583bd | 550 | [AC_MSG_ERROR([external blkid library not found])], -luuid) |
14b596d4 | 551 | BLKID_CMT=# |
5afdf37b | 552 | PROFILED_LIBBLKID=$LIBBLKID |
14b596d4 TT |
553 | AC_MSG_RESULT([Disabling private blkid library]) |
554 | else | |
555 | LIBBLKID='$(LIB)/libblkid'$LIB_EXT | |
556 | DEPLIBBLKID=$LIBBLKID | |
557 | STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT | |
558 | DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID | |
559 | PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT | |
560 | DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID | |
d1154eb4 | 561 | AC_DEFINE(CONFIG_BUILD_FINDFS, 1) |
14b596d4 TT |
562 | AC_MSG_RESULT([Enabling private blkid library]) |
563 | fi | |
564 | , | |
f5dffb81 TT |
565 | if test -n "$PKG_CONFIG"; then |
566 | AC_CHECK_LIB(blkid, blkid_get_cache, | |
567 | [LIBBLKID=`$PKG_CONFIG --libs blkid`; | |
568 | STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`]) | |
569 | fi | |
570 | if test -n "$LIBBLKID"; then | |
571 | BLKID_CMT=# | |
572 | PROFILED_LIBBLKID=$LIBBLKID | |
573 | AC_MSG_RESULT([Using system blkid library by default]) | |
574 | else | |
575 | LIBBLKID='$(LIB)/libblkid'$LIB_EXT | |
576 | DEPLIBBLKID=$LIBBLKID | |
577 | STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT | |
578 | DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID | |
579 | PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT | |
580 | DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID | |
581 | AC_DEFINE(CONFIG_BUILD_FINDFS, 1) | |
582 | AC_MSG_RESULT([Enabling private blkid library by default]) | |
583 | fi | |
14b596d4 TT |
584 | ) |
585 | AC_SUBST(LIBBLKID) | |
586 | AC_SUBST(DEPLIBBLKID) | |
587 | AC_SUBST(STATIC_LIBBLKID) | |
588 | AC_SUBST(DEPSTATIC_LIBBLKID) | |
589 | AC_SUBST(PROFILED_LIBBLKID) | |
590 | AC_SUBST(DEPPROFILED_LIBBLKID) | |
591 | AC_SUBST(BLKID_CMT) | |
592 | dnl | |
0afb9be6 TT |
593 | dnl handle --enable-subset |
594 | dnl | |
595 | ALL_CMT= | |
feb235e0 | 596 | SUBSET_CMT= |
0afb9be6 | 597 | AC_ARG_ENABLE([subset], |
8c9e2921 | 598 | AS_HELP_STRING([--enable-subset],[enable subset-only build]), |
0afb9be6 TT |
599 | if test "$enableval" = "no" |
600 | then | |
feb235e0 | 601 | SUBSET_CMT=# |
0afb9be6 TT |
602 | AC_MSG_RESULT([Disabling subset-only build]) |
603 | else | |
604 | ALL_CMT=# | |
605 | AC_MSG_RESULT([Enabling subset-only-build]) | |
606 | fi | |
607 | ,) | |
608 | AC_SUBST(ALL_CMT) | |
feb235e0 | 609 | AC_SUBST(SUBSET_CMT) |
0afb9be6 | 610 | dnl |
3df6014a TT |
611 | dnl handle --disable-backtrace |
612 | dnl | |
613 | AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) | |
614 | AC_ARG_ENABLE([backtrace], | |
8c9e2921 | 615 | AS_HELP_STRING([--disable-backtrace],[disable use backtrace]), |
3df6014a TT |
616 | if test "$enableval" = "no" |
617 | then | |
618 | AC_MSG_RESULT([Disabling use of backtrace]) | |
619 | AC_DEFINE(DISABLE_BACKTRACE, 1) | |
620 | else | |
621 | AC_MSG_RESULT([Enabling use of backtrace]) | |
622 | fi | |
623 | , | |
624 | AC_MSG_RESULT([Enabling use of backtrace by default]) | |
625 | ) | |
626 | dnl | |
cdf186e4 TT |
627 | dnl handle --enable-debugfs |
628 | dnl | |
629 | AC_ARG_ENABLE([debugfs], | |
8c9e2921 | 630 | AS_HELP_STRING([--disable-debugfs],[disable support of debugfs program]), |
cdf186e4 TT |
631 | if test "$enableval" = "no" |
632 | then | |
02d04db4 | 633 | AC_MSG_RESULT([Disabling debugfs support]) |
cdf186e4 TT |
634 | DEBUGFS_CMT="#" |
635 | else | |
636 | DEBUGFS_CMT= | |
02d04db4 | 637 | AC_MSG_RESULT([Enabling debugfs support]) |
cdf186e4 TT |
638 | fi |
639 | , | |
02d04db4 | 640 | AC_MSG_RESULT([Enabling debugfs support by default]) |
cdf186e4 TT |
641 | DEBUGFS_CMT= |
642 | ) | |
643 | AC_SUBST(DEBUGFS_CMT) | |
644 | dnl | |
645 | dnl handle --enable-imager | |
646 | dnl | |
647 | AC_ARG_ENABLE([imager], | |
8c9e2921 | 648 | AS_HELP_STRING([--disable-imager],[disable support of e2image program]), |
cdf186e4 TT |
649 | if test "$enableval" = "no" |
650 | then | |
02d04db4 | 651 | AC_MSG_RESULT([Disabling e2image support]) |
cdf186e4 TT |
652 | IMAGER_CMT="#" |
653 | else | |
654 | IMAGER_CMT= | |
02d04db4 | 655 | AC_MSG_RESULT([Enabling e2image support]) |
cdf186e4 TT |
656 | fi |
657 | , | |
02d04db4 | 658 | AC_MSG_RESULT([Enabling e2image support by default]) |
cdf186e4 TT |
659 | IMAGER_CMT= |
660 | ) | |
661 | AC_SUBST(IMAGER_CMT) | |
662 | dnl | |
663 | dnl handle --enable-resizer | |
664 | dnl | |
665 | AC_ARG_ENABLE([resizer], | |
8c9e2921 | 666 | AS_HELP_STRING([--disable-resizer],[disable support of e2resize program]), |
cdf186e4 TT |
667 | if test "$enableval" = "no" |
668 | then | |
02d04db4 | 669 | AC_MSG_RESULT([Disabling e2resize support]) |
cdf186e4 TT |
670 | RESIZER_CMT="#" |
671 | else | |
672 | RESIZER_CMT= | |
02d04db4 | 673 | AC_MSG_RESULT([Enabling e2resize support]) |
cdf186e4 TT |
674 | fi |
675 | , | |
02d04db4 | 676 | AC_MSG_RESULT([Enabling e2resize support by default]) |
cdf186e4 TT |
677 | RESIZER_CMT= |
678 | ) | |
679 | AC_SUBST(RESIZER_CMT) | |
680 | dnl | |
8d9c50c5 TT |
681 | dnl handle --enable-defrag |
682 | dnl | |
683 | AC_ARG_ENABLE([defrag], | |
8c9e2921 | 684 | AS_HELP_STRING([--disable-defrag],[disable support of e4defrag program]), |
8d9c50c5 TT |
685 | if test "$enableval" = "no" |
686 | then | |
687 | AC_MSG_RESULT([Disabling e4defrag support]) | |
688 | DEFRAG_CMT="#" | |
689 | else | |
690 | DEFRAG_CMT= | |
691 | AC_MSG_RESULT([Enabling e4defrag support]) | |
692 | fi | |
693 | , | |
6c59a665 TT |
694 | if test -z "$WITH_DIET_LIBC" |
695 | then | |
696 | AC_MSG_RESULT([Enabling e4defrag support by default]) | |
697 | DEFRAG_CMT= | |
698 | else | |
699 | AC_MSG_RESULT([Disabling e4defrag support by default]) | |
700 | DEFRAG_CMT="#" | |
701 | fi | |
8d9c50c5 TT |
702 | ) |
703 | AC_SUBST(DEFRAG_CMT) | |
704 | dnl | |
fc6d9d51 TT |
705 | dnl See whether to install the `fsck' wrapper program (that calls e2fsck) |
706 | dnl | |
707 | AC_ARG_ENABLE([fsck], | |
8c9e2921 | 708 | AS_HELP_STRING([--enable-fsck],[build fsck wrapper program]), |
fc6d9d51 TT |
709 | [if test "$enableval" = "no" |
710 | then | |
711 | FSCK_PROG='' FSCK_MAN='' | |
02d04db4 | 712 | AC_MSG_RESULT([Not building fsck wrapper]) |
fc6d9d51 TT |
713 | else |
714 | FSCK_PROG=fsck FSCK_MAN=fsck.8 | |
02d04db4 | 715 | AC_MSG_RESULT([Building fsck wrapper]) |
fc6d9d51 TT |
716 | fi] |
717 | , | |
718 | [case "$host_os" in | |
e363240d | 719 | gnu*) |
fc6d9d51 | 720 | FSCK_PROG='' FSCK_MAN='' |
02d04db4 | 721 | AC_MSG_RESULT([Not building fsck wrapper by default]) |
fc6d9d51 TT |
722 | ;; |
723 | *) | |
724 | FSCK_PROG=fsck FSCK_MAN=fsck.8 | |
02d04db4 | 725 | AC_MSG_RESULT([Building fsck wrapper by default]) |
fc6d9d51 TT |
726 | esac] |
727 | ) | |
728 | AC_SUBST(FSCK_PROG) | |
729 | AC_SUBST(FSCK_MAN) | |
730 | dnl | |
5d40773b TT |
731 | dnl See whether to install the `e2initrd-helper' program |
732 | dnl | |
733 | AC_ARG_ENABLE([e2initrd-helper], | |
8c9e2921 | 734 | AS_HELP_STRING([--enable-e2initrd-helper],[build e2initrd-helper program]), |
5d40773b TT |
735 | [if test "$enableval" = "no" |
736 | then | |
737 | E2INITRD_PROG='' E2INITRD_MAN='' | |
02d04db4 | 738 | AC_MSG_RESULT([Not building e2initrd helper]) |
5d40773b TT |
739 | else |
740 | E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 | |
02d04db4 | 741 | AC_MSG_RESULT([Building e2initrd helper]) |
5d40773b TT |
742 | fi] |
743 | , | |
744 | E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 | |
02d04db4 | 745 | AC_MSG_RESULT([Building e2initrd helper by default]) |
5d40773b TT |
746 | ) |
747 | AC_SUBST(E2INITRD_PROG) | |
748 | AC_SUBST(E2INITRD_MAN) | |
4db2f59a | 749 | dnl |
5d40773b | 750 | dnl |
50e1e10f | 751 | dnl |
3249394d | 752 | AC_ARG_ENABLE([tls], |
8c9e2921 | 753 | AS_HELP_STRING([--disable-tls],[disable use of thread local support]), |
3249394d TT |
754 | [if test "$enableval" = "no" |
755 | then | |
756 | try_tls="" | |
02d04db4 | 757 | AC_MSG_RESULT([Disabling thread local support]) |
3249394d TT |
758 | else |
759 | try_tls="yes" | |
02d04db4 | 760 | AC_MSG_RESULT([Enabling thread local support]) |
3249394d TT |
761 | fi] |
762 | , | |
eafba6c3 TT |
763 | if test -n "$WITH_DIET_LIBC" |
764 | then | |
765 | try_tls="" | |
02d04db4 | 766 | AC_MSG_RESULT([Diet libc does not support thread local support]) |
eafba6c3 TT |
767 | else |
768 | try_tls="yes" | |
02d04db4 | 769 | AC_MSG_RESULT([Try using thread local support by default]) |
eafba6c3 | 770 | fi |
3249394d TT |
771 | ) |
772 | if test "$try_tls" = "yes" | |
773 | then | |
774 | AX_TLS | |
775 | fi | |
776 | dnl | |
777 | dnl | |
778 | dnl | |
bdcd5f22 | 779 | AC_ARG_WITH([pthread], |
8c9e2921 | 780 | AS_HELP_STRING([--without-pthread],[disable use of pthread support]), |
bdcd5f22 TT |
781 | [if test "$withval" = "no" |
782 | then | |
783 | try_pthread="" | |
784 | AC_MSG_RESULT([Disabling pthread support]) | |
785 | else | |
786 | try_pthread="yes" | |
787 | AC_MSG_RESULT([Testing for pthread support]) | |
788 | fi] | |
789 | , | |
790 | try_pthread="yes" | |
791 | AC_MSG_RESULT([Try testing for pthread support by default]) | |
792 | ) | |
793 | if test "$try_pthread" = "yes" | |
794 | then | |
795 | AX_PTHREAD | |
796 | else | |
797 | test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" | |
798 | AC_SUBST([PTHREAD_CC]) | |
799 | fi | |
800 | dnl | |
801 | dnl | |
802 | dnl | |
d1154eb4 | 803 | AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd]) |
5610f992 | 804 | AC_ARG_ENABLE([uuidd], |
8c9e2921 | 805 | AS_HELP_STRING([--disable-uuidd],[disable building the uuid daemon]), |
5610f992 TT |
806 | [if test "$enableval" = "no" |
807 | then | |
02d04db4 | 808 | AC_MSG_RESULT([Not building uuidd]) |
5610f992 TT |
809 | UUIDD_CMT="#" |
810 | else | |
d1154eb4 | 811 | AC_DEFINE(USE_UUIDD, 1) |
5610f992 | 812 | UUIDD_CMT="" |
02d04db4 | 813 | AC_MSG_RESULT([Building uuidd]) |
5610f992 TT |
814 | fi] |
815 | , | |
d1154eb4 | 816 | AC_DEFINE(USE_UUIDD, 1) |
e3d10158 TT |
817 | if test -z "$UUID_CMT" |
818 | then | |
819 | UUIDD_CMT="" | |
820 | AC_MSG_RESULT([Building uuidd by default]) | |
821 | else | |
822 | UUIDD_CMT="#" | |
823 | AC_MSG_RESULT([Disabling uuidd by default]) | |
824 | fi | |
5610f992 TT |
825 | ) |
826 | AC_SUBST(UUIDD_CMT) | |
827 | dnl | |
d6a4bcb5 TB |
828 | dnl handle --disable-mmp |
829 | dnl | |
830 | AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support]) | |
831 | AC_ARG_ENABLE([mmp], | |
8c9e2921 | 832 | AS_HELP_STRING([--disable-mmp],[disable support mmp, Multi Mount Protection]), |
d6a4bcb5 TB |
833 | if test "$enableval" = "no" |
834 | then | |
835 | AC_MSG_RESULT([Disabling mmp support]) | |
836 | else | |
837 | AC_MSG_RESULT([Enabling mmp support]) | |
838 | AC_DEFINE(CONFIG_MMP, 1) | |
839 | fi | |
840 | , | |
841 | AC_MSG_RESULT([Enabling mmp support by default]) | |
842 | AC_DEFINE(CONFIG_MMP, 1) | |
843 | ) | |
844 | dnl | |
749f0712 TT |
845 | dnl handle --disable-tdb |
846 | dnl | |
847 | AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support]) | |
848 | AC_ARG_ENABLE([tdb], | |
8c9e2921 | 849 | AS_HELP_STRING([--disable-tdb],[disable tdb support]), |
f7581137 | 850 | [ |
749f0712 TT |
851 | if test "$enableval" = "no" |
852 | then | |
853 | AC_MSG_RESULT([Disabling tdb support]) | |
f7581137 | 854 | CONFIG_TDB=0 |
749f0712 TT |
855 | else |
856 | AC_MSG_RESULT([Enabling tdb support]) | |
f7581137 EB |
857 | CONFIG_TDB=1 |
858 | fi | |
859 | ] | |
860 | , | |
861 | [ | |
862 | case "$host_os" in | |
863 | mingw*) | |
864 | AC_MSG_RESULT([Disabling tdb support by default]) | |
865 | CONFIG_TDB=0 | |
866 | ;; | |
867 | *) | |
868 | AC_MSG_RESULT([Enabling tdb support by default]) | |
869 | CONFIG_TDB=1 | |
870 | ;; | |
871 | esac | |
872 | ] | |
873 | ) | |
874 | if test "$CONFIG_TDB" = "1" | |
875 | then | |
749f0712 TT |
876 | AC_DEFINE(CONFIG_TDB, 1) |
877 | TDB_CMT="" | |
878 | TDB_MAN_COMMENT="" | |
f7581137 EB |
879 | else |
880 | TDB_CMT="#" | |
881 | TDB_MAN_COMMENT='.\"' | |
749f0712 | 882 | fi |
749f0712 TT |
883 | AC_SUBST(TDB_CMT) |
884 | AC_SUBST(TDB_MAN_COMMENT) | |
885 | dnl | |
1625bf42 TB |
886 | dnl handle --disable-bmap-stats |
887 | dnl | |
888 | AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.]) | |
889 | AC_ARG_ENABLE([bmap-stats], | |
8c9e2921 | 890 | AS_HELP_STRING([--disable-bmap-stats],[disable collection of bitmap stats]), |
1625bf42 TB |
891 | if test "$enableval" = "no" |
892 | then | |
893 | AC_MSG_RESULT([Disabling bitmap statistics support]) | |
894 | else | |
895 | AC_MSG_RESULT([Enabling bitmap statistics support]) | |
896 | AC_DEFINE(ENABLE_BMAP_STATS, 1) | |
897 | fi | |
898 | , | |
899 | AC_MSG_RESULT([Enabling bitmap statistics support by default]) | |
900 | AC_DEFINE(ENABLE_BMAP_STATS, 1) | |
901 | ) | |
902 | dnl | |
903 | dnl handle --enable-bmap-stats-ops | |
904 | dnl | |
905 | AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.]) | |
906 | AC_ARG_ENABLE([bmap-stats-ops], | |
8c9e2921 | 907 | AS_HELP_STRING([--enable-bmap-stats-ops],[enable collection of additional bitmap stats]), |
1625bf42 TB |
908 | if test "$enableval" = "no" |
909 | then | |
910 | AC_MSG_RESULT([Disabling additional bitmap statistics]) | |
911 | else | |
912 | dnl There has to be a better way! | |
913 | AS_IF([test "x${enable_bmap_stats}" = "xno"], | |
914 | AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats])) | |
915 | ||
916 | AC_MSG_RESULT([Enabling additional bitmap statistics]) | |
917 | AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1) | |
918 | fi | |
919 | , | |
920 | AC_MSG_RESULT([Disabling additional bitmap statistics by default]) | |
921 | ) | |
922 | dnl | |
5610f992 TT |
923 | dnl |
924 | dnl | |
50e1e10f TT |
925 | MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library |
926 | AC_SUBST_FILE(MAKEFILE_LIBRARY) | |
927 | dnl | |
cdf186e4 TT |
928 | dnl Add internationalization support, using gettext. |
929 | dnl | |
b0cacab0 | 930 | GETTEXT_PACKAGE=e2fsprogs |
cdf186e4 TT |
931 | PACKAGE=e2fsprogs |
932 | VERSION="$E2FSPROGS_VERSION" | |
b0cacab0 | 933 | VERSION=0.14.1 |
d1154eb4 TT |
934 | AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext]) |
935 | AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext]) | |
b0cacab0 | 936 | AC_SUBST(GETTEXT_PACKAGE) |
cdf186e4 TT |
937 | AC_SUBST(PACKAGE) |
938 | AC_SUBST(VERSION) | |
939 | ||
e598c29b | 940 | AM_GNU_GETTEXT([external]) |
cdf186e4 | 941 | dnl |
50e1e10f TT |
942 | dnl End of configuration options |
943 | dnl | |
74becf3c | 944 | AC_SUBST(BINARY_TYPE) |
50e1e10f | 945 | AC_PROG_MAKE_SET |
bcb915b0 | 946 | CHECK_GNU_MAKE |
50e1e10f | 947 | AC_PATH_PROG(LN, ln, ln) |
5abc0414 | 948 | AC_PROG_MKDIR_P |
3fb16e74 TT |
949 | dnl |
950 | dnl @mkdir_p@ is used by po's Makefile.in | |
951 | dnl | |
952 | mkdir_p=$MKDIR_P | |
953 | AC_SUBST(mkdir_p) | |
fc6d9d51 | 954 | AC_PROG_LN_S |
50e1e10f TT |
955 | AC_PATH_PROG(MV, mv, mv) |
956 | AC_PATH_PROG(CP, cp, cp) | |
957 | AC_PATH_PROG(RM, rm, rm) | |
958 | AC_PATH_PROG(CHMOD, chmod, :) | |
32237014 TT |
959 | AC_PROG_AWK |
960 | AC_PROG_EGREP | |
50e1e10f | 961 | AC_PATH_PROG(SED, sed, sed) |
9d564f73 | 962 | AC_PATH_PROG(PERL, perl, perl) |
250f79f0 | 963 | AC_PATH_PROG(LDCONFIG, ldconfig, :) |
50e1e10f TT |
964 | AC_CHECK_TOOL(AR, ar, ar) |
965 | AC_CHECK_TOOL(RANLIB, ranlib, :) | |
966 | AC_CHECK_TOOL(STRIP, strip, :) | |
7321d94e MK |
967 | AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) |
968 | if test "_$MAKEINFO" = "_"; then | |
ca1de98a | 969 | MAKEINFO="echo Makeinfo is missing. Info documentation will not be built." |
7321d94e MK |
970 | else |
971 | case "$MAKEINFO" in | |
972 | */missing.*) | |
973 | AC_MSG_WARN([ | |
974 | *** Makeinfo is missing. Info documentation will not be built.]) | |
975 | ;; | |
976 | *) | |
977 | ;; | |
978 | esac | |
979 | fi | |
980 | AC_SUBST(MAKEINFO) | |
50e1e10f | 981 | AC_PROG_INSTALL |
6c133523 TT |
982 | # See if we need a separate native compiler. |
983 | if test $cross_compiling = no; then | |
984 | BUILD_CC="$CC" | |
985 | AC_SUBST(BUILD_CC) | |
986 | else | |
987 | AC_CHECK_PROGS(BUILD_CC, gcc cc) | |
988 | fi | |
677fc916 MF |
989 | AC_CHECK_HEADERS(m4_flatten([ |
990 | dirent.h | |
991 | errno.h | |
992 | execinfo.h | |
993 | getopt.h | |
994 | malloc.h | |
995 | mntent.h | |
996 | paths.h | |
24487a7f | 997 | pthread.h |
677fc916 MF |
998 | semaphore.h |
999 | setjmp.h | |
1000 | signal.h | |
1001 | stdarg.h | |
1002 | stdint.h | |
1003 | stdlib.h | |
1004 | termios.h | |
1005 | termio.h | |
1006 | unistd.h | |
1007 | utime.h | |
c84da2ee | 1008 | attr/xattr.h |
677fc916 MF |
1009 | linux/falloc.h |
1010 | linux/fd.h | |
82424fc6 | 1011 | linux/fsmap.h |
677fc916 | 1012 | linux/major.h |
fbabd5c4 | 1013 | linux/loop.h |
f47f3195 | 1014 | linux/types.h |
677fc916 MF |
1015 | net/if_dl.h |
1016 | netinet/in.h | |
81cbf1ef | 1017 | sys/acl.h |
677fc916 | 1018 | sys/disklabel.h |
51050544 | 1019 | sys/disk.h |
677fc916 MF |
1020 | sys/file.h |
1021 | sys/ioctl.h | |
74f2c4aa | 1022 | sys/key.h |
677fc916 MF |
1023 | sys/mkdev.h |
1024 | sys/mman.h | |
51050544 | 1025 | sys/mount.h |
677fc916 | 1026 | sys/prctl.h |
39ace91b | 1027 | sys/random.h |
677fc916 MF |
1028 | sys/resource.h |
1029 | sys/select.h | |
1030 | sys/socket.h | |
1031 | sys/sockio.h | |
1032 | sys/stat.h | |
1033 | sys/syscall.h | |
1034 | sys/sysmacros.h | |
1035 | sys/time.h | |
1036 | sys/types.h | |
1037 | sys/un.h | |
1038 | sys/wait.h | |
d7de3f3d | 1039 | sys/xattr.h |
677fc916 | 1040 | ])) |
b3d180e2 EB |
1041 | case "$host_os" in |
1042 | mingw*) | |
1043 | # The above checks only detect system headers, not the headers in | |
1044 | # ./include/mingw/, so explicitly define them to be available. | |
1045 | AC_DEFINE(HAVE_LINUX_TYPES_H, 1) | |
1046 | AC_DEFINE(HAVE_SYS_STAT_H, 1) | |
1047 | AC_DEFINE(HAVE_SYS_SYSMACROS_H, 1) | |
1048 | AC_DEFINE(HAVE_SYS_TYPES_H, 1) | |
1049 | AC_DEFINE(HAVE_UNISTD_H, 1) | |
1050 | ;; | |
1051 | esac | |
ec3a69bb MA |
1052 | dnl Check where to find a dd(1) that supports iflag=fullblock |
1053 | dnl and oflag=append | |
1054 | AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock]) | |
1055 | DD= | |
1056 | for i in dd gdd ; do | |
1057 | if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then | |
1058 | DD=$i | |
1059 | break | |
1060 | fi | |
1061 | done | |
1062 | if test -n "$DD" ; then | |
1063 | AC_MSG_RESULT([$DD]) | |
1064 | else | |
1065 | AC_MSG_RESULT([not found, using dd]) | |
1066 | DD=dd | |
1067 | AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.]) | |
1068 | fi | |
1069 | AC_SUBST([DD]) | |
1070 | ||
da76d6b7 TT |
1071 | AC_CHECK_HEADERS(net/if.h,,, |
1072 | [[ | |
1073 | #if HAVE_SYS_TYPES_H | |
1074 | #include <sys/types.h> | |
1075 | #endif | |
1076 | #if HAVE_SYS_SOCKET | |
1077 | #include <sys/socket.h> | |
1078 | #endif | |
1079 | ]]) | |
50e1e10f | 1080 | AC_FUNC_VPRINTF |
fff45483 | 1081 | dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen |
055866d8 | 1082 | dnl is not declared. |
d1154eb4 TT |
1083 | AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, |
1084 | [Define to 1 if dirent has d_reclen])],, | |
6c65d251 | 1085 | [#include <dirent.h>]) |
2873927d | 1086 | AC_CHECK_MEMBERS([struct stat.st_atim]) |
d1154eb4 TT |
1087 | dnl Check to see if ssize_t was declared |
1088 | AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1, | |
1089 | [Define to 1 if ssize_t declared])],, | |
6c65d251 | 1090 | [#include <sys/types.h>]) |
50e1e10f | 1091 | dnl |
b0b9c4de TT |
1092 | dnl Check to see if llseek() is declared in unistd.h. On some libc's |
1093 | dnl it is, and on others it isn't..... Thank you glibc developers.... | |
1094 | dnl | |
d1154eb4 TT |
1095 | AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, |
1096 | [Define to 1 if llseek declared in unistd.h])],, | |
6c65d251 | 1097 | [#include <unistd.h>]) |
b0b9c4de | 1098 | dnl |
6928adc9 TT |
1099 | dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files |
1100 | dnl are so convoluted that I can't tell whether it will always be defined, | |
1101 | dnl and if it isn't defined while lseek64 is defined in the library, | |
1102 | dnl disaster will strike. | |
1103 | dnl | |
1104 | dnl Warning! Use of --enable-gcc-wall may throw off this test. | |
1105 | dnl | |
1106 | dnl | |
d1154eb4 TT |
1107 | AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, |
1108 | [Define to 1 if lseek64 declared in unistd.h])],, | |
6c65d251 TT |
1109 | [#define _LARGEFILE_SOURCE |
1110 | #define _LARGEFILE64_SOURCE | |
1111 | #include <unistd.h>]) | |
5598a968 EB |
1112 | |
1113 | dnl The Android NDK has <linux/fsmap.h>, but it is missing the inline functions | |
1114 | dnl fsmap_sizeof() and fsmap_advance(). Check whether this is the case. | |
1115 | AC_CHECK_DECL(fsmap_sizeof,[AC_DEFINE(HAVE_FSMAP_SIZEOF, 1, | |
1116 | [Define to 1 if fsmap_sizeof() is declared in linux/fsmap.h])],, | |
1117 | [#include <linux/fsmap.h>]) | |
6928adc9 | 1118 | dnl |
50e1e10f TT |
1119 | dnl Word sizes... |
1120 | dnl | |
50e1e10f TT |
1121 | AC_CHECK_SIZEOF(short) |
1122 | AC_CHECK_SIZEOF(int) | |
1123 | AC_CHECK_SIZEOF(long) | |
fc6d9d51 | 1124 | AC_CHECK_SIZEOF(long long) |
274d46e1 | 1125 | AC_CHECK_SIZEOF(off_t) |
2dd680f3 | 1126 | AC_CHECK_SIZEOF(time_t) |
50e1e10f TT |
1127 | SIZEOF_SHORT=$ac_cv_sizeof_short |
1128 | SIZEOF_INT=$ac_cv_sizeof_int | |
1129 | SIZEOF_LONG=$ac_cv_sizeof_long | |
fc6d9d51 | 1130 | SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long |
274d46e1 | 1131 | SIZEOF_OFF_T=$ac_cv_sizeof_off_t |
2dd680f3 | 1132 | SIZEOF_TIME_T=$ac_cv_sizeof_time_t |
50e1e10f TT |
1133 | AC_SUBST(SIZEOF_SHORT) |
1134 | AC_SUBST(SIZEOF_INT) | |
1135 | AC_SUBST(SIZEOF_LONG) | |
fc6d9d51 | 1136 | AC_SUBST(SIZEOF_LONG_LONG) |
274d46e1 | 1137 | AC_SUBST(SIZEOF_OFF_T) |
2dd680f3 | 1138 | AC_SUBST(SIZEOF_TIME_T) |
877eb6d9 | 1139 | AC_C_BIGENDIAN |
91f04685 CQ |
1140 | if test $cross_compiling = no; then |
1141 | BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh | |
1142 | else | |
1143 | CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh | |
1144 | fi | |
4ea7ea00 TT |
1145 | ASM_TYPES_HEADER=./asm_types.h |
1146 | AC_SUBST_FILE(ASM_TYPES_HEADER) | |
50e1e10f | 1147 | dnl |
488c75a6 TT |
1148 | dnl Save the configuration #defines needed for the public ext2fs.h |
1149 | dnl header file | |
1150 | dnl | |
1151 | echo "/* These defines are needed for the public ext2fs.h header file */" \ | |
1152 | > public_config.h | |
1153 | if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then | |
1154 | uniq tmp_config.$$ >> public_config.h | |
1155 | else | |
1156 | echo "#undef HAVE_SYS_TYPES_H" >> public_config.h | |
1157 | fi | |
1158 | if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then | |
1159 | uniq tmp_config.$$ >> public_config.h | |
1160 | else | |
1161 | echo "#undef WORDS_BIGENDIAN" >> public_config.h | |
1162 | fi | |
1163 | rm -f tmp_config.$$ | |
1164 | PUBLIC_CONFIG_HEADER=./public_config.h | |
1165 | AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) | |
1166 | dnl | |
0c193f82 TT |
1167 | dnl See if we have inttypes.h and if intptr_t is defined |
1168 | dnl | |
1169 | AC_CHECK_HEADERS([inttypes.h]) | |
d2ee56d8 | 1170 | AC_CHECK_TYPES(intptr_t) |
0c193f82 | 1171 | dnl |
50e1e10f TT |
1172 | dnl See if struct stat has a st_flags field, in which case we can get file |
1173 | dnl flags somewhat portably. Also check for the analogous setter, chflags(). | |
1174 | dnl | |
1175 | AC_MSG_CHECKING(whether struct stat has a st_flags field) | |
1176 | AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, | |
54445dc2 | 1177 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[struct stat stat; stat.st_flags = 0;]])],[e2fsprogs_cv_struct_st_flags=yes],[e2fsprogs_cv_struct_st_flags=no])) |
50e1e10f TT |
1178 | AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) |
1179 | if test "$e2fsprogs_cv_struct_st_flags" = yes; then | |
c03bc4e8 TT |
1180 | AC_MSG_CHECKING(whether st_flags field is useful) |
1181 | AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, | |
54445dc2 | 1182 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[struct stat stat; stat.st_flags |= UF_IMMUTABLE;]])],[e2fsprogs_cv_struct_st_flags_immut=yes],[e2fsprogs_cv_struct_st_flags_immut=no])) |
c03bc4e8 TT |
1183 | AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut) |
1184 | if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then | |
d1154eb4 TT |
1185 | AC_DEFINE(HAVE_STAT_FLAGS, 1, |
1186 | [Define to 1 if struct stat has st_flags]) | |
c03bc4e8 | 1187 | fi |
50e1e10f | 1188 | fi |
84ea6e70 TT |
1189 | dnl |
1190 | dnl Check for the presence of SA_LEN | |
1191 | dnl | |
6c65d251 | 1192 | AC_CHECK_MEMBER(struct sockaddr.sa_len, |
d1154eb4 TT |
1193 | AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1, |
1194 | [Define to 1 if if struct sockaddr contains sa_len]),, | |
6c65d251 TT |
1195 | [#include <sys/types.h> |
1196 | #include <sys/socket.h>]) | |
84ea6e70 | 1197 | dnl |
7154d974 TT |
1198 | dnl If we are using the system-provided blkid library, check for |
1199 | dnl the functions added after migrating that library to util-linux | |
9ed8e5fe ES |
1200 | dnl |
1201 | if test -n "$BLKID_CMT"; then | |
7154d974 | 1202 | AC_CHECK_LIB(blkid, blkid_probe_get_topology, |
f72ea2de DL |
1203 | AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1, |
1204 | [Define to 1 if blkid has blkid_probe_get_topology])) | |
f4979dd5 JK |
1205 | AC_CHECK_LIB(blkid, blkid_topology_get_dax, |
1206 | AC_DEFINE(HAVE_BLKID_TOPOLOGY_GET_DAX, 1, | |
1207 | [Define to 1 if blkid has blkid_topology_get_dax])) | |
7154d974 | 1208 | AC_CHECK_LIB(blkid, blkid_probe_enable_partitions, |
f72ea2de DL |
1209 | AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1, |
1210 | [Define to 1 if blkid has blkid_probe_enable_partitions])) | |
9ed8e5fe ES |
1211 | fi |
1212 | dnl | |
32179ce2 TT |
1213 | if test -n "$DLOPEN_LIB" ; then |
1214 | ac_cv_func_dlopen=yes | |
1215 | fi | |
677fc916 MF |
1216 | AC_CHECK_FUNCS(m4_flatten([ |
1217 | __secure_getenv | |
74f2c4aa | 1218 | add_key |
677fc916 | 1219 | backtrace |
677fc916 | 1220 | chflags |
32179ce2 | 1221 | dlopen |
9a393891 | 1222 | fadvise64 |
677fc916 MF |
1223 | fallocate |
1224 | fallocate64 | |
1225 | fchown | |
f47f3195 | 1226 | fcntl |
677fc916 MF |
1227 | fdatasync |
1228 | fstat64 | |
f47f3195 | 1229 | fsync |
677fc916 | 1230 | ftruncate64 |
2873927d | 1231 | futimes |
6c59a665 | 1232 | getcwd |
677fc916 | 1233 | getdtablesize |
39ace91b | 1234 | getentropy |
32b8802a | 1235 | gethostname |
677fc916 | 1236 | getmntinfo |
25ff7725 | 1237 | getpwuid_r |
39ace91b | 1238 | getrandom |
677fc916 MF |
1239 | getrlimit |
1240 | getrusage | |
1241 | jrand48 | |
74f2c4aa | 1242 | keyctl |
c84da2ee | 1243 | llistxattr |
677fc916 MF |
1244 | llseek |
1245 | lseek64 | |
1246 | mallinfo | |
97079a79 | 1247 | mallinfo2 |
677fc916 MF |
1248 | mbstowcs |
1249 | memalign | |
6c59a665 | 1250 | mempcpy |
677fc916 MF |
1251 | mmap |
1252 | msync | |
1253 | nanosleep | |
1254 | open64 | |
1255 | pathconf | |
1256 | posix_fadvise | |
9a393891 | 1257 | posix_fadvise64 |
677fc916 MF |
1258 | posix_memalign |
1259 | prctl | |
baa35446 DW |
1260 | pread |
1261 | pwrite | |
f00948ad TT |
1262 | pread64 |
1263 | pwrite64 | |
4e5f24ae | 1264 | qsort_r |
1ad3174a | 1265 | secure_getenv |
b24efa21 | 1266 | setmntent |
677fc916 MF |
1267 | setresgid |
1268 | setresuid | |
c42de75b | 1269 | snprintf |
677fc916 | 1270 | srandom |
6c59a665 | 1271 | stpcpy |
677fc916 MF |
1272 | strcasecmp |
1273 | strdup | |
1274 | strnlen | |
1275 | strptime | |
1276 | strtoull | |
1277 | sync_file_range | |
1278 | sysconf | |
1279 | usleep | |
1280 | utime | |
441eb337 | 1281 | utimes |
677fc916 MF |
1282 | valloc |
1283 | ])) | |
fc6d9d51 | 1284 | dnl |
fc6d9d51 TT |
1285 | dnl Check to see if -lsocket is required (solaris) to make something |
1286 | dnl that uses socket() to compile; this is needed for the UUID library | |
1287 | dnl | |
1288 | SOCKET_LIB='' | |
1289 | AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) | |
1290 | AC_SUBST(SOCKET_LIB) | |
1291 | dnl | |
b291c11f DW |
1292 | dnl See if libmagic exists |
1293 | dnl | |
1294 | AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic | |
1295 | AC_CHECK_HEADERS([magic.h])]) | |
32179ce2 | 1296 | if test "$ac_cv_func_dlopen" = yes ; then |
d2e3c0dc TT |
1297 | MAGIC_LIB=$DLOPEN_LIB |
1298 | fi | |
b291c11f DW |
1299 | AC_SUBST(MAGIC_LIB) |
1300 | dnl | |
62bc243f GZ |
1301 | dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) |
1302 | dnl | |
1303 | AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) | |
1304 | AC_SUBST(CLOCK_GETTIME_LIB) | |
1305 | dnl | |
81cbf1ef DW |
1306 | dnl Check to see if the FUSE library is -lfuse or -losxfuse |
1307 | dnl | |
1308 | FUSE_CMT= | |
1309 | FUSE_LIB= | |
1310 | dnl osxfuse.dylib supersedes fuselib.dylib | |
1311 | AC_ARG_ENABLE([fuse2fs], | |
8c9e2921 | 1312 | AS_HELP_STRING([--disable-fuse2fs],[do not build fuse2fs]), |
81cbf1ef DW |
1313 | if test "$enableval" = "no" |
1314 | then | |
1315 | FUSE_CMT="#" | |
1316 | AC_MSG_RESULT([Disabling fuse2fs]) | |
1317 | else | |
1318 | AC_CHECK_HEADERS([pthread.h fuse.h], [], | |
1319 | [AC_MSG_FAILURE([Cannot find fuse2fs headers.])], | |
1320 | [#define _FILE_OFFSET_BITS 64 | |
1321 | #define FUSE_USE_VERSION 29]) | |
1322 | ||
1323 | AC_PREPROC_IFELSE( | |
1324 | [AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29 | |
1325 | #ifdef __linux__ | |
1326 | #include <linux/fs.h> | |
1327 | #include <linux/falloc.h> | |
1328 | #include <linux/xattr.h> | |
1329 | #endif | |
1330 | ]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])]) | |
1331 | ||
1332 | AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], | |
1333 | [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], | |
1334 | [AC_MSG_FAILURE([Cannot find fuse library.])])]) | |
1335 | AC_MSG_RESULT([Enabling fuse2fs]) | |
1336 | fi | |
1337 | , | |
1338 | AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"], | |
1339 | [#define _FILE_OFFSET_BITS 64 | |
1340 | #define FUSE_USE_VERSION 29 | |
1341 | #ifdef __linux__ | |
1342 | # include <linux/fs.h> | |
1343 | # include <linux/falloc.h> | |
1344 | # include <linux/xattr.h> | |
1345 | #endif]) | |
1346 | if test -z "$FUSE_CMT" | |
1347 | then | |
1348 | AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], | |
1349 | [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])]) | |
1350 | fi | |
1351 | if test -z "$FUSE_CMT" | |
1352 | then | |
1353 | AC_MSG_RESULT([Enabling fuse2fs by default.]) | |
1354 | fi | |
1355 | ) | |
1356 | AC_SUBST(FUSE_LIB) | |
1357 | AC_SUBST(FUSE_CMT) | |
1358 | dnl | |
50e1e10f TT |
1359 | dnl See if optreset exists |
1360 | dnl | |
1361 | AC_MSG_CHECKING(for optreset) | |
1362 | AC_CACHE_VAL(ac_cv_have_optreset, | |
1363 | [AC_EGREP_HEADER(optreset, unistd.h, | |
1364 | ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl | |
1365 | AC_MSG_RESULT($ac_cv_have_optreset) | |
1366 | if test $ac_cv_have_optreset = yes; then | |
d1154eb4 | 1367 | AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present]) |
50e1e10f TT |
1368 | fi |
1369 | dnl | |
d7f45af8 TT |
1370 | dnl Test for sem_init, and which library it might require: |
1371 | dnl | |
d1154eb4 | 1372 | AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists]) |
d7f45af8 | 1373 | SEM_INIT_LIB='' |
cfb8e0bd TT |
1374 | echo GL_THREADS_API: ${gl_threads_api} |
1375 | if test "${gl_threads_api}" != none | |
1376 | then | |
1377 | AC_CHECK_FUNC(sem_init, , | |
1378 | AC_CHECK_LIB(pthread, sem_init, | |
d1154eb4 | 1379 | AC_DEFINE(HAVE_SEM_INIT, 1) |
d7f45af8 | 1380 | SEM_INIT_LIB=-lpthread, |
cfb8e0bd | 1381 | AC_CHECK_LIB(rt, sem_init, |
d1154eb4 | 1382 | AC_DEFINE(HAVE_SEM_INIT, 1) |
d7f45af8 | 1383 | SEM_INIT_LIB=-lrt, |
cfb8e0bd | 1384 | AC_CHECK_LIB(posix4, sem_init, |
d1154eb4 | 1385 | AC_DEFINE(HAVE_SEM_INIT, 1) |
d7f45af8 | 1386 | SEM_INIT_LIB=-lposix4))))dnl |
cfb8e0bd | 1387 | fi |
d7f45af8 TT |
1388 | AC_SUBST(SEM_INIT_LIB) |
1389 | dnl | |
4e5f24ae TT |
1390 | dnl qsort_r detection |
1391 | dnl | |
1392 | AS_IF([test "$ac_cv_func_qsort_r" != no], [ | |
1393 | AC_CACHE_CHECK(whether qsort_r is GNU version, e2_cv_gnu_qsort_r, | |
1394 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |
1395 | @%:@include <stdlib.h> | |
1396 | void (qsort_r)(void *base, size_t nmemb, size_t size, | |
1397 | int (*compar)(const void *, const void *, void *), | |
1398 | void *arg); | |
1399 | ]], [[ ]])],[e2_cv_gnu_qsort_r=yes],[e2_cv_gnu_qsort_r=no]) | |
1400 | ]) | |
1401 | AC_CACHE_CHECK(whether qsort_r is BSD version, e2_cv_bsd_qsort_r, | |
1402 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |
1403 | @%:@include <stdlib.h> | |
1404 | void (qsort_r)(void *base, size_t nmemb, size_t size, | |
1405 | void *arg, int (*compar)(void *, const void *, const void *)); | |
1406 | ]], [[ ]])],[e2_cv_bsd_qsort_r=yes],[e2_cv_bsd_qsort_r=no]) | |
1407 | ]) | |
1408 | AS_CASE("$e2_cv_gnu_qsort_r:$e2_cv_bsd_qsort_r", | |
1409 | [yes:no], [ | |
1410 | AC_DEFINE(HAVE_GNU_QSORT_R, 1, [ Define to 1 if you have the GNU-style 'qsort_r' function.]) | |
1411 | ], | |
1412 | [no:yes], [ | |
1413 | AC_DEFINE(HAVE_BSD_QSORT_R, 1, [ Define to 1 if you have the BSD-style 'qsort_r' function.]) | |
1414 | ]) | |
1415 | ]) | |
1416 | dnl | |
e54635de TT |
1417 | dnl Check for unified diff |
1418 | dnl | |
1419 | AC_MSG_CHECKING(for unified diff option) | |
27f991b0 | 1420 | if diff -u $0 $0 > /dev/null 2>&1 ; then |
e54635de TT |
1421 | UNI_DIFF_OPTS=-u |
1422 | else | |
1423 | UNI_DIFF_OPTS=-c | |
1424 | fi | |
1425 | AC_MSG_RESULT($UNI_DIFF_OPTS) | |
1426 | AC_SUBST(UNI_DIFF_OPTS) | |
1427 | dnl | |
8f3f29d3 TT |
1428 | dnl We use the EXT2 ioctls only under Linux |
1429 | dnl | |
1430 | case "$host_os" in | |
1431 | linux*) | |
d1154eb4 | 1432 | AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present]) |
8f3f29d3 TT |
1433 | ;; |
1434 | esac | |
50e1e10f | 1435 | dnl |
ea1a3fa2 NC |
1436 | dnl Check the available mount options |
1437 | dnl | |
1438 | AX_CHECK_MOUNT_OPT(nosuid) | |
1439 | AX_CHECK_MOUNT_OPT(nodev) | |
4aece328 DW |
1440 | dnl Enable LTO for all packages |
1441 | dnl | |
1442 | AC_ARG_ENABLE([lto], | |
8c9e2921 | 1443 | AS_HELP_STRING([--enable-lto],[enable link time optimization]),, |
139a3092 | 1444 | enable_lto=no) |
4aece328 DW |
1445 | if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then |
1446 | AC_MSG_CHECKING([if C compiler supports LTO]) | |
1447 | OLD_CFLAGS="$CFLAGS" | |
1448 | OLD_LDFLAGS="$LDFLAGS" | |
49715704 | 1449 | LTO_FLAGS="-g -flto -ffat-lto-objects" |
4aece328 DW |
1450 | CFLAGS="$CFLAGS $LTO_FLAGS" |
1451 | LDFLAGS="$LDFLAGS $LTO_FLAGS" | |
1452 | AC_LINK_IFELSE([AC_LANG_PROGRAM([])], | |
1453 | [AC_MSG_RESULT([yes])] | |
1454 | [lto_cflags=$LTO_FLAGS] | |
1455 | [lto_ldflags=$LTO_FLAGS] | |
1456 | [AC_PATH_PROG(gcc_ar, gcc-ar,,)] | |
1457 | [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)], | |
1458 | [AC_MSG_RESULT([no])]) | |
1459 | if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then | |
1460 | have_lto=yes | |
1461 | AR="${gcc_ar}" | |
1462 | RANLIB="${gcc_ranlib}" | |
1463 | fi | |
1464 | CFLAGS="${OLD_CFLAGS}" | |
1465 | LDFLAGS="${OLD_LDFLAGS}" | |
1466 | AC_SUBST(have_lto) | |
1467 | AC_SUBST(lto_cflags) | |
1468 | AC_SUBST(lto_ldflags) | |
1469 | fi | |
1470 | if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then | |
1471 | AC_MSG_ERROR([LTO not supported by compiler.]) | |
1472 | fi | |
1473 | dnl | |
1c2a76ae DW |
1474 | dnl Enable UBSAN for all packages |
1475 | dnl | |
1476 | AC_ARG_ENABLE([ubsan], | |
8c9e2921 | 1477 | AS_HELP_STRING([--enable-ubsan],[enable undefined behavior sanitizer]),, |
1c2a76ae DW |
1478 | enable_ubsan=no) |
1479 | if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then | |
1480 | AC_MSG_CHECKING([if C compiler supports UBSAN]) | |
1481 | OLD_CFLAGS="$CFLAGS" | |
1482 | OLD_LDFLAGS="$LDFLAGS" | |
1483 | UBSAN_FLAGS="-fsanitize=undefined" | |
1484 | CFLAGS="$CFLAGS $UBSAN_FLAGS" | |
1485 | LDFLAGS="$LDFLAGS $UBSAN_FLAGS" | |
1486 | AC_LINK_IFELSE([AC_LANG_PROGRAM([])], | |
1487 | [AC_MSG_RESULT([yes])] | |
1488 | [ubsan_cflags=$UBSAN_FLAGS] | |
1489 | [ubsan_ldflags=$UBSAN_FLAGS] | |
1490 | [have_ubsan=yes], | |
1491 | [AC_MSG_RESULT([no])]) | |
1492 | CFLAGS="${OLD_CFLAGS}" | |
1493 | LDFLAGS="${OLD_LDFLAGS}" | |
1494 | AC_SUBST(have_ubsan) | |
1495 | AC_SUBST(ubsan_cflags) | |
1496 | AC_SUBST(ubsan_ldflags) | |
1497 | fi | |
1498 | if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then | |
1499 | AC_MSG_ERROR([UBSAN not supported by compiler.]) | |
1500 | fi | |
1501 | dnl | |
5e666e3d DW |
1502 | dnl Enable ADDRSAN for all packages |
1503 | dnl | |
1504 | AC_ARG_ENABLE([addrsan], | |
8c9e2921 | 1505 | AS_HELP_STRING([--enable-addrsan],[enable address sanitizer]),, |
5e666e3d DW |
1506 | enable_addrsan=no) |
1507 | if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then | |
1508 | AC_MSG_CHECKING([if C compiler supports ADDRSAN]) | |
1509 | OLD_CFLAGS="$CFLAGS" | |
1510 | OLD_LDFLAGS="$LDFLAGS" | |
1511 | ADDRSAN_FLAGS="-fsanitize=address" | |
1512 | CFLAGS="$CFLAGS $ADDRSAN_FLAGS" | |
1513 | LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS" | |
1514 | AC_LINK_IFELSE([AC_LANG_PROGRAM([])], | |
1515 | [AC_MSG_RESULT([yes])] | |
1516 | [addrsan_cflags=$ADDRSAN_FLAGS] | |
1517 | [addrsan_ldflags=$ADDRSAN_FLAGS] | |
1518 | [have_addrsan=yes], | |
1519 | [AC_MSG_RESULT([no])]) | |
1520 | CFLAGS="${OLD_CFLAGS}" | |
1521 | LDFLAGS="${OLD_LDFLAGS}" | |
1522 | AC_SUBST(have_addrsan) | |
1523 | AC_SUBST(addrsan_cflags) | |
1524 | AC_SUBST(addrsan_ldflags) | |
1525 | fi | |
1526 | if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then | |
1527 | AC_MSG_ERROR([ADDRSAN not supported by compiler.]) | |
1528 | fi | |
1529 | dnl | |
bcca786b DW |
1530 | dnl Enable THREADSAN for all packages |
1531 | dnl | |
1532 | AC_ARG_ENABLE([threadsan], | |
8c9e2921 | 1533 | AS_HELP_STRING([--enable-threadsan],[enable thread sanitizer]),, |
bcca786b DW |
1534 | enable_threadsan=no) |
1535 | if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then | |
1536 | AC_MSG_CHECKING([if C compiler supports THREADSAN]) | |
1537 | OLD_CFLAGS="$CFLAGS" | |
1538 | OLD_LDFLAGS="$LDFLAGS" | |
1539 | THREADSAN_FLAGS="-fsanitize=thread" | |
1540 | CFLAGS="$CFLAGS $THREADSAN_FLAGS" | |
1541 | LDFLAGS="$LDFLAGS $THREADSAN_FLAGS" | |
1542 | AC_LINK_IFELSE([AC_LANG_PROGRAM([])], | |
1543 | [AC_MSG_RESULT([yes])] | |
1544 | [threadsan_cflags=$THREADSAN_FLAGS] | |
1545 | [threadsan_ldflags=$THREADSAN_FLAGS] | |
1546 | [have_threadsan=yes], | |
1547 | [AC_MSG_RESULT([no])]) | |
1548 | CFLAGS="${OLD_CFLAGS}" | |
1549 | LDFLAGS="${OLD_LDFLAGS}" | |
1550 | AC_SUBST(have_threadsan) | |
1551 | AC_SUBST(threadsan_cflags) | |
1552 | AC_SUBST(threadsan_ldflags) | |
1553 | fi | |
1554 | if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then | |
1555 | AC_MSG_ERROR([THREADSAN not supported by compiler.]) | |
1556 | fi | |
1557 | if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then | |
1558 | AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.]) | |
1559 | fi | |
1560 | dnl | |
2869485b TT |
1561 | dnl Enable the fuzzer sanitizer for all packages |
1562 | dnl | |
1563 | FUZZING_CMT="#" | |
1564 | AC_ARG_ENABLE([fuzzing], | |
1565 | AS_HELP_STRING([--enable-fuzzing],[enable fuzzing sanitizer]),, | |
1566 | enable_fuzzing=no) | |
1567 | if test "$enable_fuzzing" = "yes" || test "$enable_fuzzing" = "probe"; then | |
1568 | AC_PROG_CXX | |
1569 | AC_MSG_CHECKING([if C compiler supports fuzzing sanitizer]) | |
1570 | AC_LANG_PUSH([C++]) | |
1571 | OLD_CXXFLAGS="$CXXFLAGS" | |
1572 | OLD_LDFLAGS="$LDFLAGS" | |
1573 | FUZZER_FLAGS="-fsanitize=fuzzer" | |
1574 | CXXFLAGS="$CXXFLAGS $FUZZER_FLAGS" | |
1575 | LDFLAGS="$LDFLAGS $FUZZER_FLAGS" | |
1576 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ | |
1577 | #include <stddef.h> | |
1578 | #include <stdint.h> | |
1579 | ]], | |
1580 | [ return 0; ])], | |
1581 | [AC_MSG_RESULT([yes])] | |
1582 | [fuzzer_cflags=$FUZZER_FLAGS] | |
1583 | [fuzzer_ldflags=$FUZZER_FLAGS] | |
1584 | [FUZZING_CMT=] | |
1585 | [have_fuzzer=yes], | |
1586 | [AC_MSG_RESULT([no])] | |
1587 | [AC_MSG_ERROR([fuzzing requested but not available])]) | |
1588 | CXXFLAGS="${OLD_CXXFLAGS}" | |
1589 | LDFLAGS="${OLD_LDFLAGS}" | |
1590 | AC_LANG_POP([C++]) | |
1591 | AC_SUBST(have_fuzzer) | |
1592 | AC_SUBST(fuzzer_cflags) | |
1593 | AC_SUBST(fuzzer_ldflags) | |
1594 | fi | |
1595 | if test "$enable_fuzzer" = "yes" && test "$have_fuzzer" != "yes"; then | |
1596 | AC_MSG_ERROR([Fuzzing not supported by compiler.]) | |
1597 | fi | |
1598 | AC_SUBST(FUZZING_CMT) | |
1599 | dnl | |
fff45483 | 1600 | dnl OS-specific uncomment control |
e6f2bda3 TT |
1601 | dnl |
1602 | LINUX_CMT="#" | |
fff45483 TT |
1603 | CYGWIN_CMT="#" |
1604 | UNIX_CMT= | |
e6f2bda3 TT |
1605 | case "$host_os" in |
1606 | linux*) | |
1607 | LINUX_CMT= | |
1608 | ;; | |
fff45483 TT |
1609 | cygwin) |
1610 | CYGWIN_CMT= | |
1611 | UNIX_CMT="#" | |
fff45483 | 1612 | ;; |
e6f2bda3 TT |
1613 | esac |
1614 | AC_SUBST(LINUX_CMT) | |
fff45483 TT |
1615 | AC_SUBST(CYGWIN_CMT) |
1616 | AC_SUBST(UNIX_CMT) | |
e6f2bda3 | 1617 | dnl |
5ce368f0 DW |
1618 | dnl e2scrub only builds on linux |
1619 | dnl | |
1620 | E2SCRUB_CMT="$LINUX_CMT" | |
1621 | AC_SUBST(E2SCRUB_CMT) | |
1622 | dnl | |
6c133523 | 1623 | dnl Linux and Hurd places root files in the / by default |
50e1e10f | 1624 | dnl |
50e1e10f | 1625 | case "$host_os" in |
93636bde | 1626 | linux* | gnu* | k*bsd*-gnu) |
a4b2d3ce TT |
1627 | if test "$prefix" = NONE -a "$root_prefix" = NONE ; then |
1628 | root_prefix=""; | |
02d04db4 | 1629 | AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) |
fc6d9d51 TT |
1630 | fi |
1631 | ;; | |
1632 | esac | |
fc6d9d51 | 1633 | dnl |
a4b2d3ce | 1634 | dnl On Linux/hurd, force the prefix to be /usr |
fc6d9d51 TT |
1635 | dnl |
1636 | case "$host_os" in | |
93636bde | 1637 | linux* | gnu* | k*bsd*-gnu) |
fc6d9d51 | 1638 | if test "$prefix" = NONE ; then |
a4b2d3ce | 1639 | prefix="/usr"; |
02d04db4 | 1640 | AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) |
bff61a7a | 1641 | if test "$mandir" = '${prefix}/man' ; then |
02d04db4 | 1642 | AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) |
bff61a7a TT |
1643 | mandir=/usr/share/man |
1644 | fi | |
50e1e10f TT |
1645 | fi |
1646 | ;; | |
1647 | esac | |
a4b2d3ce | 1648 | if test "$root_prefix" = NONE ; then |
ffe1991f | 1649 | if test "$prefix" = NONE ; then |
a4b2d3ce TT |
1650 | root_prefix="$ac_default_prefix" |
1651 | else | |
1652 | root_prefix="$prefix" | |
1653 | fi | |
b5ffeade TT |
1654 | root_bindir=$bindir |
1655 | root_sbindir=$sbindir | |
1656 | root_libdir=$libdir | |
1657 | root_sysconfdir=$sysconfdir | |
1658 | else | |
1659 | root_bindir='${root_prefix}/bin' | |
1660 | root_sbindir='${root_prefix}/sbin' | |
1661 | root_libdir='${root_prefix}/lib' | |
1662 | root_sysconfdir='${root_prefix}/etc' | |
a4b2d3ce | 1663 | fi |
c4ef11c5 TT |
1664 | if test "$bindir" != '${exec_prefix}/bin'; then |
1665 | root_bindir=$bindir | |
02d04db4 | 1666 | AC_MSG_RESULT([Setting root_bindir to $root_bindir]) |
c4ef11c5 TT |
1667 | fi |
1668 | if test "$sbindir" != '${exec_prefix}/sbin'; then | |
1669 | root_sbindir=$sbindir | |
02d04db4 | 1670 | AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) |
c4ef11c5 TT |
1671 | fi |
1672 | if test "$libdir" != '${exec_prefix}/lib'; then | |
1673 | root_libdir=$libdir | |
02d04db4 | 1674 | AC_MSG_RESULT([Setting root_libdir to $root_libdir]) |
c4ef11c5 TT |
1675 | fi |
1676 | if test "$sysconfdir" != '${prefix}/etc'; then | |
1677 | root_sysconfdir=$sysconfdir | |
02d04db4 | 1678 | AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) |
c4ef11c5 | 1679 | fi |
a4b2d3ce | 1680 | AC_SUBST(root_prefix) |
b5ffeade TT |
1681 | AC_SUBST(root_bindir) |
1682 | AC_SUBST(root_sbindir) | |
1683 | AC_SUBST(root_libdir) | |
1684 | AC_SUBST(root_sysconfdir) | |
50e1e10f | 1685 | dnl |
55e00a25 TT |
1686 | dnl Allow specification of the multiarch arch |
1687 | dnl | |
1688 | AC_ARG_WITH([multiarch], | |
8c9e2921 | 1689 | AS_HELP_STRING([--with-multiarch=ARCH],[specify the multiarch triplet]), |
d7fa4103 TT |
1690 | if test "$withval" = "lib64"; then |
1691 | libdir=/usr/lib64 | |
1692 | root_libdir=/lib64 | |
1693 | else | |
1694 | libdir=$libdir/$withval | |
1695 | root_libdir=$root_libdir/$withval | |
1696 | fi | |
a2df5894 DW |
1697 | ) |
1698 | dnl | |
55e00a25 | 1699 | dnl |
d3de1a71 TT |
1700 | dnl See if -static works. This could fail if the linker does not |
1701 | dnl support -static, or if required external libraries are not available | |
1702 | dnl in static form. | |
50e1e10f | 1703 | dnl |
d3de1a71 | 1704 | AC_MSG_CHECKING([whether we can link with -static]) |
ae851482 | 1705 | AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, |
fd1677e8 | 1706 | [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" |
54445dc2 | 1707 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[fflush(stdout);]])],[ac_cv_e2fsprogs_use_static=yes],[ac_cv_e2fsprogs_use_static=no]) |
ae851482 | 1708 | LDFLAGS=$SAVE_LDFLAGS]) |
defde784 TT |
1709 | dnl |
1710 | dnl Regardless of how the test turns out, Solaris doesn't handle -static | |
1711 | dnl This is caused by the socket library requiring the nsl library, which | |
1712 | dnl requires the -dl library, which only works for dynamically linked | |
1713 | dnl programs. It basically means you can't have statically linked programs | |
1714 | dnl which use the network under Solaris. | |
1715 | dnl | |
1716 | case "$host_os" in | |
1717 | solaris2.*) | |
1718 | ac_cv_e2fsprogs_use_static=no | |
1719 | ;; | |
1720 | esac | |
ae851482 | 1721 | AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) |
ae851482 | 1722 | if test $ac_cv_e2fsprogs_use_static = yes; then |
fd1677e8 | 1723 | LDFLAGS_STATIC="$LDFLAGS_STATIC -static" |
ae851482 | 1724 | fi |
fd1677e8 | 1725 | AC_SUBST(LDFLAGS_STATIC) |
50e1e10f | 1726 | dnl |
07a0db15 TT |
1727 | dnl Work around mysterious Darwin / GNU libintl problem |
1728 | dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like | |
1729 | dnl Apple hacked gcc somehow?) | |
1730 | dnl | |
1731 | case "$host_os" in | |
1732 | darwin*) | |
02d04db4 | 1733 | AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) |
d1154eb4 TT |
1734 | AC_DEFINE(_INTL_REDIRECT_MACROS, 1, |
1735 | [Define to 1 if Apple Darwin libintl workaround is needed]) | |
07a0db15 TT |
1736 | ;; |
1737 | esac | |
1738 | dnl | |
50e1e10f TT |
1739 | dnl Only try to run the test suite if we're not cross compiling. |
1740 | dnl | |
1741 | if test "$cross_compiling" = yes ; then | |
1742 | DO_TEST_SUITE= | |
1743 | else | |
1744 | DO_TEST_SUITE=check | |
1745 | fi | |
1746 | AC_SUBST(DO_TEST_SUITE) | |
1747 | dnl | |
c6f35b8a | 1748 | dnl Only include the intl include files if we're building with them |
d1154eb4 TT |
1749 | dnl |
1750 | INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib' | |
1751 | if test -n "$CPPFLAGS" ; then | |
1752 | INCLUDES="$INCLUDES $CPPFLAGS" | |
1753 | fi | |
c6f35b8a | 1754 | if test "$USE_INCLUDED_LIBINTL" = "yes" ; then |
d1154eb4 | 1755 | INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' |
c6f35b8a | 1756 | fi |
6c59a665 TT |
1757 | if test -n "$WITH_DIET_LIBC" ; then |
1758 | INCLUDES="$INCLUDES -D_REENTRANT" | |
1759 | fi | |
b3d180e2 EB |
1760 | case "$host_os" in |
1761 | mingw*) | |
1762 | INCLUDES=$INCLUDES' -I$(top_srcdir)/include/mingw' | |
1763 | ;; | |
1764 | esac | |
d1154eb4 | 1765 | AC_SUBST(INCLUDES) |
c6f35b8a | 1766 | dnl |
dd947da2 TT |
1767 | dnl Build CFLAGS |
1768 | dnl | |
1769 | if test $cross_compiling = no; then | |
2873927d | 1770 | BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" |
dd947da2 | 1771 | BUILD_LDFLAGS="$LDFLAGS" |
dd947da2 TT |
1772 | fi |
1773 | AC_SUBST(BUILD_CFLAGS) | |
1774 | AC_SUBST(BUILD_LDFLAGS) | |
1775 | dnl | |
fd1677e8 TT |
1776 | dnl Define CFLAGS and LDFLAGS for shared libraries |
1777 | dnl | |
1778 | CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} | |
1779 | CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} | |
1780 | LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} | |
1781 | AC_SUBST(CFLAGS_SHLIB) | |
1782 | AC_SUBST(CFLAGS_STLIB) | |
1783 | AC_SUBST(LDFLAGS_SHLIB) | |
5ce368f0 DW |
1784 | |
1785 | dnl | |
1786 | dnl Where do udev rules go? | |
1787 | dnl | |
1788 | AC_ARG_WITH([udev_rules_dir], | |
1789 | [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@], | |
1790 | [Install udev rules into DIR.])], | |
1791 | [], | |
1792 | [with_udev_rules_dir=yes]) | |
1793 | AS_IF([test "x${with_udev_rules_dir}" != "xno"], | |
1794 | [ | |
1795 | AS_IF([test "x${with_udev_rules_dir}" = "xyes"], | |
1796 | [ | |
1797 | PKG_CHECK_MODULES([udev], [udev], | |
1798 | [ | |
1799 | with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d" | |
1800 | ], [ | |
1801 | with_udev_rules_dir="" | |
1802 | ]) | |
1803 | ]) | |
1804 | AC_MSG_CHECKING([for udev rules dir]) | |
1805 | pkg_udev_rules_dir="${with_udev_rules_dir}" | |
1806 | AS_IF([test -n "${pkg_udev_rules_dir}"], | |
1807 | [ | |
1808 | AC_MSG_RESULT(${pkg_udev_rules_dir}) | |
1809 | have_udev="yes" | |
1810 | ], | |
1811 | [ | |
1812 | AC_MSG_RESULT(no) | |
1813 | have_udev="no" | |
1814 | ]) | |
1815 | ], | |
1816 | [ | |
1817 | have_udev="disabled" | |
1818 | ]) | |
1819 | AC_SUBST(have_udev) | |
1820 | AC_SUBST(pkg_udev_rules_dir) | |
1821 | ||
a2df5894 DW |
1822 | dnl |
1823 | dnl Where do cron jobs go? | |
1824 | dnl | |
1825 | AC_ARG_WITH([crond_dir], | |
1826 | [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@], | |
1827 | [Install system crontabs into DIR.])], | |
1828 | [], | |
1829 | [with_crond_dir=yes]) | |
1830 | AS_IF([test "x${with_crond_dir}" != "xno"], | |
1831 | [ | |
1832 | AS_IF([test "x${with_crond_dir}" = "xyes"], | |
1833 | [ | |
1834 | AS_IF([test -d "/etc/cron.d"], | |
188bf39a TT |
1835 | [with_crond_dir="/etc/cron.d"], |
1836 | [have_crond="no"; with_crond_dir=""]) | |
a2df5894 DW |
1837 | ]) |
1838 | AC_MSG_CHECKING([for system crontab dir]) | |
1839 | crond_dir="${with_crond_dir}" | |
1840 | AS_IF([test -n "${crond_dir}"], | |
1841 | [ | |
1842 | AC_MSG_RESULT(${crond_dir}) | |
1843 | have_crond="yes" | |
1844 | ], | |
1845 | [ | |
1846 | AC_MSG_RESULT(no) | |
1847 | have_crond="no" | |
1848 | ]) | |
1849 | ], | |
1850 | [ | |
1851 | have_crond="disabled" | |
1852 | ]) | |
1853 | AC_SUBST(have_crond) | |
1854 | AC_SUBST(crond_dir) | |
1855 | ||
1856 | dnl | |
1857 | dnl Where do systemd services go? | |
1858 | dnl | |
1859 | AC_ARG_WITH([systemd_unit_dir], | |
1860 | [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@], | |
1861 | [Install systemd system units into DIR.])], | |
1862 | [], | |
1863 | [with_systemd_unit_dir=yes]) | |
1864 | AS_IF([test "x${with_systemd_unit_dir}" != "xno"], | |
1865 | [ | |
1866 | AS_IF([test "x${with_systemd_unit_dir}" = "xyes"], | |
1867 | [ | |
1868 | PKG_CHECK_MODULES([systemd], [systemd], | |
1869 | [ | |
1870 | with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)" | |
1871 | ], [ | |
1872 | with_systemd_unit_dir="" | |
1873 | ]) | |
1874 | m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$]) | |
1875 | ]) | |
1876 | AC_MSG_CHECKING([for systemd system unit dir]) | |
1877 | systemd_system_unit_dir="${with_systemd_unit_dir}" | |
1878 | AS_IF([test -n "${systemd_system_unit_dir}"], | |
1879 | [ | |
1880 | AC_MSG_RESULT(${systemd_system_unit_dir}) | |
1881 | have_systemd="yes" | |
1882 | ], | |
1883 | [ | |
1884 | AC_MSG_RESULT(no) | |
1885 | have_systemd="no" | |
1886 | ]) | |
1887 | ], | |
1888 | [ | |
1889 | have_systemd="disabled" | |
1890 | ]) | |
1891 | AC_SUBST(have_systemd) | |
1892 | AC_SUBST(systemd_system_unit_dir) | |
d1d44c14 PAA |
1893 | dnl Adjust the compiled files if we are on windows vs everywhere else |
1894 | dnl | |
1895 | OS_IO_FILE="" | |
1896 | [case "$host_os" in | |
52fc14ff | 1897 | mingw*) |
d1d44c14 PAA |
1898 | OS_IO_FILE=windows_io |
1899 | ;; | |
1900 | *) | |
1901 | OS_IO_FILE=unix_io | |
1902 | ;; | |
1903 | esac] | |
1904 | AC_SUBST(OS_IO_FILE) | |
a22e7f16 KR |
1905 | |
1906 | AC_SYS_LARGEFILE | |
1907 | ||
fd1677e8 | 1908 | dnl |
50e1e10f TT |
1909 | dnl Make our output files, being sure that we create the some miscellaneous |
1910 | dnl directories | |
1911 | dnl | |
1912 | test -d lib || mkdir lib | |
1913 | test -d include || mkdir include | |
1914 | test -d include/linux || mkdir include/linux | |
defde784 | 1915 | test -d include/asm || mkdir include/asm |
44dfb378 TT |
1916 | if test -z "$UUID_CMT" ; then |
1917 | uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ | |
1918 | lib/uuid/uuid_types.h" | |
1919 | fi | |
1920 | if test -z "$BLKID_CMT" ; then | |
1921 | blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ | |
1922 | lib/blkid/blkid_types.h" | |
1923 | fi | |
e5f0f3ee | 1924 | for i in MCONFIG Makefile \ |
183c73b0 | 1925 | util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ |
4ea7ea00 TT |
1926 | lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \ |
1927 | lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \ | |
f34af41b | 1928 | $uuid_out_list $blkid_out_list lib/support/Makefile \ |
44dfb378 | 1929 | lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ |
921f4ad5 | 1930 | misc/Makefile ext2ed/Makefile e2fsck/Makefile \ |
94ba8c75 | 1931 | debugfs/Makefile tests/Makefile tests/progs/Makefile \ |
2869485b TT |
1932 | tests/fuzz/Makefile resize/Makefile doc/Makefile \ |
1933 | po/Makefile.in scrub/Makefile; do | |
94ba8c75 TT |
1934 | if test -d `dirname ${srcdir}/$i` ; then |
1935 | outlist="$outlist $i" | |
1936 | fi | |
1937 | done | |
54445dc2 TT |
1938 | AC_CONFIG_FILES([$outlist]) |
1939 | AC_OUTPUT | |
ee683a13 | 1940 | if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi |