OSDN Git Service

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