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