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 958 959