]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.in
build: fix compile warnings on OSX
[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
0df8a27b 787AC_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/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
788AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
789[[
790#if HAVE_SYS_QUEUE_H
791#include <sys/queue.h>
792#endif
793]])
794AC_CHECK_HEADERS(net/if.h,,,
795[[
796#if HAVE_SYS_TYPES_H
797#include <sys/types.h>
798#endif
799#if HAVE_SYS_SOCKET
800#include <sys/socket.h>
801#endif
802]])
50e1e10f 803AC_FUNC_VPRINTF
fff45483
TT
804dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
805dnl is not decleared.
d1154eb4
TT
806AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
807 [Define to 1 if dirent has d_reclen])],,
6c65d251 808 [#include <dirent.h>])
d1154eb4
TT
809dnl Check to see if ssize_t was declared
810AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
811 [Define to 1 if ssize_t declared])],,
6c65d251 812 [#include <sys/types.h>])
50e1e10f 813dnl
b0b9c4de
TT
814dnl Check to see if llseek() is declared in unistd.h. On some libc's
815dnl it is, and on others it isn't..... Thank you glibc developers....
816dnl
d1154eb4
TT
817AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
818 [Define to 1 if llseek declared in unistd.h])],,
6c65d251 819 [#include <unistd.h>])
b0b9c4de 820dnl
6928adc9
TT
821dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
822dnl are so convoluted that I can't tell whether it will always be defined,
823dnl and if it isn't defined while lseek64 is defined in the library,
824dnl disaster will strike.
825dnl
826dnl Warning! Use of --enable-gcc-wall may throw off this test.
827dnl
828dnl
d1154eb4
TT
829AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
830 [Define to 1 if lseek64 declared in unistd.h])],,
6c65d251
TT
831 [#define _LARGEFILE_SOURCE
832 #define _LARGEFILE64_SOURCE
833 #include <unistd.h>])
6928adc9 834dnl
50e1e10f
TT
835dnl Word sizes...
836dnl
50e1e10f
TT
837AC_CHECK_SIZEOF(short)
838AC_CHECK_SIZEOF(int)
839AC_CHECK_SIZEOF(long)
fc6d9d51 840AC_CHECK_SIZEOF(long long)
50e1e10f
TT
841SIZEOF_SHORT=$ac_cv_sizeof_short
842SIZEOF_INT=$ac_cv_sizeof_int
843SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 844SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
50e1e10f
TT
845AC_SUBST(SIZEOF_SHORT)
846AC_SUBST(SIZEOF_INT)
847AC_SUBST(SIZEOF_LONG)
fc6d9d51 848AC_SUBST(SIZEOF_LONG_LONG)
877eb6d9 849AC_C_BIGENDIAN
29a5deed 850BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
4ea7ea00
TT
851ASM_TYPES_HEADER=./asm_types.h
852AC_SUBST_FILE(ASM_TYPES_HEADER)
50e1e10f 853dnl
488c75a6
TT
854dnl Save the configuration #defines needed for the public ext2fs.h
855dnl header file
856dnl
857echo "/* These defines are needed for the public ext2fs.h header file */" \
858 > public_config.h
859if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
860 uniq tmp_config.$$ >> public_config.h
861else
862 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
863fi
864if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
865 uniq tmp_config.$$ >> public_config.h
866else
867 echo "#undef WORDS_BIGENDIAN" >> public_config.h
868fi
869rm -f tmp_config.$$
870PUBLIC_CONFIG_HEADER=./public_config.h
871AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
872dnl
0c193f82
TT
873dnl See if we have inttypes.h and if intptr_t is defined
874dnl
875AC_CHECK_HEADERS([inttypes.h])
d2ee56d8 876AC_CHECK_TYPES(intptr_t)
0c193f82 877dnl
50e1e10f
TT
878dnl See if struct stat has a st_flags field, in which case we can get file
879dnl flags somewhat portably. Also check for the analogous setter, chflags().
880dnl
881AC_MSG_CHECKING(whether struct stat has a st_flags field)
882AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
883 AC_TRY_COMPILE([#include <sys/stat.h>],
884 [struct stat stat; stat.st_flags = 0;],
885 [e2fsprogs_cv_struct_st_flags=yes],
886 [e2fsprogs_cv_struct_st_flags=no]))
887AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
888if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
889 AC_MSG_CHECKING(whether st_flags field is useful)
890 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
891 AC_TRY_COMPILE([#include <sys/stat.h>],
892 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
893 [e2fsprogs_cv_struct_st_flags_immut=yes],
894 [e2fsprogs_cv_struct_st_flags_immut=no]))
895 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
896 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
d1154eb4
TT
897 AC_DEFINE(HAVE_STAT_FLAGS, 1,
898 [Define to 1 if struct stat has st_flags])
c03bc4e8 899 fi
50e1e10f 900fi
84ea6e70
TT
901dnl
902dnl Check for the presence of SA_LEN
903dnl
6c65d251 904AC_CHECK_MEMBER(struct sockaddr.sa_len,
d1154eb4
TT
905 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
906 [Define to 1 if if struct sockaddr contains sa_len]),,
6c65d251
TT
907 [#include <sys/types.h>
908 #include <sys/socket.h>])
84ea6e70 909dnl
9ed8e5fe
ES
910dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using
911dnl the system-provided blkid library
912dnl
913if test -n "$BLKID_CMT"; then
914 AC_SEARCH_LIBS([blkid_probe_all], [blkid])
915fi
916dnl
db40c20e 917AC_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 msync utime setresuid setresgid usleep nanosleep getdtablesize getrlimit sync_file_range posix_fadvise fallocate fallocate64 blkid_probe_get_topology mbstowcs backtrace)
fc6d9d51 918dnl
fc6d9d51
TT
919dnl Check to see if -lsocket is required (solaris) to make something
920dnl that uses socket() to compile; this is needed for the UUID library
921dnl
922SOCKET_LIB=''
923AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
924AC_SUBST(SOCKET_LIB)
925dnl
50e1e10f
TT
926dnl See if optreset exists
927dnl
928AC_MSG_CHECKING(for optreset)
929AC_CACHE_VAL(ac_cv_have_optreset,
930[AC_EGREP_HEADER(optreset, unistd.h,
931 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
932AC_MSG_RESULT($ac_cv_have_optreset)
933if test $ac_cv_have_optreset = yes; then
d1154eb4 934 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
50e1e10f
TT
935fi
936dnl
d7f45af8
TT
937dnl Test for sem_init, and which library it might require:
938dnl
d1154eb4 939AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
d7f45af8
TT
940SEM_INIT_LIB=''
941AC_CHECK_FUNC(sem_init, ,
942 AC_CHECK_LIB(pthread, sem_init,
d1154eb4 943 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
944 SEM_INIT_LIB=-lpthread,
945 AC_CHECK_LIB(rt, sem_init,
d1154eb4 946 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
947 SEM_INIT_LIB=-lrt,
948 AC_CHECK_LIB(posix4, sem_init,
d1154eb4 949 AC_DEFINE(HAVE_SEM_INIT, 1)
d7f45af8
TT
950 SEM_INIT_LIB=-lposix4))))dnl
951AC_SUBST(SEM_INIT_LIB)
952dnl
e54635de
TT
953dnl Check for unified diff
954dnl
955AC_MSG_CHECKING(for unified diff option)
27f991b0 956if diff -u $0 $0 > /dev/null 2>&1 ; then
e54635de
TT
957 UNI_DIFF_OPTS=-u
958else
959 UNI_DIFF_OPTS=-c
960fi
961AC_MSG_RESULT($UNI_DIFF_OPTS)
962AC_SUBST(UNI_DIFF_OPTS)
963dnl
8f3f29d3
TT
964dnl We use the EXT2 ioctls only under Linux
965dnl
966case "$host_os" in
967linux*)
d1154eb4 968 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
8f3f29d3
TT
969 ;;
970esac
50e1e10f 971dnl
fff45483 972dnl OS-specific uncomment control
e6f2bda3
TT
973dnl
974LINUX_CMT="#"
fff45483
TT
975CYGWIN_CMT="#"
976UNIX_CMT=
e6f2bda3
TT
977case "$host_os" in
978linux*)
979 LINUX_CMT=
980 ;;
fff45483
TT
981cygwin)
982 CYGWIN_CMT=
983 UNIX_CMT="#"
fff45483 984 ;;
e6f2bda3
TT
985esac
986AC_SUBST(LINUX_CMT)
fff45483
TT
987AC_SUBST(CYGWIN_CMT)
988AC_SUBST(UNIX_CMT)
e6f2bda3 989dnl
6c133523 990dnl Linux and Hurd places root files in the / by default
50e1e10f 991dnl
50e1e10f 992case "$host_os" in
93636bde 993linux* | gnu* | k*bsd*-gnu)
a4b2d3ce
TT
994 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
995 root_prefix="";
02d04db4 996 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
fc6d9d51
TT
997 fi
998 ;;
999esac
fc6d9d51 1000dnl
a4b2d3ce 1001dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
1002dnl
1003case "$host_os" in
93636bde 1004linux* | gnu* | k*bsd*-gnu)
fc6d9d51 1005 if test "$prefix" = NONE ; then
a4b2d3ce 1006 prefix="/usr";
02d04db4 1007 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
bff61a7a 1008 if test "$mandir" = '${prefix}/man' ; then
02d04db4 1009 AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
bff61a7a
TT
1010 mandir=/usr/share/man
1011 fi
50e1e10f
TT
1012 fi
1013;;
1014esac
a4b2d3ce 1015if test "$root_prefix" = NONE ; then
ffe1991f 1016 if test "$prefix" = NONE ; then
a4b2d3ce
TT
1017 root_prefix="$ac_default_prefix"
1018 else
1019 root_prefix="$prefix"
1020 fi
b5ffeade
TT
1021 root_bindir=$bindir
1022 root_sbindir=$sbindir
1023 root_libdir=$libdir
1024 root_sysconfdir=$sysconfdir
1025else
1026 root_bindir='${root_prefix}/bin'
1027 root_sbindir='${root_prefix}/sbin'
1028 root_libdir='${root_prefix}/lib'
1029 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce 1030fi
c4ef11c5
TT
1031if test "$bindir" != '${exec_prefix}/bin'; then
1032 root_bindir=$bindir
02d04db4 1033 AC_MSG_RESULT([Setting root_bindir to $root_bindir])
c4ef11c5
TT
1034fi
1035if test "$sbindir" != '${exec_prefix}/sbin'; then
1036 root_sbindir=$sbindir
02d04db4 1037 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
c4ef11c5
TT
1038fi
1039if test "$libdir" != '${exec_prefix}/lib'; then
1040 root_libdir=$libdir
02d04db4 1041 AC_MSG_RESULT([Setting root_libdir to $root_libdir])
c4ef11c5
TT
1042fi
1043if test "$sysconfdir" != '${prefix}/etc'; then
1044 root_sysconfdir=$sysconfdir
02d04db4 1045 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
c4ef11c5 1046fi
a4b2d3ce 1047AC_SUBST(root_prefix)
b5ffeade
TT
1048AC_SUBST(root_bindir)
1049AC_SUBST(root_sbindir)
1050AC_SUBST(root_libdir)
1051AC_SUBST(root_sysconfdir)
50e1e10f 1052dnl
55e00a25
TT
1053dnl Allow specification of the multiarch arch
1054dnl
1055AC_ARG_WITH([multiarch],
1056[ --with-multiarch=ARCH specify the multiarch triplet],
1057libdir=$libdir/$withval
1058root_libdir=$root_libdir/$withval
1059)dnl
1060dnl
50e1e10f 1061dnl See if -static works.
50e1e10f 1062dnl
ae851482
TT
1063AC_MSG_CHECKING([whether linker accepts -static])
1064AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1065[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
1066AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1067 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1068LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
1069dnl
1070dnl Regardless of how the test turns out, Solaris doesn't handle -static
1071dnl This is caused by the socket library requiring the nsl library, which
1072dnl requires the -dl library, which only works for dynamically linked
1073dnl programs. It basically means you can't have statically linked programs
1074dnl which use the network under Solaris.
1075dnl
1076case "$host_os" in
1077solaris2.*)
1078 ac_cv_e2fsprogs_use_static=no
1079;;
1080esac
ae851482 1081AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
74becf3c 1082LDFLAG_STATIC=
ae851482 1083if test $ac_cv_e2fsprogs_use_static = yes; then
50e1e10f 1084 LDFLAG_STATIC=-static
ae851482 1085fi
50e1e10f
TT
1086AC_SUBST(LDFLAG_STATIC)
1087dnl
07a0db15
TT
1088dnl Work around mysterious Darwin / GNU libintl problem
1089dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like
1090dnl Apple hacked gcc somehow?)
1091dnl
1092case "$host_os" in
1093darwin*)
02d04db4 1094 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
d1154eb4
TT
1095 AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1096 [Define to 1 if Apple Darwin libintl workaround is needed])
07a0db15
TT
1097 ;;
1098esac
1099dnl
50e1e10f
TT
1100dnl Make the ss and et directories work correctly.
1101dnl
1102SS_DIR=`cd ${srcdir}/lib/ss; pwd`
1103ET_DIR=`cd ${srcdir}/lib/et; pwd`
1104AC_SUBST(SS_DIR)
1105AC_SUBST(ET_DIR)
1106dnl
1107dnl Only try to run the test suite if we're not cross compiling.
1108dnl
1109if test "$cross_compiling" = yes ; then
1110 DO_TEST_SUITE=
1111else
1112 DO_TEST_SUITE=check
1113fi
1114AC_SUBST(DO_TEST_SUITE)
1115dnl
c6f35b8a 1116dnl Only include the intl include files if we're building with them
d1154eb4
TT
1117dnl
1118INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1119if test -n "$CPPFLAGS" ; then
1120 INCLUDES="$INCLUDES $CPPFLAGS"
1121fi
c6f35b8a 1122if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
d1154eb4 1123 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
c6f35b8a 1124fi
d1154eb4 1125AC_SUBST(INCLUDES)
c6f35b8a 1126dnl
dd947da2
TT
1127dnl Build CFLAGS
1128dnl
1129if test $cross_compiling = no; then
1130 BUILD_CFLAGS="$CFLAGS"
1131 BUILD_LDFLAGS="$LDFLAGS"
1132else
1133 BUILD_CFLAGS=
1134 BUILD_LDFLAGS=
1135fi
1136AC_SUBST(BUILD_CFLAGS)
1137AC_SUBST(BUILD_LDFLAGS)
1138dnl
50e1e10f
TT
1139dnl Make our output files, being sure that we create the some miscellaneous
1140dnl directories
1141dnl
1142test -d lib || mkdir lib
1143test -d include || mkdir include
1144test -d include/linux || mkdir include/linux
defde784 1145test -d include/asm || mkdir include/asm
bff0cc95
TT
1146for i in MCONFIG Makefile e2fsprogs.spec \
1147 util/Makefile util/subst.conf util/gen-tarball \
4ea7ea00
TT
1148 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1149 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
94ba8c75 1150 lib/uuid/Makefile lib/uuid/uuid_types.h \
f239fefc 1151 lib/blkid/Makefile lib/blkid/blkid_types.h lib/quota/Makefile \
e6441865
TT
1152 lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
1153 lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
921f4ad5 1154 misc/Makefile ext2ed/Makefile e2fsck/Makefile \
94ba8c75 1155 debugfs/Makefile tests/Makefile tests/progs/Makefile \
98a5ad61
MA
1156 resize/Makefile doc/Makefile intl/Makefile \
1157 intl/libgnuintl.h po/Makefile.in ; do
94ba8c75
TT
1158 if test -d `dirname ${srcdir}/$i` ; then
1159 outlist="$outlist $i"
1160 fi
1161done
1162AC_OUTPUT($outlist)
ee683a13 1163if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi