]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.in
mke2fs: don't fail creating the journal if /etc/mtab is missing
[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
7becb206 529dnl handle --enable-quota
f239fefc
AK
530dnl
531PKG_PROG_PKG_CONFIG
7becb206
TT
532AH_TEMPLATE([CONFIG_QUOTA], [Define to 1 to enable quota support])
533AC_ARG_ENABLE([quota],
534[ --enable-libquota enable quota support],
f239fefc
AK
535if test "$enableval" = "no"
536then
7becb206 537 AC_MSG_RESULT([Disabling quota support])
f239fefc 538else
7becb206
TT
539 AC_DEFINE(CONFIG_QUOTA, 1)
540 AC_MSG_RESULT([Enabling quota support])
f239fefc
AK
541fi
542,
7becb206
TT
543AC_MSG_RESULT([Disabling quota support by default])
544)
545dnl
546dnl Define stuff expected for quota library
547dnl
f239fefc
AK
548LIBQUOTA='$(LIB)/libquota'$LIB_EXT
549DEPLIBQUOTA=$LIBQUOTA
550STATIC_LIBQUOTA='$(LIB)/libquota'$STATIC_LIB_EXT
551DEPSTATIC_LIBQUOTA=$STATIC_LIBQUOTA
552PROFILED_LIBQUOTA='$(LIB)/libquota'$PROFILED_LIB_EXT
553DEPPROFILED_LIBQUOTA=$PROFILED_LIBQUOTA
f239fefc
AK
554AC_SUBST(LIBQUOTA)
555AC_SUBST(DEPLIBQUOTA)
556AC_SUBST(STATIC_LIBQUOTA)
557AC_SUBST(DEPSTATIC_LIBQUOTA)
558AC_SUBST(PROFILED_LIBQUOTA)
559AC_SUBST(DEPPROFILED_LIBQUOTA)
560AC_SUBST(QUOTA_CMT)
561dnl
cdf186e4
TT
562dnl handle --enable-debugfs
563dnl
564AC_ARG_ENABLE([debugfs],
565[ --disable-debugfs disable support of debugfs program],
566if test "$enableval" = "no"
567then
02d04db4 568 AC_MSG_RESULT([Disabling debugfs support])
cdf186e4
TT
569 DEBUGFS_CMT="#"
570else
571 DEBUGFS_CMT=
02d04db4 572 AC_MSG_RESULT([Enabling debugfs support])
cdf186e4
TT
573fi
574,
02d04db4 575AC_MSG_RESULT([Enabling debugfs support by default])
cdf186e4
TT
576DEBUGFS_CMT=
577)
578AC_SUBST(DEBUGFS_CMT)
579dnl
580dnl handle --enable-imager
581dnl
582AC_ARG_ENABLE([imager],
583[ --disable-imager disable support of e2image program],
584if test "$enableval" = "no"
585then
02d04db4 586 AC_MSG_RESULT([Disabling e2image support])
cdf186e4
TT
587 IMAGER_CMT="#"
588else
589 IMAGER_CMT=
02d04db4 590 AC_MSG_RESULT([Enabling e2image support])
cdf186e4
TT
591fi
592,
02d04db4 593AC_MSG_RESULT([Enabling e2image support by default])
cdf186e4
TT
594IMAGER_CMT=
595)
596AC_SUBST(IMAGER_CMT)
597dnl
598dnl handle --enable-resizer
599dnl
600AC_ARG_ENABLE([resizer],
601[ --disable-resizer disable support of e2resize program],
602if test "$enableval" = "no"
603then
02d04db4 604 AC_MSG_RESULT([Disabling e2resize support])
cdf186e4
TT
605 RESIZER_CMT="#"
606else
607 RESIZER_CMT=
02d04db4 608 AC_MSG_RESULT([Enabling e2resize support])
cdf186e4
TT
609fi
610,
02d04db4 611AC_MSG_RESULT([Enabling e2resize support by default])
cdf186e4
TT
612RESIZER_CMT=
613)
614AC_SUBST(RESIZER_CMT)
615dnl
8d9c50c5
TT
616dnl handle --enable-defrag
617dnl
618AC_ARG_ENABLE([defrag],
619[ --disable-defrag disable support of e4defrag program],
620if test "$enableval" = "no"
621then
622 AC_MSG_RESULT([Disabling e4defrag support])
623 DEFRAG_CMT="#"
624else
625 DEFRAG_CMT=
626 AC_MSG_RESULT([Enabling e4defrag support])
627fi
628,
629AC_MSG_RESULT([Enabling e4defrag support by default])
630DEFRAG_CMT=
631)
632AC_SUBST(DEFRAG_CMT)
633dnl
fc6d9d51
TT
634dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
635dnl
636AC_ARG_ENABLE([fsck],
637[ --enable-fsck build fsck wrapper program],
638[if test "$enableval" = "no"
639then
640 FSCK_PROG='' FSCK_MAN=''
02d04db4 641 AC_MSG_RESULT([Not building fsck wrapper])
fc6d9d51
TT
642else
643 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 644 AC_MSG_RESULT([Building fsck wrapper])
fc6d9d51
TT
645fi]
646,
647[case "$host_os" in
e363240d 648 gnu*)
fc6d9d51 649 FSCK_PROG='' FSCK_MAN=''
02d04db4 650 AC_MSG_RESULT([Not building fsck wrapper by default])
fc6d9d51
TT
651 ;;
652 *)
653 FSCK_PROG=fsck FSCK_MAN=fsck.8
02d04db4 654 AC_MSG_RESULT([Building fsck wrapper by default])
fc6d9d51
TT
655esac]
656)
657AC_SUBST(FSCK_PROG)
658AC_SUBST(FSCK_MAN)
659dnl
5d40773b
TT
660dnl See whether to install the `e2initrd-helper' program
661dnl
662AC_ARG_ENABLE([e2initrd-helper],
663[ --enable-e2initrd-helper build e2initrd-helper program],
664[if test "$enableval" = "no"
665then
666 E2INITRD_PROG='' E2INITRD_MAN=''
02d04db4 667 AC_MSG_RESULT([Not building e2initrd helper])
5d40773b
TT
668else
669 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 670 AC_MSG_RESULT([Building e2initrd helper])
5d40773b
TT
671fi]
672,
673E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
02d04db4 674AC_MSG_RESULT([Building e2initrd helper by default])
5d40773b
TT
675)
676AC_SUBST(E2INITRD_PROG)
677AC_SUBST(E2INITRD_MAN)
4db2f59a 678dnl
5d40773b 679dnl
50e1e10f 680dnl
3249394d
TT
681AC_ARG_ENABLE([tls],
682[ --disable-tls disable use of thread local support],
683[if test "$enableval" = "no"
684then
685 try_tls=""
02d04db4 686 AC_MSG_RESULT([Disabling thread local support])
3249394d
TT
687else
688 try_tls="yes"
02d04db4 689 AC_MSG_RESULT([Enabling thread local support])
3249394d
TT
690fi]
691,
eafba6c3
TT
692if test -n "$WITH_DIET_LIBC"
693then
694 try_tls=""
02d04db4 695 AC_MSG_RESULT([Diet libc does not support thread local support])
eafba6c3
TT
696else
697 try_tls="yes"
02d04db4 698 AC_MSG_RESULT([Try using thread local support by default])
eafba6c3 699fi
3249394d
TT
700)
701if test "$try_tls" = "yes"
702then
703AX_TLS
704fi
705dnl
706dnl
707dnl
d1154eb4 708AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
5610f992
TT
709AC_ARG_ENABLE([uuidd],
710[ --disable-uuidd disable building the uuid daemon],
711[if test "$enableval" = "no"
712then
02d04db4 713 AC_MSG_RESULT([Not building uuidd])
5610f992
TT
714 UUIDD_CMT="#"
715else
d1154eb4 716 AC_DEFINE(USE_UUIDD, 1)
5610f992 717 UUIDD_CMT=""
02d04db4 718 AC_MSG_RESULT([Building uuidd])
5610f992
TT
719fi]
720,
d1154eb4 721AC_DEFINE(USE_UUIDD, 1)
5610f992 722UUIDD_CMT=""
02d04db4 723AC_MSG_RESULT([Building uuidd by default])
5610f992
TT
724)
725AC_SUBST(UUIDD_CMT)
726dnl
727dnl
728dnl
50e1e10f
TT
729MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
730AC_SUBST_FILE(MAKEFILE_LIBRARY)
731dnl
cdf186e4
TT
732dnl Add internationalization support, using gettext.
733dnl
b0cacab0 734GETTEXT_PACKAGE=e2fsprogs
cdf186e4
TT
735PACKAGE=e2fsprogs
736VERSION="$E2FSPROGS_VERSION"
b0cacab0 737VERSION=0.14.1
d1154eb4
TT
738AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
739AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
b0cacab0 740AC_SUBST(GETTEXT_PACKAGE)
cdf186e4
TT
741AC_SUBST(PACKAGE)
742AC_SUBST(VERSION)
743
cdf186e4
TT
744AM_GNU_GETTEXT
745dnl
50e1e10f
TT
746dnl End of configuration options
747dnl
74becf3c 748AC_SUBST(BINARY_TYPE)
50e1e10f 749AC_PROG_MAKE_SET
bcb915b0 750CHECK_GNU_MAKE
50e1e10f 751AC_PATH_PROG(LN, ln, ln)
fc6d9d51 752AC_PROG_LN_S
50e1e10f
TT
753AC_PATH_PROG(MV, mv, mv)
754AC_PATH_PROG(CP, cp, cp)
755AC_PATH_PROG(RM, rm, rm)
756AC_PATH_PROG(CHMOD, chmod, :)
32237014
TT
757AC_PROG_AWK
758AC_PROG_EGREP
50e1e10f 759AC_PATH_PROG(SED, sed, sed)
9d564f73 760AC_PATH_PROG(PERL, perl, perl)
250f79f0 761AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
762AC_CHECK_TOOL(AR, ar, ar)
763AC_CHECK_TOOL(RANLIB, ranlib, :)
764AC_CHECK_TOOL(STRIP, strip, :)
7321d94e
MK
765AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
766if test "_$MAKEINFO" = "_"; then
767 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
768else
769 case "$MAKEINFO" in
770 */missing.*)
771 AC_MSG_WARN([
772*** Makeinfo is missing. Info documentation will not be built.])
773 ;;
774 *)
775 ;;
776 esac
777fi
778AC_SUBST(MAKEINFO)
50e1e10f 779AC_PROG_INSTALL
6c133523
TT
780# See if we need a separate native compiler.
781if test $cross_compiling = no; then
782 BUILD_CC="$CC"
783 AC_SUBST(BUILD_CC)
784else
785 AC_CHECK_PROGS(BUILD_CC, gcc cc)
786fi
677fc916
MF
787AC_CHECK_HEADERS(m4_flatten([
788 dirent.h
789 errno.h
790 execinfo.h
791 getopt.h
792 malloc.h
793 mntent.h
794 paths.h
795 semaphore.h
796 setjmp.h
797 signal.h
798 stdarg.h
799 stdint.h
800 stdlib.h
801 termios.h
802 termio.h
803 unistd.h
804 utime.h
805 linux/falloc.h
806 linux/fd.h
807 linux/major.h
808 net/if_dl.h
809 netinet/in.h
810 sys/disklabel.h
811 sys/file.h
812 sys/ioctl.h
813 sys/mkdev.h
814 sys/mman.h
815 sys/prctl.h
816 sys/queue.h
817 sys/resource.h
818 sys/select.h
819 sys/socket.h
820 sys/sockio.h
821 sys/stat.h
822 sys/syscall.h
823 sys/sysmacros.h
824 sys/time.h
825 sys/types.h
826 sys/un.h
827 sys/wait.h
828]))
da76d6b7
TT
829AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
830[[
831#if HAVE_SYS_QUEUE_H
832#include <sys/queue.h>
833#endif
834]])
835AC_CHECK_HEADERS(net/if.h,,,
836[[
837#if HAVE_SYS_TYPES_H
838#include <sys/types.h>
839#endif
840#if HAVE_SYS_SOCKET
841#include <sys/socket.h>
842#endif
843]])
50e1e10f 844AC_FUNC_VPRINTF
fff45483
TT
845dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
846dnl is not decleared.
d1154eb4
TT
847AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
848 [Define to 1 if dirent has d_reclen])],,
6c65d251 849 [#include <dirent.h>])
d1154eb4
TT
850dnl Check to see if ssize_t was declared
851AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
852 [Define to 1 if ssize_t declared])],,
6c65d251 853 [#include <sys/types.h>])
50e1e10f 854dnl
b0b9c4de
TT
855dnl Check to see if llseek() is declared in unistd.h. On some libc's
856dnl it is, and on others it isn't..... Thank you glibc developers....
857dnl
d1154eb4
TT
858AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
859 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 860 [#include <unistd.h>])
b0b9c4de 861dnl
6928adc9
TT
862dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
863dnl are so convoluted that I can't tell whether it will always be defined,
864dnl and if it isn't defined while lseek64 is defined in the library,
865dnl disaster will strike.
866dnl
867dnl Warning! Use of --enable-gcc-wall may throw off this test.
868dnl
869dnl
d1154eb4
TT
870AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
871 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
872 [#define _LARGEFILE_SOURCE
873 #define _LARGEFILE64_SOURCE
874 #include <unistd.h>])
6928adc9 875dnl
50e1e10f
TT
876dnl Word sizes...
877dnl
50e1e10f
TT
878AC_CHECK_SIZEOF(short)
879AC_CHECK_SIZEOF(int)
880AC_CHECK_SIZEOF(long)
fc6d9d51 881AC_CHECK_SIZEOF(long long)
50e1e10f
TT
882SIZEOF_SHORT=$ac_cv_sizeof_short
883SIZEOF_INT=$ac_cv_sizeof_int
884SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 885SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
50e1e10f
TT
886AC_SUBST(SIZEOF_SHORT)
887AC_SUBST(SIZEOF_INT)
888AC_SUBST(SIZEOF_LONG)
fc6d9d51 889AC_SUBST(SIZEOF_LONG_LONG)
877eb6d9 890AC_C_BIGENDIAN
29a5deed 891BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
4ea7ea00
TT
892ASM_TYPES_HEADER=./asm_types.h
893AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 894dnl
488c75a6
TT
895dnl Save the configuration #defines needed for the public ext2fs.h
896dnl header file
897dnl
898echo "/* These defines are needed for the public ext2fs.h header file */" \
899 > public_config.h
900if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
901 uniq tmp_config.$$ >> public_config.h
902else
903 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
904fi
905if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
906 uniq tmp_config.$$ >> public_config.h
907else
908 echo "#undef WORDS_BIGENDIAN" >> public_config.h
909fi
910rm -f tmp_config.$$
911PUBLIC_CONFIG_HEADER=./public_config.h
912AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
913dnl
0c193f82
TT
914dnl See if we have inttypes.h and if intptr_t is defined
915dnl
916AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 917AC_CHECK_TYPES(intptr_t)
0c193f82 918dnl
50e1e10f
TT
919dnl See if struct stat has a st_flags field, in which case we can get file
920dnl flags somewhat portably. Also check for the analogous setter, chflags().
921dnl
922AC_MSG_CHECKING(whether struct stat has a st_flags field)
923AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
924 AC_TRY_COMPILE([#include <sys/stat.h>],
925 [struct stat stat; stat.st_flags = 0;],
926 [e2fsprogs_cv_struct_st_flags=yes],
927 [e2fsprogs_cv_struct_st_flags=no]))
928AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
929if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
930 AC_MSG_CHECKING(whether st_flags field is useful)
931 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
932 AC_TRY_COMPILE([#include <sys/stat.h>],
933 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
934 [e2fsprogs_cv_struct_st_flags_immut=yes],
935 [e2fsprogs_cv_struct_st_flags_immut=no]))
936 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
937 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
938 AC_DEFINE(HAVE_STAT_FLAGS, 1,
939 [Define to 1 if struct stat has st_flags])
c03bc4e8 940 fi
50e1e10f 941fi
84ea6e70
TT
942dnl
943dnl Check for the presence of SA_LEN
944dnl
6c65d251 945AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
946 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
947 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
948 [#include <sys/types.h>
949 #include <sys/socket.h>])
84ea6e70 950dnl
9ed8e5fe
ES
951dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
952dnl the system-provided blkid library
953dnl
954if test -n "$BLKID_CMT"; then
955 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
956fi
957dnl
677fc916
MF
958AC_CHECK_FUNCS(m4_flatten([
959 __secure_getenv
960 backtrace
961 blkid_probe_get_topology
962 chflags
963 fallocate
964 fallocate64
965 fchown
966 fdatasync
967 fstat64
968 ftruncate64
969 getdtablesize
970 getmntinfo
971 getrlimit
972 getrusage
973 jrand48
974 llseek
975 lseek64
976 mallinfo
977 mbstowcs
978 memalign
979 mmap
980 msync
981 nanosleep
982 open64
983 pathconf
984 posix_fadvise
985 posix_memalign
986 prctl
987 quotactl
988 setresgid
989 setresuid
990 srandom
991 strcasecmp
992 strdup
993 strnlen
994 strptime
995 strtoull
996 sync_file_range
997 sysconf
998 usleep
999 utime
1000 valloc
1001]))
fc6d9d51 1002dnl
fc6d9d51
TT
1003dnl Check to see if -lsocket is required (solaris) to make something
1004dnl that uses socket() to compile; this is needed for the UUID library
1005dnl
1006SOCKET_LIB=''
1007AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1008AC_SUBST(SOCKET_LIB)
1009dnl
50e1e10f
TT
1010dnl See if optreset exists
1011dnl
1012AC_MSG_CHECKING(for optreset)
1013AC_CACHE_VAL(ac_cv_have_optreset,
1014[AC_EGREP_HEADER(optreset, unistd.h,
1015 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1016AC_MSG_RESULT($ac_cv_have_optreset)
1017if test $ac_cv_have_optreset = yes; then
d1154eb4 1018 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
1019fi
1020dnl
d7f45af8
TT
1021dnl Test for sem_init, and which library it might require:
1022dnl
d1154eb4 1023AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8
TT
1024SEM_INIT_LIB=''
1025AC_CHECK_FUNC(sem_init, ,
1026 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 1027 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1028 SEM_INIT_LIB=-lpthread,
1029 AC_CHECK_LIB(rt, sem_init,
d1154eb4 1030 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1031 SEM_INIT_LIB=-lrt,
1032 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 1033 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
1034 SEM_INIT_LIB=-lposix4))))dnl
1035AC_SUBST(SEM_INIT_LIB)
1036dnl
e54635de
TT
1037dnl Check for unified diff
1038dnl
1039AC_MSG_CHECKING(for unified diff option)
27f991b0 1040if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
1041 UNI_DIFF_OPTS=-u
1042else
1043 UNI_DIFF_OPTS=-c
1044fi
1045AC_MSG_RESULT($UNI_DIFF_OPTS)
1046AC_SUBST(UNI_DIFF_OPTS)
1047dnl
8f3f29d3
TT
1048dnl We use the EXT2 ioctls only under Linux
1049dnl
1050case "$host_os" in
1051linux*)
d1154eb4 1052 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
1053 ;;
1054esac
50e1e10f 1055dnl
fff45483 1056dnl OS-specific uncomment control
e6f2bda3
TT
1057dnl
1058LINUX_CMT="#"
fff45483
TT
1059CYGWIN_CMT="#"
1060UNIX_CMT=
e6f2bda3
TT
1061case "$host_os" in
1062linux*)
1063 LINUX_CMT=
1064 ;;
fff45483
TT
1065cygwin)
1066 CYGWIN_CMT=
1067 UNIX_CMT="#"
fff45483 1068 ;;
e6f2bda3
TT
1069esac
1070AC_SUBST(LINUX_CMT)
fff45483
TT
1071AC_SUBST(CYGWIN_CMT)
1072AC_SUBST(UNIX_CMT)
e6f2bda3 1073dnl
6c133523 1074dnl Linux and Hurd places root files in the / by default
50e1e10f 1075dnl
50e1e10f 1076case "$host_os" in
93636bde 1077linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
1078 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1079 root_prefix="";
02d04db4 1080 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
1081 fi
1082 ;;
1083esac
fc6d9d51 1084dnl
a4b2d3ce 1085dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1086dnl
1087case "$host_os" in
93636bde 1088linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1089 if test "$prefix" = NONE ; then
a4b2d3ce 1090 prefix="/usr";
02d04db4 1091 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1092 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1093 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1094 mandir=/usr/share/man
1095 fi
50e1e10f
TT
1096 fi
1097;;
1098esac
a4b2d3ce 1099if test "$root_prefix" = NONE ; then
ffe1991f 1100 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1101 root_prefix="$ac_default_prefix"
1102 else
1103 root_prefix="$prefix"
1104 fi
b5ffeade
TT
1105 root_bindir=$bindir
1106 root_sbindir=$sbindir
1107 root_libdir=$libdir
1108 root_sysconfdir=$sysconfdir
1109else
1110 root_bindir='${root_prefix}/bin'
1111 root_sbindir='${root_prefix}/sbin'
1112 root_libdir='${root_prefix}/lib'
1113 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1114fi
c4ef11c5
TT
1115if test "$bindir" != '${exec_prefix}/bin'; then
1116 root_bindir=$bindir
02d04db4 1117 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1118fi
1119if test "$sbindir" != '${exec_prefix}/sbin'; then
1120 root_sbindir=$sbindir
02d04db4 1121 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1122fi
1123if test "$libdir" != '${exec_prefix}/lib'; then
1124 root_libdir=$libdir
02d04db4 1125 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1126fi
1127if test "$sysconfdir" != '${prefix}/etc'; then
1128 root_sysconfdir=$sysconfdir
02d04db4 1129 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1130fi
a4b2d3ce 1131AC_SUBST(root_prefix)
b5ffeade
TT
1132AC_SUBST(root_bindir)
1133AC_SUBST(root_sbindir)
1134AC_SUBST(root_libdir)
1135AC_SUBST(root_sysconfdir)
50e1e10f 1136dnl
55e00a25
TT
1137dnl Allow specification of the multiarch arch
1138dnl
1139AC_ARG_WITH([multiarch],
1140[ --with-multiarch=ARCH specify the multiarch triplet],
1141libdir=$libdir/$withval
1142root_libdir=$root_libdir/$withval
1143)dnl
1144dnl
50e1e10f 1145dnl See if -static works.
50e1e10f 1146dnl
ae851482
TT
1147AC_MSG_CHECKING([whether linker accepts -static])
1148AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1149[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1150AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1151 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1152LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1153dnl
1154dnl Regardless of how the test turns out, Solaris doesn't handle -static
1155dnl This is caused by the socket library requiring the nsl library, which
1156dnl requires the -dl library, which only works for dynamically linked
1157dnl programs. It basically means you can't have statically linked programs
1158dnl which use the network under Solaris.
1159dnl
1160case "$host_os" in
1161solaris2.*)
1162 ac_cv_e2fsprogs_use_static=no
1163;;
1164esac
ae851482 1165AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
74becf3c 1166LDFLAG_STATIC=
ae851482 1167if test $ac_cv_e2fsprogs_use_static = yes; then
50e1e10f 1168 LDFLAG_STATIC=-static
ae851482 1169fi
50e1e10f
TT
1170AC_SUBST(LDFLAG_STATIC)
1171dnl
07a0db15
TT
1172dnl Work around mysterious Darwin / GNU libintl problem
1173dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1174dnl Apple hacked gcc somehow?)
1175dnl
1176case "$host_os" in
1177darwin*)
02d04db4 1178 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1179 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1180 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1181 ;;
1182esac
1183dnl
50e1e10f
TT
1184dnl Make the ss and et directories work correctly.
1185dnl
1186SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1187ET_DIR=`cd ${srcdir}/lib/et; pwd`
1188AC_SUBST(SS_DIR)
1189AC_SUBST(ET_DIR)
1190dnl
1191dnl Only try to run the test suite if we're not cross compiling.
1192dnl
1193if test "$cross_compiling" = yes ; then
1194 DO_TEST_SUITE=
1195else
1196 DO_TEST_SUITE=check
1197fi
1198AC_SUBST(DO_TEST_SUITE)
1199dnl
c6f35b8a 1200dnl Only include the intl include files if we're building with them
d1154eb4
TT
1201dnl
1202INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1203if test -n "$CPPFLAGS" ; then
1204 INCLUDES="$INCLUDES $CPPFLAGS"
1205fi
c6f35b8a 1206if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1207 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1208fi
d1154eb4 1209AC_SUBST(INCLUDES)
c6f35b8a 1210dnl
dd947da2
TT
1211dnl Build CFLAGS
1212dnl
1213if test $cross_compiling = no; then
1214 BUILD_CFLAGS="$CFLAGS"
1215 BUILD_LDFLAGS="$LDFLAGS"
1216else
1217 BUILD_CFLAGS=
1218 BUILD_LDFLAGS=
1219fi
1220AC_SUBST(BUILD_CFLAGS)
1221AC_SUBST(BUILD_LDFLAGS)
1222dnl
50e1e10f
TT
1223dnl Make our output files, being sure that we create the some miscellaneous
1224dnl directories
1225dnl
1226test -d lib || mkdir lib
1227test -d include || mkdir include
1228test -d include/linux || mkdir include/linux
defde784 1229test -d include/asm || mkdir include/asm
bff0cc95
TT
1230for i in MCONFIG Makefile e2fsprogs.spec \
1231 util/Makefile util/subst.conf util/gen-tarball \
4ea7ea00
TT
1232 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1233 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
94ba8c75 1234 lib/uuid/Makefile lib/uuid/uuid_types.h \
f239fefc 1235 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
e6441865
TT
1236 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1237 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1238 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1239 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61
MA
1240 resize/Makefile doc/Makefile intl/Makefile \
1241 intl/libgnuintl.h po/Makefile.in ; do
94ba8c75
TT
1242 if test -d `dirname ${srcdir}/$i` ; then
1243 outlist="$outlist $i"
1244 fi
1245done
1246AC_OUTPUT($outlist)
ee683a13 1247if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi