]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blame - configure.in
Clean up fsck handling, and fix bug which caused fs_shrink and
[thirdparty/e2fsprogs.git] / configure.in
CommitLineData
50e1e10f 1AC_INIT(version.h)
a4b2d3ce 2AC_PREREQ(2.12)
50e1e10f
TT
3MCONFIG=./MCONFIG
4AC_SUBST_FILE(MCONFIG)
74becf3c
TT
5BINARY_TYPE=bin
6dnl
7dnl This is to figure out the version number and the date....
8dnl
9E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
10 | awk '{print $3}' | tr \" " " | awk '{print $1}'`
11DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
12 | tr \" " "`
13MONTH=`echo $DATE | awk -F- '{print $2}'`
14YEAR=`echo $DATE | awk -F- '{print $3}'`
15
40fa8cc9
TT
16if expr $YEAR ">" 1900 > /dev/null ; then
17 E2FSPROGS_YEAR=$YEAR
18elif expr $YEAR ">" 90 >/dev/null ; then
74becf3c
TT
19 E2FSPROGS_YEAR=19$YEAR
20else
21 E2FSPROGS_YEAR=20$YEAR
22fi
23
24case $MONTH in
25Jan) E2FSPROGS_MONTH="January" ;;
26Feb) E2FSPROGS_MONTH="February" ;;
27Mar) E2FSPROGS_MONTH="March" ;;
28Apr) E2FSPROGS_MONTH="April" ;;
29May) E2FSPROGS_MONTH="May" ;;
30Jun) E2FSPROGS_MONTH="June" ;;
31Jul) E2FSPROGS_MONTH="July" ;;
32Aug) E2FSPROGS_MONTH="August" ;;
33Sep) E2FSPROGS_MONTH="September" ;;
34Oct) E2FSPROGS_MONTH="October" ;;
35Nov) E2FSPROGS_MONTH="November" ;;
36Dec) E2FSPROGS_MONTH="December" ;;
37*) echo "Unknown month $MONTH??" ;;
38esac
39
40unset DATE MONTH YEAR
41echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION"
42echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}"
43AC_SUBST(E2FSPROGS_YEAR)
44AC_SUBST(E2FSPROGS_MONTH)
45AC_SUBST(E2FSPROGS_VERSION)
ea97be5a 46AC_CANONICAL_HOST
74becf3c
TT
47dnl
48dnl set $(CC) from --with-cc=value
49dnl
50AC_ARG_WITH([cc],
51[ --with-cc=COMPILER select compiler to use],
52AC_MSG_RESULT(CC=$withval)
53CC=$withval,
54if test -z "$CC" ; then CC=cc; fi
55[AC_MSG_RESULT(CC defaults to $CC)])dnl
56export CC
57AC_SUBST([CC])
73ae2d4a 58AC_PROG_CC
74becf3c
TT
59dnl
60dnl set $(LD) from --with-linker=value
61dnl
62AC_ARG_WITH([linker],
63[ --with-linker=LINKER select linker to use],
64AC_MSG_RESULT(LD=$withval)
65LD=$withval,
66if test -z "$LD" ; then LD=$CC; fi
67[AC_MSG_RESULT(LD defaults to $LD)])dnl
68export LD
69AC_SUBST([LD])
70dnl
71dnl set $(CCOPTS) from --with-ccopts=value
72dnl
73AC_ARG_WITH([ccopts],
74[ --with-ccopts=CCOPTS select compiler command line options],
75AC_MSG_RESULT(CCOPTS is $withval)
877eb6d9
TT
76CFLAGS=$withval,
77)dnl
74becf3c 78dnl
f8bd9807
TT
79dnl On systems without linux header files, we add an extra include directory
80dnl that holds enough to fake it (hopefully). Note that the $(top_srcdir) here
81dnl is quoted so that it gets expanded by make, not by configure.
82dnl
83AC_CHECK_HEADER(linux/fs.h, [linux_headers=yes], [linux_headers=no])
73ae2d4a
TT
84if test "$linux_headers" != yes; then
85 LINUX_INCLUDE='-I$(top_builddir)/include'
f8bd9807
TT
86fi
87AC_SUBST(LINUX_INCLUDE)
88dnl
a4d09610
TT
89dnl Set default values for library extentions. Will be dealt with after
90dnl parsing configuration opions, which may modify these
91dnl
92LIB_EXT=.a
93STATIC_LIB_EXT=.a
94PROFILE_LIB_EXT=.a
95dnl
74becf3c
TT
96dnl set $(LDFLAGS) from --with-ldopts=value
97dnl
98AC_ARG_WITH([ldopts],
99[ --with-ldopts=LDOPTS select linker command line options],
100AC_MSG_RESULT(LDFLAGS is $withval)
101LDFLAGS=$withval,
102LDFLAGS=)dnl
103AC_SUBST(LDFLAGS)
50e1e10f 104dnl
a4b2d3ce 105dnl Allow separate `root_prefix' to be specified
fc6d9d51 106dnl
a4b2d3ce
TT
107AC_ARG_WITH([root-prefix],
108[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root],
109root_prefix=$withval,
110root_prefix=NONE)dnl
fc6d9d51 111dnl
1917875f
TT
112dnl handle --enable-compression
113dnl
114AC_ARG_ENABLE([compression],
115[ --enable-compression enable EXPERIMENTAL compression support],
116if test "$enableval" = "no"
117then
118 echo "Disabling compression support"
119else
120 AC_DEFINE(ENABLE_COMPRESSION)
121 echo "Enabling compression support"
122 echo "WARNING: Compression support is experimental"
123fi
124,
125echo "Disabling compression support by default"
126)
127dnl
8fdc9985
TT
128dnl handle --enable-htree
129dnl
130AC_ARG_ENABLE([htree],
131[ --enable-htree enable EXPERIMENTAL htree directory support],
132if test "$enableval" = "no"
133then
134 HTREE_CMT=#
135 echo "Disabling htree directory support"
136else
137 HTREE_CMT=
138 AC_DEFINE(ENABLE_HTREE)
139 echo "Enabling htree directory support"
140 echo "WARNING: htree support is experimental"
141fi
142,
143HTREE_CMT=#
144echo "Disabling htree directory support by default"
145)
146AC_SUBST(HTREE_CMT)
147dnl
148dnl handle --enable-clear-htree
149dnl
150AC_ARG_ENABLE([htree-clear],
151[ --enable-htree-clear clear htree because we don't trust e2fsck],
152if test "$enableval" = "no"
153then
154 HTREE_CLR_CMT=#
155 echo "Disabling htree clearing"
156else
157 HTREE_CLR_CMT=
158 AC_DEFINE(ENABLE_HTREE_CLEAR)
159 echo "Enabling htree clearing"
160fi
161,
162HTREE_CLR_CMT=#
163echo "Disabling htree clearing by default"
164)
165AC_SUBST(HTREE_CLR_CMT)
166dnl
ff6dbcca
TT
167dnl handle --enable-old-evms
168dnl
169AC_ARG_ENABLE([old-evms],
170[ --enable-old-evms use EVMS 1.0 ABI (instead of EVMS 1.1)],
171if test "$enableval" = "no"
172then
173 echo "Using EVMS 1.1.0 ABI"
174else
175 AC_DEFINE(ABI_EVMS_1_0)
176 echo "Enabling EVMS 1.0.0 ABI"
177fi
178,
179echo "Using EVMS 1.1.0 ABI by default"
180)
181dnl
50e1e10f
TT
182dnl handle --enable-dll-shlibs
183dnl
184AC_ARG_ENABLE([dll-shlibs],
a4d09610 185[ --enable-dll-shlibs select DLL libraries],
50e1e10f
TT
186if test "$enableval" = "no"
187then
188 DLL_CMT=#
189 MAKEFILE_DLL=/dev/null
190 echo "Disabling DLL shared libraries"
191else
192 DLL_CMT=
193 MAKEFILE_DLL=$srcdir/lib/Makefile.dll-lib
74becf3c 194 BINARY_TYPE=dllbin
a4d09610 195 LIB_EXT=.sa
50e1e10f
TT
196 echo "Enabling DLL shared libraries"
197fi
198,
199MAKEFILE_DLL=/dev/null
200DLL_CMT=#
201echo "Disabling DLL shared libraries by default"
202)
203AC_SUBST(DLL_CMT)
204AC_SUBST_FILE(MAKEFILE_DLL)
205dnl
206dnl handle --enable-elf-shlibs
207dnl
208AC_ARG_ENABLE([elf-shlibs],
a4d09610 209[ --enable-elf-shlibs select ELF shared libraries],
50e1e10f
TT
210if test "$enableval" = "no"
211then
212 ELF_CMT=#
213 MAKEFILE_ELF=/dev/null
214 echo "Disabling ELF shared libraries"
215else
216 ELF_CMT=
217 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
f5955dda
TT
218 [case "$host_os" in
219 solaris2.*)
220 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
221 ;;
222 esac]
74becf3c 223 BINARY_TYPE=elfbin
a4d09610 224 LIB_EXT=.so
50e1e10f
TT
225 echo "Enabling ELF shared libraries"
226fi
227,
228MAKEFILE_ELF=/dev/null
229ELF_CMT=#
230echo "Disabling ELF shared libraries by default"
231)
232AC_SUBST(ELF_CMT)
233AC_SUBST_FILE(MAKEFILE_ELF)
234dnl
235dnl handle --enable-bsd-shlibs
236dnl
237AC_ARG_ENABLE([bsd-shlibs],
a4d09610 238[ --enable-bsd-shlibs select BSD shared libraries],
50e1e10f
TT
239if test "$enableval" = "no"
240then
241 BSDLIB_CMT=#
242 MAKEFILE_BSDLIB=/dev/null
243 echo "Disabling BSD shared libraries"
244else
245 BSDLIB_CMT=
246 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
a4d09610 247 LIB_EXT=.so
50e1e10f
TT
248 echo "Enabling BSD shared libraries"
249fi
250,
251MAKEFILE_BSDLIB=/dev/null
252BSDLIB_CMT=#
253echo "Disabling BSD shared libraries by default"
254)
255AC_SUBST(BSDLIB_CMT)
256AC_SUBST_FILE(MAKEFILE_BSDLIB)
257dnl
258dnl handle --enable-profile
259dnl
260AC_ARG_ENABLE([profile],
a4d09610 261[ --enable-profile build profiling libraries],
50e1e10f
TT
262if test "$enableval" = "no"
263then
264 PROFILE_CMT=#
265 MAKEFILE_PROFILE=/dev/null
266 echo "Disabling profiling libraries"
267else
268 PROFILE_CMT=
269 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
a4d09610 270 PROFILED_LIB_EXT=_p.a
50e1e10f
TT
271 echo "Building profiling libraries"
272fi
273,
274PROFILE_CMT=#
275MAKEFILE_PROFILE=/dev/null
276echo "Disabling profiling libraries by default"
277)
278AC_SUBST(PROFILE_CMT)
279AC_SUBST_FILE(MAKEFILE_PROFILE)
280dnl
281dnl handle --enable-checker
282dnl
283AC_ARG_ENABLE([checker],
a4d09610 284[ --enable-checker build checker libraries],
50e1e10f
TT
285if test "$enableval" = "no"
286then
287 CHECKER_CMT=#
288 MAKEFILE_CHECKER=/dev/null
289 echo "Disabling checker libraries"
290else
291 CHECKER_CMT=
292 MAKEFILE_CHECKER=$srcdir/lib/Makefile.checker
293 echo "Building checker libraries"
294fi
295,
296CHECKER_CMT=#
297MAKEFILE_CHECKER=/dev/null
298echo "Disabling checker libraries by default"
299)
300AC_SUBST(CHECKER_CMT)
301AC_SUBST_FILE(MAKEFILE_CHECKER)
302dnl
a4d09610
TT
303dnl Substitute library extensions
304dnl
305AC_SUBST(LIB_EXT)
306AC_SUBST(STATIC_LIB_EXT)
307AC_SUBST(PROFILED_LIB_EXT)
308dnl
cdf186e4
TT
309dnl handle --enable-jfs-debug
310dnl
311AC_ARG_ENABLE([jfs-debug],
312[ --enable-jfs-debug enable journal debugging],
313if test "$enableval" = "no"
314then
315 echo "Disabling journal debugging"
316else
8cf93332 317 AC_DEFINE(CONFIG_JBD_DEBUG)
cdf186e4
TT
318 echo "Enabling journal debugging"
319fi
320,
321echo "Disabling journal debugging by default"
322)
323dnl
324dnl handle --enable-swapfs
325dnl
326AC_ARG_ENABLE([swapfs],
327[ --disable-swapfs disable support of legacy byte-swapped filesystems],
328if test "$enableval" = "no"
329then
330 echo "Disabling swapfs support"
331else
332 AC_DEFINE(ENABLE_SWAPFS)
333 echo "Enabling swapfs support"
334fi
335,
336echo "Enabling swapfs support by default"
337AC_DEFINE(ENABLE_SWAPFS)
338)
339dnl
340dnl handle --enable-debugfs
341dnl
342AC_ARG_ENABLE([debugfs],
343[ --disable-debugfs disable support of debugfs program],
344if test "$enableval" = "no"
345then
346 echo "Disabling debugfs support"
347 DEBUGFS_CMT="#"
348else
349 DEBUGFS_CMT=
350 echo "Enabling debugfs support"
351fi
352,
353echo "Enabling debugfs support by default"
354DEBUGFS_CMT=
355)
356AC_SUBST(DEBUGFS_CMT)
357dnl
358dnl handle --enable-imager
359dnl
360AC_ARG_ENABLE([imager],
361[ --disable-imager disable support of e2image program],
362if test "$enableval" = "no"
363then
364 echo "Disabling e2image support"
365 IMAGER_CMT="#"
366else
367 IMAGER_CMT=
368 echo "Enabling e2image support"
369fi
370,
371echo "Enabling e2image support by default"
372IMAGER_CMT=
373)
374AC_SUBST(IMAGER_CMT)
375dnl
376dnl handle --enable-resizer
377dnl
378AC_ARG_ENABLE([resizer],
379[ --disable-resizer disable support of e2resize program],
380if test "$enableval" = "no"
381then
382 echo "Disabling e2resize support"
383 RESIZER_CMT="#"
384else
385 RESIZER_CMT=
386 echo "Enabling e2resize support"
387fi
388,
389echo "Enabling e2resize support by default"
390RESIZER_CMT=
391)
392AC_SUBST(RESIZER_CMT)
393dnl
4d0f3e17 394dnl handle --enable-dynamic-e2fsck
50e1e10f 395dnl
a4d09610
TT
396AC_ARG_ENABLE([dynamic-e2fsck],
397[ --enable-dynamic-e2fsck build e2fsck dynamically],
398if test "$enableval" = "no"
399then
400 E2FSCK_TYPE=static
401 echo "Building e2fsck statically"
402else
403 E2FSCK_TYPE=shared
404 echo "Building e2fsck dynamically"
405fi
406,
407E2FSCK_TYPE=static
408echo "Building e2fsck statically by default"
409)
410AC_SUBST(E2FSCK_TYPE)
50e1e10f 411dnl
fc6d9d51
TT
412dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
413dnl
414AC_ARG_ENABLE([fsck],
415[ --enable-fsck build fsck wrapper program],
416[if test "$enableval" = "no"
417then
418 FSCK_PROG='' FSCK_MAN=''
419 echo "Not building fsck wrapper"
420else
421 FSCK_PROG=fsck FSCK_MAN=fsck.8
422 echo "Building fsck wrapper"
423fi]
424,
425[case "$host_os" in
426 gnu*)
427 FSCK_PROG='' FSCK_MAN=''
428 echo "Not building fsck wrapper by default"
429 ;;
430 *)
431 FSCK_PROG=fsck FSCK_MAN=fsck.8
432 echo "Building fsck wrapper by default"
433esac]
434)
435AC_SUBST(FSCK_PROG)
436AC_SUBST(FSCK_MAN)
437dnl
50e1e10f
TT
438dnl
439MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
440AC_SUBST_FILE(MAKEFILE_LIBRARY)
441dnl
fc6d9d51
TT
442dnl
443AC_ARG_ENABLE([old-bitops],
444[ --enable-old-bitops Use old (non-standard but native) bitmask operations],
445if test "$enableval" = "no"
446then
447 echo "Using new (standard) bitmask operations"
448else
449 AC_DEFINE(EXT2_OLD_BITOPS)
450 echo "Using old (native) bitmask operations"
451
452fi
453,
454echo "Using standard bitmask operations by default"
455)
456dnl
cdf186e4
TT
457dnl Add internationalization support, using gettext.
458dnl
459PACKAGE=e2fsprogs
460VERSION="$E2FSPROGS_VERSION"
461AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
462AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
463AC_SUBST(PACKAGE)
464AC_SUBST(VERSION)
465
6e71e67b 466ALL_LINGUAS="it nyc tr"
cdf186e4
TT
467AM_GNU_GETTEXT
468dnl
50e1e10f
TT
469dnl End of configuration options
470dnl
74becf3c 471AC_SUBST(BINARY_TYPE)
50e1e10f
TT
472AC_PROG_MAKE_SET
473AC_PATH_PROG(LN, ln, ln)
fc6d9d51 474AC_PROG_LN_S
50e1e10f
TT
475AC_PATH_PROG(MV, mv, mv)
476AC_PATH_PROG(CP, cp, cp)
477AC_PATH_PROG(RM, rm, rm)
478AC_PATH_PROG(CHMOD, chmod, :)
479AC_PATH_PROG(AWK, awk, awk)
480AC_PATH_PROG(SED, sed, sed)
9d564f73 481AC_PATH_PROG(PERL, perl, perl)
250f79f0 482AC_PATH_PROG(LDCONFIG, ldconfig, :)
50e1e10f
TT
483AC_CHECK_TOOL(AR, ar, ar)
484AC_CHECK_TOOL(RANLIB, ranlib, :)
485AC_CHECK_TOOL(STRIP, strip, :)
50e1e10f 486AC_PROG_INSTALL
6c133523
TT
487# See if we need a separate native compiler.
488if test $cross_compiling = no; then
489 BUILD_CC="$CC"
490 AC_SUBST(BUILD_CC)
491else
492 AC_CHECK_PROGS(BUILD_CC, gcc cc)
493fi
31e29a12 494AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.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/mount.h sys/sockio.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h net/if.h netinet/in.h)
50e1e10f
TT
495AC_FUNC_VPRINTF
496dnl
b0b9c4de
TT
497dnl Check to see if llseek() is declared in unistd.h. On some libc's
498dnl it is, and on others it isn't..... Thank you glibc developers....
499dnl
500dnl Warning! Use of --enable-gcc-wall may throw off this test.
501dnl
502dnl
503AC_MSG_CHECKING(whether llseek declared in unistd.h)
504AC_CACHE_VAL(e2fsprogs_cv_have_llseek_prototype,
505 AC_TRY_COMPILE(
506[#include <unistd.h>], [extern int llseek(int);],
507 [e2fsprogs_cv_have_llseek_prototype=no],
508 [e2fsprogs_cv_have_llseek_prototype=yes]))
509AC_MSG_RESULT($e2fsprogs_cv_have_llseek_prototype)
510if test "$e2fsprogs_cv_have_llseek_prototype" = yes; then
511 AC_DEFINE(HAVE_LLSEEK_PROTOTYPE)
512fi
513dnl
6928adc9
TT
514dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files
515dnl are so convoluted that I can't tell whether it will always be defined,
516dnl and if it isn't defined while lseek64 is defined in the library,
517dnl disaster will strike.
518dnl
519dnl Warning! Use of --enable-gcc-wall may throw off this test.
520dnl
521dnl
522AC_MSG_CHECKING(whether lseek64 declared in unistd.h)
523AC_CACHE_VAL(e2fsprogs_cv_have_lseek64_prototype,
524 AC_TRY_COMPILE(
525[#define _LARGEFILE_SOURCE
526#define _LARGEFILE64_SOURCE
527#include <unistd.h>], [extern int lseek64(int);],
528 [e2fsprogs_cv_have_lseek64_prototype=no],
529 [e2fsprogs_cv_have_lseek64_prototype=yes]))
530AC_MSG_RESULT($e2fsprogs_cv_have_lseek64_prototype)
531if test "$e2fsprogs_cv_have_lseek64_prototype" = yes; then
532 AC_DEFINE(HAVE_LSEEK64_PROTOTYPE)
533fi
534dnl
50e1e10f
TT
535dnl Word sizes...
536dnl
537if test "$cross_compiling" = yes -a "$ac_cv_sizeof_long" = ""; then
538 # if cross-compiling, with no cached values, just assume something common.
539 ac_cv_sizeof_short=2
540 ac_cv_sizeof_int=4
541 ac_cv_sizeof_long=4
6c133523
TT
542 ac_cv_sizeof_long_long=8
543 AC_MSG_WARN([Cross-compiling, so cannot check type sizes; assuming short=2, int=4, long=4, long long=8])
50e1e10f
TT
544fi
545AC_CHECK_SIZEOF(short)
546AC_CHECK_SIZEOF(int)
547AC_CHECK_SIZEOF(long)
fc6d9d51 548AC_CHECK_SIZEOF(long long)
50e1e10f
TT
549SIZEOF_SHORT=$ac_cv_sizeof_short
550SIZEOF_INT=$ac_cv_sizeof_int
551SIZEOF_LONG=$ac_cv_sizeof_long
fc6d9d51 552SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
50e1e10f
TT
553AC_SUBST(SIZEOF_SHORT)
554AC_SUBST(SIZEOF_INT)
555AC_SUBST(SIZEOF_LONG)
fc6d9d51 556AC_SUBST(SIZEOF_LONG_LONG)
877eb6d9 557AC_C_BIGENDIAN
50e1e10f
TT
558dnl
559dnl See if struct stat has a st_flags field, in which case we can get file
560dnl flags somewhat portably. Also check for the analogous setter, chflags().
561dnl
562AC_MSG_CHECKING(whether struct stat has a st_flags field)
563AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
564 AC_TRY_COMPILE([#include <sys/stat.h>],
565 [struct stat stat; stat.st_flags = 0;],
566 [e2fsprogs_cv_struct_st_flags=yes],
567 [e2fsprogs_cv_struct_st_flags=no]))
568AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
569if test "$e2fsprogs_cv_struct_st_flags" = yes; then
c03bc4e8
TT
570 AC_MSG_CHECKING(whether st_flags field is useful)
571 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
572 AC_TRY_COMPILE([#include <sys/stat.h>],
573 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
574 [e2fsprogs_cv_struct_st_flags_immut=yes],
575 [e2fsprogs_cv_struct_st_flags_immut=no]))
576 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
577 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
578 AC_DEFINE(HAVE_STAT_FLAGS)
579 fi
50e1e10f 580fi
593c6ead 581AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 getmntinfo strcasecmp srandom fchown mallinfo fdatasync strnlen sysconf pathconf)
fc6d9d51 582dnl
fc6d9d51
TT
583dnl Check to see if -lsocket is required (solaris) to make something
584dnl that uses socket() to compile; this is needed for the UUID library
585dnl
586SOCKET_LIB=''
587AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
588AC_SUBST(SOCKET_LIB)
589dnl
50e1e10f
TT
590dnl See if optreset exists
591dnl
592AC_MSG_CHECKING(for optreset)
593AC_CACHE_VAL(ac_cv_have_optreset,
594[AC_EGREP_HEADER(optreset, unistd.h,
595 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
596AC_MSG_RESULT($ac_cv_have_optreset)
597if test $ac_cv_have_optreset = yes; then
598 AC_DEFINE(HAVE_OPTRESET)
599fi
600dnl
8f3f29d3
TT
601dnl We use the EXT2 ioctls only under Linux
602dnl
603case "$host_os" in
604linux*)
605 AC_DEFINE(HAVE_EXT2_IOCTLS)
606 ;;
607esac
50e1e10f 608dnl
6c133523 609dnl Linux and Hurd places root files in the / by default
50e1e10f 610dnl
50e1e10f 611case "$host_os" in
6c133523 612linux* | gnu*)
a4b2d3ce
TT
613 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
614 root_prefix="";
615 echo "On $host_os systems, root_prefix defaults to ''"
fc6d9d51
TT
616 fi
617 ;;
618esac
fc6d9d51 619dnl
a4b2d3ce 620dnl On Linux/hurd, force the prefix to be /usr
fc6d9d51
TT
621dnl
622case "$host_os" in
623linux* | gnu*)
624 if test "$prefix" = NONE ; then
a4b2d3ce
TT
625 prefix="/usr";
626 echo "On $host_os systems, prefix defaults to /usr"
bff61a7a
TT
627 if test "$mandir" = '${prefix}/man' ; then
628 echo "...and mandir defaults to /usr/share/man"
629 mandir=/usr/share/man
630 fi
50e1e10f
TT
631 fi
632;;
633esac
a4b2d3ce 634if test "$root_prefix" = NONE ; then
ffe1991f 635 if test "$prefix" = NONE ; then
a4b2d3ce
TT
636 root_prefix="$ac_default_prefix"
637 else
638 root_prefix="$prefix"
639 fi
b5ffeade
TT
640 root_bindir=$bindir
641 root_sbindir=$sbindir
642 root_libdir=$libdir
643 root_sysconfdir=$sysconfdir
644else
645 root_bindir='${root_prefix}/bin'
646 root_sbindir='${root_prefix}/sbin'
647 root_libdir='${root_prefix}/lib'
648 root_sysconfdir='${root_prefix}/etc'
a4b2d3ce
TT
649fi
650AC_SUBST(root_prefix)
b5ffeade
TT
651AC_SUBST(root_bindir)
652AC_SUBST(root_sbindir)
653AC_SUBST(root_libdir)
654AC_SUBST(root_sysconfdir)
50e1e10f
TT
655dnl
656dnl See if -static works.
50e1e10f 657dnl
ae851482
TT
658AC_MSG_CHECKING([whether linker accepts -static])
659AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
660[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS -static"
661AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
662 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
663LDFLAGS=$SAVE_LDFLAGS])
defde784
TT
664dnl
665dnl Regardless of how the test turns out, Solaris doesn't handle -static
666dnl This is caused by the socket library requiring the nsl library, which
667dnl requires the -dl library, which only works for dynamically linked
668dnl programs. It basically means you can't have statically linked programs
669dnl which use the network under Solaris.
670dnl
671case "$host_os" in
672solaris2.*)
673 ac_cv_e2fsprogs_use_static=no
674;;
675esac
ae851482 676AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
74becf3c 677LDFLAG_STATIC=
ae851482 678if test $ac_cv_e2fsprogs_use_static = yes; then
50e1e10f 679 LDFLAG_STATIC=-static
ae851482 680fi
50e1e10f
TT
681AC_SUBST(LDFLAG_STATIC)
682dnl
50e1e10f
TT
683dnl Make the ss and et directories work correctly.
684dnl
685SS_DIR=`cd ${srcdir}/lib/ss; pwd`
686ET_DIR=`cd ${srcdir}/lib/et; pwd`
687AC_SUBST(SS_DIR)
688AC_SUBST(ET_DIR)
689dnl
690dnl Only try to run the test suite if we're not cross compiling.
691dnl
692if test "$cross_compiling" = yes ; then
693 DO_TEST_SUITE=
694else
695 DO_TEST_SUITE=check
696fi
697AC_SUBST(DO_TEST_SUITE)
698dnl
699dnl Make our output files, being sure that we create the some miscellaneous
700dnl directories
701dnl
702test -d lib || mkdir lib
703test -d include || mkdir include
704test -d include/linux || mkdir include/linux
defde784 705test -d include/asm || mkdir include/asm
24b2c7a7
TT
706rmakefile=
707if test -d ${srcdir}/resize ; then
708 rmakefile=resize/Makefile
709fi
44339bdf 710AC_OUTPUT(MCONFIG Makefile util/Makefile util/subst.conf lib/et/Makefile
fc6d9d51 711 lib/ss/Makefile lib/ext2fs/Makefile lib/e2p/Makefile lib/uuid/Makefile
ff6dbcca 712 lib/evms/Makefile
b5ffeade
TT
713 misc/Makefile ext2ed/Makefile e2fsck/Makefile debugfs/Makefile \
714 tests/Makefile tests/progs/Makefile $rmakefile doc/Makefile
a64c9c13 715 intl/Makefile po/Makefile.in)