1AC_INIT(version.h) 2AC_PREREQ(2.54) 3AC_CONFIG_AUX_DIR(config) 4AC_CONFIG_HEADERS([lib/config.h]) 5AH_BOTTOM([#include <dirpaths.h>]) 6MCONFIG=./MCONFIG 7AC_SUBST_FILE(MCONFIG) 8BINARY_TYPE=bin 9dnl 10dnl This is to figure out the version number and the date.... 11dnl 12E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ 13 | awk '{print $3}' | tr \" " " | awk '{print $1}'` 14DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ 15 | tr \" " "` 16E2FSPROGS_DAY=$(echo $DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/') 17MONTH=`echo $DATE | awk -F- '{print $2}'` 18YEAR=`echo $DATE | awk -F- '{print $3}'` 19 20if expr $YEAR ">" 1900 > /dev/null ; then 21 E2FSPROGS_YEAR=$YEAR 22elif expr $YEAR ">" 90 >/dev/null ; then 23 E2FSPROGS_YEAR=19$YEAR 24else 25 E2FSPROGS_YEAR=20$YEAR 26fi 27 28case $MONTH in 29Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;; 30Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;; 31Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;; 32Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;; 33May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;; 34Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;; 35Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;; 36Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;; 37Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; 38Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; 39Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; 40Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; 41*) AC_MSG_WARN([Unknown month $MONTH??]) ;; 42esac 43 44base_ver=`echo $E2FSPROGS_VERSION | \ 45 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` 46 47date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} 48 49case $E2FSPROGS_VERSION in 50*-WIP|pre-*) 51 E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" 52 ;; 53*) 54 E2FSPROGS_PKGVER="$base_ver" 55 ;; 56esac 57 58unset DATE MONTH YEAR base_ver pre_vers date_spec 59AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) 60AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) 61AC_SUBST(E2FSPROGS_YEAR) 62AC_SUBST(E2FSPROGS_MONTH) 63AC_SUBST(E2FSPROGS_DAY) 64AC_SUBST(E2FSPROGS_VERSION) 65AC_SUBST(E2FSPROGS_PKGVER) 66dnl 67dnl Use diet libc 68dnl 69WITH_DIET_LIBC= 70AC_ARG_WITH([diet-libc], 71[ --with-diet-libc use diet libc], 72CC="diet cc -nostdinc" 73WITH_DIET_LIBC=yes 74if test -z "$LIBS" 75then 76 LIBS="-lcompat" 77else 78 LIBS="$LIBS -lcompat" 79fi 80AC_MSG_RESULT(CC=$CC))dnl 81dnl 82AC_CANONICAL_HOST 83dnl 84dnl Check to see if libdl exists for the sake of dlopen 85dnl 86DLOPEN_LIB='' 87AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl) 88AC_SUBST(DLOPEN_LIB) 89dnl 90AC_ARG_WITH([cc], 91AC_HELP_STRING([--with-cc],[no longer supported, use CC= instead]), 92AC_MSG_ERROR([--with-cc no longer supported; use CC= instead])) 93dnl 94AC_ARG_WITH([ccopts], 95AC_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]), 96AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead])) 97dnl 98AC_ARG_WITH([ldopts], 99AC_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]), 100AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead])) 101dnl 102AC_PROG_CC 103if test "$GCC" = yes; then 104 RDYNAMIC="-rdynamic" 105 AC_SUBST(RDYNAMIC) 106fi 107AC_PROG_CPP 108dnl 109dnl Alpha computers use fast and imprecise floating point code that may 110dnl miss exceptions by default. Force sane options if we're using GCC. 111AC_MSG_CHECKING(for additional special compiler flags) 112if test "$GCC" = yes 113then 114 case "$host_cpu" in 115 alpha) addcflags="-mieee" ;; 116 esac 117fi 118if test "x$addcflags" != x 119then 120 AC_MSG_RESULT($addcflags) 121 CFLAGS="$addcflags $CFLAGS" 122else 123 AC_MSG_RESULT([[(none)]]) 124fi 125AC_USE_SYSTEM_EXTENSIONS 126dnl 127dnl Set default values for library extentions. Will be dealt with after 128dnl parsing configuration opions, which may modify these 129dnl 130LIB_EXT=.a 131STATIC_LIB_EXT=.a 132PROFILED_LIB_EXT=.a 133dnl 134dnl Allow separate `root_prefix' to be specified 135dnl 136AC_ARG_WITH([root-prefix], 137[ --with-root-prefix=PREFIX override prefix variable for files to be placed in the root], 138root_prefix=$withval, 139root_prefix=NONE)dnl 140dnl 141dnl handle --enable-maintainer-mode 142dnl 143AC_ARG_ENABLE([maintainer-mode], 144[ --enable-maintainer-mode enable makefile rules useful for maintainers], 145if test "$enableval" = "no" 146then 147 MAINTAINER_CMT=# 148 AC_MSG_RESULT([Disabling maintainer mode]) 149else 150 MAINTAINER_CMT= 151 AC_MSG_RESULT([Enabling maintainer mode]) 152fi 153, 154MAINTAINER_CMT=# 155AC_MSG_RESULT([Disabling maintainer mode by default]) 156) 157AC_SUBST(MAINTAINER_CMT) 158dnl 159dnl handle --enable-symlink-install 160dnl 161AC_ARG_ENABLE([symlink-install], 162[ --enable-symlink-install use symlinks when installing instead of hard links], 163if test "$enableval" = "no" 164then 165 LINK_INSTALL_FLAGS=-f 166 AC_MSG_RESULT([Disabling symlinks for install]) 167else 168 LINK_INSTALL_FLAGS=-sf 169 AC_MSG_RESULT([Enabling symlinks for install]) 170fi 171, 172LINK_INSTALL_FLAGS=-f 173AC_MSG_RESULT([Disabling symlinks for install by default]) 174) 175AC_SUBST(LINK_INSTALL_FLAGS) 176dnl 177dnl handle --enable-relative-symlinks 178dnl 179relative_symlink_defined= 180AC_ARG_ENABLE([relative-symlinks], 181[ --enable-relative-symlinks use relative symlinks when installing], 182if test "$enableval" = "no" 183then 184 SYMLINK_RELATIVE= 185 relative_symlink_defined=yes 186 AC_MSG_RESULT([Disabling relative symlinks for install]) 187else 188 SYMLINK_RELATIVE=--relative 189 relative_symlink_defined=yes 190 AC_MSG_RESULT([Enabling relative symlinks for install]) 191fi) 192AC_ARG_ENABLE([symlink-relative-symlinks],, 193if test "$enableval" = "no" 194then 195 SYMLINK_RELATIVE=yes 196 AC_MSG_RESULT([Disabling relative symlinks for install]) 197else 198 SYMLINK_RELATIVE=--relative 199 AC_MSG_RESULT([Enabling relative symlinks for install]) 200fi 201, 202if test -z "$relative_symlink_defined" 203then 204 SYMLINK_RELATIVE= 205AC_MSG_RESULT([Disabling relative symlinks for install by default]) 206fi 207) 208AC_SUBST(SYMLINK_RELATIVE) 209dnl 210dnl handle --enable-symlink-build 211dnl 212AC_ARG_ENABLE([symlink-build], 213[ --enable-symlink-build use symlinks while building instead of hard links], 214if test "$enableval" = "no" 215then 216 LINK_BUILD_FLAGS= 217 AC_MSG_RESULT([Disabling symlinks for build]) 218else 219 LINK_BUILD_FLAGS=-s 220 AC_MSG_RESULT([Enabling symlinks for build]) 221fi 222, 223LINK_BUILD_FLAGS= 224AC_MSG_RESULT([Disabling symlinks for build by default]) 225) 226AC_SUBST(LINK_BUILD_FLAGS) 227dnl 228dnl handle --enable-verbose-makecmds 229dnl 230AC_ARG_ENABLE([verbose-makecmds], 231[ --enable-verbose-makecmds enable verbose make command output], 232if test "$enableval" = "no" 233then 234 AC_MSG_RESULT([Disabling verbose make commands]) 235 E=@echo 236 ES=echo 237 Q=@ 238else 239 AC_MSG_RESULT([Enabling verbose make commands]) 240 E=@\\# 241 ES=\\# 242 Q= 243fi 244, 245AC_MSG_RESULT([Disabling verbose make commands]) 246E=@echo 247ES=echo 248Q=@ 249) 250AC_SUBST(E) 251AC_SUBST(ES) 252AC_SUBST(Q) 253dnl 254dnl This needs to be before all of the --enable-*-shlibs options 255dnl 256E2_PKG_CONFIG_STATIC=--static 257LDFLAG_DYNAMIC= 258PRIVATE_LIBS_CMT= 259dnl 260dnl handle --enable-elf-shlibs 261dnl 262AC_ARG_ENABLE([elf-shlibs], 263[ --enable-elf-shlibs select ELF shared libraries], 264if test "$enableval" = "no" 265then 266 ELF_CMT=# 267 MAKEFILE_ELF=/dev/null 268 AC_MSG_RESULT([Disabling ELF shared libraries]) 269else 270 E2_PKG_CONFIG_STATIC= 271 ELF_CMT= 272 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib 273 [case "$host_os" in 274 solaris2.*) 275 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib 276 ;; 277 esac] 278 BINARY_TYPE=elfbin 279 LIB_EXT=.so 280 PRIVATE_LIBS_CMT=# 281 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib'] 282 AC_MSG_RESULT([Enabling ELF shared libraries]) 283fi 284, 285MAKEFILE_ELF=/dev/null 286ELF_CMT=# 287AC_MSG_RESULT([Disabling ELF shared libraries by default]) 288) 289AC_SUBST(ELF_CMT) 290AC_SUBST_FILE(MAKEFILE_ELF) 291dnl 292dnl handle --enable-bsd-shlibs 293dnl 294AC_ARG_ENABLE([bsd-shlibs], 295[ --enable-bsd-shlibs select BSD shared libraries], 296if test "$enableval" = "no" 297then 298 BSDLIB_CMT=# 299 MAKEFILE_BSDLIB=/dev/null 300 AC_MSG_RESULT([Disabling BSD shared libraries]) 301else 302 E2_PKG_CONFIG_STATIC= 303 BSDLIB_CMT= 304 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib 305 LIB_EXT=.so 306 [case "$host_os" in 307 darwin*) 308 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib 309 LIB_EXT=.dylib 310 ;; 311 esac] 312 AC_MSG_RESULT([Enabling BSD shared libraries]) 313fi 314, 315MAKEFILE_BSDLIB=/dev/null 316BSDLIB_CMT=# 317AC_MSG_RESULT([Disabling BSD shared libraries by default]) 318) 319AC_SUBST(BSDLIB_CMT) 320AC_SUBST_FILE(MAKEFILE_BSDLIB) 321dnl 322dnl handle --enable-profile 323dnl 324AC_ARG_ENABLE([profile], 325[ --enable-profile build profiling libraries], 326if test "$enableval" = "no" 327then 328 PROFILE_CMT=# 329 MAKEFILE_PROFILE=/dev/null 330 AC_MSG_RESULT([Disabling profiling libraries]) 331else 332 PROFILE_CMT= 333 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile 334 PROFILED_LIB_EXT=_p.a 335 AC_MSG_RESULT([Building profiling libraries]) 336fi 337, 338PROFILE_CMT=# 339MAKEFILE_PROFILE=/dev/null 340AC_MSG_RESULT([Disabling profiling libraries by default]) 341) 342AC_SUBST(PROFILE_CMT) 343AC_SUBST_FILE(MAKEFILE_PROFILE) 344dnl 345dnl handle --enable-gcov 346dnl 347AC_ARG_ENABLE([gcov], 348[ --enable-gcov build for coverage testing using gcov], 349if test "$enableval" = "yes" 350then 351 CFLAGS="-g -fprofile-arcs -ftest-coverage" 352 LDFLAGS="-fprofile-arcs -ftest-coverage" 353 AC_MSG_RESULT([Enabling gcov support]) 354fi 355) 356dnl 357dnl handle --enable-hardening 358dnl 359CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" 360CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" 361LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} 362LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} 363AC_ARG_ENABLE([hardening], 364[ --enable-hardening build for coverage testing using gcov], 365if test "$enableval" = "yes" 366then 367 HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" 368 HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"] 369 CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" 370 CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" 371 CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" 372 LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" 373 LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" 374 LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" 375 AC_MSG_RESULT([Enabling hardening support]) 376fi 377) 378dnl 379dnl Substitute library extensions 380dnl 381AC_SUBST(LIB_EXT) 382AC_SUBST(STATIC_LIB_EXT) 383AC_SUBST(PROFILED_LIB_EXT) 384AC_SUBST(LDFLAG_DYNAMIC) 385AC_SUBST(PRIVATE_LIBS_CMT) 386dnl 387dnl handle --enable-jbd-debug 388dnl 389AC_ARG_ENABLE([jbd-debug], 390[ --enable-jbd-debug enable journal debugging], 391if test "$enableval" = "no" 392then 393 AC_MSG_RESULT([Disabling journal debugging]) 394else 395 AC_DEFINE(CONFIG_JBD_DEBUG, 1, 396 [Define to 1 if debugging ext3/4 journal code]) 397 AC_MSG_RESULT([Enabling journal debugging]) 398fi 399, 400AC_MSG_RESULT([Disabling journal debugging by default]) 401) 402dnl 403dnl handle --enable-blkid-debug 404dnl 405AC_ARG_ENABLE([blkid-debug], 406[ --enable-blkid-debug enable blkid debugging], 407if test "$enableval" = "no" 408then 409 AC_MSG_RESULT([Disabling blkid debugging]) 410else 411 AC_DEFINE(CONFIG_BLKID_DEBUG, 1, 412 [Define to 1 if debugging the blkid library]) 413 AC_MSG_RESULT([Enabling blkid debugging]) 414fi 415, 416AC_MSG_RESULT([Disabling blkid debugging by default]) 417) 418dnl 419dnl handle --enable-testio-debug 420dnl 421AC_ARG_ENABLE([testio-debug], 422[ --disable-testio-debug disable the use of the test I/O manager for debugging], 423AH_TEMPLATE([CONFIG_TESTIO_DEBUG], 424 [Define to 1 if the testio I/O manager should be enabled]) 425if test "$enableval" = "no" 426then 427 AC_MSG_RESULT([Disabling testio debugging]) 428 TEST_IO_CMT="#" 429else 430 TEST_IO_CMT= 431 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) 432 AC_MSG_RESULT([Enabling testio debugging]) 433fi 434, 435AC_MSG_RESULT([Enabling testio debugging by default]) 436AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) 437TEST_IO_CMT= 438) 439AC_SUBST(TEST_IO_CMT) 440dnl 441dnl handle --disable-libuuid 442dnl 443PKG_PROG_PKG_CONFIG 444LIBUUID= 445DEPLIBUUID= 446STATIC_LIBUUID= 447DEPSTATIC_LIBUUID= 448PROFILED_LIBUUID= 449DEPPROFILED_LIBUUID= 450UUID_CMT= 451AC_ARG_ENABLE([libuuid], 452[ --enable-libuuid build and use private uuid library], 453if test "$enableval" = "no" 454then 455 if test -z "$PKG_CONFIG"; then 456 AC_MSG_ERROR([pkg-config not installed; please install it.]) 457 fi 458 459 AC_CHECK_LIB(uuid, uuid_generate, 460 [LIBUUID=`$PKG_CONFIG --libs uuid`; 461 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`], 462 [AC_MSG_ERROR([external uuid library not found])]) 463 PROFILED_LIBUUID=$LIBUUID 464 UUID_CMT=# 465 AC_MSG_RESULT([Disabling private uuid library]) 466else 467 LIBUUID='$(LIB)/libuuid'$LIB_EXT 468 DEPLIBUUID=$LIBUUID 469 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT 470 DEPSTATIC_LIBUUID=$STATIC_LIBUUID 471 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT 472 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID 473 AC_MSG_RESULT([Enabling private uuid library]) 474fi 475, 476if test -n "$PKG_CONFIG"; then 477 AC_CHECK_LIB(uuid, uuid_generate, 478 [LIBUUID=`$PKG_CONFIG --libs uuid`; 479 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`]) 480fi 481if test -n "$LIBUUID"; then 482 PROFILED_LIBUUID=$LIBUUID 483 UUID_CMT=# 484 AC_MSG_RESULT([Using system uuid by default]) 485else 486 LIBUUID='$(LIB)/libuuid'$LIB_EXT 487 DEPLIBUUID=$LIBUUID 488 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT 489 DEPSTATIC_LIBUUID=$STATIC_LIBUUID 490 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT 491 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID 492 AC_MSG_RESULT([Enabling private uuid library by default]) 493fi 494) 495AC_SUBST(LIBUUID) 496AC_SUBST(DEPLIBUUID) 497AC_SUBST(STATIC_LIBUUID) 498AC_SUBST(DEPSTATIC_LIBUUID) 499AC_SUBST(PROFILED_LIBUUID) 500AC_SUBST(DEPPROFILED_LIBUUID) 501AC_SUBST(UUID_CMT) 502dnl 503dnl handle --disable-libblkid 504dnl 505PKG_PROG_PKG_CONFIG 506LIBBLKID= 507DEPLIBBLKID= 508STATIC_LIBBLKID= 509DEPSTATIC_LIBBLKID= 510PROFILED_LIBBLKID= 511DEPPROFILED_LIBBLKID= 512BLKID_CMT= 513AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs]) 514AC_ARG_ENABLE([libblkid], 515[ --enable-libblkid build and use private blkid library], 516if test "$enableval" = "no" 517then 518 if test -z "$PKG_CONFIG"; then 519 AC_MSG_ERROR([pkg-config not installed; please install it.]) 520 fi 521 522 AC_CHECK_LIB(blkid, blkid_get_cache, 523 [LIBBLKID=`$PKG_CONFIG --libs blkid`; 524 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`], 525 [AC_MSG_ERROR([external blkid library not found])], -luuid) 526 BLKID_CMT=# 527 PROFILED_LIBBLKID=$LIBBLKID 528 AC_MSG_RESULT([Disabling private blkid library]) 529else 530 LIBBLKID='$(LIB)/libblkid'$LIB_EXT 531 DEPLIBBLKID=$LIBBLKID 532 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT 533 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID 534 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT 535 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID 536 AC_DEFINE(CONFIG_BUILD_FINDFS, 1) 537 AC_MSG_RESULT([Enabling private blkid library]) 538fi 539, 540if test -n "$PKG_CONFIG"; then 541 AC_CHECK_LIB(blkid, blkid_get_cache, 542 [LIBBLKID=`$PKG_CONFIG --libs blkid`; 543 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`]) 544fi 545if test -n "$LIBBLKID"; then 546 BLKID_CMT=# 547 PROFILED_LIBBLKID=$LIBBLKID 548 AC_MSG_RESULT([Using system blkid library by default]) 549else 550 LIBBLKID='$(LIB)/libblkid'$LIB_EXT 551 DEPLIBBLKID=$LIBBLKID 552 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT 553 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID 554 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT 555 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID 556 AC_DEFINE(CONFIG_BUILD_FINDFS, 1) 557 AC_MSG_RESULT([Enabling private blkid library by default]) 558fi 559) 560AC_SUBST(LIBBLKID) 561AC_SUBST(DEPLIBBLKID) 562AC_SUBST(STATIC_LIBBLKID) 563AC_SUBST(DEPSTATIC_LIBBLKID) 564AC_SUBST(PROFILED_LIBBLKID) 565AC_SUBST(DEPPROFILED_LIBBLKID) 566AC_SUBST(BLKID_CMT) 567dnl 568dnl handle --disable-backtrace 569dnl 570AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) 571AC_ARG_ENABLE([backtrace], 572[ --disable-backtrace disable use backtrace], 573if test "$enableval" = "no" 574then 575 AC_MSG_RESULT([Disabling use of backtrace]) 576 AC_DEFINE(DISABLE_BACKTRACE, 1) 577else 578 AC_MSG_RESULT([Enabling use of backtrace]) 579fi 580, 581AC_MSG_RESULT([Enabling use of backtrace by default]) 582) 583dnl 584dnl handle --enable-debugfs 585dnl 586AC_ARG_ENABLE([debugfs], 587[ --disable-debugfs disable support of debugfs program], 588if test "$enableval" = "no" 589then 590 AC_MSG_RESULT([Disabling debugfs support]) 591 DEBUGFS_CMT="#" 592else 593 DEBUGFS_CMT= 594 AC_MSG_RESULT([Enabling debugfs support]) 595fi 596, 597AC_MSG_RESULT([Enabling debugfs support by default]) 598DEBUGFS_CMT= 599) 600AC_SUBST(DEBUGFS_CMT) 601dnl 602dnl handle --enable-imager 603dnl 604AC_ARG_ENABLE([imager], 605[ --disable-imager disable support of e2image program], 606if test "$enableval" = "no" 607then 608 AC_MSG_RESULT([Disabling e2image support]) 609 IMAGER_CMT="#" 610else 611 IMAGER_CMT= 612 AC_MSG_RESULT([Enabling e2image support]) 613fi 614, 615AC_MSG_RESULT([Enabling e2image support by default]) 616IMAGER_CMT= 617) 618AC_SUBST(IMAGER_CMT) 619dnl 620dnl handle --enable-resizer 621dnl 622AC_ARG_ENABLE([resizer], 623[ --disable-resizer disable support of e2resize program], 624if test "$enableval" = "no" 625then 626 AC_MSG_RESULT([Disabling e2resize support]) 627 RESIZER_CMT="#" 628else 629 RESIZER_CMT= 630 AC_MSG_RESULT([Enabling e2resize support]) 631fi 632, 633AC_MSG_RESULT([Enabling e2resize support by default]) 634RESIZER_CMT= 635) 636AC_SUBST(RESIZER_CMT) 637dnl 638dnl handle --enable-defrag 639dnl 640AC_ARG_ENABLE([defrag], 641[ --disable-defrag disable support of e4defrag program], 642if test "$enableval" = "no" 643then 644 AC_MSG_RESULT([Disabling e4defrag support]) 645 DEFRAG_CMT="#" 646else 647 DEFRAG_CMT= 648 AC_MSG_RESULT([Enabling e4defrag support]) 649fi 650, 651if test -z "$WITH_DIET_LIBC" 652then 653 AC_MSG_RESULT([Enabling e4defrag support by default]) 654 DEFRAG_CMT= 655else 656 AC_MSG_RESULT([Disabling e4defrag support by default]) 657 DEFRAG_CMT="#" 658fi 659) 660AC_SUBST(DEFRAG_CMT) 661dnl 662dnl See whether to install the `fsck' wrapper program (that calls e2fsck) 663dnl 664AC_ARG_ENABLE([fsck], 665[ --enable-fsck build fsck wrapper program], 666[if test "$enableval" = "no" 667then 668 FSCK_PROG='' FSCK_MAN='' 669 AC_MSG_RESULT([Not building fsck wrapper]) 670else 671 FSCK_PROG=fsck FSCK_MAN=fsck.8 672 AC_MSG_RESULT([Building fsck wrapper]) 673fi] 674, 675[case "$host_os" in 676 gnu*) 677 FSCK_PROG='' FSCK_MAN='' 678 AC_MSG_RESULT([Not building fsck wrapper by default]) 679 ;; 680 *) 681 FSCK_PROG=fsck FSCK_MAN=fsck.8 682 AC_MSG_RESULT([Building fsck wrapper by default]) 683esac] 684) 685AC_SUBST(FSCK_PROG) 686AC_SUBST(FSCK_MAN) 687dnl 688dnl See whether to install the `e2initrd-helper' program 689dnl 690AC_ARG_ENABLE([e2initrd-helper], 691[ --enable-e2initrd-helper build e2initrd-helper program], 692[if test "$enableval" = "no" 693then 694 E2INITRD_PROG='' E2INITRD_MAN='' 695 AC_MSG_RESULT([Not building e2initrd helper]) 696else 697 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 698 AC_MSG_RESULT([Building e2initrd helper]) 699fi] 700, 701E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 702AC_MSG_RESULT([Building e2initrd helper by default]) 703) 704AC_SUBST(E2INITRD_PROG) 705AC_SUBST(E2INITRD_MAN) 706dnl 707dnl 708dnl 709AC_ARG_ENABLE([tls], 710[ --disable-tls disable use of thread local support], 711[if test "$enableval" = "no" 712then 713 try_tls="" 714 AC_MSG_RESULT([Disabling thread local support]) 715else 716 try_tls="yes" 717 AC_MSG_RESULT([Enabling thread local support]) 718fi] 719, 720if test -n "$WITH_DIET_LIBC" 721then 722 try_tls="" 723 AC_MSG_RESULT([Diet libc does not support thread local support]) 724else 725 try_tls="yes" 726 AC_MSG_RESULT([Try using thread local support by default]) 727fi 728) 729if test "$try_tls" = "yes" 730then 731AX_TLS 732fi 733dnl 734dnl 735dnl 736AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd]) 737AC_ARG_ENABLE([uuidd], 738[ --disable-uuidd disable building the uuid daemon], 739[if test "$enableval" = "no" 740then 741 AC_MSG_RESULT([Not building uuidd]) 742 UUIDD_CMT="#" 743else 744 AC_DEFINE(USE_UUIDD, 1) 745 UUIDD_CMT="" 746 AC_MSG_RESULT([Building uuidd]) 747fi] 748, 749AC_DEFINE(USE_UUIDD, 1) 750if test -z "$UUID_CMT" 751then 752 UUIDD_CMT="" 753 AC_MSG_RESULT([Building uuidd by default]) 754else 755 UUIDD_CMT="#" 756 AC_MSG_RESULT([Disabling uuidd by default]) 757fi 758) 759AC_SUBST(UUIDD_CMT) 760dnl 761dnl handle --disable-mmp 762dnl 763AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support]) 764AC_ARG_ENABLE([mmp], 765[ --disable-mmp disable support mmp, Multi Mount Protection], 766if test "$enableval" = "no" 767then 768 AC_MSG_RESULT([Disabling mmp support]) 769else 770 AC_MSG_RESULT([Enabling mmp support]) 771 AC_DEFINE(CONFIG_MMP, 1) 772fi 773, 774AC_MSG_RESULT([Enabling mmp support by default]) 775AC_DEFINE(CONFIG_MMP, 1) 776) 777dnl 778dnl handle --disable-tdb 779dnl 780AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support]) 781AC_ARG_ENABLE([tdb], 782[ --disable-tdb disable tdb support], 783if test "$enableval" = "no" 784then 785 AC_MSG_RESULT([Disabling tdb support]) 786 TDB_CMT="#" 787 TDB_MAN_COMMENT='.\"' 788else 789 AC_MSG_RESULT([Enabling tdb support]) 790 AC_DEFINE(CONFIG_TDB, 1) 791 TDB_CMT="" 792 TDB_MAN_COMMENT="" 793fi 794, 795AC_MSG_RESULT([Enabling mmp support by default]) 796AC_DEFINE(CONFIG_TDB, 1) 797TDB_CMT="" 798TDB_MAN_COMMENT="" 799) 800AC_SUBST(TDB_CMT) 801AC_SUBST(TDB_MAN_COMMENT) 802dnl 803dnl handle --disable-bmap-stats 804dnl 805AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.]) 806AC_ARG_ENABLE([bmap-stats], 807[ --disable-bmap-stats disable collection of bitmap stats.], 808if test "$enableval" = "no" 809then 810 AC_MSG_RESULT([Disabling bitmap statistics support]) 811else 812 AC_MSG_RESULT([Enabling bitmap statistics support]) 813 AC_DEFINE(ENABLE_BMAP_STATS, 1) 814fi 815, 816AC_MSG_RESULT([Enabling bitmap statistics support by default]) 817AC_DEFINE(ENABLE_BMAP_STATS, 1) 818) 819dnl 820dnl handle --enable-bmap-stats-ops 821dnl 822AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.]) 823AC_ARG_ENABLE([bmap-stats-ops], 824[ --enable-bmap-stats-ops enable collection of additional bitmap stats], 825if test "$enableval" = "no" 826then 827 AC_MSG_RESULT([Disabling additional bitmap statistics]) 828else 829 dnl There has to be a better way! 830 AS_IF([test "x${enable_bmap_stats}" = "xno"], 831 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats])) 832 833 AC_MSG_RESULT([Enabling additional bitmap statistics]) 834 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1) 835fi 836, 837AC_MSG_RESULT([Disabling additional bitmap statistics by default]) 838) 839dnl 840dnl 841dnl 842MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library 843AC_SUBST_FILE(MAKEFILE_LIBRARY) 844dnl 845dnl Add internationalization support, using gettext. 846dnl 847GETTEXT_PACKAGE=e2fsprogs 848PACKAGE=e2fsprogs 849VERSION="$E2FSPROGS_VERSION" 850VERSION=0.14.1 851AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext]) 852AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext]) 853AC_SUBST(GETTEXT_PACKAGE) 854AC_SUBST(PACKAGE) 855AC_SUBST(VERSION) 856 857AM_GNU_GETTEXT 858dnl 859dnl End of configuration options 860dnl 861AC_SUBST(BINARY_TYPE) 862AC_PROG_MAKE_SET 863CHECK_GNU_MAKE 864AC_PATH_PROG(LN, ln, ln) 865AC_PROG_LN_S 866AC_PATH_PROG(MV, mv, mv) 867AC_PATH_PROG(CP, cp, cp) 868AC_PATH_PROG(RM, rm, rm) 869AC_PATH_PROG(CHMOD, chmod, :) 870AC_PROG_AWK 871AC_PROG_EGREP 872AC_PATH_PROG(SED, sed, sed) 873AC_PATH_PROG(PERL, perl, perl) 874AC_PATH_PROG(LDCONFIG, ldconfig, :) 875AC_CHECK_TOOL(AR, ar, ar) 876AC_CHECK_TOOL(RANLIB, ranlib, :) 877AC_CHECK_TOOL(STRIP, strip, :) 878AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) 879if test "_$MAKEINFO" = "_"; then 880 MAKEINFO="@echo Makeinfo is missing. Info documentation will not be built.;true" 881else 882 case "$MAKEINFO" in 883 */missing.*) 884 AC_MSG_WARN([ 885*** Makeinfo is missing. Info documentation will not be built.]) 886 ;; 887 *) 888 ;; 889 esac 890fi 891AC_SUBST(MAKEINFO) 892AC_PROG_INSTALL 893# See if we need a separate native compiler. 894if test $cross_compiling = no; then 895 BUILD_CC="$CC" 896 AC_SUBST(BUILD_CC) 897else 898 AC_CHECK_PROGS(BUILD_CC, gcc cc) 899fi 900AC_CHECK_HEADERS(m4_flatten([ 901 dirent.h 902 errno.h 903 execinfo.h 904 getopt.h 905 malloc.h 906 mntent.h 907 paths.h 908 semaphore.h 909 setjmp.h 910 signal.h 911 stdarg.h 912 stdint.h 913 stdlib.h 914 termios.h 915 termio.h 916 unistd.h 917 utime.h 918 attr/xattr.h 919 linux/falloc.h 920 linux/fd.h 921 linux/major.h 922 linux/loop.h 923 linux/types.h 924 net/if_dl.h 925 netinet/in.h 926 sys/acl.h 927 sys/disklabel.h 928 sys/disk.h 929 sys/file.h 930 sys/ioctl.h 931 sys/key.h 932 sys/mkdev.h 933 sys/mman.h 934 sys/mount.h 935 sys/prctl.h 936 sys/resource.h 937 sys/select.h 938 sys/socket.h 939 sys/sockio.h 940 sys/stat.h 941 sys/syscall.h 942 sys/sysctl.h 943 sys/sysmacros.h 944 sys/time.h 945 sys/types.h 946 sys/un.h 947 sys/wait.h 948])) 949AC_CHECK_HEADERS(net/if.h,,, 950[[ 951#if HAVE_SYS_TYPES_H 952#include <sys/types.h> 953#endif 954#if HAVE_SYS_SOCKET 955#include <sys/socket.h> 956#endif 957]]) 958AC_FUNC_VPRINTF 959dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen 960dnl is not decleared. 961AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, 962 [Define to 1 if dirent has d_reclen])],, 963 [#include <dirent.h>]) 964AC_CHECK_MEMBERS([struct stat.st_atim]) 965dnl Check to see if ssize_t was declared 966AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1, 967 [Define to 1 if ssize_t declared])],, 968 [#include <sys/types.h>]) 969dnl 970dnl Check to see if llseek() is declared in unistd.h. On some libc's 971dnl it is, and on others it isn't..... Thank you glibc developers.... 972dnl 973AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, 974 [Define to 1 if llseek declared in unistd.h])],, 975 [#include <unistd.h>]) 976dnl 977dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files 978dnl are so convoluted that I can't tell whether it will always be defined, 979dnl and if it isn't defined while lseek64 is defined in the library, 980dnl disaster will strike. 981dnl 982dnl Warning! Use of --enable-gcc-wall may throw off this test. 983dnl 984dnl 985AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, 986 [Define to 1 if lseek64 declared in unistd.h])],, 987 [#define _LARGEFILE_SOURCE 988 #define _LARGEFILE64_SOURCE 989 #include <unistd.h>]) 990dnl 991dnl Word sizes... 992dnl 993AC_CHECK_SIZEOF(short) 994AC_CHECK_SIZEOF(int) 995AC_CHECK_SIZEOF(long) 996AC_CHECK_SIZEOF(long long) 997AC_CHECK_SIZEOF(off_t) 998AC_CHECK_SIZEOF(time_t) 999SIZEOF_SHORT=$ac_cv_sizeof_short 1000SIZEOF_INT=$ac_cv_sizeof_int 1001SIZEOF_LONG=$ac_cv_sizeof_long 1002SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long 1003SIZEOF_OFF_T=$ac_cv_sizeof_off_t 1004SIZEOF_TIME_T=$ac_cv_sizeof_time_t 1005AC_SUBST(SIZEOF_SHORT) 1006AC_SUBST(SIZEOF_INT) 1007AC_SUBST(SIZEOF_LONG) 1008AC_SUBST(SIZEOF_LONG_LONG) 1009AC_SUBST(SIZEOF_OFF_T) 1010AC_SUBST(SIZEOF_TIME_T) 1011AC_C_BIGENDIAN 1012if test $cross_compiling = no; then 1013 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1014else 1015 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1016fi 1017ASM_TYPES_HEADER=./asm_types.h 1018AC_SUBST_FILE(ASM_TYPES_HEADER) 1019dnl 1020dnl Save the configuration #defines needed for the public ext2fs.h 1021dnl header file 1022dnl 1023echo "/* These defines are needed for the public ext2fs.h header file */" \ 1024 > public_config.h 1025if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then 1026 uniq tmp_config.$$ >> public_config.h 1027else 1028 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h 1029fi 1030if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then 1031 uniq tmp_config.$$ >> public_config.h 1032else 1033 echo "#undef WORDS_BIGENDIAN" >> public_config.h 1034fi 1035rm -f tmp_config.$$ 1036PUBLIC_CONFIG_HEADER=./public_config.h 1037AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) 1038dnl 1039dnl See if we have inttypes.h and if intptr_t is defined 1040dnl 1041AC_CHECK_HEADERS([inttypes.h]) 1042AC_CHECK_TYPES(intptr_t) 1043dnl 1044dnl See if struct stat has a st_flags field, in which case we can get file 1045dnl flags somewhat portably. Also check for the analogous setter, chflags(). 1046dnl 1047AC_MSG_CHECKING(whether struct stat has a st_flags field) 1048AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, 1049 AC_TRY_COMPILE([#include <sys/stat.h>], 1050 [struct stat stat; stat.st_flags = 0;], 1051 [e2fsprogs_cv_struct_st_flags=yes], 1052 [e2fsprogs_cv_struct_st_flags=no])) 1053AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) 1054if test "$e2fsprogs_cv_struct_st_flags" = yes; then 1055 AC_MSG_CHECKING(whether st_flags field is useful) 1056 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, 1057 AC_TRY_COMPILE([#include <sys/stat.h>], 1058 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;], 1059 [e2fsprogs_cv_struct_st_flags_immut=yes], 1060 [e2fsprogs_cv_struct_st_flags_immut=no])) 1061 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut) 1062 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then 1063 AC_DEFINE(HAVE_STAT_FLAGS, 1, 1064 [Define to 1 if struct stat has st_flags]) 1065 fi 1066fi 1067dnl 1068dnl Check for the presence of SA_LEN 1069dnl 1070AC_CHECK_MEMBER(struct sockaddr.sa_len, 1071 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1, 1072 [Define to 1 if if struct sockaddr contains sa_len]),, 1073 [#include <sys/types.h> 1074 #include <sys/socket.h>]) 1075dnl 1076dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using 1077dnl the system-provided blkid library 1078dnl 1079if test -n "$BLKID_CMT"; then 1080 AC_SEARCH_LIBS([blkid_probe_all], [blkid]) 1081fi 1082dnl 1083if test -n "$DLOPEN_LIB" ; then 1084 ac_cv_func_dlopen=yes 1085fi 1086AC_CHECK_FUNCS(m4_flatten([ 1087 __secure_getenv 1088 add_key 1089 backtrace 1090 blkid_probe_get_topology 1091 blkid_probe_enable_partitions 1092 chflags 1093 dlopen 1094 fadvise64 1095 fallocate 1096 fallocate64 1097 fchown 1098 fcntl 1099 fdatasync 1100 fstat64 1101 fsync 1102 ftruncate64 1103 futimes 1104 getcwd 1105 getdtablesize 1106 getmntinfo 1107 getpwuid_r 1108 getrlimit 1109 getrusage 1110 jrand48 1111 keyctl 1112 llistxattr 1113 llseek 1114 lseek64 1115 mallinfo 1116 mbstowcs 1117 memalign 1118 mempcpy 1119 mmap 1120 msync 1121 nanosleep 1122 open64 1123 pathconf 1124 posix_fadvise 1125 posix_fadvise64 1126 posix_memalign 1127 prctl 1128 pread 1129 pwrite 1130 pread64 1131 pwrite64 1132 secure_getenv 1133 setmntent 1134 setresgid 1135 setresuid 1136 snprintf 1137 srandom 1138 stpcpy 1139 strcasecmp 1140 strdup 1141 strnlen 1142 strptime 1143 strtoull 1144 sync_file_range 1145 sysconf 1146 usleep 1147 utime 1148 utimes 1149 valloc 1150])) 1151dnl 1152dnl Check to see if -lsocket is required (solaris) to make something 1153dnl that uses socket() to compile; this is needed for the UUID library 1154dnl 1155SOCKET_LIB='' 1156AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) 1157AC_SUBST(SOCKET_LIB) 1158dnl 1159dnl See if libmagic exists 1160dnl 1161AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic 1162AC_CHECK_HEADERS([magic.h])]) 1163if test "$ac_cv_func_dlopen" = yes ; then 1164 MAGIC_LIB=$DLOPEN_LIB 1165fi 1166AC_SUBST(MAGIC_LIB) 1167dnl 1168dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) 1169dnl 1170AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) 1171AC_SUBST(CLOCK_GETTIME_LIB) 1172dnl 1173dnl Check to see if the FUSE library is -lfuse or -losxfuse 1174dnl 1175FUSE_CMT= 1176FUSE_LIB= 1177dnl osxfuse.dylib supersedes fuselib.dylib 1178AC_ARG_ENABLE([fuse2fs], 1179[ --disable-fuse2fs do not build fuse2fs], 1180if test "$enableval" = "no" 1181then 1182 FUSE_CMT="#" 1183 AC_MSG_RESULT([Disabling fuse2fs]) 1184else 1185 AC_CHECK_HEADERS([pthread.h fuse.h], [], 1186[AC_MSG_FAILURE([Cannot find fuse2fs headers.])], 1187[#define _FILE_OFFSET_BITS 64 1188#define FUSE_USE_VERSION 29]) 1189 1190 AC_PREPROC_IFELSE( 1191[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29 1192#ifdef __linux__ 1193#include <linux/fs.h> 1194#include <linux/falloc.h> 1195#include <linux/xattr.h> 1196#endif 1197]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])]) 1198 1199 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1200 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], 1201 [AC_MSG_FAILURE([Cannot find fuse library.])])]) 1202 AC_MSG_RESULT([Enabling fuse2fs]) 1203fi 1204, 1205AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"], 1206[#define _FILE_OFFSET_BITS 64 1207#define FUSE_USE_VERSION 29 1208#ifdef __linux__ 1209# include <linux/fs.h> 1210# include <linux/falloc.h> 1211# include <linux/xattr.h> 1212#endif]) 1213if test -z "$FUSE_CMT" 1214then 1215 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1216[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])]) 1217fi 1218if test -z "$FUSE_CMT" 1219then 1220 AC_MSG_RESULT([Enabling fuse2fs by default.]) 1221fi 1222) 1223AC_SUBST(FUSE_LIB) 1224AC_SUBST(FUSE_CMT) 1225dnl 1226dnl See if optreset exists 1227dnl 1228AC_MSG_CHECKING(for optreset) 1229AC_CACHE_VAL(ac_cv_have_optreset, 1230[AC_EGREP_HEADER(optreset, unistd.h, 1231 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl 1232AC_MSG_RESULT($ac_cv_have_optreset) 1233if test $ac_cv_have_optreset = yes; then 1234 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present]) 1235fi 1236dnl 1237dnl Test for sem_init, and which library it might require: 1238dnl 1239AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists]) 1240SEM_INIT_LIB='' 1241AC_CHECK_FUNC(sem_init, , 1242 AC_CHECK_LIB(pthread, sem_init, 1243 AC_DEFINE(HAVE_SEM_INIT, 1) 1244 SEM_INIT_LIB=-lpthread, 1245 AC_CHECK_LIB(rt, sem_init, 1246 AC_DEFINE(HAVE_SEM_INIT, 1) 1247 SEM_INIT_LIB=-lrt, 1248 AC_CHECK_LIB(posix4, sem_init, 1249 AC_DEFINE(HAVE_SEM_INIT, 1) 1250 SEM_INIT_LIB=-lposix4))))dnl 1251AC_SUBST(SEM_INIT_LIB) 1252dnl 1253dnl Check for unified diff 1254dnl 1255AC_MSG_CHECKING(for unified diff option) 1256if diff -u $0 $0 > /dev/null 2>&1 ; then 1257 UNI_DIFF_OPTS=-u 1258else 1259 UNI_DIFF_OPTS=-c 1260fi 1261AC_MSG_RESULT($UNI_DIFF_OPTS) 1262AC_SUBST(UNI_DIFF_OPTS) 1263dnl 1264dnl We use the EXT2 ioctls only under Linux 1265dnl 1266case "$host_os" in 1267linux*) 1268 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present]) 1269 ;; 1270esac 1271dnl 1272dnl OS-specific uncomment control 1273dnl 1274LINUX_CMT="#" 1275CYGWIN_CMT="#" 1276UNIX_CMT= 1277case "$host_os" in 1278linux*) 1279 LINUX_CMT= 1280 ;; 1281cygwin) 1282 CYGWIN_CMT= 1283 UNIX_CMT="#" 1284 ;; 1285esac 1286AC_SUBST(LINUX_CMT) 1287AC_SUBST(CYGWIN_CMT) 1288AC_SUBST(UNIX_CMT) 1289dnl 1290dnl Linux and Hurd places root files in the / by default 1291dnl 1292case "$host_os" in 1293linux* | gnu* | k*bsd*-gnu) 1294 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then 1295 root_prefix=""; 1296 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) 1297 fi 1298 ;; 1299esac 1300dnl 1301dnl On Linux/hurd, force the prefix to be /usr 1302dnl 1303case "$host_os" in 1304linux* | gnu* | k*bsd*-gnu) 1305 if test "$prefix" = NONE ; then 1306 prefix="/usr"; 1307 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) 1308 if test "$mandir" = '${prefix}/man' ; then 1309 AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) 1310 mandir=/usr/share/man 1311 fi 1312 fi 1313;; 1314esac 1315if test "$root_prefix" = NONE ; then 1316 if test "$prefix" = NONE ; then 1317 root_prefix="$ac_default_prefix" 1318 else 1319 root_prefix="$prefix" 1320 fi 1321 root_bindir=$bindir 1322 root_sbindir=$sbindir 1323 root_libdir=$libdir 1324 root_sysconfdir=$sysconfdir 1325else 1326 root_bindir='${root_prefix}/bin' 1327 root_sbindir='${root_prefix}/sbin' 1328 root_libdir='${root_prefix}/lib' 1329 root_sysconfdir='${root_prefix}/etc' 1330fi 1331if test "$bindir" != '${exec_prefix}/bin'; then 1332 root_bindir=$bindir 1333 AC_MSG_RESULT([Setting root_bindir to $root_bindir]) 1334fi 1335if test "$sbindir" != '${exec_prefix}/sbin'; then 1336 root_sbindir=$sbindir 1337 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) 1338fi 1339if test "$libdir" != '${exec_prefix}/lib'; then 1340 root_libdir=$libdir 1341 AC_MSG_RESULT([Setting root_libdir to $root_libdir]) 1342fi 1343if test "$sysconfdir" != '${prefix}/etc'; then 1344 root_sysconfdir=$sysconfdir 1345 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) 1346fi 1347AC_SUBST(root_prefix) 1348AC_SUBST(root_bindir) 1349AC_SUBST(root_sbindir) 1350AC_SUBST(root_libdir) 1351AC_SUBST(root_sysconfdir) 1352dnl 1353dnl Allow specification of the multiarch arch 1354dnl 1355AC_ARG_WITH([multiarch], 1356[ --with-multiarch=ARCH specify the multiarch triplet], 1357if test "$withval" = "lib64"; then 1358 libdir=/usr/lib64 1359 root_libdir=/lib64 1360else 1361 libdir=$libdir/$withval 1362 root_libdir=$root_libdir/$withval 1363fi 1364)dnl 1365dnl 1366dnl See if -static works. This could fail if the linker does not 1367dnl support -static, or if required external libraries are not available 1368dnl in static form. 1369dnl 1370AC_MSG_CHECKING([whether we can link with -static]) 1371AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, 1372[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" 1373AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);], 1374 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no) 1375LDFLAGS=$SAVE_LDFLAGS]) 1376dnl 1377dnl Regardless of how the test turns out, Solaris doesn't handle -static 1378dnl This is caused by the socket library requiring the nsl library, which 1379dnl requires the -dl library, which only works for dynamically linked 1380dnl programs. It basically means you can't have statically linked programs 1381dnl which use the network under Solaris. 1382dnl 1383case "$host_os" in 1384solaris2.*) 1385 ac_cv_e2fsprogs_use_static=no 1386;; 1387esac 1388AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) 1389if test $ac_cv_e2fsprogs_use_static = yes; then 1390 LDFLAGS_STATIC="$LDFLAGS_STATIC -static" 1391fi 1392AC_SUBST(LDFLAGS_STATIC) 1393dnl 1394dnl Work around mysterious Darwin / GNU libintl problem 1395dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like 1396dnl Apple hacked gcc somehow?) 1397dnl 1398case "$host_os" in 1399darwin*) 1400 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) 1401 AC_DEFINE(_INTL_REDIRECT_MACROS, 1, 1402 [Define to 1 if Apple Darwin libintl workaround is needed]) 1403 ;; 1404esac 1405dnl 1406dnl Only try to run the test suite if we're not cross compiling. 1407dnl 1408if test "$cross_compiling" = yes ; then 1409 DO_TEST_SUITE= 1410else 1411 DO_TEST_SUITE=check 1412fi 1413AC_SUBST(DO_TEST_SUITE) 1414dnl 1415dnl Only include the intl include files if we're building with them 1416dnl 1417INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib' 1418if test -n "$CPPFLAGS" ; then 1419 INCLUDES="$INCLUDES $CPPFLAGS" 1420fi 1421if test "$USE_INCLUDED_LIBINTL" = "yes" ; then 1422 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' 1423fi 1424if test -n "$WITH_DIET_LIBC" ; then 1425 INCLUDES="$INCLUDES -D_REENTRANT" 1426fi 1427AC_SUBST(INCLUDES) 1428AM_MKINSTALLDIRS 1429dnl 1430dnl Build CFLAGS 1431dnl 1432if test $cross_compiling = no; then 1433 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" 1434 BUILD_LDFLAGS="$LDFLAGS" 1435fi 1436AC_SUBST(BUILD_CFLAGS) 1437AC_SUBST(BUILD_LDFLAGS) 1438dnl 1439dnl Define CFLAGS and LDFLAGS for shared libraries 1440dnl 1441CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} 1442CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} 1443LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} 1444AC_SUBST(CFLAGS_SHLIB) 1445AC_SUBST(CFLAGS_STLIB) 1446AC_SUBST(LDFLAGS_SHLIB) 1447dnl 1448dnl Make our output files, being sure that we create the some miscellaneous 1449dnl directories 1450dnl 1451test -d lib || mkdir lib 1452test -d include || mkdir include 1453test -d include/linux || mkdir include/linux 1454test -d include/asm || mkdir include/asm 1455if test -z "$UUID_CMT" ; then 1456 uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ 1457 lib/uuid/uuid_types.h" 1458fi 1459if test -z "$BLKID_CMT" ; then 1460 blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ 1461 lib/blkid/blkid_types.h" 1462fi 1463for i in MCONFIG Makefile e2fsprogs.spec \ 1464 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ 1465 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \ 1466 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \ 1467 $uuid_out_list $blkid_out_list lib/support/Makefile \ 1468 lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ 1469 misc/Makefile ext2ed/Makefile e2fsck/Makefile \ 1470 debugfs/Makefile tests/Makefile tests/progs/Makefile \ 1471 resize/Makefile doc/Makefile intl/Makefile \ 1472 intl/libgnuintl.h po/Makefile.in ; do 1473 if test -d `dirname ${srcdir}/$i` ; then 1474 outlist="$outlist $i" 1475 fi 1476done 1477AC_OUTPUT($outlist) 1478if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi 1479