]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.in
e2freefrag: fix "Illegal block number" errors with bigalloc file systems
[thirdparty/e2fsprogs.git] / configure.in
CommitLineData
50e1e10f 1AC_INIT(version.h)
b0cacab0
TT
2AC_PREREQ(2.50)
3AC_CONFIG_AUX_DIR(config)
d1154eb4
TT
4AC_CONFIG_HEADERS([lib/config.h])
5AH_BOTTOM([#include "dirpaths.h"])
50e1e10f
TT
6MCONFIG=./MCONFIG
7AC_SUBST_FILE(MCONFIG)
74becf3c
TT
8BINARY_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 \" " "`
bff0cc95 16E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
74becf3c
TT
17MONTH=`echo $DATE | awk -F- '{print $2}'`
18YEAR=`echo $DATE | awk -F- '{print $3}'`
19
40fa8cc9
TT
20if expr $YEAR ">" 1900 > /dev/null ; then
21 E2FSPROGS_YEAR=$YEAR
22elif expr $YEAR ">" 90 >/dev/null ; then
74becf3c
TT
23 E2FSPROGS_YEAR=19$YEAR
24else
25 E2FSPROGS_YEAR=20$YEAR
26fi
27
28case $MONTH in
927566a3
AD
29Jan) 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" ;;
02d04db4 41*) AC_MSG_WARN([Unknown month $MONTH??]) ;;
74becf3c
TT
42esac
43
927566a3
AD
44base_ver=`echo $E2FSPROGS_VERSION | \
45 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
927566a3
AD
46
47date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
48
49case $E2FSPROGS_VERSION in
50*-WIP|pre-*)
ab06396f 51 E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
927566a3
AD
52 ;;
53*)
54 E2FSPROGS_PKGVER="$base_ver"
55 ;;
56esac
57
58unset DATE MONTH YEAR base_ver pre_vers date_spec
02d04db4
TT
59AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
60AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
74becf3c
TT
61AC_SUBST(E2FSPROGS_YEAR)
62AC_SUBST(E2FSPROGS_MONTH)
bff0cc95 63AC_SUBST(E2FSPROGS_DAY)
74becf3c 64AC_SUBST(E2FSPROGS_VERSION)
927566a3 65AC_SUBST(E2FSPROGS_PKGVER)
ea97be5a 66AC_CANONICAL_HOST
74becf3c 67dnl
57aa50d4
TT
68dnl Check to see if libdl exists for the sake of dlopen
69dnl
70DLOPEN_LIB=''
71AC_CHECK_LIB(dl, dlopen,
72[DLOPEN_LIB=-ldl
d1154eb4 73AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if dlopen/libdl exists])])
57aa50d4
TT
74AC_SUBST(DLOPEN_LIB)
75dnl
d21ae6c5
TT
76dnl Use diet libc
77dnl
eafba6c3 78WITH_DIET_LIBC=
d21ae6c5 79AC_ARG_WITH([diet-libc],
3249394d 80[ --with-diet-libc use diet libc],
d21ae6c5 81CC="diet cc -nostdinc"
eafba6c3 82WITH_DIET_LIBC=yes
d21ae6c5
TT
83AC_MSG_RESULT(CC=$CC))dnl
84dnl
74becf3c 85AC_ARG_WITH([cc],
0b5b9f90
TT
86AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
87AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
74becf3c 88dnl
0b5b9f90
TT
89AC_ARG_WITH([ccopts],
90AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
91AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
74becf3c 92dnl
0b5b9f90
TT
93AC_ARG_WITH([ldopts],
94AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
95AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
74becf3c 96dnl
0b5b9f90 97AC_PROG_CC
9b3018a8
TT
98if test "$GCC" = yes; then
99 RDYNAMIC="-rdynamic"
100 AC_SUBST(RDYNAMIC)
101fi
0b5b9f90 102AC_PROG_CPP
74becf3c 103dnl
b1c92f91
MA
104dnl Alpha computers use fast and imprecise floating point code that may
105dnl miss exceptions by default. Force sane options if we're using GCC.
106AC_MSG_CHECKING(for additional special compiler flags)
107if test "$GCC" = yes
108then
109 case "$host_cpu" in
110 alpha) addcflags="-mieee" ;;
111 esac
112fi
113if test "x$addcflags" != x
114then
115 AC_MSG_RESULT($addcflags)
116 CFLAGS="$addcflags $CFLAGS"
117else
118 AC_MSG_RESULT([[(none)]])
119fi
120dnl
a4d09610
TT
121dnl Set default values for library extentions. Will be dealt with after
122dnl parsing configuration opions, which may modify these
123dnl
124LIB_EXT=.a
125STATIC_LIB_EXT=.a
14b596d4 126PROFILED_LIB_EXT=.a
a4d09610 127dnl
a4b2d3ce 128dnl Allow separate `root_prefix' to be specified
fc6d9d51 129dnl
a4b2d3ce
TT
130AC_ARG_WITH([root-prefix],
131[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
132root_prefix=$withval,
133root_prefix=NONE)dnl
fc6d9d51 134dnl
98919bdb
TT
135dnl handle --enable-maintainer-mode
136dnl
137AC_ARG_ENABLE([maintainer-mode],
138[ --enable-maintainer-mode enable makefile rules useful for maintainers],
139if test "$enableval" = "no"
140then
141 MAINTAINER_CMT=#
02d04db4 142 AC_MSG_RESULT([Disabling maintainer mode])
98919bdb
TT
143else
144 MAINTAINER_CMT=
02d04db4 145 AC_MSG_RESULT([Enabling maintainer mode])
98919bdb
TT
146fi
147,
148MAINTAINER_CMT=#
02d04db4 149AC_MSG_RESULT([Disabling maintainer mode by default])
98919bdb
TT
150)
151AC_SUBST(MAINTAINER_CMT)
152dnl
5aa6c3f6
TT
153dnl handle --enable-symlink-install
154dnl
155AC_ARG_ENABLE([symlink-install],
156[ --enable-symlink-install use symlinks when installing instead of hard links],
157if test "$enableval" = "no"
158then
159 LINK_INSTALL_FLAGS=-f
160 AC_MSG_RESULT([Disabling symlinks for install])
161else
162 LINK_INSTALL_FLAGS=-sf
163 AC_MSG_RESULT([Enabling symlinks for install])
164fi
165,
166LINK_INSTALL_FLAGS=-f
167AC_MSG_RESULT([Disabling symlinks for install])
168)
169AC_SUBST(LINK_INSTALL_FLAGS)
170dnl
171dnl handle --enable-symlink-build
172dnl
173AC_ARG_ENABLE([symlink-build],
174[ --enable-symlink-build use symlinks while building instead of hard links],
175if test "$enableval" = "no"
176then
177 LINK_BUILD_FLAGS=
178 AC_MSG_RESULT([Disabling symlinks for build])
179else
180 LINK_BUILD_FLAGS=-s
181 AC_MSG_RESULT([Enabling symlinks for build])
182fi
183,
184LINK_BUILD_FLAGS=
185AC_MSG_RESULT([Disabling symlinks for build])
186)
187AC_SUBST(LINK_BUILD_FLAGS)
188dnl
c13351f6
TT
189dnl handle --enable-verbose-makecmds
190dnl
191AC_ARG_ENABLE([verbose-makecmds],
5aa6c3f6 192[ --enable-verbose-makecmds enable verbose make command output],
c13351f6
TT
193if test "$enableval" = "no"
194then
195 AC_MSG_RESULT([Disabling verbose make commands])
196 E=@echo
197 Q=@
198else
199 AC_MSG_RESULT([Enabling verbose make commands])
200 E=@\\#
201 Q=
202fi
203,
204AC_MSG_RESULT([Disabling verbose make commands])
205E=@echo
206Q=@
207)
208AC_SUBST(E)
209AC_SUBST(Q)
210dnl
1917875f
TT
211dnl handle --enable-compression
212dnl
213AC_ARG_ENABLE([compression],
214[ --enable-compression enable EXPERIMENTAL compression support],
215if test "$enableval" = "no"
216then
02d04db4 217 AC_MSG_RESULT([Disabling compression support])
1917875f 218else
d1154eb4
TT
219 AC_DEFINE(ENABLE_COMPRESSION, 1,
220 [Define to 1 if ext2 compression enabled])
02d04db4
TT
221 AC_MSG_RESULT([Enabling compression support])
222 AC_MSG_WARN([Compression support is experimental])
1917875f
TT
223fi
224,
02d04db4 225AC_MSG_RESULT([Disabling compression support by default])
1917875f
TT
226)
227dnl
8fdc9985
TT
228dnl handle --enable-htree
229dnl
d1154eb4 230AH_TEMPLATE([ENABLE_HTREE], [Define to 1 if ext3/4 htree support enabled])
8fdc9985
TT
231AC_ARG_ENABLE([htree],
232[ --enable-htree enable EXPERIMENTAL htree directory support],
233if test "$enableval" = "no"
234then
235 HTREE_CMT=#
02d04db4 236 AC_MSG_RESULT([Disabling htree directory support])
8fdc9985
TT
237else
238 HTREE_CMT=
d1154eb4 239 AC_DEFINE(ENABLE_HTREE, 1)
02d04db4 240 AC_MSG_RESULT([Enabling htree directory support])
8fdc9985
TT
241fi
242,
559ca6cb 243HTREE_CMT=
d1154eb4 244AC_DEFINE(ENABLE_HTREE, 1)
02d04db4 245AC_MSG_RESULT([Enabling htree directory support by default])
8fdc9985
TT
246)
247AC_SUBST(HTREE_CMT)
248dnl
a4ece359
TT
249dnl This needs to be before all of the --enable-*-shlibs options
250dnl
251E2_PKG_CONFIG_STATIC=--static
55da9876
TT
252LDFLAG_DYNAMIC=
253PRIVATE_LIBS_CMT=
a4ece359 254dnl
50e1e10f
TT
255dnl handle --enable-elf-shlibs
256dnl
257AC_ARG_ENABLE([elf-shlibs],
a4d09610 258[ --enable-elf-shlibs select ELF shared libraries],
50e1e10f
TT
259if test "$enableval" = "no"
260then
261 ELF_CMT=#
262 MAKEFILE_ELF=/dev/null
02d04db4 263 AC_MSG_RESULT([Disabling ELF shared libraries])
50e1e10f 264else
a4ece359 265 E2_PKG_CONFIG_STATIC=
50e1e10f
TT
266 ELF_CMT=
267 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
f5955dda
TT
268 [case "$host_os" in
269 solaris2.*)
270 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
271 ;;
272 esac]
74becf3c 273 BINARY_TYPE=elfbin
a4d09610 274 LIB_EXT=.so
55da9876
TT
275 PRIVATE_LIBS_CMT=#
276 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
02d04db4 277 AC_MSG_RESULT([Enabling ELF shared libraries])
50e1e10f
TT
278fi
279,
280MAKEFILE_ELF=/dev/null
281ELF_CMT=#
02d04db4 282AC_MSG_RESULT([Disabling ELF shared libraries by default])
50e1e10f
TT
283)
284AC_SUBST(ELF_CMT)
285AC_SUBST_FILE(MAKEFILE_ELF)
286dnl
287dnl handle --enable-bsd-shlibs
288dnl
289AC_ARG_ENABLE([bsd-shlibs],
a4d09610 290[ --enable-bsd-shlibs select BSD shared libraries],
50e1e10f
TT
291if test "$enableval" = "no"
292then
293 BSDLIB_CMT=#
294 MAKEFILE_BSDLIB=/dev/null
02d04db4 295 AC_MSG_RESULT([Disabling BSD shared libraries])
50e1e10f 296else
a4ece359 297 E2_PKG_CONFIG_STATIC=
50e1e10f
TT
298 BSDLIB_CMT=
299 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
a4d09610 300 LIB_EXT=.so
e71d8731 301 [case "$host_os" in
aa75eccc 302 darwin*)
e71d8731
TT
303 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
304 LIB_EXT=.dylib
305 ;;
306 esac]
02d04db4 307 AC_MSG_RESULT([Enabling BSD shared libraries])
50e1e10f
TT
308fi
309,
310MAKEFILE_BSDLIB=/dev/null
311BSDLIB_CMT=#
02d04db4 312AC_MSG_RESULT([Disabling BSD shared libraries by default])
50e1e10f
TT
313)
314AC_SUBST(BSDLIB_CMT)
315AC_SUBST_FILE(MAKEFILE_BSDLIB)
316dnl
317dnl handle --enable-profile
318dnl
319AC_ARG_ENABLE([profile],
a4d09610 320[ --enable-profile build profiling libraries],
50e1e10f
TT
321if test "$enableval" = "no"
322then
323 PROFILE_CMT=#
324 MAKEFILE_PROFILE=/dev/null
02d04db4 325 AC_MSG_RESULT([Disabling profiling libraries])
50e1e10f
TT
326else
327 PROFILE_CMT=
328 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
a4d09610 329 PROFILED_LIB_EXT=_p.a
02d04db4 330 AC_MSG_RESULT([Building profiling libraries])
50e1e10f
TT
331fi
332,
333PROFILE_CMT=#
334MAKEFILE_PROFILE=/dev/null
02d04db4 335AC_MSG_RESULT([Disabling profiling libraries by default])
50e1e10f
TT
336)
337AC_SUBST(PROFILE_CMT)
338AC_SUBST_FILE(MAKEFILE_PROFILE)
339dnl
340dnl handle --enable-checker
341dnl
342AC_ARG_ENABLE([checker],
a4d09610 343[ --enable-checker build checker libraries],
50e1e10f
TT
344if test "$enableval" = "no"
345then
346 CHECKER_CMT=#
347 MAKEFILE_CHECKER=/dev/null
02d04db4 348 AC_MSG_RESULT([Disabling checker libraries])
50e1e10f
TT
349else
350 CHECKER_CMT=
351 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
02d04db4 352 AC_MSG_RESULT([Building checker libraries])
50e1e10f
TT
353fi
354,
355CHECKER_CMT=#
356MAKEFILE_CHECKER=/dev/null
02d04db4 357AC_MSG_RESULT([Disabling checker libraries by default])
50e1e10f
TT
358)
359AC_SUBST(CHECKER_CMT)
360AC_SUBST_FILE(MAKEFILE_CHECKER)
361dnl
a4d09610
TT
362dnl Substitute library extensions
363dnl
364AC_SUBST(LIB_EXT)
365AC_SUBST(STATIC_LIB_EXT)
366AC_SUBST(PROFILED_LIB_EXT)
55da9876
TT
367AC_SUBST(LDFLAG_DYNAMIC)
368AC_SUBST(PRIVATE_LIBS_CMT)
a4d09610 369dnl
782bebfd 370dnl handle --enable-jbd-debug
cdf186e4 371dnl
782bebfd
TT
372AC_ARG_ENABLE([jbd-debug],
373[ --enable-jbd-debug enable journal debugging],
cdf186e4
TT
374if test "$enableval" = "no"
375then
02d04db4 376 AC_MSG_RESULT([Disabling journal debugging])
cdf186e4 377else
d1154eb4
TT
378 AC_DEFINE(CONFIG_JBD_DEBUG, 1,
379 [Define to 1 if debugging ext3/4 journal code])
02d04db4 380 AC_MSG_RESULT([Enabling journal debugging])
cdf186e4
TT
381fi
382,
02d04db4 383AC_MSG_RESULT([Disabling journal debugging by default])
cdf186e4
TT
384)
385dnl
f0a22d0f
TT
386dnl handle --enable-blkid-debug
387dnl
388AC_ARG_ENABLE([blkid-debug],
d21ae6c5 389[ --enable-blkid-debug enable blkid debugging],
f0a22d0f
TT
390if test "$enableval" = "no"
391then
02d04db4 392 AC_MSG_RESULT([Disabling blkid debugging])
f0a22d0f 393else
d1154eb4
TT
394 AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
395 [Define to 1 if debugging the blkid library])
02d04db4 396 AC_MSG_RESULT([Enabling blkid debugging])
f0a22d0f
TT
397fi
398,
02d04db4 399AC_MSG_RESULT([Disabling blkid debugging by default])
2a29f135
TT
400)
401dnl
402dnl handle --enable-testio-debug
403dnl
404AC_ARG_ENABLE([testio-debug],
af773654 405[ --disable-testio-debug disable the use of the test I/O manager for debugging],
d1154eb4
TT
406AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
407 [Define to 1 if the testio I/O manager should be enabled])
2a29f135
TT
408if test "$enableval" = "no"
409then
02d04db4 410 AC_MSG_RESULT([Disabling testio debugging])
af773654 411 TEST_IO_CMT="#"
2a29f135 412else
af773654 413 TEST_IO_CMT=
d1154eb4 414 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
02d04db4 415 AC_MSG_RESULT([Enabling testio debugging])
2a29f135
TT
416fi
417,
af773654 418AC_MSG_RESULT([Enabling testio debugging by default])
d1154eb4 419AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
af773654 420TEST_IO_CMT=
f0a22d0f 421)
af773654 422AC_SUBST(TEST_IO_CMT)
f0a22d0f 423dnl
39fd3d4f
SJR
424dnl handle --disable-libuuid
425dnl
426PKG_PROG_PKG_CONFIG
427LIBUUID=
428DEPLIBUUID=
429STATIC_LIBUUID=
430DEPSTATIC_LIBUUID=
431PROFILED_LIBUUID=
432DEPPROFILED_LIBUUID=
433UUID_CMT=
434AC_ARG_ENABLE([libuuid],
435[ --disable-libuuid do not build private uuid library],
436if test "$enableval" = "no"
437then
438 if test -z "$PKG_CONFIG"; then
439 AC_MSG_ERROR([pkg-config not installed; please install it.])
440 fi
441
442 AC_CHECK_LIB(uuid, uuid_generate,
443 [LIBUUID=`$PKG_CONFIG --libs uuid`;
444 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
445 [AC_MSG_ERROR([external uuid library not found])],
446 [$LIBUUID])
447 UUID_CMT=#
448 AC_MSG_RESULT([Disabling private uuid library])
449else
450 LIBUUID='$(LIB)/libuuid'$LIB_EXT
451 DEPLIBUUID=$LIBUUID
452 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
453 DEPSTATIC_LIBUUID=$STATIC_LIBUUID
454 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
455 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
456 AC_MSG_RESULT([Enabling private uuid library])
457fi
458,
459LIBUUID='$(LIB)/libuuid'$LIB_EXT
460DEPLIBUUID=$LIBUUID
461STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
462DEPSTATIC_LIBUUID=$STATIC_LIBUUID
463PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
464DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
465AC_MSG_RESULT([Enabling private uuid library by default])
466)
467AC_SUBST(LIBUUID)
468AC_SUBST(DEPLIBUUID)
469AC_SUBST(STATIC_LIBUUID)
470AC_SUBST(DEPSTATIC_LIBUUID)
471AC_SUBST(PROFILED_LIBUUID)
472AC_SUBST(DEPPROFILED_LIBUUID)
473AC_SUBST(UUID_CMT)
474dnl
14b596d4
TT
475dnl handle --disable-libblkid
476dnl
477PKG_PROG_PKG_CONFIG
478LIBBLKID=
479DEPLIBBLKID=
480STATIC_LIBBLKID=
481DEPSTATIC_LIBBLKID=
482PROFILED_LIBBLKID=
483DEPPROFILED_LIBBLKID=
484BLKID_CMT=
d1154eb4 485AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
14b596d4
TT
486AC_ARG_ENABLE([libblkid],
487[ --disable-libblkid do not build private blkid library],
488if test "$enableval" = "no"
489then
490 if test -z "$PKG_CONFIG"; then
491 AC_MSG_ERROR([pkg-config not installed; please install it.])
492 fi
493
494 AC_CHECK_LIB(blkid, blkid_get_cache,
495 [LIBBLKID=`$PKG_CONFIG --libs blkid`;
496 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
497 [AC_MSG_ERROR([external blkid library not found])],
498 [$LIBBLKID])
499 BLKID_CMT=#
500 AC_MSG_RESULT([Disabling private blkid library])
501else
502 LIBBLKID='$(LIB)/libblkid'$LIB_EXT
503 DEPLIBBLKID=$LIBBLKID
504 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
505 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
506 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
507 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
d1154eb4 508 AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
14b596d4
TT
509 AC_MSG_RESULT([Enabling private blkid library])
510fi
511,
512LIBBLKID='$(LIB)/libblkid'$LIB_EXT
513DEPLIBBLKID=$LIBBLKID
514STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
515DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
516PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
517DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
d1154eb4 518AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
14b596d4
TT
519AC_MSG_RESULT([Enabling private blkid library by default])
520)
521AC_SUBST(LIBBLKID)
522AC_SUBST(DEPLIBBLKID)
523AC_SUBST(STATIC_LIBBLKID)
524AC_SUBST(DEPSTATIC_LIBBLKID)
525AC_SUBST(PROFILED_LIBBLKID)
526AC_SUBST(DEPPROFILED_LIBBLKID)
527AC_SUBST(BLKID_CMT)
528dnl
f239fefc
AK
529dnl handle --disable-libquota
530dnl
531PKG_PROG_PKG_CONFIG
532LIBQUOTA=
533DEPLIBQUOTA=
534STATIC_LIBQUOTA=
535DEPSTATIC_LIBQUOTA=
536PROFILED_LIBQUOTA=
537DEPPROFILED_LIBQUOTA=
538QUOTA_CMT=
539AC_ARG_ENABLE([libquota],
540[ --disable-libquota do not build private quota library],
541if test "$enableval" = "no"
542then
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(quota,
548 [LIBQUOTA=`$PKG_CONFIG --libs quota`;
549 STATIC_LIBQUOTA=`$PKG_CONFIG --static --libs quota`],
550 [AC_MSG_ERROR([external quota library not found])],
551 [$LIBQUOTA])
552 QUOTA_CMT=#
553 AC_MSG_RESULT([Disabling private quota library])
554else
555 LIBQUOTA='$(LIB)/libquota'$LIB_EXT
556 DEPLIBQUOTA=$LIBQUOTA
557 STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
558 DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
559 PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
560 DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
561 AC_MSG_RESULT([Enabling private quota library])
562fi
563,
564LIBQUOTA='$(LIB)/libquota'$LIB_EXT
565DEPLIBQUOTA=$LIBQUOTA
566STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
567DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
568PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
569DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
570AC_MSG_RESULT([Enabling private quota library by default])
571)
572AC_SUBST(LIBQUOTA)
573AC_SUBST(DEPLIBQUOTA)
574AC_SUBST(STATIC_LIBQUOTA)
575AC_SUBST(DEPSTATIC_LIBQUOTA)
576AC_SUBST(PROFILED_LIBQUOTA)
577AC_SUBST(DEPPROFILED_LIBQUOTA)
578AC_SUBST(QUOTA_CMT)
579dnl
cdf186e4
TT
580dnl handle --enable-debugfs
581dnl
582AC_ARG_ENABLE([debugfs],
583[ --disable-debugfs disable support of debugfs program],
584if test "$enableval" = "no"
585then
02d04db4 586 AC_MSG_RESULT([Disabling debugfs support])
cdf186e4
TT
587 DEBUGFS_CMT="#"
588else
589 DEBUGFS_CMT=
02d04db4 590 AC_MSG_RESULT([Enabling debugfs support])
cdf186e4
TT
591fi
592,
02d04db4 593AC_MSG_RESULT([Enabling debugfs support by default])
cdf186e4
TT
594DEBUGFS_CMT=
595)
596AC_SUBST(DEBUGFS_CMT)
597dnl
598dnl handle --enable-imager
599dnl
600AC_ARG_ENABLE([imager],
601[ --disable-imager disable support of e2image program],
602if test "$enableval" = "no"
603then
02d04db4 604 AC_MSG_RESULT([Disabling e2image support])
cdf186e4
TT
605 IMAGER_CMT="#"
606else
607 IMAGER_CMT=
02d04db4 608 AC_MSG_RESULT([Enabling e2image support])
cdf186e4
TT
609fi
610,
02d04db4 611AC_MSG_RESULT([Enabling e2image support by default])
cdf186e4
TT
612IMAGER_CMT=
613)
614AC_SUBST(IMAGER_CMT)
615dnl
616dnl handle --enable-resizer
617dnl
618AC_ARG_ENABLE([resizer],
619[ --disable-resizer disable support of e2resize program],
620if test "$enableval" = "no"
621then
02d04db4 622 AC_MSG_RESULT([Disabling e2resize support])
cdf186e4
TT
623 RESIZER_CMT="#"
624else
625 RESIZER_CMT=
02d04db4 626 AC_MSG_RESULT([Enabling e2resize support])
cdf186e4
TT
627fi
628,
02d04db4 629AC_MSG_RESULT([Enabling e2resize support by default])
cdf186e4
TT
630RESIZER_CMT=
631)
632AC_SUBST(RESIZER_CMT)
633dnl
8d9c50c5
TT
634dnl handle --enable-defrag
635dnl
636AC_ARG_ENABLE([defrag],
637[ --disable-defrag disable support of e4defrag program],
638if test "$enableval" = "no"
639then
640 AC_MSG_RESULT([Disabling e4defrag support])
641 DEFRAG_CMT="#"
642else
643 DEFRAG_CMT=
644 AC_MSG_RESULT([Enabling e4defrag support])
645fi
646,
647AC_MSG_RESULT([Enabling e4defrag support by default])
648DEFRAG_CMT=
649)
650AC_SUBST(DEFRAG_CMT)
651dnl
fc6d9d51
TT
652dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
653dnl
654AC_ARG_ENABLE([fsck],
655[ --enable-fsck build fsck wrapper program],
656[if test "$enableval" = "no"
657then
658 FSCK_PROG='' FSCK_MAN=''
02d04db4 659 AC_MSG_RESULT([Not building fsck wrapper])
fc6d9d51
TT
660else
661 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 662 AC_MSG_RESULT([Building fsck wrapper])
fc6d9d51
TT
663fi]
664,
665[case "$host_os" in
e363240d 666 gnu*)
fc6d9d51 667 FSCK_PROG='' FSCK_MAN=''
02d04db4 668 AC_MSG_RESULT([Not building fsck wrapper by default])
fc6d9d51
TT
669 ;;
670 *)
671 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 672 AC_MSG_RESULT([Building fsck wrapper by default])
fc6d9d51
TT
673esac]
674)
675AC_SUBST(FSCK_PROG)
676AC_SUBST(FSCK_MAN)
677dnl
5d40773b
TT
678dnl See whether to install the `e2initrd-helper' program
679dnl
680AC_ARG_ENABLE([e2initrd-helper],
681[ --enable-e2initrd-helper build e2initrd-helper program],
682[if test "$enableval" = "no"
683then
684 E2INITRD_PROG='' E2INITRD_MAN=''
02d04db4 685 AC_MSG_RESULT([Not building e2initrd helper])
5d40773b
TT
686else
687 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 688 AC_MSG_RESULT([Building e2initrd helper])
5d40773b
TT
689fi]
690,
691E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 692AC_MSG_RESULT([Building e2initrd helper by default])
5d40773b
TT
693)
694AC_SUBST(E2INITRD_PROG)
695AC_SUBST(E2INITRD_MAN)
4db2f59a 696dnl
5d40773b 697dnl
50e1e10f 698dnl
3249394d
TT
699AC_ARG_ENABLE([tls],
700[ --disable-tls disable use of thread local support],
701[if test "$enableval" = "no"
702then
703 try_tls=""
02d04db4 704 AC_MSG_RESULT([Disabling thread local support])
3249394d
TT
705else
706 try_tls="yes"
02d04db4 707 AC_MSG_RESULT([Enabling thread local support])
3249394d
TT
708fi]
709,
eafba6c3
TT
710if test -n "$WITH_DIET_LIBC"
711then
712 try_tls=""
02d04db4 713 AC_MSG_RESULT([Diet libc does not support thread local support])
eafba6c3
TT
714else
715 try_tls="yes"
02d04db4 716 AC_MSG_RESULT([Try using thread local support by default])
eafba6c3 717fi
3249394d
TT
718)
719if test "$try_tls" = "yes"
720then
721AX_TLS
722fi
723dnl
724dnl
725dnl
d1154eb4 726AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
5610f992
TT
727AC_ARG_ENABLE([uuidd],
728[ --disable-uuidd disable building the uuid daemon],
729[if test "$enableval" = "no"
730then
02d04db4 731 AC_MSG_RESULT([Not building uuidd])
5610f992
TT
732 UUIDD_CMT="#"
733else
d1154eb4 734 AC_DEFINE(USE_UUIDD, 1)
5610f992 735 UUIDD_CMT=""
02d04db4 736 AC_MSG_RESULT([Building uuidd])
5610f992
TT
737fi]
738,
d1154eb4 739AC_DEFINE(USE_UUIDD, 1)
5610f992 740UUIDD_CMT=""
02d04db4 741AC_MSG_RESULT([Building uuidd by default])
5610f992
TT
742)
743AC_SUBST(UUIDD_CMT)
744dnl
745dnl
746dnl
50e1e10f
TT
747MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
748AC_SUBST_FILE(MAKEFILE_LIBRARY)
749dnl
cdf186e4
TT
750dnl Add internationalization support, using gettext.
751dnl
b0cacab0 752GETTEXT_PACKAGE=e2fsprogs
cdf186e4
TT
753PACKAGE=e2fsprogs
754VERSION="$E2FSPROGS_VERSION"
b0cacab0 755VERSION=0.14.1
d1154eb4
TT
756AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
757AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
b0cacab0 758AC_SUBST(GETTEXT_PACKAGE)
cdf186e4
TT
759AC_SUBST(PACKAGE)
760AC_SUBST(VERSION)
761
cdf186e4
TT
762AM_GNU_GETTEXT
763dnl
50e1e10f
TT
764dnl End of configuration options
765dnl
74becf3c 766AC_SUBST(BINARY_TYPE)
50e1e10f 767AC_PROG_MAKE_SET
bcb915b0 768CHECK_GNU_MAKE
50e1e10f 769AC_PATH_PROG(LN, ln, ln)
fc6d9d51 770AC_PROG_LN_S
50e1e10f
TT
771AC_PATH_PROG(MV, mv, mv)
772AC_PATH_PROG(CP, cp, cp)
773AC_PATH_PROG(RM, rm, rm)
774AC_PATH_PROG(CHMOD, chmod, :)
32237014
TT
775AC_PROG_AWK
776AC_PROG_EGREP
50e1e10f 777AC_PATH_PROG(SED, sed, sed)
9d564f73 778AC_PATH_PROG(PERL, perl, perl)
250f79f0 779AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
780AC_CHECK_TOOL(AR, ar, ar)
781AC_CHECK_TOOL(RANLIB, ranlib, :)
782AC_CHECK_TOOL(STRIP, strip, :)
7321d94e
MK
783AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
784if test "_$MAKEINFO" = "_"; then
785 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
786else
787 case "$MAKEINFO" in
788 */missing.*)
789 AC_MSG_WARN([
790*** Makeinfo is missing. Info documentation will not be built.])
791 ;;
792 *)
793 ;;
794 esac
795fi
796AC_SUBST(MAKEINFO)
50e1e10f 797AC_PROG_INSTALL
6c133523
TT
798# See if we need a separate native compiler.
799if test $cross_compiling = no; then
800 BUILD_CC="$CC"
801 AC_SUBST(BUILD_CC)
802else
803 AC_CHECK_PROGS(BUILD_CC, gcc cc)
804fi
edbfd75d 805AC_CHECK_HEADERS(dirent.h errno.h execinfo.h getopt.h malloc.h mntent.h paths.h semaphore.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/falloc.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.h sys/file.h sys/ioctl.h sys/mkdev.h sys/mman.h sys/prctl.h sys/queue.h sys/quota.h sys/resource.h sys/select.h sys/socket.h sys/sockio.h sys/stat.h sys/syscall.h sys/sysmacros.h sys/time.h sys/types.h sys/un.h sys/wait.h)
da76d6b7
TT
806AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
807[[
808#if HAVE_SYS_QUEUE_H
809#include <sys/queue.h>
810#endif
811]])
812AC_CHECK_HEADERS(net/if.h,,,
813[[
814#if HAVE_SYS_TYPES_H
815#include <sys/types.h>
816#endif
817#if HAVE_SYS_SOCKET
818#include <sys/socket.h>
819#endif
820]])
50e1e10f 821AC_FUNC_VPRINTF
fff45483
TT
822dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
823dnl is not decleared.
d1154eb4
TT
824AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
825 [Define to 1 if dirent has d_reclen])],,
6c65d251 826 [#include <dirent.h>])
d1154eb4
TT
827dnl Check to see if ssize_t was declared
828AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
829 [Define to 1 if ssize_t declared])],,
6c65d251 830 [#include <sys/types.h>])
50e1e10f 831dnl
b0b9c4de
TT
832dnl Check to see if llseek() is declared in unistd.h. On some libc's
833dnl it is, and on others it isn't..... Thank you glibc developers....
834dnl
d1154eb4
TT
835AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
836 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 837 [#include <unistd.h>])
b0b9c4de 838dnl
6928adc9
TT
839dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
840dnl are so convoluted that I can't tell whether it will always be defined,
841dnl and if it isn't defined while lseek64 is defined in the library,
842dnl disaster will strike.
843dnl
844dnl Warning! Use of --enable-gcc-wall may throw off this test.
845dnl
846dnl
d1154eb4
TT
847AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
848 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
849 [#define _LARGEFILE_SOURCE
850 #define _LARGEFILE64_SOURCE
851 #include <unistd.h>])
6928adc9 852dnl
50e1e10f
TT
853dnl Word sizes...
854dnl
50e1e10f
TT
855AC_CHECK_SIZEOF(short)
856AC_CHECK_SIZEOF(int)
857AC_CHECK_SIZEOF(long)
fc6d9d51 858AC_CHECK_SIZEOF(long long)
50e1e10f
TT
859SIZEOF_SHORT=$ac_cv_sizeof_short
860SIZEOF_INT=$ac_cv_sizeof_int
861SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 862SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
50e1e10f
TT
863AC_SUBST(SIZEOF_SHORT)
864AC_SUBST(SIZEOF_INT)
865AC_SUBST(SIZEOF_LONG)
fc6d9d51 866AC_SUBST(SIZEOF_LONG_LONG)
877eb6d9 867AC_C_BIGENDIAN
29a5deed 868BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
4ea7ea00
TT
869ASM_TYPES_HEADER=./asm_types.h
870AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 871dnl
488c75a6
TT
872dnl Save the configuration #defines needed for the public ext2fs.h
873dnl header file
874dnl
875echo "/* These defines are needed for the public ext2fs.h header file */" \
876 > public_config.h
877if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
878 uniq tmp_config.$$ >> public_config.h
879else
880 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
881fi
882if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
883 uniq tmp_config.$$ >> public_config.h
884else
885 echo "#undef WORDS_BIGENDIAN" >> public_config.h
886fi
887rm -f tmp_config.$$
888PUBLIC_CONFIG_HEADER=./public_config.h
889AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
890dnl
0c193f82
TT
891dnl See if we have inttypes.h and if intptr_t is defined
892dnl
893AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 894AC_CHECK_TYPES(intptr_t)
0c193f82 895dnl
50e1e10f
TT
896dnl See if struct stat has a st_flags field, in which case we can get file
897dnl flags somewhat portably. Also check for the analogous setter, chflags().
898dnl
899AC_MSG_CHECKING(whether struct stat has a st_flags field)
900AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
901 AC_TRY_COMPILE([#include <sys/stat.h>],
902 [struct stat stat; stat.st_flags = 0;],
903 [e2fsprogs_cv_struct_st_flags=yes],
904 [e2fsprogs_cv_struct_st_flags=no]))
905AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
906if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
907 AC_MSG_CHECKING(whether st_flags field is useful)
908 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
909 AC_TRY_COMPILE([#include <sys/stat.h>],
910 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
911 [e2fsprogs_cv_struct_st_flags_immut=yes],
912 [e2fsprogs_cv_struct_st_flags_immut=no]))
913 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
914 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
915 AC_DEFINE(HAVE_STAT_FLAGS, 1,
916 [Define to 1 if struct stat has st_flags])
c03bc4e8 917 fi
50e1e10f 918fi
84ea6e70
TT
919dnl
920dnl Check for the presence of SA_LEN
921dnl
6c65d251 922AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
923 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
924 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
925 [#include <sys/types.h>
926 #include <sys/socket.h>])
84ea6e70 927dnl
9ed8e5fe
ES
928dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
929dnl the system-provided blkid library
930dnl
931if test -n "$BLKID_CMT"; then
932 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
933fi
934dnl
edbfd75d 935AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync quotactl strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep getdtablesize getrlimit sync_file_range posix_fadvise fallocate fallocate64 blkid_probe_get_topology mbstowcs backtrace)
fc6d9d51 936dnl
fc6d9d51
TT
937dnl Check to see if -lsocket is required (solaris) to make something
938dnl that uses socket() to compile; this is needed for the UUID library
939dnl
940SOCKET_LIB=''
941AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
942AC_SUBST(SOCKET_LIB)
943dnl
50e1e10f
TT
944dnl See if optreset exists
945dnl
946AC_MSG_CHECKING(for optreset)
947AC_CACHE_VAL(ac_cv_have_optreset,
948[AC_EGREP_HEADER(optreset, unistd.h,
949 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
950AC_MSG_RESULT($ac_cv_have_optreset)
951if test $ac_cv_have_optreset = yes; then
d1154eb4 952 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
953fi
954dnl
d7f45af8
TT
955dnl Test for sem_init, and which library it might require:
956dnl
d1154eb4 957AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8
TT
958SEM_INIT_LIB=''
959AC_CHECK_FUNC(sem_init, ,
960 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 961 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
962 SEM_INIT_LIB=-lpthread,
963 AC_CHECK_LIB(rt, sem_init,
d1154eb4 964 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
965 SEM_INIT_LIB=-lrt,
966 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 967 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
968 SEM_INIT_LIB=-lposix4))))dnl
969AC_SUBST(SEM_INIT_LIB)
970dnl
e54635de
TT
971dnl Check for unified diff
972dnl
973AC_MSG_CHECKING(for unified diff option)
27f991b0 974if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
975 UNI_DIFF_OPTS=-u
976else
977 UNI_DIFF_OPTS=-c
978fi
979AC_MSG_RESULT($UNI_DIFF_OPTS)
980AC_SUBST(UNI_DIFF_OPTS)
981dnl
8f3f29d3
TT
982dnl We use the EXT2 ioctls only under Linux
983dnl
984case "$host_os" in
985linux*)
d1154eb4 986 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
987 ;;
988esac
50e1e10f 989dnl
fff45483 990dnl OS-specific uncomment control
e6f2bda3
TT
991dnl
992LINUX_CMT="#"
fff45483
TT
993CYGWIN_CMT="#"
994UNIX_CMT=
e6f2bda3
TT
995case "$host_os" in
996linux*)
997 LINUX_CMT=
998 ;;
fff45483
TT
999cygwin)
1000 CYGWIN_CMT=
1001 UNIX_CMT="#"
fff45483 1002 ;;
e6f2bda3
TT
1003esac
1004AC_SUBST(LINUX_CMT)
fff45483
TT
1005AC_SUBST(CYGWIN_CMT)
1006AC_SUBST(UNIX_CMT)
e6f2bda3 1007dnl
6c133523 1008dnl Linux and Hurd places root files in the / by default
50e1e10f 1009dnl
50e1e10f 1010case "$host_os" in
93636bde 1011linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
1012 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1013 root_prefix="";
02d04db4 1014 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
1015 fi
1016 ;;
1017esac
fc6d9d51 1018dnl
a4b2d3ce 1019dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1020dnl
1021case "$host_os" in
93636bde 1022linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1023 if test "$prefix" = NONE ; then
a4b2d3ce 1024 prefix="/usr";
02d04db4 1025 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1026 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1027 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1028 mandir=/usr/share/man
1029 fi
50e1e10f
TT
1030 fi
1031;;
1032esac
a4b2d3ce 1033if test "$root_prefix" = NONE ; then
ffe1991f 1034 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1035 root_prefix="$ac_default_prefix"
1036 else
1037 root_prefix="$prefix"
1038 fi
b5ffeade
TT
1039 root_bindir=$bindir
1040 root_sbindir=$sbindir
1041 root_libdir=$libdir
1042 root_sysconfdir=$sysconfdir
1043else
1044 root_bindir='${root_prefix}/bin'
1045 root_sbindir='${root_prefix}/sbin'
1046 root_libdir='${root_prefix}/lib'
1047 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1048fi
c4ef11c5
TT
1049if test "$bindir" != '${exec_prefix}/bin'; then
1050 root_bindir=$bindir
02d04db4 1051 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1052fi
1053if test "$sbindir" != '${exec_prefix}/sbin'; then
1054 root_sbindir=$sbindir
02d04db4 1055 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1056fi
1057if test "$libdir" != '${exec_prefix}/lib'; then
1058 root_libdir=$libdir
02d04db4 1059 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1060fi
1061if test "$sysconfdir" != '${prefix}/etc'; then
1062 root_sysconfdir=$sysconfdir
02d04db4 1063 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1064fi
a4b2d3ce 1065AC_SUBST(root_prefix)
b5ffeade
TT
1066AC_SUBST(root_bindir)
1067AC_SUBST(root_sbindir)
1068AC_SUBST(root_libdir)
1069AC_SUBST(root_sysconfdir)
50e1e10f 1070dnl
55e00a25
TT
1071dnl Allow specification of the multiarch arch
1072dnl
1073AC_ARG_WITH([multiarch],
1074[ --with-multiarch=ARCH specify the multiarch triplet],
1075libdir=$libdir/$withval
1076root_libdir=$root_libdir/$withval
1077)dnl
1078dnl
50e1e10f 1079dnl See if -static works.
50e1e10f 1080dnl
ae851482
TT
1081AC_MSG_CHECKING([whether linker accepts -static])
1082AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1083[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1084AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1085 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1086LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1087dnl
1088dnl Regardless of how the test turns out, Solaris doesn't handle -static
1089dnl This is caused by the socket library requiring the nsl library, which
1090dnl requires the -dl library, which only works for dynamically linked
1091dnl programs. It basically means you can't have statically linked programs
1092dnl which use the network under Solaris.
1093dnl
1094case "$host_os" in
1095solaris2.*)
1096 ac_cv_e2fsprogs_use_static=no
1097;;
1098esac
ae851482 1099AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
74becf3c 1100LDFLAG_STATIC=
ae851482 1101if test $ac_cv_e2fsprogs_use_static = yes; then
50e1e10f 1102 LDFLAG_STATIC=-static
ae851482 1103fi
50e1e10f
TT
1104AC_SUBST(LDFLAG_STATIC)
1105dnl
07a0db15
TT
1106dnl Work around mysterious Darwin / GNU libintl problem
1107dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1108dnl Apple hacked gcc somehow?)
1109dnl
1110case "$host_os" in
1111darwin*)
02d04db4 1112 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1113 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1114 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1115 ;;
1116esac
1117dnl
50e1e10f
TT
1118dnl Make the ss and et directories work correctly.
1119dnl
1120SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1121ET_DIR=`cd ${srcdir}/lib/et; pwd`
1122AC_SUBST(SS_DIR)
1123AC_SUBST(ET_DIR)
1124dnl
1125dnl Only try to run the test suite if we're not cross compiling.
1126dnl
1127if test "$cross_compiling" = yes ; then
1128 DO_TEST_SUITE=
1129else
1130 DO_TEST_SUITE=check
1131fi
1132AC_SUBST(DO_TEST_SUITE)
1133dnl
c6f35b8a 1134dnl Only include the intl include files if we're building with them
d1154eb4
TT
1135dnl
1136INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1137if test -n "$CPPFLAGS" ; then
1138 INCLUDES="$INCLUDES $CPPFLAGS"
1139fi
c6f35b8a 1140if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1141 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1142fi
d1154eb4 1143AC_SUBST(INCLUDES)
c6f35b8a 1144dnl
dd947da2
TT
1145dnl Build CFLAGS
1146dnl
1147if test $cross_compiling = no; then
1148 BUILD_CFLAGS="$CFLAGS"
1149 BUILD_LDFLAGS="$LDFLAGS"
1150else
1151 BUILD_CFLAGS=
1152 BUILD_LDFLAGS=
1153fi
1154AC_SUBST(BUILD_CFLAGS)
1155AC_SUBST(BUILD_LDFLAGS)
1156dnl
50e1e10f
TT
1157dnl Make our output files, being sure that we create the some miscellaneous
1158dnl directories
1159dnl
1160test -d lib || mkdir lib
1161test -d include || mkdir include
1162test -d include/linux || mkdir include/linux
defde784 1163test -d include/asm || mkdir include/asm
bff0cc95
TT
1164for i in MCONFIG Makefile e2fsprogs.spec \
1165 util/Makefile util/subst.conf util/gen-tarball \
4ea7ea00
TT
1166 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1167 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
94ba8c75 1168 lib/uuid/Makefile lib/uuid/uuid_types.h \
f239fefc 1169 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
e6441865
TT
1170 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1171 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1172 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1173 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61
MA
1174 resize/Makefile doc/Makefile intl/Makefile \
1175 intl/libgnuintl.h po/Makefile.in ; do
94ba8c75
TT
1176 if test -d `dirname ${srcdir}/$i` ; then
1177 outlist="$outlist $i"
1178 fi
1179done
1180AC_OUTPUT($outlist)
ee683a13 1181if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi