configure.ac revision 62bc243f1bfe623312a350e4cd0d2e17a69aac45
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 net/if_dl.h 924 netinet/in.h 925 sys/acl.h 926 sys/disklabel.h 927 sys/disk.h 928 sys/file.h 929 sys/ioctl.h 930 sys/key.h 931 sys/mkdev.h 932 sys/mman.h 933 sys/mount.h 934 sys/prctl.h 935 sys/resource.h 936 sys/select.h 937 sys/socket.h 938 sys/sockio.h 939 sys/stat.h 940 sys/syscall.h 941 sys/sysctl.h 942 sys/sysmacros.h 943 sys/time.h 944 sys/types.h 945 sys/un.h 946 sys/wait.h 947])) 948AC_CHECK_HEADERS(net/if.h,,, 949[[ 950#if HAVE_SYS_TYPES_H 951#include <sys/types.h> 952#endif 953#if HAVE_SYS_SOCKET 954#include <sys/socket.h> 955#endif 956]]) 957AC_FUNC_VPRINTF 958dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen 959dnl is not decleared. 960AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, 961 [Define to 1 if dirent has d_reclen])],, 962 [#include <dirent.h>]) 963AC_CHECK_MEMBERS([struct stat.st_atim]) 964dnl Check to see if ssize_t was declared 965AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1, 966 [Define to 1 if ssize_t declared])],, 967 [#include <sys/types.h>]) 968dnl 969dnl Check to see if llseek() is declared in unistd.h. On some libc's 970dnl it is, and on others it isn't..... Thank you glibc developers.... 971dnl 972AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, 973 [Define to 1 if llseek declared in unistd.h])],, 974 [#include <unistd.h>]) 975dnl 976dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files 977dnl are so convoluted that I can't tell whether it will always be defined, 978dnl and if it isn't defined while lseek64 is defined in the library, 979dnl disaster will strike. 980dnl 981dnl Warning! Use of --enable-gcc-wall may throw off this test. 982dnl 983dnl 984AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, 985 [Define to 1 if lseek64 declared in unistd.h])],, 986 [#define _LARGEFILE_SOURCE 987 #define _LARGEFILE64_SOURCE 988 #include <unistd.h>]) 989dnl 990dnl Word sizes... 991dnl 992AC_CHECK_SIZEOF(short) 993AC_CHECK_SIZEOF(int) 994AC_CHECK_SIZEOF(long) 995AC_CHECK_SIZEOF(long long) 996AC_CHECK_SIZEOF(off_t) 997AC_CHECK_SIZEOF(time_t) 998SIZEOF_SHORT=$ac_cv_sizeof_short 999SIZEOF_INT=$ac_cv_sizeof_int 1000SIZEOF_LONG=$ac_cv_sizeof_long 1001SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long 1002SIZEOF_OFF_T=$ac_cv_sizeof_off_t 1003SIZEOF_TIME_T=$ac_cv_sizeof_time_t 1004AC_SUBST(SIZEOF_SHORT) 1005AC_SUBST(SIZEOF_INT) 1006AC_SUBST(SIZEOF_LONG) 1007AC_SUBST(SIZEOF_LONG_LONG) 1008AC_SUBST(SIZEOF_OFF_T) 1009AC_SUBST(SIZEOF_TIME_T) 1010AC_C_BIGENDIAN 1011if test $cross_compiling = no; then 1012 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1013else 1014 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1015fi 1016ASM_TYPES_HEADER=./asm_types.h 1017AC_SUBST_FILE(ASM_TYPES_HEADER) 1018dnl 1019dnl Save the configuration #defines needed for the public ext2fs.h 1020dnl header file 1021dnl 1022echo "/* These defines are needed for the public ext2fs.h header file */" \ 1023 > public_config.h 1024if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then 1025 uniq tmp_config.$$ >> public_config.h 1026else 1027 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h 1028fi 1029if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then 1030 uniq tmp_config.$$ >> public_config.h 1031else 1032 echo "#undef WORDS_BIGENDIAN" >> public_config.h 1033fi 1034rm -f tmp_config.$$ 1035PUBLIC_CONFIG_HEADER=./public_config.h 1036AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) 1037dnl 1038dnl See if we have inttypes.h and if intptr_t is defined 1039dnl 1040AC_CHECK_HEADERS([inttypes.h]) 1041AC_CHECK_TYPES(intptr_t) 1042dnl 1043dnl See if struct stat has a st_flags field, in which case we can get file 1044dnl flags somewhat portably. Also check for the analogous setter, chflags(). 1045dnl 1046AC_MSG_CHECKING(whether struct stat has a st_flags field) 1047AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, 1048 AC_TRY_COMPILE([#include <sys/stat.h>], 1049 [struct stat stat; stat.st_flags = 0;], 1050 [e2fsprogs_cv_struct_st_flags=yes], 1051 [e2fsprogs_cv_struct_st_flags=no])) 1052AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) 1053if test "$e2fsprogs_cv_struct_st_flags" = yes; then 1054 AC_MSG_CHECKING(whether st_flags field is useful) 1055 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, 1056 AC_TRY_COMPILE([#include <sys/stat.h>], 1057 [struct stat stat; stat.st_flags |= UF_IMMUTABLE;], 1058 [e2fsprogs_cv_struct_st_flags_immut=yes], 1059 [e2fsprogs_cv_struct_st_flags_immut=no])) 1060 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut) 1061 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then 1062 AC_DEFINE(HAVE_STAT_FLAGS, 1, 1063 [Define to 1 if struct stat has st_flags]) 1064 fi 1065fi 1066dnl 1067dnl Check for the presence of SA_LEN 1068dnl 1069AC_CHECK_MEMBER(struct sockaddr.sa_len, 1070 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1, 1071 [Define to 1 if if struct sockaddr contains sa_len]),, 1072 [#include <sys/types.h> 1073 #include <sys/socket.h>]) 1074dnl 1075dnl This will add -lblkid to the AC_CHECK_FUNCS search if we are using 1076dnl the system-provided blkid library 1077dnl 1078if test -n "$BLKID_CMT"; then 1079 AC_SEARCH_LIBS([blkid_probe_all], [blkid]) 1080fi 1081dnl 1082if test -n "$DLOPEN_LIB" ; then 1083 ac_cv_func_dlopen=yes 1084fi 1085AC_CHECK_FUNCS(m4_flatten([ 1086 __secure_getenv 1087 add_key 1088 backtrace 1089 blkid_probe_get_topology 1090 blkid_probe_enable_partitions 1091 chflags 1092 dlopen 1093 fadvise64 1094 fallocate 1095 fallocate64 1096 fchown 1097 fdatasync 1098 fstat64 1099 ftruncate64 1100 futimes 1101 getcwd 1102 getdtablesize 1103 getmntinfo 1104 getpwuid_r 1105 getrlimit 1106 getrusage 1107 jrand48 1108 keyctl 1109 llistxattr 1110 llseek 1111 lseek64 1112 mallinfo 1113 mbstowcs 1114 memalign 1115 mempcpy 1116 mmap 1117 msync 1118 nanosleep 1119 open64 1120 pathconf 1121 posix_fadvise 1122 posix_fadvise64 1123 posix_memalign 1124 prctl 1125 pread 1126 pwrite 1127 pread64 1128 pwrite64 1129 secure_getenv 1130 setmntent 1131 setresgid 1132 setresuid 1133 snprintf 1134 srandom 1135 stpcpy 1136 strcasecmp 1137 strdup 1138 strnlen 1139 strptime 1140 strtoull 1141 sync_file_range 1142 sysconf 1143 usleep 1144 utime 1145 utimes 1146 valloc 1147])) 1148dnl 1149dnl Check to see if -lsocket is required (solaris) to make something 1150dnl that uses socket() to compile; this is needed for the UUID library 1151dnl 1152SOCKET_LIB='' 1153AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) 1154AC_SUBST(SOCKET_LIB) 1155dnl 1156dnl See if libmagic exists 1157dnl 1158AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic 1159AC_CHECK_HEADERS([magic.h])]) 1160if test "$ac_cv_func_dlopen" = yes ; then 1161 MAGIC_LIB=$DLOPEN_LIB 1162fi 1163AC_SUBST(MAGIC_LIB) 1164dnl 1165dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) 1166dnl 1167AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) 1168AC_SUBST(CLOCK_GETTIME_LIB) 1169dnl 1170dnl Check to see if the FUSE library is -lfuse or -losxfuse 1171dnl 1172FUSE_CMT= 1173FUSE_LIB= 1174dnl osxfuse.dylib supersedes fuselib.dylib 1175AC_ARG_ENABLE([fuse2fs], 1176[ --disable-fuse2fs do not build fuse2fs], 1177if test "$enableval" = "no" 1178then 1179 FUSE_CMT="#" 1180 AC_MSG_RESULT([Disabling fuse2fs]) 1181else 1182 AC_CHECK_HEADERS([pthread.h fuse.h], [], 1183[AC_MSG_FAILURE([Cannot find fuse2fs headers.])], 1184[#define _FILE_OFFSET_BITS 64 1185#define FUSE_USE_VERSION 29]) 1186 1187 AC_PREPROC_IFELSE( 1188[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29 1189#ifdef __linux__ 1190#include <linux/fs.h> 1191#include <linux/falloc.h> 1192#include <linux/xattr.h> 1193#endif 1194]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])]) 1195 1196 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1197 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], 1198 [AC_MSG_FAILURE([Cannot find fuse library.])])]) 1199 AC_MSG_RESULT([Enabling fuse2fs]) 1200fi 1201, 1202AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"], 1203[#define _FILE_OFFSET_BITS 64 1204#define FUSE_USE_VERSION 29 1205#ifdef __linux__ 1206# include <linux/fs.h> 1207# include <linux/falloc.h> 1208# include <linux/xattr.h> 1209#endif]) 1210if test -z "$FUSE_CMT" 1211then 1212 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1213[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])]) 1214fi 1215if test -z "$FUSE_CMT" 1216then 1217 AC_MSG_RESULT([Enabling fuse2fs by default.]) 1218fi 1219) 1220AC_SUBST(FUSE_LIB) 1221AC_SUBST(FUSE_CMT) 1222dnl 1223dnl See if optreset exists 1224dnl 1225AC_MSG_CHECKING(for optreset) 1226AC_CACHE_VAL(ac_cv_have_optreset, 1227[AC_EGREP_HEADER(optreset, unistd.h, 1228 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl 1229AC_MSG_RESULT($ac_cv_have_optreset) 1230if test $ac_cv_have_optreset = yes; then 1231 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present]) 1232fi 1233dnl 1234dnl Test for sem_init, and which library it might require: 1235dnl 1236AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists]) 1237SEM_INIT_LIB='' 1238AC_CHECK_FUNC(sem_init, , 1239 AC_CHECK_LIB(pthread, sem_init, 1240 AC_DEFINE(HAVE_SEM_INIT, 1) 1241 SEM_INIT_LIB=-lpthread, 1242 AC_CHECK_LIB(rt, sem_init, 1243 AC_DEFINE(HAVE_SEM_INIT, 1) 1244 SEM_INIT_LIB=-lrt, 1245 AC_CHECK_LIB(posix4, sem_init, 1246 AC_DEFINE(HAVE_SEM_INIT, 1) 1247 SEM_INIT_LIB=-lposix4))))dnl 1248AC_SUBST(SEM_INIT_LIB) 1249dnl 1250dnl Check for unified diff 1251dnl 1252AC_MSG_CHECKING(for unified diff option) 1253if diff -u $0 $0 > /dev/null 2>&1 ; then 1254 UNI_DIFF_OPTS=-u 1255else 1256 UNI_DIFF_OPTS=-c 1257fi 1258AC_MSG_RESULT($UNI_DIFF_OPTS) 1259AC_SUBST(UNI_DIFF_OPTS) 1260dnl 1261dnl We use the EXT2 ioctls only under Linux 1262dnl 1263case "$host_os" in 1264linux*) 1265 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present]) 1266 ;; 1267esac 1268dnl 1269dnl OS-specific uncomment control 1270dnl 1271LINUX_CMT="#" 1272CYGWIN_CMT="#" 1273UNIX_CMT= 1274case "$host_os" in 1275linux*) 1276 LINUX_CMT= 1277 ;; 1278cygwin) 1279 CYGWIN_CMT= 1280 UNIX_CMT="#" 1281 ;; 1282esac 1283AC_SUBST(LINUX_CMT) 1284AC_SUBST(CYGWIN_CMT) 1285AC_SUBST(UNIX_CMT) 1286dnl 1287dnl Linux and Hurd places root files in the / by default 1288dnl 1289case "$host_os" in 1290linux* | gnu* | k*bsd*-gnu) 1291 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then 1292 root_prefix=""; 1293 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) 1294 fi 1295 ;; 1296esac 1297dnl 1298dnl On Linux/hurd, force the prefix to be /usr 1299dnl 1300case "$host_os" in 1301linux* | gnu* | k*bsd*-gnu) 1302 if test "$prefix" = NONE ; then 1303 prefix="/usr"; 1304 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) 1305 if test "$mandir" = '${prefix}/man' ; then 1306 AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) 1307 mandir=/usr/share/man 1308 fi 1309 fi 1310;; 1311esac 1312if test "$root_prefix" = NONE ; then 1313 if test "$prefix" = NONE ; then 1314 root_prefix="$ac_default_prefix" 1315 else 1316 root_prefix="$prefix" 1317 fi 1318 root_bindir=$bindir 1319 root_sbindir=$sbindir 1320 root_libdir=$libdir 1321 root_sysconfdir=$sysconfdir 1322else 1323 root_bindir='${root_prefix}/bin' 1324 root_sbindir='${root_prefix}/sbin' 1325 root_libdir='${root_prefix}/lib' 1326 root_sysconfdir='${root_prefix}/etc' 1327fi 1328if test "$bindir" != '${exec_prefix}/bin'; then 1329 root_bindir=$bindir 1330 AC_MSG_RESULT([Setting root_bindir to $root_bindir]) 1331fi 1332if test "$sbindir" != '${exec_prefix}/sbin'; then 1333 root_sbindir=$sbindir 1334 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) 1335fi 1336if test "$libdir" != '${exec_prefix}/lib'; then 1337 root_libdir=$libdir 1338 AC_MSG_RESULT([Setting root_libdir to $root_libdir]) 1339fi 1340if test "$sysconfdir" != '${prefix}/etc'; then 1341 root_sysconfdir=$sysconfdir 1342 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) 1343fi 1344AC_SUBST(root_prefix) 1345AC_SUBST(root_bindir) 1346AC_SUBST(root_sbindir) 1347AC_SUBST(root_libdir) 1348AC_SUBST(root_sysconfdir) 1349dnl 1350dnl Allow specification of the multiarch arch 1351dnl 1352AC_ARG_WITH([multiarch], 1353[ --with-multiarch=ARCH specify the multiarch triplet], 1354if test "$withval" = "lib64"; then 1355 libdir=/usr/lib64 1356 root_libdir=/lib64 1357else 1358 libdir=$libdir/$withval 1359 root_libdir=$root_libdir/$withval 1360fi 1361)dnl 1362dnl 1363dnl See if -static works. This could fail if the linker does not 1364dnl support -static, or if required external libraries are not available 1365dnl in static form. 1366dnl 1367AC_MSG_CHECKING([whether we can link with -static]) 1368AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, 1369[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" 1370AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);], 1371 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no) 1372LDFLAGS=$SAVE_LDFLAGS]) 1373dnl 1374dnl Regardless of how the test turns out, Solaris doesn't handle -static 1375dnl This is caused by the socket library requiring the nsl library, which 1376dnl requires the -dl library, which only works for dynamically linked 1377dnl programs. It basically means you can't have statically linked programs 1378dnl which use the network under Solaris. 1379dnl 1380case "$host_os" in 1381solaris2.*) 1382 ac_cv_e2fsprogs_use_static=no 1383;; 1384esac 1385AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) 1386if test $ac_cv_e2fsprogs_use_static = yes; then 1387 LDFLAGS_STATIC="$LDFLAGS_STATIC -static" 1388fi 1389AC_SUBST(LDFLAGS_STATIC) 1390dnl 1391dnl Work around mysterious Darwin / GNU libintl problem 1392dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like 1393dnl Apple hacked gcc somehow?) 1394dnl 1395case "$host_os" in 1396darwin*) 1397 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) 1398 AC_DEFINE(_INTL_REDIRECT_MACROS, 1, 1399 [Define to 1 if Apple Darwin libintl workaround is needed]) 1400 ;; 1401esac 1402dnl 1403dnl Make the ss and et directories work correctly. 1404dnl 1405SS_DIR=`cd ${srcdir}/lib/ss; pwd` 1406ET_DIR=`cd ${srcdir}/lib/et; pwd` 1407AC_SUBST(SS_DIR) 1408AC_SUBST(ET_DIR) 1409dnl 1410dnl Only try to run the test suite if we're not cross compiling. 1411dnl 1412if test "$cross_compiling" = yes ; then 1413 DO_TEST_SUITE= 1414else 1415 DO_TEST_SUITE=check 1416fi 1417AC_SUBST(DO_TEST_SUITE) 1418dnl 1419dnl Only include the intl include files if we're building with them 1420dnl 1421INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib' 1422if test -n "$CPPFLAGS" ; then 1423 INCLUDES="$INCLUDES $CPPFLAGS" 1424fi 1425if test "$USE_INCLUDED_LIBINTL" = "yes" ; then 1426 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' 1427fi 1428if test -n "$WITH_DIET_LIBC" ; then 1429 INCLUDES="$INCLUDES -D_REENTRANT" 1430fi 1431AC_SUBST(INCLUDES) 1432AM_MKINSTALLDIRS 1433dnl 1434dnl Build CFLAGS 1435dnl 1436if test $cross_compiling = no; then 1437 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" 1438 BUILD_LDFLAGS="$LDFLAGS" 1439fi 1440AC_SUBST(BUILD_CFLAGS) 1441AC_SUBST(BUILD_LDFLAGS) 1442dnl 1443dnl Define CFLAGS and LDFLAGS for shared libraries 1444dnl 1445CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} 1446CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} 1447LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} 1448AC_SUBST(CFLAGS_SHLIB) 1449AC_SUBST(CFLAGS_STLIB) 1450AC_SUBST(LDFLAGS_SHLIB) 1451dnl 1452dnl Make our output files, being sure that we create the some miscellaneous 1453dnl directories 1454dnl 1455test -d lib || mkdir lib 1456test -d include || mkdir include 1457test -d include/linux || mkdir include/linux 1458test -d include/asm || mkdir include/asm 1459if test -z "$UUID_CMT" ; then 1460 uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ 1461 lib/uuid/uuid_types.h" 1462fi 1463if test -z "$BLKID_CMT" ; then 1464 blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ 1465 lib/blkid/blkid_types.h" 1466fi 1467for i in MCONFIG Makefile e2fsprogs.spec \ 1468 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ 1469 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \ 1470 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \ 1471 $uuid_out_list $blkid_out_list lib/support/Makefile \ 1472 lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ 1473 misc/Makefile ext2ed/Makefile e2fsck/Makefile \ 1474 debugfs/Makefile tests/Makefile tests/progs/Makefile \ 1475 resize/Makefile doc/Makefile intl/Makefile \ 1476 intl/libgnuintl.h po/Makefile.in ; do 1477 if test -d `dirname ${srcdir}/$i` ; then 1478 outlist="$outlist $i" 1479 fi 1480done 1481AC_OUTPUT($outlist) 1482if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi 1483