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