OSDN Git Service

badblocks: If nanosleep() does not exist, try using usleep() instead
[android-x86/external-e2fsprogs.git] / configure.in
1 AC_INIT(version.h)
2 AC_PREREQ(2.50)
3 AC_CONFIG_AUX_DIR(config)
4 MCONFIG=./MCONFIG
5 AC_SUBST_FILE(MCONFIG)
6 BINARY_TYPE=bin
7 dnl
8 dnl This is to figure out the version number and the date....
9 dnl
10 E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h  \
11         | awk '{print $3}' | tr \" " " | awk '{print $1}'`
12 DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
13         | tr \" " "`
14 E2FSPROGS_DAY=`echo $DATE | awk -F- '{print $1}'`
15 MONTH=`echo $DATE | awk -F- '{print $2}'`
16 YEAR=`echo $DATE | awk -F- '{print $3}'`
17
18 if expr $YEAR ">" 1900 > /dev/null ; then
19         E2FSPROGS_YEAR=$YEAR
20 elif expr $YEAR ">" 90 >/dev/null ; then
21         E2FSPROGS_YEAR=19$YEAR
22 else
23         E2FSPROGS_YEAR=20$YEAR
24 fi
25
26 case $MONTH in
27 Jan)    MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
28 Feb)    MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
29 Mar)    MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
30 Apr)    MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
31 May)    MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
32 Jun)    MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
33 Jul)    MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
34 Aug)    MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
35 Sep)    MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
36 Oct)    MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
37 Nov)    MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
38 Dec)    MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
39 *)      echo "Unknown month $MONTH??" ;;
40 esac
41
42 base_ver=`echo $E2FSPROGS_VERSION | \
43                sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
44
45 date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
46
47 case $E2FSPROGS_VERSION in
48 *-WIP|pre-*)
49         E2FSPROGS_PKGVER="$base_ver~WIP-$E2FSPROGS_YEAR-$MONTH_NUM-$E2FSPROGS_DAY"
50         ;;
51 *)
52         E2FSPROGS_PKGVER="$base_ver"
53         ;;
54 esac
55
56 unset DATE MONTH YEAR base_ver pre_vers date_spec
57 echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION"
58 echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}"
59 AC_SUBST(E2FSPROGS_YEAR)
60 AC_SUBST(E2FSPROGS_MONTH)
61 AC_SUBST(E2FSPROGS_DAY)
62 AC_SUBST(E2FSPROGS_VERSION)
63 AC_SUBST(E2FSPROGS_PKGVER)
64 AC_CANONICAL_HOST
65 dnl
66 dnl Use diet libc
67 dnl 
68 WITH_DIET_LIBC=
69 AC_ARG_WITH([diet-libc],
70 [  --with-diet-libc        use diet libc],
71 CC="diet cc -nostdinc"
72 WITH_DIET_LIBC=yes
73 AC_MSG_RESULT(CC=$CC))dnl
74 dnl
75 dnl set $(CC) from --with-cc=value
76 dnl
77 AC_ARG_WITH([cc],
78 [  --with-cc=COMPILER      select compiler to use],
79 AC_MSG_RESULT(CC=$withval)
80 CC=$withval,
81 if test -z "$CC" ; then CC=cc; fi
82 [AC_MSG_RESULT(CC defaults to $CC)])dnl
83 export CC
84 AC_SUBST([CC])
85 AC_PROG_CC
86 AC_PROG_CPP
87 dnl
88 dnl set $(LD) from --with-linker=value
89 dnl
90 AC_ARG_WITH([linker],
91 [  --with-linker=LINKER    select linker to use],
92 AC_MSG_RESULT(LD=$withval)
93 LD=$withval,
94 if test -z "$LD" ; then LD=$CC; fi
95 [AC_MSG_RESULT(LD defaults to $LD)])dnl
96 export LD
97 AC_SUBST([LD])
98 dnl
99 dnl set $(CCOPTS) from --with-ccopts=value
100 dnl
101 AC_ARG_WITH([ccopts],
102 [  --with-ccopts=CCOPTS    select compiler command line options],
103 AC_MSG_RESULT(CCOPTS is $withval)
104 CFLAGS=$withval,
105 )dnl
106 dnl
107 dnl On systems without linux header files, we add an extra include directory
108 dnl that holds enough to fake it (hopefully).  Note that the $(top_srcdir) here
109 dnl is quoted so that it gets expanded by make, not by configure.
110 dnl
111 AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
112 if test "$linux_headers" != yes; then
113   LINUX_INCLUDE='-I$(top_builddir)/include'
114 fi
115 AC_SUBST(LINUX_INCLUDE)
116 dnl
117 dnl Alpha computers use fast and imprecise floating point code that may
118 dnl miss exceptions by default. Force sane options if we're using GCC.
119 AC_MSG_CHECKING(for additional special compiler flags)
120 if test "$GCC" = yes
121 then
122     case "$host_cpu" in
123         alpha)          addcflags="-mieee" ;;
124     esac
125 fi
126 if test "x$addcflags" != x
127 then
128     AC_MSG_RESULT($addcflags)
129     CFLAGS="$addcflags $CFLAGS"
130 else
131     AC_MSG_RESULT([[(none)]])
132 fi
133 dnl
134 dnl Set default values for library extentions.  Will be dealt with after
135 dnl parsing configuration opions, which may modify these
136 dnl
137 LIB_EXT=.a
138 STATIC_LIB_EXT=.a
139 PROFILE_LIB_EXT=.a
140 dnl
141 dnl set $(LDFLAGS) from --with-ldopts=value
142 dnl
143 AC_ARG_WITH([ldopts],
144 [  --with-ldopts=LDOPTS    select linker command line options],
145 AC_MSG_RESULT(LDFLAGS is $withval)
146 LDFLAGS=$withval,
147 LDFLAGS=)dnl
148 AC_SUBST(LDFLAGS)
149 dnl
150 dnl Allow separate `root_prefix' to be specified
151 dnl
152 AC_ARG_WITH([root-prefix],
153 [  --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
154 root_prefix=$withval,
155 root_prefix=NONE)dnl
156 dnl
157 dnl handle --enable-maintainer-mode
158 dnl
159 AC_ARG_ENABLE([maintainer-mode],
160 [  --enable-maintainer-mode enable makefile rules useful for maintainers],
161 if test "$enableval" = "no"
162 then
163         MAINTAINER_CMT=#
164         echo "Disabling maintainer mode"
165 else
166         MAINTAINER_CMT=
167         echo "Enabling maintainer mode"
168 fi
169 ,
170 MAINTAINER_CMT=#
171 echo "Disabling maintainer mode by default"
172 )
173 AC_SUBST(MAINTAINER_CMT)
174 dnl
175 dnl handle --enable-compression
176 dnl
177 AC_ARG_ENABLE([compression],
178 [  --enable-compression   enable EXPERIMENTAL compression support],
179 if test "$enableval" = "no"
180 then
181         echo "Disabling compression support"
182 else
183         AC_DEFINE(ENABLE_COMPRESSION)
184         echo "Enabling compression support"
185         echo "WARNING: Compression support is experimental"
186 fi
187 ,
188 echo "Disabling compression support by default"
189 )
190 dnl
191 dnl handle --enable-htree
192 dnl
193 AC_ARG_ENABLE([htree],
194 [  --enable-htree         enable EXPERIMENTAL htree directory support],
195 if test "$enableval" = "no"
196 then
197         HTREE_CMT=#
198         echo "Disabling htree directory support"
199 else
200         HTREE_CMT=
201         AC_DEFINE(ENABLE_HTREE)
202         echo "Enabling htree directory support"
203 fi
204 ,
205 HTREE_CMT=
206 AC_DEFINE(ENABLE_HTREE)
207 echo "Enabling htree directory support by default"
208 )
209 AC_SUBST(HTREE_CMT)
210 dnl
211 dnl This needs to be before all of the --enable-*-shlibs options
212 dnl
213 E2_PKG_CONFIG_STATIC=--static
214 dnl
215 dnl handle --enable-elf-shlibs
216 dnl
217 AC_ARG_ENABLE([elf-shlibs],
218 [  --enable-elf-shlibs    select ELF shared libraries],
219 if test "$enableval" = "no"
220 then
221         ELF_CMT=#
222         MAKEFILE_ELF=/dev/null
223         echo "Disabling ELF shared libraries"
224 else
225         E2_PKG_CONFIG_STATIC=
226         ELF_CMT=
227         MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
228         [case "$host_os" in
229         solaris2.*)
230                 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
231         ;;
232         esac]
233         BINARY_TYPE=elfbin
234         LIB_EXT=.so
235         echo "Enabling ELF shared libraries"
236 fi
237 ,
238 MAKEFILE_ELF=/dev/null
239 ELF_CMT=#
240 echo "Disabling ELF shared libraries by default"
241 )
242 AC_SUBST(ELF_CMT)
243 AC_SUBST_FILE(MAKEFILE_ELF)
244 dnl
245 dnl handle --enable-bsd-shlibs
246 dnl
247 AC_ARG_ENABLE([bsd-shlibs],
248 [  --enable-bsd-shlibs    select BSD shared libraries],
249 if test "$enableval" = "no"
250 then
251         BSDLIB_CMT=#
252         MAKEFILE_BSDLIB=/dev/null
253         echo "Disabling BSD shared libraries"
254 else
255         E2_PKG_CONFIG_STATIC=
256         BSDLIB_CMT=
257         MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
258         LIB_EXT=.so
259         [case "$host_os" in
260         darwin*)
261                 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
262                 LIB_EXT=.dylib
263         ;;
264         esac]
265         echo "Enabling BSD shared libraries"
266 fi
267 ,
268 MAKEFILE_BSDLIB=/dev/null
269 BSDLIB_CMT=#
270 echo "Disabling BSD shared libraries by default"
271 )
272 AC_SUBST(BSDLIB_CMT)
273 AC_SUBST_FILE(MAKEFILE_BSDLIB)
274 dnl
275 dnl handle --enable-profile
276 dnl
277 AC_ARG_ENABLE([profile],
278 [  --enable-profile       build profiling libraries],
279 if test "$enableval" = "no"
280 then
281         PROFILE_CMT=#
282         MAKEFILE_PROFILE=/dev/null
283         echo "Disabling profiling libraries"
284 else
285         PROFILE_CMT=
286         MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
287         PROFILED_LIB_EXT=_p.a
288         echo "Building profiling libraries"
289 fi
290 ,
291 PROFILE_CMT=#
292 MAKEFILE_PROFILE=/dev/null
293 echo "Disabling profiling libraries by default"
294 )
295 AC_SUBST(PROFILE_CMT)
296 AC_SUBST_FILE(MAKEFILE_PROFILE)
297 dnl
298 dnl handle --enable-checker
299 dnl
300 AC_ARG_ENABLE([checker],
301 [  --enable-checker       build checker libraries],
302 if test "$enableval" = "no"
303 then
304         CHECKER_CMT=#
305         MAKEFILE_CHECKER=/dev/null
306         echo "Disabling checker libraries"
307 else
308         CHECKER_CMT=
309         MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
310         echo "Building checker libraries"
311 fi
312 ,
313 CHECKER_CMT=#
314 MAKEFILE_CHECKER=/dev/null
315 echo "Disabling checker libraries by default"
316 )
317 AC_SUBST(CHECKER_CMT)
318 AC_SUBST_FILE(MAKEFILE_CHECKER)
319 dnl
320 dnl Substitute library extensions
321 dnl
322 AC_SUBST(LIB_EXT)
323 AC_SUBST(STATIC_LIB_EXT)
324 AC_SUBST(PROFILED_LIB_EXT)
325 dnl
326 dnl handle --enable-jbd-debug
327 dnl
328 AC_ARG_ENABLE([jbd-debug],
329 [  --enable-jbd-debug     enable journal debugging],
330 if test "$enableval" = "no"
331 then
332         echo "Disabling journal debugging"
333 else
334         AC_DEFINE(CONFIG_JBD_DEBUG)
335         echo "Enabling journal debugging"
336 fi
337 ,
338 echo "Disabling journal debugging by default"
339 )
340 dnl
341 dnl handle --enable-blkid-debug
342 dnl
343 AC_ARG_ENABLE([blkid-debug],
344 [  --enable-blkid-debug    enable blkid debugging],
345 if test "$enableval" = "no"
346 then
347         echo "Disabling blkid debugging"
348 else
349         AC_DEFINE(CONFIG_BLKID_DEBUG)
350         echo "Enabling blkid debugging"
351 fi
352 ,
353 echo "Disabling blkid debugging by default"
354 )
355 dnl
356 dnl handle --enable-testio-debug
357 dnl
358 AC_ARG_ENABLE([testio-debug],
359 [  --enable-testio-debug   enable the use of the test I/O manager for debugging],
360 if test "$enableval" = "no"
361 then
362         echo "Disabling testio debugging"
363 else
364         AC_DEFINE(CONFIG_TESTIO_DEBUG)
365         echo "Enabling testio debugging"
366 fi
367 ,
368 echo "Disabling testio debugging by default"
369 )
370 dnl
371 dnl handle --enable-debugfs
372 dnl
373 AC_ARG_ENABLE([debugfs],
374 [  --disable-debugfs      disable support of debugfs program],
375 if test "$enableval" = "no"
376 then
377         echo "Disabling debugfs support"
378         DEBUGFS_CMT="#"
379 else
380         DEBUGFS_CMT=
381         echo "Enabling debugfs support"
382 fi
383 ,
384 echo "Enabling debugfs support by default"
385 DEBUGFS_CMT=
386 )
387 AC_SUBST(DEBUGFS_CMT)
388 dnl
389 dnl handle --enable-imager
390 dnl
391 AC_ARG_ENABLE([imager],
392 [  --disable-imager       disable support of e2image program],
393 if test "$enableval" = "no"
394 then
395         echo "Disabling e2image support"
396         IMAGER_CMT="#"
397 else
398         IMAGER_CMT=
399         echo "Enabling e2image support"
400 fi
401 ,
402 echo "Enabling e2image support by default"
403 IMAGER_CMT=
404 )
405 AC_SUBST(IMAGER_CMT)
406 dnl
407 dnl handle --enable-resizer
408 dnl
409 AC_ARG_ENABLE([resizer],
410 [  --disable-resizer      disable support of e2resize program],
411 if test "$enableval" = "no"
412 then
413         echo "Disabling e2resize support"
414         RESIZER_CMT="#"
415 else
416         RESIZER_CMT=
417         echo "Enabling e2resize support"
418 fi
419 ,
420 echo "Enabling e2resize support by default"
421 RESIZER_CMT=
422 )
423 AC_SUBST(RESIZER_CMT)
424 dnl
425 dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
426 dnl
427 AC_ARG_ENABLE([fsck],
428 [  --enable-fsck           build fsck wrapper program],
429 [if test "$enableval" = "no"
430 then
431         FSCK_PROG='' FSCK_MAN=''
432         echo "Not building fsck wrapper"
433 else
434         FSCK_PROG=fsck FSCK_MAN=fsck.8
435         echo "Building fsck wrapper"
436 fi]
437 ,
438 [case "$host_os" in
439   gnu*)
440     FSCK_PROG='' FSCK_MAN=''
441     echo "Not building fsck wrapper by default"
442     ;;
443   *)
444     FSCK_PROG=fsck FSCK_MAN=fsck.8
445     echo "Building fsck wrapper by default"
446 esac]
447 )
448 AC_SUBST(FSCK_PROG)
449 AC_SUBST(FSCK_MAN)
450 dnl
451 dnl See whether to install the `e2initrd-helper' program
452 dnl
453 AC_ARG_ENABLE([e2initrd-helper],
454 [  --enable-e2initrd-helper build e2initrd-helper program],
455 [if test "$enableval" = "no"
456 then
457         E2INITRD_PROG='' E2INITRD_MAN=''
458         echo "Not building e2initrd helper"
459 else
460         E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
461         echo "Building e2initrd helper"
462 fi]
463 ,
464 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
465 echo "Building e2initrd helper by default"
466 )
467 AC_SUBST(E2INITRD_PROG)
468 AC_SUBST(E2INITRD_MAN)
469 dnl handle --enable-blkid-devmapper
470 dnl
471 STATIC_BLKID_DEVMAPPER_LIBS=''
472 AC_ARG_ENABLE([blkid-devmapper],
473 [  --enable-blkid-devmapper  build with device-mapper support],
474 [if test "$enableval" = "no"
475 then
476         echo "Disabling device-mapper support"
477         DEVMAPPER_REQ=''
478         DEVMAPPER_LIBS=''
479         STATIC_DEVMAPPER_LIBS=''
480 else
481         AC_DEFINE(HAVE_DEVMAPPER)
482         echo "Enabling device-mapper support"
483
484         PKG_PROG_PKG_CONFIG()
485
486         if test -z "$PKG_CONFIG"; then
487                 echo "pkg-config not installed; please install it."
488                 exit 1;
489         fi
490  
491         AC_CHECK_LIB(devmapper, dm_tree_create,
492                 [DEVMAPPER_LIBS=`$PKG_CONFIG --libs devmapper`; 
493                  STATIC_DEVMAPPER_LIBS=`$PKG_CONFIG --static --libs devmapper`;
494                  DEVMAPPER_REQ="devmapper";
495                  DEVMAPPER_PC_LIBS="-ldevmapper"],
496                 [AC_MSG_ERROR([device-mapper library not found])],
497                 [$DEVMAPPER_LIBS])
498         # work around stupid devmapper.pc bug in Debian
499         case "$STATIC_DEVMAPPER_LIBS" in
500         *pthread*)
501             ;;
502         *)
503             echo "Working around Debian bug #390243..."
504             STATIC_DEVMAPPER_LIBS="-pthread $STATIC_DEVMAPPER_LIBS"
505             ;;
506         esac
507         if test "$E2_PKG_CONFIG_STATIC" = "--static"; then
508             DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
509             STATIC_BLKID_DEVMAPPER_LIBS="$STATIC_DEVMAPPER_LIBS"
510         fi
511 fi]
512 ,
513 echo "Disabling device-mapper support by default"
514 )
515 AC_SUBST(DEVMAPPER_REQ)
516 AC_SUBST(DEVMAPPER_PC_LIBS)
517 AC_SUBST(DEVMAPPER_LIBS)
518 AC_SUBST(STATIC_DEVMAPPER_LIBS)
519 AC_SUBST(STATIC_BLKID_DEVMAPPER_LIBS)
520 dnl
521 dnl
522 dnl
523 AC_ARG_ENABLE([tls],
524 [  --disable-tls           disable use of thread local support],
525 [if test "$enableval" = "no"
526 then
527         try_tls=""
528         echo "Disabling thread local support"
529 else
530         try_tls="yes"
531         echo "Enabling thread local support"
532 fi]
533 ,
534 if test -n "$WITH_DIET_LIBC"
535 then
536         try_tls=""
537         echo "Diet libc does not support thread local support"
538 else
539         try_tls="yes"
540         echo "Try using thread local support by default"
541 fi
542 )
543 if test "$try_tls" = "yes"
544 then
545 AX_TLS
546 fi
547 dnl
548 dnl
549 dnl
550 AC_ARG_ENABLE([uuidd],
551 [  --disable-uuidd         disable building the uuid daemon],
552 [if test "$enableval" = "no"
553 then
554         echo "Not building uuidd"
555         UUIDD_CMT="#"
556 else
557         AC_DEFINE(USE_UUIDD)
558         UUIDD_CMT=""
559         echo "Building uuidd"
560 fi]
561 ,
562 AC_DEFINE(USE_UUIDD)
563 UUIDD_CMT=""
564 echo "Building uuidd by default"
565 )
566 AC_SUBST(UUIDD_CMT)
567 dnl
568 dnl
569 dnl
570 MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
571 AC_SUBST_FILE(MAKEFILE_LIBRARY)
572 dnl
573 dnl Add internationalization support, using gettext.
574 dnl
575 GETTEXT_PACKAGE=e2fsprogs
576 PACKAGE=e2fsprogs
577 VERSION="$E2FSPROGS_VERSION"
578 VERSION=0.14.1
579 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
580 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
581 AC_SUBST(GETTEXT_PACKAGE)
582 AC_SUBST(PACKAGE)
583 AC_SUBST(VERSION)
584
585 AM_GNU_GETTEXT
586 dnl
587 dnl End of configuration options
588 dnl
589 AC_SUBST(BINARY_TYPE)
590 AC_PROG_MAKE_SET
591 AC_PATH_PROG(LN, ln, ln)
592 AC_PROG_LN_S
593 AC_PATH_PROG(MV, mv, mv)
594 AC_PATH_PROG(CP, cp, cp)
595 AC_PATH_PROG(RM, rm, rm)
596 AC_PATH_PROG(CHMOD, chmod, :)
597 AC_PROG_AWK
598 AC_PROG_EGREP
599 AC_PATH_PROG(SED, sed, sed)
600 AC_PATH_PROG(PERL, perl, perl)
601 AC_PATH_PROG(LDCONFIG, ldconfig, :)
602 AC_CHECK_TOOL(AR, ar, ar)
603 AC_CHECK_TOOL(RANLIB, ranlib, :)
604 AC_CHECK_TOOL(STRIP, strip, :)
605 AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
606 if test "_$MAKEINFO" = "_"; then
607     MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true"
608 else
609     case "$MAKEINFO" in
610       */missing.*)
611         AC_MSG_WARN([
612 *** Makeinfo is missing. Info documentation will not be built.])
613         ;;
614       *)
615         ;;
616     esac
617 fi
618 AC_SUBST(MAKEINFO)
619 AC_PROG_INSTALL
620 # See if we need a separate native compiler.
621 if test $cross_compiling = no; then
622   BUILD_CC="$CC"
623   AC_SUBST(BUILD_CC)
624 else
625   AC_CHECK_PROGS(BUILD_CC, gcc cc)
626 fi
627 AC_CHECK_HEADERS(dirent.h errno.h getopt.h malloc.h mntent.h paths.h setjmp.h signal.h stdarg.h stdint.h stdlib.h termios.h termio.h unistd.h utime.h linux/fd.h linux/major.h net/if_dl.h netinet/in.h sys/disklabel.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)
628 AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,,
629 [[
630 #if HAVE_SYS_QUEUE_H
631 #include <sys/queue.h>
632 #endif
633 ]])
634 AC_CHECK_HEADERS(net/if.h,,,
635 [[
636 #if HAVE_SYS_TYPES_H
637 #include <sys/types.h>
638 #endif
639 #if HAVE_SYS_SOCKET
640 #include <sys/socket.h>
641 #endif
642 ]])
643 AC_FUNC_VPRINTF
644 dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
645 dnl is not decleared.
646 AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT)],,
647                 [#include <dirent.h>])
648 dnl Check to see if ssize_t was decleared
649 AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T)],,
650               [#include <sys/types.h>])
651 dnl
652 dnl Check to see if llseek() is declared in unistd.h.  On some libc's 
653 dnl it is, and on others it isn't..... Thank you glibc developers....
654 dnl
655 AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)],,
656               [#include <unistd.h>])
657 dnl
658 dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
659 dnl are so convoluted that I can't tell whether it will always be defined,
660 dnl and if it isn't defined while lseek64 is defined in the library, 
661 dnl disaster will strike.  
662 dnl
663 dnl Warning!  Use of --enable-gcc-wall may throw off this test.
664 dnl
665 dnl
666 AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)],,
667                 [#define _LARGEFILE_SOURCE
668                  #define _LARGEFILE64_SOURCE
669                  #include <unistd.h>])
670 dnl
671 dnl Word sizes...
672 dnl
673 AC_CHECK_SIZEOF(short)
674 AC_CHECK_SIZEOF(int)
675 AC_CHECK_SIZEOF(long)
676 AC_CHECK_SIZEOF(long long)
677 SIZEOF_SHORT=$ac_cv_sizeof_short
678 SIZEOF_INT=$ac_cv_sizeof_int
679 SIZEOF_LONG=$ac_cv_sizeof_long
680 SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
681 AC_SUBST(SIZEOF_SHORT)
682 AC_SUBST(SIZEOF_INT)
683 AC_SUBST(SIZEOF_LONG)
684 AC_SUBST(SIZEOF_LONG_LONG)
685 AC_C_BIGENDIAN
686 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
687 ASM_TYPES_HEADER=./asm_types.h
688 AC_SUBST_FILE(ASM_TYPES_HEADER)
689 dnl
690 dnl Save the configuration #defines needed for the public ext2fs.h
691 dnl header file
692 dnl
693 echo "/* These defines are needed for the public ext2fs.h header file */" \
694      > public_config.h
695 if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
696   uniq tmp_config.$$ >> public_config.h
697 else
698   echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
699 fi
700 if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
701   uniq tmp_config.$$ >> public_config.h
702 else
703   echo "#undef WORDS_BIGENDIAN" >> public_config.h
704 fi
705 rm -f tmp_config.$$
706 PUBLIC_CONFIG_HEADER=./public_config.h
707 AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
708 dnl
709 dnl See if we have inttypes.h and if intptr_t is defined
710 dnl
711 AC_CHECK_HEADERS([inttypes.h])
712 AC_CHECK_TYPES(intptr_t)
713 dnl
714 dnl See if struct stat has a st_flags field, in which case we can get file
715 dnl flags somewhat portably.  Also check for the analogous setter, chflags().
716 dnl
717 AC_MSG_CHECKING(whether struct stat has a st_flags field)
718 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
719         AC_TRY_COMPILE([#include <sys/stat.h>],
720                 [struct stat stat; stat.st_flags = 0;],
721                 [e2fsprogs_cv_struct_st_flags=yes],
722                 [e2fsprogs_cv_struct_st_flags=no]))
723 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
724 if test "$e2fsprogs_cv_struct_st_flags" = yes; then
725   AC_MSG_CHECKING(whether st_flags field is useful)
726   AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
727         AC_TRY_COMPILE([#include <sys/stat.h>],
728                 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
729                 [e2fsprogs_cv_struct_st_flags_immut=yes],
730                 [e2fsprogs_cv_struct_st_flags_immut=no]))
731   AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
732   if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
733           AC_DEFINE(HAVE_STAT_FLAGS)
734   fi
735 fi
736 dnl
737 dnl Check for the presence of SA_LEN
738 dnl
739 AC_CHECK_MEMBER(struct sockaddr.sa_len,
740                 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
741         [#include <sys/types.h>
742          #include <sys/socket.h>])
743 dnl
744 AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 fstat64 ftruncate64 getmntinfo strtoull strcasecmp srandom jrand48 fchown mallinfo fdatasync strnlen strptime strdup sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl mmap utime setresuid setresgid usleep nanosleep)
745 dnl
746 dnl Check to see if -lsocket is required (solaris) to make something
747 dnl that uses socket() to compile; this is needed for the UUID library
748 dnl
749 SOCKET_LIB=''
750 AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
751 AC_SUBST(SOCKET_LIB)
752 dnl
753 dnl Check to see if libdl exists for the sake of dlopen
754 dnl
755 DLOPEN_LIB=''
756 AC_CHECK_LIB(dl, dlopen, 
757 [DLOPEN_LIB=-ldl
758 AC_DEFINE(HAVE_DLOPEN)])
759 AC_SUBST(DLOPEN_LIB)
760 dnl
761 dnl See if optreset exists
762 dnl
763 AC_MSG_CHECKING(for optreset)
764 AC_CACHE_VAL(ac_cv_have_optreset,
765 [AC_EGREP_HEADER(optreset, unistd.h,
766   ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
767 AC_MSG_RESULT($ac_cv_have_optreset)
768 if test $ac_cv_have_optreset = yes; then
769   AC_DEFINE(HAVE_OPTRESET)
770 fi
771 dnl
772 dnl Check for unified diff
773 dnl
774 AC_MSG_CHECKING(for unified diff option)
775 if diff -u $0 $0 > /dev/null 2>&1 ; then
776    UNI_DIFF_OPTS=-u
777 else
778    UNI_DIFF_OPTS=-c
779 fi
780 AC_MSG_RESULT($UNI_DIFF_OPTS)
781 AC_SUBST(UNI_DIFF_OPTS)
782 dnl
783 dnl We use the EXT2 ioctls only under Linux
784 dnl
785 case "$host_os" in
786 linux*)
787         AC_DEFINE(HAVE_EXT2_IOCTLS)
788         ;;
789 esac
790 dnl
791 dnl OS-specific uncomment control
792 dnl
793 LINUX_CMT="#"
794 CYGWIN_CMT="#"
795 UNIX_CMT=
796 case "$host_os" in
797 linux*)
798         LINUX_CMT=
799         ;;
800 cygwin)
801         CYGWIN_CMT=
802         UNIX_CMT="#"
803         ;;
804 esac
805 AC_SUBST(LINUX_CMT)
806 AC_SUBST(CYGWIN_CMT)
807 AC_SUBST(UNIX_CMT)
808 dnl
809 dnl Linux and Hurd places root files in the / by default
810 dnl
811 case "$host_os" in
812 linux* | gnu* | k*bsd*-gnu)
813         if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
814                 root_prefix="";
815                 echo "On $host_os systems, root_prefix defaults to ''"
816         fi
817         ;;
818 esac
819 dnl
820 dnl On Linux/hurd, force the prefix to be /usr
821 dnl
822 case "$host_os" in
823 linux* | gnu* | k*bsd*-gnu)
824         if test "$prefix" = NONE ; then
825                 prefix="/usr";
826                 echo "On $host_os systems, prefix defaults to /usr"
827                 if test "$mandir" = '${prefix}/man' ; then
828                         echo "...and mandir defaults to /usr/share/man"
829                         mandir=/usr/share/man
830                 fi
831         fi
832 ;;
833 esac
834 if test "$root_prefix" = NONE ; then
835         if test "$prefix" = NONE ; then
836                 root_prefix="$ac_default_prefix"
837         else
838                 root_prefix="$prefix"
839         fi
840         root_bindir=$bindir
841         root_sbindir=$sbindir
842         root_libdir=$libdir
843         root_sysconfdir=$sysconfdir
844 else
845         root_bindir='${root_prefix}/bin'
846         root_sbindir='${root_prefix}/sbin'
847         root_libdir='${root_prefix}/lib'
848         root_sysconfdir='${root_prefix}/etc'
849 fi
850 if test "$bindir" != '${exec_prefix}/bin'; then
851     root_bindir=$bindir
852     echo "Setting root_bindir to $root_bindir"
853 fi
854 if test "$sbindir" != '${exec_prefix}/sbin'; then
855     root_sbindir=$sbindir
856     echo "Setting root_sbindir to $root_sbindir"
857 fi
858 if test "$libdir" != '${exec_prefix}/lib'; then
859     root_libdir=$libdir
860     echo "Setting root_libdir to $root_libdir"
861 fi
862 if test "$sysconfdir" != '${prefix}/etc'; then
863     root_sysconfdir=$sysconfdir
864     echo "Setting root_sysconfdir to $root_sysconfdir"
865 fi
866 AC_SUBST(root_prefix)
867 AC_SUBST(root_bindir)
868 AC_SUBST(root_sbindir)
869 AC_SUBST(root_libdir)
870 AC_SUBST(root_sysconfdir)
871 dnl
872 dnl See if -static works.
873 dnl
874 AC_MSG_CHECKING([whether linker accepts -static])
875 AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
876 [SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
877 AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
878  ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
879 LDFLAGS=$SAVE_LDFLAGS])
880 dnl
881 dnl Regardless of how the test turns out, Solaris doesn't handle -static
882 dnl This is caused by the socket library requiring the nsl library, which
883 dnl requires the -dl library, which only works for dynamically linked 
884 dnl programs.  It basically means you can't have statically linked programs
885 dnl which use the network under Solaris.  
886 dnl
887 case "$host_os" in
888 solaris2.*)
889         ac_cv_e2fsprogs_use_static=no   
890 ;;
891 esac
892 AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
893 LDFLAG_STATIC=
894 if test $ac_cv_e2fsprogs_use_static = yes; then
895         LDFLAG_STATIC=-static
896 fi
897 AC_SUBST(LDFLAG_STATIC)
898 dnl
899 dnl Work around mysterious Darwin / GNU libintl problem
900 dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
901 dnl Apple hacked gcc somehow?)
902 dnl
903 case "$host_os" in
904 darwin*)
905         echo "Using Apple Darwin / GNU libintl workaround"
906         AC_DEFINE(_INTL_REDIRECT_MACROS)
907         ;;
908 esac
909 dnl
910 dnl Make the ss and et directories work correctly.
911 dnl
912 SS_DIR=`cd ${srcdir}/lib/ss; pwd`
913 ET_DIR=`cd ${srcdir}/lib/et; pwd`
914 AC_SUBST(SS_DIR)
915 AC_SUBST(ET_DIR)
916 dnl
917 dnl Only try to run the test suite if we're not cross compiling.
918 dnl
919 if test "$cross_compiling" = yes ; then
920   DO_TEST_SUITE=
921 else
922   DO_TEST_SUITE=check
923 fi
924 AC_SUBST(DO_TEST_SUITE)
925 dnl
926 dnl Only include the intl include files if we're building with them
927 dnl 
928 INTL_FLAGS=
929 if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
930         INTL_FLAGS='-I$(top_builddir)/intl -I$(top_srcdir)/intl'
931 fi
932 AC_SUBST(INTL_FLAGS)
933 dnl
934 dnl Build CFLAGS
935 dnl
936 if test $cross_compiling = no; then
937    BUILD_CFLAGS="$CFLAGS"
938    BUILD_LDFLAGS="$LDFLAGS"
939 else
940    BUILD_CFLAGS=
941    BUILD_LDFLAGS=
942 fi
943 AC_SUBST(BUILD_CFLAGS)
944 AC_SUBST(BUILD_LDFLAGS)
945 dnl
946 dnl Make our output files, being sure that we create the some miscellaneous 
947 dnl directories
948 dnl
949 test -d lib || mkdir lib
950 test -d include || mkdir include
951 test -d include/linux || mkdir include/linux
952 test -d include/asm || mkdir include/asm
953 for i in MCONFIG Makefile e2fsprogs.spec \
954         util/Makefile util/subst.conf util/gen-tarball \
955         lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
956         lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
957         lib/uuid/Makefile lib/uuid/uuid_types.h \
958         lib/blkid/Makefile lib/blkid/blkid_types.h \
959         lib/ss/ss.pc lib/uuid/uuid.pc lib/et/com_err.pc \
960         lib/e2p/e2p.pc lib/blkid/blkid.pc lib/ext2fs/ext2fs.pc \
961         misc/Makefile ext2ed/Makefile e2fsck/Makefile \
962         debugfs/Makefile tests/Makefile tests/progs/Makefile \
963         resize/Makefile doc/Makefile intl/Makefile po/Makefile.in ; do
964         if test -d `dirname ${srcdir}/$i` ; then
965                 outlist="$outlist $i"
966         fi
967 done
968 AC_OUTPUT($outlist)
969 if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
970