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