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