1AC_INIT 2AC_CONFIG_SRCDIR([version.h]) 3AC_PREREQ([2.71]) 4AC_CONFIG_AUX_DIR(config) 5AC_CONFIG_HEADERS([lib/config.h]) 6AH_BOTTOM([#include <dirpaths.h>]) 7AC_USE_SYSTEM_EXTENSIONS 8MCONFIG=./MCONFIG 9AC_SUBST_FILE(MCONFIG) 10BINARY_TYPE=bin 11dnl 12dnl This is to figure out the version number and the date.... 13dnl 14E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \ 15 | awk '{print $3}' | tr \" " " | awk '{print $1}'` 16E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \ 17 | tr \" " " | awk '{print $1}'` 18E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/') 19MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'` 20YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'` 21 22if expr $YEAR ">" 1900 > /dev/null ; then 23 E2FSPROGS_YEAR=$YEAR 24elif expr $YEAR ">" 90 >/dev/null ; then 25 E2FSPROGS_YEAR=19$YEAR 26else 27 E2FSPROGS_YEAR=20$YEAR 28fi 29 30case $MONTH in 31Jan) MONTH_NUM=01; E2FSPROGS_MONTH="January" ;; 32Feb) MONTH_NUM=02; E2FSPROGS_MONTH="February" ;; 33Mar) MONTH_NUM=03; E2FSPROGS_MONTH="March" ;; 34Apr) MONTH_NUM=04; E2FSPROGS_MONTH="April" ;; 35May) MONTH_NUM=05; E2FSPROGS_MONTH="May" ;; 36Jun) MONTH_NUM=06; E2FSPROGS_MONTH="June" ;; 37Jul) MONTH_NUM=07; E2FSPROGS_MONTH="July" ;; 38Aug) MONTH_NUM=08; E2FSPROGS_MONTH="August" ;; 39Sep) MONTH_NUM=09; E2FSPROGS_MONTH="September" ;; 40Oct) MONTH_NUM=10; E2FSPROGS_MONTH="October" ;; 41Nov) MONTH_NUM=11; E2FSPROGS_MONTH="November" ;; 42Dec) MONTH_NUM=12; E2FSPROGS_MONTH="December" ;; 43*) AC_MSG_WARN([Unknown month $MONTH??]) ;; 44esac 45 46base_ver=`echo $E2FSPROGS_VERSION | \ 47 sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'` 48 49date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY} 50 51case $E2FSPROGS_VERSION in 52*-WIP|pre-*) 53 E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec" 54 ;; 55*) 56 E2FSPROGS_PKGVER="$base_ver" 57 ;; 58esac 59 60unset DATE MONTH YEAR base_ver pre_vers date_spec 61AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION]) 62AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}]) 63AC_SUBST(E2FSPROGS_YEAR) 64AC_SUBST(E2FSPROGS_MONTH) 65AC_SUBST(E2FSPROGS_DAY) 66AC_SUBST(E2FSPROGS_VERSION) 67AC_SUBST(E2FSPROGS_PKGVER) 68AC_SUBST(E2FSPROGS_DATE) 69dnl 70dnl Use diet libc 71dnl 72WITH_DIET_LIBC= 73AC_ARG_WITH([diet-libc], 74AS_HELP_STRING([--with-diet-libc],[use diet libc]), 75CC="diet cc -nostdinc" 76WITH_DIET_LIBC=yes 77if test -z "$LIBS" 78then 79 LIBS="-lcompat" 80else 81 LIBS="$LIBS -lcompat" 82fi 83AC_MSG_RESULT(CC=$CC))dnl 84dnl 85AC_CANONICAL_HOST 86dnl 87dnl Check to see if libdl exists for the sake of dlopen 88dnl 89DLOPEN_LIB='' 90AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl) 91AC_SUBST(DLOPEN_LIB) 92dnl 93AC_ARG_WITH([cc], 94AS_HELP_STRING([--with-cc],[no longer supported, use CC= instead]), 95AC_MSG_ERROR([--with-cc no longer supported; use CC= instead])) 96dnl 97AC_ARG_WITH([ccopts], 98AS_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]), 99AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead])) 100dnl 101AC_ARG_WITH([ldopts], 102AS_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]), 103AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead])) 104dnl 105AC_PROG_CC 106if test "$GCC" = yes; then 107 RDYNAMIC="-rdynamic" 108 AC_SUBST(RDYNAMIC) 109fi 110AC_PROG_CPP 111dnl 112dnl Alpha computers use fast and imprecise floating point code that may 113dnl miss exceptions by default. Force sane options if we're using GCC. 114AC_MSG_CHECKING(for additional special compiler flags) 115if test "$GCC" = yes 116then 117 case "$host_cpu" in 118 alpha) addcflags="-mieee" ;; 119 esac 120fi 121if test "x$addcflags" != x 122then 123 AC_MSG_RESULT($addcflags) 124 CFLAGS="$addcflags $CFLAGS" 125else 126 AC_MSG_RESULT([[(none)]]) 127fi 128dnl 129dnl Set default values for library extensions. Will be dealt with after 130dnl parsing configuration options, which may modify these 131dnl 132LIB_EXT=.a 133STATIC_LIB_EXT=.a 134PROFILED_LIB_EXT=.a 135dnl 136dnl Allow separate `root_prefix' to be specified 137dnl 138AC_ARG_WITH([root-prefix], 139AS_HELP_STRING([--with-root-prefix=PREFIX],[override prefix variable for files to be placed in the root]), 140root_prefix=$withval, 141root_prefix=NONE)dnl 142dnl 143dnl handle --enable-maintainer-mode 144dnl 145AC_ARG_ENABLE([maintainer-mode], 146AS_HELP_STRING([--enable-maintainer-mode],[enable makefile rules useful for maintainers]), 147if test "$enableval" = "no" 148then 149 MAINTAINER_CMT=# 150 AC_MSG_RESULT([Disabling maintainer mode]) 151else 152 MAINTAINER_CMT= 153 AC_MSG_RESULT([Enabling maintainer mode]) 154fi 155, 156MAINTAINER_CMT=# 157AC_MSG_RESULT([Disabling maintainer mode by default]) 158) 159AC_SUBST(MAINTAINER_CMT) 160dnl 161dnl handle --enable-symlink-install 162dnl 163AC_ARG_ENABLE([symlink-install], 164AS_HELP_STRING([--enable-symlink-install],[use symlinks when installing instead of hard links]), 165if test "$enableval" = "no" 166then 167 LINK_INSTALL_FLAGS=-f 168 AC_MSG_RESULT([Disabling symlinks for install]) 169else 170 LINK_INSTALL_FLAGS=-sf 171 AC_MSG_RESULT([Enabling symlinks for install]) 172fi 173, 174LINK_INSTALL_FLAGS=-f 175AC_MSG_RESULT([Disabling symlinks for install by default]) 176) 177AC_SUBST(LINK_INSTALL_FLAGS) 178dnl 179dnl handle --enable-relative-symlinks 180dnl 181relative_symlink_defined= 182AC_ARG_ENABLE([relative-symlinks], 183AS_HELP_STRING([--enable-relative-symlinks],[use relative symlinks when installing]), 184if test "$enableval" = "no" 185then 186 SYMLINK_RELATIVE= 187 relative_symlink_defined=yes 188 AC_MSG_RESULT([Disabling relative symlinks for install]) 189else 190 SYMLINK_RELATIVE=--relative 191 relative_symlink_defined=yes 192 AC_MSG_RESULT([Enabling relative symlinks for install]) 193fi) 194AC_ARG_ENABLE([symlink-relative-symlinks],, 195if test "$enableval" = "no" 196then 197 SYMLINK_RELATIVE=yes 198 AC_MSG_RESULT([Disabling relative symlinks for install]) 199else 200 SYMLINK_RELATIVE=--relative 201 AC_MSG_RESULT([Enabling relative symlinks for install]) 202fi 203, 204if test -z "$relative_symlink_defined" 205then 206 SYMLINK_RELATIVE= 207AC_MSG_RESULT([Disabling relative symlinks for install by default]) 208fi 209) 210AC_SUBST(SYMLINK_RELATIVE) 211dnl 212dnl handle --enable-symlink-build 213dnl 214AC_ARG_ENABLE([symlink-build], 215AS_HELP_STRING([--enable-symlink-build],[use symlinks while building instead of hard links]), 216if test "$enableval" = "no" 217then 218 LINK_BUILD_FLAGS= 219 AC_MSG_RESULT([Disabling symlinks for build]) 220else 221 LINK_BUILD_FLAGS=-s 222 AC_MSG_RESULT([Enabling symlinks for build]) 223fi 224, 225LINK_BUILD_FLAGS= 226AC_MSG_RESULT([Disabling symlinks for build by default]) 227) 228AC_SUBST(LINK_BUILD_FLAGS) 229dnl 230dnl handle --enable-verbose-makecmds 231dnl 232AC_ARG_ENABLE([verbose-makecmds], 233AS_HELP_STRING([--enable-verbose-makecmds],[enable verbose make command output]), 234if test "$enableval" = "no" 235then 236 AC_MSG_RESULT([Disabling verbose make commands]) 237 E=@echo 238 ES=echo 239 Q=@ 240else 241 AC_MSG_RESULT([Enabling verbose make commands]) 242 E=@\\# 243 ES=\\# 244 Q= 245fi 246, 247AC_MSG_RESULT([Disabling verbose make commands]) 248E=@echo 249ES=echo 250Q=@ 251) 252AC_SUBST(E) 253AC_SUBST(ES) 254AC_SUBST(Q) 255dnl 256dnl This needs to be before all of the --enable-*-shlibs options 257dnl 258E2_PKG_CONFIG_STATIC=--static 259LDFLAG_DYNAMIC= 260PRIVATE_LIBS_CMT= 261dnl 262dnl handle --enable-elf-shlibs 263dnl 264AC_ARG_ENABLE([elf-shlibs], 265AS_HELP_STRING([--enable-elf-shlibs],[select ELF shared libraries]), 266if test "$enableval" = "no" 267then 268 ELF_CMT=# 269 MAKEFILE_ELF=/dev/null 270 AC_MSG_RESULT([Disabling ELF shared libraries]) 271else 272 E2_PKG_CONFIG_STATIC= 273 ELF_CMT= 274 MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib 275 [case "$host_os" in 276 solaris2.*) 277 MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib 278 ;; 279 esac] 280 BINARY_TYPE=elfbin 281 LIB_EXT=.so 282 PRIVATE_LIBS_CMT=# 283 LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib'] 284 AC_MSG_RESULT([Enabling ELF shared libraries]) 285fi 286, 287MAKEFILE_ELF=/dev/null 288ELF_CMT=# 289AC_MSG_RESULT([Disabling ELF shared libraries by default]) 290) 291AC_SUBST(ELF_CMT) 292AC_SUBST_FILE(MAKEFILE_ELF) 293dnl 294dnl handle --enable-bsd-shlibs 295dnl 296AC_ARG_ENABLE([bsd-shlibs], 297AS_HELP_STRING([--enable-bsd-shlibs],[select BSD shared libraries]), 298if test "$enableval" = "no" 299then 300 BSDLIB_CMT=# 301 MAKEFILE_BSDLIB=/dev/null 302 AC_MSG_RESULT([Disabling BSD shared libraries]) 303else 304 E2_PKG_CONFIG_STATIC= 305 BSDLIB_CMT= 306 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib 307 LIB_EXT=.so 308 [case "$host_os" in 309 darwin*) 310 MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib 311 LIB_EXT=.dylib 312 ;; 313 esac] 314 AC_MSG_RESULT([Enabling BSD shared libraries]) 315fi 316, 317MAKEFILE_BSDLIB=/dev/null 318BSDLIB_CMT=# 319AC_MSG_RESULT([Disabling BSD shared libraries by default]) 320) 321AC_SUBST(BSDLIB_CMT) 322AC_SUBST_FILE(MAKEFILE_BSDLIB) 323dnl 324dnl handle --enable-profile 325dnl 326AC_ARG_ENABLE([profile], 327AS_HELP_STRING([--enable-profile],[build profiling libraries]), 328if test "$enableval" = "no" 329then 330 PROFILE_CMT=# 331 MAKEFILE_PROFILE=/dev/null 332 AC_MSG_RESULT([Disabling profiling libraries]) 333else 334 PROFILE_CMT= 335 MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile 336 PROFILED_LIB_EXT=_p.a 337 AC_MSG_RESULT([Building profiling libraries]) 338fi 339, 340PROFILE_CMT=# 341MAKEFILE_PROFILE=/dev/null 342AC_MSG_RESULT([Disabling profiling libraries by default]) 343) 344AC_SUBST(PROFILE_CMT) 345AC_SUBST_FILE(MAKEFILE_PROFILE) 346dnl 347dnl handle --enable-gcov 348dnl 349AC_ARG_ENABLE([gcov], 350AS_HELP_STRING([--enable-gcov],[build for coverage testing using gcov]), 351if test "$enableval" = "yes" 352then 353 CFLAGS="-g -fprofile-arcs -ftest-coverage" 354 LDFLAGS="-fprofile-arcs -ftest-coverage" 355 AC_MSG_RESULT([Enabling gcov support]) 356fi 357) 358dnl 359dnl handle --enable-hardening 360dnl 361CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}" 362CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}" 363LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} 364LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS} 365AC_ARG_ENABLE([hardening], 366AS_HELP_STRING([--enable-hardening],[build for coverage testing using gcov]), 367if test "$enableval" = "yes" 368then 369 HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong" 370 HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"] 371 CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE" 372 CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS" 373 CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE" 374 LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie" 375 LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS" 376 LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS" 377 AC_MSG_RESULT([Enabling hardening support]) 378fi 379) 380dnl 381dnl Substitute library extensions 382dnl 383AC_SUBST(LIB_EXT) 384AC_SUBST(STATIC_LIB_EXT) 385AC_SUBST(PROFILED_LIB_EXT) 386AC_SUBST(LDFLAG_DYNAMIC) 387AC_SUBST(PRIVATE_LIBS_CMT) 388dnl 389dnl handle --enable-jbd-debug 390dnl 391AC_ARG_ENABLE([jbd-debug], 392AS_HELP_STRING([--enable-jbd-debug],[enable journal debugging]), 393if test "$enableval" = "no" 394then 395 AC_MSG_RESULT([Disabling journal debugging]) 396else 397 AC_DEFINE(CONFIG_JBD_DEBUG, 1, 398 [Define to 1 if debugging ext3/4 journal code]) 399 AC_MSG_RESULT([Enabling journal debugging]) 400fi 401, 402AC_MSG_RESULT([Disabling journal debugging by default]) 403) 404dnl 405dnl handle --enable-blkid-debug 406dnl 407AC_ARG_ENABLE([blkid-debug], 408AS_HELP_STRING([--enable-blkid-debug],[enable blkid debugging]), 409if test "$enableval" = "no" 410then 411 AC_MSG_RESULT([Disabling blkid debugging]) 412else 413 AC_DEFINE(CONFIG_BLKID_DEBUG, 1, 414 [Define to 1 if debugging the blkid library]) 415 AC_MSG_RESULT([Enabling blkid debugging]) 416fi 417, 418AC_MSG_RESULT([Disabling blkid debugging by default]) 419) 420dnl 421dnl handle --enable-testio-debug 422dnl 423AC_ARG_ENABLE([testio-debug], 424AS_HELP_STRING([--disable-testio-debug],[disable the use of the test I/O manager for debugging]), 425AH_TEMPLATE([CONFIG_TESTIO_DEBUG], 426 [Define to 1 if the testio I/O manager should be enabled]) 427if test "$enableval" = "no" 428then 429 AC_MSG_RESULT([Disabling testio debugging]) 430 TEST_IO_CMT="#" 431else 432 TEST_IO_CMT= 433 AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) 434 AC_MSG_RESULT([Enabling testio debugging]) 435fi 436, 437AC_MSG_RESULT([Enabling testio debugging by default]) 438AC_DEFINE(CONFIG_TESTIO_DEBUG, 1) 439TEST_IO_CMT= 440) 441AC_SUBST(TEST_IO_CMT) 442dnl 443dnl handle --enable-developer-features 444dnl 445AC_ARG_ENABLE([developer-features], 446AS_HELP_STRING([--enable-developer-features],[enable features for use by ext4 developers]), 447AH_TEMPLATE([CONFIG_DEVELOPER_FEATURES], 448 [Define to 1 for features for use by ext4 developers]) 449if test "$enableval" = "yes" 450then 451 DEV_FEATURES_CMT= 452 AC_DEFINE(CONFIG_DEVELOPER_FEATURES, 1) 453 AC_MSG_RESULT([Enabling ext4 developer features]) 454else 455 AC_MSG_RESULT([Disabling ext4 developer features]) 456 DEV_FEATURES_CMT="#" 457fi 458, 459AC_MSG_RESULT([Disabling ext4 developer features by default]) 460DEV_FEATURES_CMT= 461) 462AC_SUBST(DEV_FEATURES_CMT) 463dnl 464dnl handle --disable-libuuid 465dnl 466PKG_PROG_PKG_CONFIG 467LIBUUID= 468DEPLIBUUID= 469STATIC_LIBUUID= 470DEPSTATIC_LIBUUID= 471PROFILED_LIBUUID= 472DEPPROFILED_LIBUUID= 473UUID_CMT= 474AC_ARG_ENABLE([libuuid], 475AS_HELP_STRING([--enable-libuuid],[build and use private uuid library]), 476if test "$enableval" = "no" 477then 478 if test -z "$PKG_CONFIG"; then 479 AC_MSG_ERROR([pkg-config not installed; please install it.]) 480 fi 481 482 AC_CHECK_LIB(uuid, uuid_generate, 483 [LIBUUID=`$PKG_CONFIG --libs uuid`; 484 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`], 485 [AC_MSG_ERROR([external uuid library not found])]) 486 PROFILED_LIBUUID=$LIBUUID 487 UUID_CMT=# 488 AC_MSG_RESULT([Disabling private uuid library]) 489else 490 LIBUUID='$(LIB)/libuuid'$LIB_EXT 491 DEPLIBUUID=$LIBUUID 492 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT 493 DEPSTATIC_LIBUUID=$STATIC_LIBUUID 494 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT 495 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID 496 AC_MSG_RESULT([Enabling private uuid library]) 497fi 498, 499if test -n "$PKG_CONFIG"; then 500 AC_CHECK_LIB(uuid, uuid_generate, 501 [LIBUUID=`$PKG_CONFIG --libs uuid`; 502 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`]) 503fi 504if test -n "$LIBUUID"; then 505 PROFILED_LIBUUID=$LIBUUID 506 UUID_CMT=# 507 AC_MSG_RESULT([Using system uuid by default]) 508else 509 LIBUUID='$(LIB)/libuuid'$LIB_EXT 510 DEPLIBUUID=$LIBUUID 511 STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT 512 DEPSTATIC_LIBUUID=$STATIC_LIBUUID 513 PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT 514 DEPPROFILED_LIBUUID=$PROFILED_LIBUUID 515 AC_MSG_RESULT([Enabling private uuid library by default]) 516fi 517) 518AC_SUBST(LIBUUID) 519AC_SUBST(DEPLIBUUID) 520AC_SUBST(STATIC_LIBUUID) 521AC_SUBST(DEPSTATIC_LIBUUID) 522AC_SUBST(PROFILED_LIBUUID) 523AC_SUBST(DEPPROFILED_LIBUUID) 524AC_SUBST(UUID_CMT) 525dnl 526dnl handle --disable-libblkid 527dnl 528PKG_PROG_PKG_CONFIG 529LIBBLKID= 530DEPLIBBLKID= 531STATIC_LIBBLKID= 532DEPSTATIC_LIBBLKID= 533PROFILED_LIBBLKID= 534DEPPROFILED_LIBBLKID= 535BLKID_CMT= 536AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs]) 537AC_ARG_ENABLE([libblkid], 538AS_HELP_STRING([--enable-libblkid],[build and use private blkid library]), 539if test "$enableval" = "no" 540then 541 if test -z "$PKG_CONFIG"; then 542 AC_MSG_ERROR([pkg-config not installed; please install it.]) 543 fi 544 545 AC_CHECK_LIB(blkid, blkid_get_cache, 546 [LIBBLKID=`$PKG_CONFIG --libs blkid`; 547 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`], 548 [AC_MSG_ERROR([external blkid library not found])], -luuid) 549 BLKID_CMT=# 550 PROFILED_LIBBLKID=$LIBBLKID 551 AC_MSG_RESULT([Disabling private blkid library]) 552else 553 LIBBLKID='$(LIB)/libblkid'$LIB_EXT 554 DEPLIBBLKID=$LIBBLKID 555 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT 556 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID 557 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT 558 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID 559 AC_DEFINE(CONFIG_BUILD_FINDFS, 1) 560 AC_MSG_RESULT([Enabling private blkid library]) 561fi 562, 563if test -n "$PKG_CONFIG"; then 564 AC_CHECK_LIB(blkid, blkid_get_cache, 565 [LIBBLKID=`$PKG_CONFIG --libs blkid`; 566 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`]) 567fi 568if test -n "$LIBBLKID"; then 569 BLKID_CMT=# 570 PROFILED_LIBBLKID=$LIBBLKID 571 AC_MSG_RESULT([Using system blkid library by default]) 572else 573 LIBBLKID='$(LIB)/libblkid'$LIB_EXT 574 DEPLIBBLKID=$LIBBLKID 575 STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT 576 DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID 577 PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT 578 DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID 579 AC_DEFINE(CONFIG_BUILD_FINDFS, 1) 580 AC_MSG_RESULT([Enabling private blkid library by default]) 581fi 582) 583AC_SUBST(LIBBLKID) 584AC_SUBST(DEPLIBBLKID) 585AC_SUBST(STATIC_LIBBLKID) 586AC_SUBST(DEPSTATIC_LIBBLKID) 587AC_SUBST(PROFILED_LIBBLKID) 588AC_SUBST(DEPPROFILED_LIBBLKID) 589AC_SUBST(BLKID_CMT) 590dnl 591dnl handle --enable-subset 592dnl 593ALL_CMT= 594SUBSET_CMT= 595AC_ARG_ENABLE([subset], 596AS_HELP_STRING([--enable-subset],[enable subset-only build]), 597if test "$enableval" = "no" 598then 599 SUBSET_CMT=# 600 AC_MSG_RESULT([Disabling subset-only build]) 601else 602 ALL_CMT=# 603 AC_MSG_RESULT([Enabling subset-only-build]) 604fi 605,) 606AC_SUBST(ALL_CMT) 607AC_SUBST(SUBSET_CMT) 608dnl 609dnl handle --disable-backtrace 610dnl 611AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace]) 612AC_ARG_ENABLE([backtrace], 613AS_HELP_STRING([--disable-backtrace],[disable use backtrace]), 614if test "$enableval" = "no" 615then 616 AC_MSG_RESULT([Disabling use of backtrace]) 617 AC_DEFINE(DISABLE_BACKTRACE, 1) 618else 619 AC_MSG_RESULT([Enabling use of backtrace]) 620fi 621, 622AC_MSG_RESULT([Enabling use of backtrace by default]) 623) 624dnl 625dnl handle --enable-debugfs 626dnl 627AC_ARG_ENABLE([debugfs], 628AS_HELP_STRING([--disable-debugfs],[disable support of debugfs program]), 629if test "$enableval" = "no" 630then 631 AC_MSG_RESULT([Disabling debugfs support]) 632 DEBUGFS_CMT="#" 633else 634 DEBUGFS_CMT= 635 AC_MSG_RESULT([Enabling debugfs support]) 636fi 637, 638AC_MSG_RESULT([Enabling debugfs support by default]) 639DEBUGFS_CMT= 640) 641AC_SUBST(DEBUGFS_CMT) 642dnl 643dnl handle --enable-imager 644dnl 645AC_ARG_ENABLE([imager], 646AS_HELP_STRING([--disable-imager],[disable support of e2image program]), 647if test "$enableval" = "no" 648then 649 AC_MSG_RESULT([Disabling e2image support]) 650 IMAGER_CMT="#" 651else 652 IMAGER_CMT= 653 AC_MSG_RESULT([Enabling e2image support]) 654fi 655, 656AC_MSG_RESULT([Enabling e2image support by default]) 657IMAGER_CMT= 658) 659AC_SUBST(IMAGER_CMT) 660dnl 661dnl handle --enable-resizer 662dnl 663AC_ARG_ENABLE([resizer], 664AS_HELP_STRING([--disable-resizer],[disable support of e2resize program]), 665if test "$enableval" = "no" 666then 667 AC_MSG_RESULT([Disabling e2resize support]) 668 RESIZER_CMT="#" 669else 670 RESIZER_CMT= 671 AC_MSG_RESULT([Enabling e2resize support]) 672fi 673, 674AC_MSG_RESULT([Enabling e2resize support by default]) 675RESIZER_CMT= 676) 677AC_SUBST(RESIZER_CMT) 678dnl 679dnl handle --enable-defrag 680dnl 681AC_ARG_ENABLE([defrag], 682AS_HELP_STRING([--disable-defrag],[disable support of e4defrag program]), 683if test "$enableval" = "no" 684then 685 AC_MSG_RESULT([Disabling e4defrag support]) 686 DEFRAG_CMT="#" 687else 688 DEFRAG_CMT= 689 AC_MSG_RESULT([Enabling e4defrag support]) 690fi 691, 692if test -z "$WITH_DIET_LIBC" 693then 694 AC_MSG_RESULT([Enabling e4defrag support by default]) 695 DEFRAG_CMT= 696else 697 AC_MSG_RESULT([Disabling e4defrag support by default]) 698 DEFRAG_CMT="#" 699fi 700) 701AC_SUBST(DEFRAG_CMT) 702dnl 703dnl See whether to install the `fsck' wrapper program (that calls e2fsck) 704dnl 705AC_ARG_ENABLE([fsck], 706AS_HELP_STRING([--enable-fsck],[build fsck wrapper program]), 707[if test "$enableval" = "no" 708then 709 FSCK_PROG='' FSCK_MAN='' 710 AC_MSG_RESULT([Not building fsck wrapper]) 711else 712 FSCK_PROG=fsck FSCK_MAN=fsck.8 713 AC_MSG_RESULT([Building fsck wrapper]) 714fi] 715, 716[case "$host_os" in 717 gnu*) 718 FSCK_PROG='' FSCK_MAN='' 719 AC_MSG_RESULT([Not building fsck wrapper by default]) 720 ;; 721 *) 722 FSCK_PROG=fsck FSCK_MAN=fsck.8 723 AC_MSG_RESULT([Building fsck wrapper by default]) 724esac] 725) 726AC_SUBST(FSCK_PROG) 727AC_SUBST(FSCK_MAN) 728dnl 729dnl See whether to install the `e2initrd-helper' program 730dnl 731AC_ARG_ENABLE([e2initrd-helper], 732AS_HELP_STRING([--enable-e2initrd-helper],[build e2initrd-helper program]), 733[if test "$enableval" = "no" 734then 735 E2INITRD_PROG='' E2INITRD_MAN='' 736 AC_MSG_RESULT([Not building e2initrd helper]) 737else 738 E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 739 AC_MSG_RESULT([Building e2initrd helper]) 740fi] 741, 742E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8 743AC_MSG_RESULT([Building e2initrd helper by default]) 744) 745AC_SUBST(E2INITRD_PROG) 746AC_SUBST(E2INITRD_MAN) 747dnl 748dnl 749dnl 750AC_ARG_ENABLE([tls], 751AS_HELP_STRING([--disable-tls],[disable use of thread local support]), 752[if test "$enableval" = "no" 753then 754 try_tls="" 755 AC_MSG_RESULT([Disabling thread local support]) 756else 757 try_tls="yes" 758 AC_MSG_RESULT([Enabling thread local support]) 759fi] 760, 761if test -n "$WITH_DIET_LIBC" 762then 763 try_tls="" 764 AC_MSG_RESULT([Diet libc does not support thread local support]) 765else 766 try_tls="yes" 767 AC_MSG_RESULT([Try using thread local support by default]) 768fi 769) 770if test "$try_tls" = "yes" 771then 772AX_TLS 773fi 774dnl 775dnl 776dnl 777AC_ARG_WITH([pthread], 778AS_HELP_STRING([--without-pthread],[disable use of pthread support]), 779[if test "$withval" = "no" 780then 781 try_pthread="" 782 AC_MSG_RESULT([Disabling pthread support]) 783else 784 try_pthread="yes" 785 AC_MSG_RESULT([Testing for pthread support]) 786fi] 787, 788try_pthread="yes" 789AC_MSG_RESULT([Try testing for pthread support by default]) 790) 791if test "$try_pthread" = "yes" 792then 793AX_PTHREAD 794else 795test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" 796AC_SUBST([PTHREAD_CC]) 797fi 798dnl 799dnl 800dnl 801AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd]) 802AC_ARG_ENABLE([uuidd], 803AS_HELP_STRING([--disable-uuidd],[disable building the uuid daemon]), 804[if test "$enableval" = "no" 805then 806 AC_MSG_RESULT([Not building uuidd]) 807 UUIDD_CMT="#" 808else 809 AC_DEFINE(USE_UUIDD, 1) 810 UUIDD_CMT="" 811 AC_MSG_RESULT([Building uuidd]) 812fi] 813, 814AC_DEFINE(USE_UUIDD, 1) 815if test -z "$UUID_CMT" 816then 817 UUIDD_CMT="" 818 AC_MSG_RESULT([Building uuidd by default]) 819else 820 UUIDD_CMT="#" 821 AC_MSG_RESULT([Disabling uuidd by default]) 822fi 823) 824AC_SUBST(UUIDD_CMT) 825dnl 826dnl handle --disable-mmp 827dnl 828AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support]) 829AC_ARG_ENABLE([mmp], 830AS_HELP_STRING([--disable-mmp],[disable support mmp, Multi Mount Protection]), 831if test "$enableval" = "no" 832then 833 AC_MSG_RESULT([Disabling mmp support]) 834else 835 AC_MSG_RESULT([Enabling mmp support]) 836 AC_DEFINE(CONFIG_MMP, 1) 837fi 838, 839AC_MSG_RESULT([Enabling mmp support by default]) 840AC_DEFINE(CONFIG_MMP, 1) 841) 842dnl 843dnl handle --disable-tdb 844dnl 845AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support]) 846AC_ARG_ENABLE([tdb], 847AS_HELP_STRING([--disable-tdb],[disable tdb support]), 848[ 849if test "$enableval" = "no" 850then 851 AC_MSG_RESULT([Disabling tdb support]) 852 CONFIG_TDB=0 853else 854 AC_MSG_RESULT([Enabling tdb support]) 855 CONFIG_TDB=1 856fi 857] 858, 859[ 860case "$host_os" in 861mingw*) 862 AC_MSG_RESULT([Disabling tdb support by default]) 863 CONFIG_TDB=0 864 ;; 865*) 866 AC_MSG_RESULT([Enabling tdb support by default]) 867 CONFIG_TDB=1 868 ;; 869esac 870] 871) 872if test "$CONFIG_TDB" = "1" 873then 874 AC_DEFINE(CONFIG_TDB, 1) 875 TDB_CMT="" 876 TDB_MAN_COMMENT="" 877else 878 TDB_CMT="#" 879 TDB_MAN_COMMENT='.\"' 880fi 881AC_SUBST(TDB_CMT) 882AC_SUBST(TDB_MAN_COMMENT) 883dnl 884dnl handle --disable-bmap-stats 885dnl 886AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.]) 887AC_ARG_ENABLE([bmap-stats], 888AS_HELP_STRING([--disable-bmap-stats],[disable collection of bitmap stats]), 889if test "$enableval" = "no" 890then 891 AC_MSG_RESULT([Disabling bitmap statistics support]) 892else 893 AC_MSG_RESULT([Enabling bitmap statistics support]) 894 AC_DEFINE(ENABLE_BMAP_STATS, 1) 895fi 896, 897AC_MSG_RESULT([Enabling bitmap statistics support by default]) 898AC_DEFINE(ENABLE_BMAP_STATS, 1) 899) 900dnl 901dnl handle --enable-bmap-stats-ops 902dnl 903AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.]) 904AC_ARG_ENABLE([bmap-stats-ops], 905AS_HELP_STRING([--enable-bmap-stats-ops],[enable collection of additional bitmap stats]), 906if test "$enableval" = "no" 907then 908 AC_MSG_RESULT([Disabling additional bitmap statistics]) 909else 910 dnl There has to be a better way! 911 AS_IF([test "x${enable_bmap_stats}" = "xno"], 912 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats])) 913 914 AC_MSG_RESULT([Enabling additional bitmap statistics]) 915 AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1) 916fi 917, 918AC_MSG_RESULT([Disabling additional bitmap statistics by default]) 919) 920dnl 921dnl 922dnl 923MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library 924AC_SUBST_FILE(MAKEFILE_LIBRARY) 925dnl 926dnl Add internationalization support, using gettext. 927dnl 928GETTEXT_PACKAGE=e2fsprogs 929PACKAGE=e2fsprogs 930VERSION="$E2FSPROGS_VERSION" 931VERSION=0.14.1 932AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext]) 933AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext]) 934AC_SUBST(GETTEXT_PACKAGE) 935AC_SUBST(PACKAGE) 936AC_SUBST(VERSION) 937 938AM_GNU_GETTEXT([external]) 939dnl 940dnl End of configuration options 941dnl 942AC_SUBST(BINARY_TYPE) 943AC_PROG_MAKE_SET 944CHECK_GNU_MAKE 945AC_PATH_PROG(LN, ln, ln) 946AC_PROG_MKDIR_P 947dnl 948dnl @mkdir_p@ is used by po's Makefile.in 949dnl 950mkdir_p=$MKDIR_P 951AC_SUBST(mkdir_p) 952AC_PROG_LN_S 953AC_PATH_PROG(MV, mv, mv) 954AC_PATH_PROG(CP, cp, cp) 955AC_PATH_PROG(RM, rm, rm) 956AC_PATH_PROG(CHMOD, chmod, :) 957AC_PROG_AWK 958AC_PROG_EGREP 959AC_PATH_PROG(SED, sed, sed) 960AC_PATH_PROG(PERL, perl, perl) 961AC_PATH_PROG(LDCONFIG, ldconfig, :) 962AC_CHECK_TOOL(AR, ar, ar) 963AC_CHECK_TOOL(RANLIB, ranlib, :) 964AC_CHECK_TOOL(STRIP, strip, :) 965AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, ) 966if test "_$MAKEINFO" = "_"; then 967 MAKEINFO="echo Makeinfo is missing. Info documentation will not be built." 968else 969 case "$MAKEINFO" in 970 */missing.*) 971 AC_MSG_WARN([ 972*** Makeinfo is missing. Info documentation will not be built.]) 973 ;; 974 *) 975 ;; 976 esac 977fi 978AC_SUBST(MAKEINFO) 979AC_PROG_INSTALL 980# See if we need a separate native compiler. 981if test $cross_compiling = no; then 982 BUILD_CC="$CC" 983 AC_SUBST(BUILD_CC) 984else 985 AC_CHECK_PROGS(BUILD_CC, gcc cc) 986fi 987AC_CHECK_HEADERS(m4_flatten([ 988 dirent.h 989 errno.h 990 execinfo.h 991 getopt.h 992 malloc.h 993 mntent.h 994 paths.h 995 pthread.h 996 semaphore.h 997 setjmp.h 998 signal.h 999 stdarg.h 1000 stdint.h 1001 stdlib.h 1002 termios.h 1003 termio.h 1004 unistd.h 1005 utime.h 1006 attr/xattr.h 1007 linux/falloc.h 1008 linux/fd.h 1009 linux/fsmap.h 1010 linux/major.h 1011 linux/loop.h 1012 linux/types.h 1013 net/if_dl.h 1014 netinet/in.h 1015 sys/acl.h 1016 sys/disklabel.h 1017 sys/disk.h 1018 sys/file.h 1019 sys/ioctl.h 1020 sys/key.h 1021 sys/mkdev.h 1022 sys/mman.h 1023 sys/mount.h 1024 sys/prctl.h 1025 sys/random.h 1026 sys/resource.h 1027 sys/select.h 1028 sys/socket.h 1029 sys/sockio.h 1030 sys/stat.h 1031 sys/syscall.h 1032 sys/sysmacros.h 1033 sys/time.h 1034 sys/types.h 1035 sys/un.h 1036 sys/wait.h 1037 sys/xattr.h 1038])) 1039case "$host_os" in 1040mingw*) 1041 # The above checks only detect system headers, not the headers in 1042 # ./include/mingw/, so explicitly define them to be available. 1043 AC_DEFINE(HAVE_LINUX_TYPES_H, 1) 1044 AC_DEFINE(HAVE_SYS_STAT_H, 1) 1045 AC_DEFINE(HAVE_SYS_SYSMACROS_H, 1) 1046 AC_DEFINE(HAVE_SYS_TYPES_H, 1) 1047 AC_DEFINE(HAVE_UNISTD_H, 1) 1048 ;; 1049esac 1050dnl Check where to find a dd(1) that supports iflag=fullblock 1051dnl and oflag=append 1052AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock]) 1053DD= 1054for i in dd gdd ; do 1055 if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then 1056 DD=$i 1057 break 1058 fi 1059done 1060if test -n "$DD" ; then 1061 AC_MSG_RESULT([$DD]) 1062else 1063 AC_MSG_RESULT([not found, using dd]) 1064 DD=dd 1065 AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.]) 1066fi 1067AC_SUBST([DD]) 1068 1069AC_CHECK_HEADERS(net/if.h,,, 1070[[ 1071#if HAVE_SYS_TYPES_H 1072#include <sys/types.h> 1073#endif 1074#if HAVE_SYS_SOCKET 1075#include <sys/socket.h> 1076#endif 1077]]) 1078AC_FUNC_VPRINTF 1079dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen 1080dnl is not declared. 1081AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1, 1082 [Define to 1 if dirent has d_reclen])],, 1083 [#include <dirent.h>]) 1084AC_CHECK_MEMBERS([struct stat.st_atim]) 1085dnl Check to see if ssize_t was declared 1086AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1, 1087 [Define to 1 if ssize_t declared])],, 1088 [#include <sys/types.h>]) 1089dnl 1090dnl Check to see if llseek() is declared in unistd.h. On some libc's 1091dnl it is, and on others it isn't..... Thank you glibc developers.... 1092dnl 1093AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1, 1094 [Define to 1 if llseek declared in unistd.h])],, 1095 [#include <unistd.h>]) 1096dnl 1097dnl Check to see if lseek64() is declared in unistd.h. Glibc's header files 1098dnl are so convoluted that I can't tell whether it will always be defined, 1099dnl and if it isn't defined while lseek64 is defined in the library, 1100dnl disaster will strike. 1101dnl 1102dnl Warning! Use of --enable-gcc-wall may throw off this test. 1103dnl 1104dnl 1105AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1, 1106 [Define to 1 if lseek64 declared in unistd.h])],, 1107 [#define _LARGEFILE_SOURCE 1108 #define _LARGEFILE64_SOURCE 1109 #include <unistd.h>]) 1110dnl 1111dnl Word sizes... 1112dnl 1113AC_CHECK_SIZEOF(short) 1114AC_CHECK_SIZEOF(int) 1115AC_CHECK_SIZEOF(long) 1116AC_CHECK_SIZEOF(long long) 1117AC_CHECK_SIZEOF(off_t) 1118AC_CHECK_SIZEOF(time_t) 1119SIZEOF_SHORT=$ac_cv_sizeof_short 1120SIZEOF_INT=$ac_cv_sizeof_int 1121SIZEOF_LONG=$ac_cv_sizeof_long 1122SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long 1123SIZEOF_OFF_T=$ac_cv_sizeof_off_t 1124SIZEOF_TIME_T=$ac_cv_sizeof_time_t 1125AC_SUBST(SIZEOF_SHORT) 1126AC_SUBST(SIZEOF_INT) 1127AC_SUBST(SIZEOF_LONG) 1128AC_SUBST(SIZEOF_LONG_LONG) 1129AC_SUBST(SIZEOF_OFF_T) 1130AC_SUBST(SIZEOF_TIME_T) 1131AC_C_BIGENDIAN 1132if test $cross_compiling = no; then 1133 BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1134else 1135 CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh 1136fi 1137ASM_TYPES_HEADER=./asm_types.h 1138AC_SUBST_FILE(ASM_TYPES_HEADER) 1139dnl 1140dnl Save the configuration #defines needed for the public ext2fs.h 1141dnl header file 1142dnl 1143echo "/* These defines are needed for the public ext2fs.h header file */" \ 1144 > public_config.h 1145if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then 1146 uniq tmp_config.$$ >> public_config.h 1147else 1148 echo "#undef HAVE_SYS_TYPES_H" >> public_config.h 1149fi 1150if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then 1151 uniq tmp_config.$$ >> public_config.h 1152else 1153 echo "#undef WORDS_BIGENDIAN" >> public_config.h 1154fi 1155rm -f tmp_config.$$ 1156PUBLIC_CONFIG_HEADER=./public_config.h 1157AC_SUBST_FILE(PUBLIC_CONFIG_HEADER) 1158dnl 1159dnl See if we have inttypes.h and if intptr_t is defined 1160dnl 1161AC_CHECK_HEADERS([inttypes.h]) 1162AC_CHECK_TYPES(intptr_t) 1163dnl 1164dnl See if struct stat has a st_flags field, in which case we can get file 1165dnl flags somewhat portably. Also check for the analogous setter, chflags(). 1166dnl 1167AC_MSG_CHECKING(whether struct stat has a st_flags field) 1168AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags, 1169 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[struct stat stat; stat.st_flags = 0;]])],[e2fsprogs_cv_struct_st_flags=yes],[e2fsprogs_cv_struct_st_flags=no])) 1170AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags) 1171if test "$e2fsprogs_cv_struct_st_flags" = yes; then 1172 AC_MSG_CHECKING(whether st_flags field is useful) 1173 AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut, 1174 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[struct stat stat; stat.st_flags |= UF_IMMUTABLE;]])],[e2fsprogs_cv_struct_st_flags_immut=yes],[e2fsprogs_cv_struct_st_flags_immut=no])) 1175 AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut) 1176 if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then 1177 AC_DEFINE(HAVE_STAT_FLAGS, 1, 1178 [Define to 1 if struct stat has st_flags]) 1179 fi 1180fi 1181dnl 1182dnl Check for the presence of SA_LEN 1183dnl 1184AC_CHECK_MEMBER(struct sockaddr.sa_len, 1185 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1, 1186 [Define to 1 if if struct sockaddr contains sa_len]),, 1187 [#include <sys/types.h> 1188 #include <sys/socket.h>]) 1189dnl 1190dnl If we are using the system-provided blkid library, check for 1191dnl the functions added after migrating that library to util-linux 1192dnl 1193if test -n "$BLKID_CMT"; then 1194 AC_CHECK_LIB(blkid, blkid_probe_get_topology, 1195 AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1, 1196 [Define to 1 if blkid has blkid_probe_get_topology])) 1197 AC_CHECK_LIB(blkid, blkid_topology_get_dax, 1198 AC_DEFINE(HAVE_BLKID_TOPOLOGY_GET_DAX, 1, 1199 [Define to 1 if blkid has blkid_topology_get_dax])) 1200 AC_CHECK_LIB(blkid, blkid_probe_enable_partitions, 1201 AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1, 1202 [Define to 1 if blkid has blkid_probe_enable_partitions])) 1203fi 1204dnl 1205if test -n "$DLOPEN_LIB" ; then 1206 ac_cv_func_dlopen=yes 1207fi 1208AC_CHECK_FUNCS(m4_flatten([ 1209 __secure_getenv 1210 add_key 1211 backtrace 1212 chflags 1213 dlopen 1214 fadvise64 1215 fallocate 1216 fallocate64 1217 fchown 1218 fcntl 1219 fdatasync 1220 fstat64 1221 fsync 1222 ftruncate64 1223 futimes 1224 getcwd 1225 getdtablesize 1226 getentropy 1227 gethostname 1228 getmntinfo 1229 getpwuid_r 1230 getrandom 1231 getrlimit 1232 getrusage 1233 jrand48 1234 keyctl 1235 llistxattr 1236 llseek 1237 lseek64 1238 mallinfo 1239 mallinfo2 1240 mbstowcs 1241 memalign 1242 mempcpy 1243 mmap 1244 msync 1245 nanosleep 1246 open64 1247 pathconf 1248 posix_fadvise 1249 posix_fadvise64 1250 posix_memalign 1251 prctl 1252 pread 1253 pwrite 1254 pread64 1255 pwrite64 1256 qsort_r 1257 secure_getenv 1258 setmntent 1259 setresgid 1260 setresuid 1261 snprintf 1262 srandom 1263 stpcpy 1264 strcasecmp 1265 strdup 1266 strnlen 1267 strptime 1268 strtoull 1269 sync_file_range 1270 sysconf 1271 usleep 1272 utime 1273 utimes 1274 valloc 1275])) 1276dnl 1277dnl Check to see if -lsocket is required (solaris) to make something 1278dnl that uses socket() to compile; this is needed for the UUID library 1279dnl 1280SOCKET_LIB='' 1281AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket]) 1282AC_SUBST(SOCKET_LIB) 1283dnl 1284dnl See if libmagic exists 1285dnl 1286AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic 1287AC_CHECK_HEADERS([magic.h])]) 1288if test "$ac_cv_func_dlopen" = yes ; then 1289 MAGIC_LIB=$DLOPEN_LIB 1290fi 1291AC_SUBST(MAGIC_LIB) 1292dnl 1293dnl Check to see if librt is required for clock_gettime() (glibc < 2.17) 1294dnl 1295AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt]) 1296AC_SUBST(CLOCK_GETTIME_LIB) 1297dnl 1298dnl Check to see if the FUSE library is -lfuse or -losxfuse 1299dnl 1300FUSE_CMT= 1301FUSE_LIB= 1302dnl osxfuse.dylib supersedes fuselib.dylib 1303AC_ARG_ENABLE([fuse2fs], 1304AS_HELP_STRING([--disable-fuse2fs],[do not build fuse2fs]), 1305if test "$enableval" = "no" 1306then 1307 FUSE_CMT="#" 1308 AC_MSG_RESULT([Disabling fuse2fs]) 1309else 1310 AC_CHECK_HEADERS([pthread.h fuse.h], [], 1311[AC_MSG_FAILURE([Cannot find fuse2fs headers.])], 1312[#define _FILE_OFFSET_BITS 64 1313#define FUSE_USE_VERSION 29]) 1314 1315 AC_PREPROC_IFELSE( 1316[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29 1317#ifdef __linux__ 1318#include <linux/fs.h> 1319#include <linux/falloc.h> 1320#include <linux/xattr.h> 1321#endif 1322]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])]) 1323 1324 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1325 [AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], 1326 [AC_MSG_FAILURE([Cannot find fuse library.])])]) 1327 AC_MSG_RESULT([Enabling fuse2fs]) 1328fi 1329, 1330AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"], 1331[#define _FILE_OFFSET_BITS 64 1332#define FUSE_USE_VERSION 29 1333#ifdef __linux__ 1334# include <linux/fs.h> 1335# include <linux/falloc.h> 1336# include <linux/xattr.h> 1337#endif]) 1338if test -z "$FUSE_CMT" 1339then 1340 AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse], 1341[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])]) 1342fi 1343if test -z "$FUSE_CMT" 1344then 1345 AC_MSG_RESULT([Enabling fuse2fs by default.]) 1346fi 1347) 1348AC_SUBST(FUSE_LIB) 1349AC_SUBST(FUSE_CMT) 1350dnl 1351dnl See if optreset exists 1352dnl 1353AC_MSG_CHECKING(for optreset) 1354AC_CACHE_VAL(ac_cv_have_optreset, 1355[AC_EGREP_HEADER(optreset, unistd.h, 1356 ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl 1357AC_MSG_RESULT($ac_cv_have_optreset) 1358if test $ac_cv_have_optreset = yes; then 1359 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present]) 1360fi 1361dnl 1362dnl Test for sem_init, and which library it might require: 1363dnl 1364AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists]) 1365SEM_INIT_LIB='' 1366echo GL_THREADS_API: ${gl_threads_api} 1367if test "${gl_threads_api}" != none 1368then 1369 AC_CHECK_FUNC(sem_init, , 1370 AC_CHECK_LIB(pthread, sem_init, 1371 AC_DEFINE(HAVE_SEM_INIT, 1) 1372 SEM_INIT_LIB=-lpthread, 1373 AC_CHECK_LIB(rt, sem_init, 1374 AC_DEFINE(HAVE_SEM_INIT, 1) 1375 SEM_INIT_LIB=-lrt, 1376 AC_CHECK_LIB(posix4, sem_init, 1377 AC_DEFINE(HAVE_SEM_INIT, 1) 1378 SEM_INIT_LIB=-lposix4))))dnl 1379fi 1380AC_SUBST(SEM_INIT_LIB) 1381dnl 1382dnl qsort_r detection 1383dnl 1384AS_IF([test "$ac_cv_func_qsort_r" != no], [ 1385 AC_CACHE_CHECK(whether qsort_r is GNU version, e2_cv_gnu_qsort_r, 1386 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1387@%:@include <stdlib.h> 1388void (qsort_r)(void *base, size_t nmemb, size_t size, 1389 int (*compar)(const void *, const void *, void *), 1390 void *arg); 1391]], [[ ]])],[e2_cv_gnu_qsort_r=yes],[e2_cv_gnu_qsort_r=no]) 1392 ]) 1393 AC_CACHE_CHECK(whether qsort_r is BSD version, e2_cv_bsd_qsort_r, 1394 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1395@%:@include <stdlib.h> 1396void (qsort_r)(void *base, size_t nmemb, size_t size, 1397 void *arg, int (*compar)(void *, const void *, const void *)); 1398]], [[ ]])],[e2_cv_bsd_qsort_r=yes],[e2_cv_bsd_qsort_r=no]) 1399 ]) 1400 AS_CASE("$e2_cv_gnu_qsort_r:$e2_cv_bsd_qsort_r", 1401 [yes:no], [ 1402 AC_DEFINE(HAVE_GNU_QSORT_R, 1, [ Define to 1 if you have the GNU-style 'qsort_r' function.]) 1403 ], 1404 [no:yes], [ 1405 AC_DEFINE(HAVE_BSD_QSORT_R, 1, [ Define to 1 if you have the BSD-style 'qsort_r' function.]) 1406 ]) 1407]) 1408dnl 1409dnl Check for unified diff 1410dnl 1411AC_MSG_CHECKING(for unified diff option) 1412if diff -u $0 $0 > /dev/null 2>&1 ; then 1413 UNI_DIFF_OPTS=-u 1414else 1415 UNI_DIFF_OPTS=-c 1416fi 1417AC_MSG_RESULT($UNI_DIFF_OPTS) 1418AC_SUBST(UNI_DIFF_OPTS) 1419dnl 1420dnl We use the EXT2 ioctls only under Linux 1421dnl 1422case "$host_os" in 1423linux*) 1424 AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present]) 1425 ;; 1426esac 1427dnl 1428dnl Check the available mount options 1429dnl 1430AX_CHECK_MOUNT_OPT(nosuid) 1431AX_CHECK_MOUNT_OPT(nodev) 1432dnl Enable LTO for all packages 1433dnl 1434AC_ARG_ENABLE([lto], 1435AS_HELP_STRING([--enable-lto],[enable link time optimization]),, 1436enable_lto=no) 1437if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then 1438 AC_MSG_CHECKING([if C compiler supports LTO]) 1439 OLD_CFLAGS="$CFLAGS" 1440 OLD_LDFLAGS="$LDFLAGS" 1441 LTO_FLAGS="-g -flto -ffat-lto-objects" 1442 CFLAGS="$CFLAGS $LTO_FLAGS" 1443 LDFLAGS="$LDFLAGS $LTO_FLAGS" 1444 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 1445 [AC_MSG_RESULT([yes])] 1446 [lto_cflags=$LTO_FLAGS] 1447 [lto_ldflags=$LTO_FLAGS] 1448 [AC_PATH_PROG(gcc_ar, gcc-ar,,)] 1449 [AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)], 1450 [AC_MSG_RESULT([no])]) 1451 if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then 1452 have_lto=yes 1453 AR="${gcc_ar}" 1454 RANLIB="${gcc_ranlib}" 1455 fi 1456 CFLAGS="${OLD_CFLAGS}" 1457 LDFLAGS="${OLD_LDFLAGS}" 1458 AC_SUBST(have_lto) 1459 AC_SUBST(lto_cflags) 1460 AC_SUBST(lto_ldflags) 1461fi 1462if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then 1463 AC_MSG_ERROR([LTO not supported by compiler.]) 1464fi 1465dnl 1466dnl Enable UBSAN for all packages 1467dnl 1468AC_ARG_ENABLE([ubsan], 1469AS_HELP_STRING([--enable-ubsan],[enable undefined behavior sanitizer]),, 1470enable_ubsan=no) 1471if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then 1472 AC_MSG_CHECKING([if C compiler supports UBSAN]) 1473 OLD_CFLAGS="$CFLAGS" 1474 OLD_LDFLAGS="$LDFLAGS" 1475 UBSAN_FLAGS="-fsanitize=undefined" 1476 CFLAGS="$CFLAGS $UBSAN_FLAGS" 1477 LDFLAGS="$LDFLAGS $UBSAN_FLAGS" 1478 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 1479 [AC_MSG_RESULT([yes])] 1480 [ubsan_cflags=$UBSAN_FLAGS] 1481 [ubsan_ldflags=$UBSAN_FLAGS] 1482 [have_ubsan=yes], 1483 [AC_MSG_RESULT([no])]) 1484 CFLAGS="${OLD_CFLAGS}" 1485 LDFLAGS="${OLD_LDFLAGS}" 1486 AC_SUBST(have_ubsan) 1487 AC_SUBST(ubsan_cflags) 1488 AC_SUBST(ubsan_ldflags) 1489fi 1490if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then 1491 AC_MSG_ERROR([UBSAN not supported by compiler.]) 1492fi 1493dnl 1494dnl Enable ADDRSAN for all packages 1495dnl 1496AC_ARG_ENABLE([addrsan], 1497AS_HELP_STRING([--enable-addrsan],[enable address sanitizer]),, 1498enable_addrsan=no) 1499if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then 1500 AC_MSG_CHECKING([if C compiler supports ADDRSAN]) 1501 OLD_CFLAGS="$CFLAGS" 1502 OLD_LDFLAGS="$LDFLAGS" 1503 ADDRSAN_FLAGS="-fsanitize=address" 1504 CFLAGS="$CFLAGS $ADDRSAN_FLAGS" 1505 LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS" 1506 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 1507 [AC_MSG_RESULT([yes])] 1508 [addrsan_cflags=$ADDRSAN_FLAGS] 1509 [addrsan_ldflags=$ADDRSAN_FLAGS] 1510 [have_addrsan=yes], 1511 [AC_MSG_RESULT([no])]) 1512 CFLAGS="${OLD_CFLAGS}" 1513 LDFLAGS="${OLD_LDFLAGS}" 1514 AC_SUBST(have_addrsan) 1515 AC_SUBST(addrsan_cflags) 1516 AC_SUBST(addrsan_ldflags) 1517fi 1518if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then 1519 AC_MSG_ERROR([ADDRSAN not supported by compiler.]) 1520fi 1521dnl 1522dnl Enable THREADSAN for all packages 1523dnl 1524AC_ARG_ENABLE([threadsan], 1525AS_HELP_STRING([--enable-threadsan],[enable thread sanitizer]),, 1526enable_threadsan=no) 1527if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then 1528 AC_MSG_CHECKING([if C compiler supports THREADSAN]) 1529 OLD_CFLAGS="$CFLAGS" 1530 OLD_LDFLAGS="$LDFLAGS" 1531 THREADSAN_FLAGS="-fsanitize=thread" 1532 CFLAGS="$CFLAGS $THREADSAN_FLAGS" 1533 LDFLAGS="$LDFLAGS $THREADSAN_FLAGS" 1534 AC_LINK_IFELSE([AC_LANG_PROGRAM([])], 1535 [AC_MSG_RESULT([yes])] 1536 [threadsan_cflags=$THREADSAN_FLAGS] 1537 [threadsan_ldflags=$THREADSAN_FLAGS] 1538 [have_threadsan=yes], 1539 [AC_MSG_RESULT([no])]) 1540 CFLAGS="${OLD_CFLAGS}" 1541 LDFLAGS="${OLD_LDFLAGS}" 1542 AC_SUBST(have_threadsan) 1543 AC_SUBST(threadsan_cflags) 1544 AC_SUBST(threadsan_ldflags) 1545fi 1546if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then 1547 AC_MSG_ERROR([THREADSAN not supported by compiler.]) 1548fi 1549if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then 1550 AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.]) 1551fi 1552dnl 1553dnl Enable the fuzzer sanitizer for all packages 1554dnl 1555FUZZING_CMT="#" 1556AC_ARG_ENABLE([fuzzing], 1557AS_HELP_STRING([--enable-fuzzing],[enable fuzzing sanitizer]),, 1558enable_fuzzing=no) 1559if test "$enable_fuzzing" = "yes" || test "$enable_fuzzing" = "probe"; then 1560 AC_PROG_CXX 1561 AC_MSG_CHECKING([if C compiler supports fuzzing sanitizer]) 1562 AC_LANG_PUSH([C++]) 1563 OLD_CXXFLAGS="$CXXFLAGS" 1564 OLD_LDFLAGS="$LDFLAGS" 1565 FUZZER_FLAGS="-fsanitize=fuzzer" 1566 CXXFLAGS="$CXXFLAGS $FUZZER_FLAGS" 1567 LDFLAGS="$LDFLAGS $FUZZER_FLAGS" 1568 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 1569 #include <stddef.h> 1570 #include <stdint.h> 1571 ]], 1572 [ return 0; ])], 1573 [AC_MSG_RESULT([yes])] 1574 [fuzzer_cflags=$FUZZER_FLAGS] 1575 [fuzzer_ldflags=$FUZZER_FLAGS] 1576 [FUZZING_CMT=] 1577 [have_fuzzer=yes], 1578 [AC_MSG_RESULT([no])] 1579 [AC_MSG_ERROR([fuzzing requested but not available])]) 1580 CXXFLAGS="${OLD_CXXFLAGS}" 1581 LDFLAGS="${OLD_LDFLAGS}" 1582 AC_LANG_POP([C++]) 1583 AC_SUBST(have_fuzzer) 1584 AC_SUBST(fuzzer_cflags) 1585 AC_SUBST(fuzzer_ldflags) 1586fi 1587if test "$enable_fuzzer" = "yes" && test "$have_fuzzer" != "yes"; then 1588 AC_MSG_ERROR([Fuzzing not supported by compiler.]) 1589fi 1590AC_SUBST(FUZZING_CMT) 1591dnl 1592dnl OS-specific uncomment control 1593dnl 1594LINUX_CMT="#" 1595CYGWIN_CMT="#" 1596UNIX_CMT= 1597case "$host_os" in 1598linux*) 1599 LINUX_CMT= 1600 ;; 1601cygwin) 1602 CYGWIN_CMT= 1603 UNIX_CMT="#" 1604 ;; 1605esac 1606AC_SUBST(LINUX_CMT) 1607AC_SUBST(CYGWIN_CMT) 1608AC_SUBST(UNIX_CMT) 1609dnl 1610dnl e2scrub only builds on linux 1611dnl 1612E2SCRUB_CMT="$LINUX_CMT" 1613AC_SUBST(E2SCRUB_CMT) 1614dnl 1615dnl Linux and Hurd places root files in the / by default 1616dnl 1617case "$host_os" in 1618linux* | gnu* | k*bsd*-gnu) 1619 if test "$prefix" = NONE -a "$root_prefix" = NONE ; then 1620 root_prefix=""; 1621 AC_MSG_RESULT([On $host_os systems, root_prefix defaults to '']) 1622 fi 1623 ;; 1624esac 1625dnl 1626dnl On Linux/hurd, force the prefix to be /usr 1627dnl 1628case "$host_os" in 1629linux* | gnu* | k*bsd*-gnu) 1630 if test "$prefix" = NONE ; then 1631 prefix="/usr"; 1632 AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr]) 1633 if test "$mandir" = '${prefix}/man' ; then 1634 AC_MSG_RESULT([...and mandir defaults to /usr/share/man]) 1635 mandir=/usr/share/man 1636 fi 1637 fi 1638;; 1639esac 1640if test "$root_prefix" = NONE ; then 1641 if test "$prefix" = NONE ; then 1642 root_prefix="$ac_default_prefix" 1643 else 1644 root_prefix="$prefix" 1645 fi 1646 root_bindir=$bindir 1647 root_sbindir=$sbindir 1648 root_libdir=$libdir 1649 root_sysconfdir=$sysconfdir 1650else 1651 root_bindir='${root_prefix}/bin' 1652 root_sbindir='${root_prefix}/sbin' 1653 root_libdir='${root_prefix}/lib' 1654 root_sysconfdir='${root_prefix}/etc' 1655fi 1656if test "$bindir" != '${exec_prefix}/bin'; then 1657 root_bindir=$bindir 1658 AC_MSG_RESULT([Setting root_bindir to $root_bindir]) 1659fi 1660if test "$sbindir" != '${exec_prefix}/sbin'; then 1661 root_sbindir=$sbindir 1662 AC_MSG_RESULT([Setting root_sbindir to $root_sbindir]) 1663fi 1664if test "$libdir" != '${exec_prefix}/lib'; then 1665 root_libdir=$libdir 1666 AC_MSG_RESULT([Setting root_libdir to $root_libdir]) 1667fi 1668if test "$sysconfdir" != '${prefix}/etc'; then 1669 root_sysconfdir=$sysconfdir 1670 AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir]) 1671fi 1672AC_SUBST(root_prefix) 1673AC_SUBST(root_bindir) 1674AC_SUBST(root_sbindir) 1675AC_SUBST(root_libdir) 1676AC_SUBST(root_sysconfdir) 1677dnl 1678dnl Allow specification of the multiarch arch 1679dnl 1680AC_ARG_WITH([multiarch], 1681AS_HELP_STRING([--with-multiarch=ARCH],[specify the multiarch triplet]), 1682if test "$withval" = "lib64"; then 1683 libdir=/usr/lib64 1684 root_libdir=/lib64 1685else 1686 libdir=$libdir/$withval 1687 root_libdir=$root_libdir/$withval 1688fi 1689) 1690dnl 1691dnl 1692dnl See if -static works. This could fail if the linker does not 1693dnl support -static, or if required external libraries are not available 1694dnl in static form. 1695dnl 1696AC_MSG_CHECKING([whether we can link with -static]) 1697AC_CACHE_VAL(ac_cv_e2fsprogs_use_static, 1698[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static" 1699AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], [[fflush(stdout);]])],[ac_cv_e2fsprogs_use_static=yes],[ac_cv_e2fsprogs_use_static=no]) 1700LDFLAGS=$SAVE_LDFLAGS]) 1701dnl 1702dnl Regardless of how the test turns out, Solaris doesn't handle -static 1703dnl This is caused by the socket library requiring the nsl library, which 1704dnl requires the -dl library, which only works for dynamically linked 1705dnl programs. It basically means you can't have statically linked programs 1706dnl which use the network under Solaris. 1707dnl 1708case "$host_os" in 1709solaris2.*) 1710 ac_cv_e2fsprogs_use_static=no 1711;; 1712esac 1713AC_MSG_RESULT($ac_cv_e2fsprogs_use_static) 1714if test $ac_cv_e2fsprogs_use_static = yes; then 1715 LDFLAGS_STATIC="$LDFLAGS_STATIC -static" 1716fi 1717AC_SUBST(LDFLAGS_STATIC) 1718dnl 1719dnl Work around mysterious Darwin / GNU libintl problem 1720dnl (__asm__ redirection doesn't work for some mysterious reason. Looks like 1721dnl Apple hacked gcc somehow?) 1722dnl 1723case "$host_os" in 1724darwin*) 1725 AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround]) 1726 AC_DEFINE(_INTL_REDIRECT_MACROS, 1, 1727 [Define to 1 if Apple Darwin libintl workaround is needed]) 1728 ;; 1729esac 1730dnl 1731dnl Only try to run the test suite if we're not cross compiling. 1732dnl 1733if test "$cross_compiling" = yes ; then 1734 DO_TEST_SUITE= 1735else 1736 DO_TEST_SUITE=check 1737fi 1738AC_SUBST(DO_TEST_SUITE) 1739dnl 1740dnl Only include the intl include files if we're building with them 1741dnl 1742INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib' 1743if test -n "$CPPFLAGS" ; then 1744 INCLUDES="$INCLUDES $CPPFLAGS" 1745fi 1746if test "$USE_INCLUDED_LIBINTL" = "yes" ; then 1747 INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl' 1748fi 1749if test -n "$WITH_DIET_LIBC" ; then 1750 INCLUDES="$INCLUDES -D_REENTRANT" 1751fi 1752case "$host_os" in 1753mingw*) 1754 INCLUDES=$INCLUDES' -I$(top_srcdir)/include/mingw' 1755 ;; 1756esac 1757AC_SUBST(INCLUDES) 1758dnl 1759dnl Build CFLAGS 1760dnl 1761if test $cross_compiling = no; then 1762 BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H" 1763 BUILD_LDFLAGS="$LDFLAGS" 1764fi 1765AC_SUBST(BUILD_CFLAGS) 1766AC_SUBST(BUILD_LDFLAGS) 1767dnl 1768dnl Define CFLAGS and LDFLAGS for shared libraries 1769dnl 1770CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS} 1771CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS} 1772LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS} 1773AC_SUBST(CFLAGS_SHLIB) 1774AC_SUBST(CFLAGS_STLIB) 1775AC_SUBST(LDFLAGS_SHLIB) 1776 1777dnl 1778dnl Where do udev rules go? 1779dnl 1780AC_ARG_WITH([udev_rules_dir], 1781 [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@], 1782 [Install udev rules into DIR.])], 1783 [], 1784 [with_udev_rules_dir=yes]) 1785AS_IF([test "x${with_udev_rules_dir}" != "xno"], 1786 [ 1787 AS_IF([test "x${with_udev_rules_dir}" = "xyes"], 1788 [ 1789 PKG_CHECK_MODULES([udev], [udev], 1790 [ 1791 with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d" 1792 ], [ 1793 with_udev_rules_dir="" 1794 ]) 1795 ]) 1796 AC_MSG_CHECKING([for udev rules dir]) 1797 pkg_udev_rules_dir="${with_udev_rules_dir}" 1798 AS_IF([test -n "${pkg_udev_rules_dir}"], 1799 [ 1800 AC_MSG_RESULT(${pkg_udev_rules_dir}) 1801 have_udev="yes" 1802 ], 1803 [ 1804 AC_MSG_RESULT(no) 1805 have_udev="no" 1806 ]) 1807 ], 1808 [ 1809 have_udev="disabled" 1810 ]) 1811AC_SUBST(have_udev) 1812AC_SUBST(pkg_udev_rules_dir) 1813 1814dnl 1815dnl Where do cron jobs go? 1816dnl 1817AC_ARG_WITH([crond_dir], 1818 [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@], 1819 [Install system crontabs into DIR.])], 1820 [], 1821 [with_crond_dir=yes]) 1822AS_IF([test "x${with_crond_dir}" != "xno"], 1823 [ 1824 AS_IF([test "x${with_crond_dir}" = "xyes"], 1825 [ 1826 AS_IF([test -d "/etc/cron.d"], 1827 [with_crond_dir="/etc/cron.d"], 1828 [have_crond="no"; with_crond_dir=""]) 1829 ]) 1830 AC_MSG_CHECKING([for system crontab dir]) 1831 crond_dir="${with_crond_dir}" 1832 AS_IF([test -n "${crond_dir}"], 1833 [ 1834 AC_MSG_RESULT(${crond_dir}) 1835 have_crond="yes" 1836 ], 1837 [ 1838 AC_MSG_RESULT(no) 1839 have_crond="no" 1840 ]) 1841 ], 1842 [ 1843 have_crond="disabled" 1844 ]) 1845AC_SUBST(have_crond) 1846AC_SUBST(crond_dir) 1847 1848dnl 1849dnl Where do systemd services go? 1850dnl 1851AC_ARG_WITH([systemd_unit_dir], 1852 [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@], 1853 [Install systemd system units into DIR.])], 1854 [], 1855 [with_systemd_unit_dir=yes]) 1856AS_IF([test "x${with_systemd_unit_dir}" != "xno"], 1857 [ 1858 AS_IF([test "x${with_systemd_unit_dir}" = "xyes"], 1859 [ 1860 PKG_CHECK_MODULES([systemd], [systemd], 1861 [ 1862 with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)" 1863 ], [ 1864 with_systemd_unit_dir="" 1865 ]) 1866 m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$]) 1867 ]) 1868 AC_MSG_CHECKING([for systemd system unit dir]) 1869 systemd_system_unit_dir="${with_systemd_unit_dir}" 1870 AS_IF([test -n "${systemd_system_unit_dir}"], 1871 [ 1872 AC_MSG_RESULT(${systemd_system_unit_dir}) 1873 have_systemd="yes" 1874 ], 1875 [ 1876 AC_MSG_RESULT(no) 1877 have_systemd="no" 1878 ]) 1879 ], 1880 [ 1881 have_systemd="disabled" 1882 ]) 1883AC_SUBST(have_systemd) 1884AC_SUBST(systemd_system_unit_dir) 1885dnl Adjust the compiled files if we are on windows vs everywhere else 1886dnl 1887OS_IO_FILE="" 1888[case "$host_os" in 1889 mingw*) 1890 OS_IO_FILE=windows_io 1891 ;; 1892 *) 1893 OS_IO_FILE=unix_io 1894 ;; 1895esac] 1896AC_SUBST(OS_IO_FILE) 1897 1898AC_SYS_LARGEFILE 1899 1900dnl 1901dnl Make our output files, being sure that we create the some miscellaneous 1902dnl directories 1903dnl 1904test -d lib || mkdir lib 1905test -d include || mkdir include 1906test -d include/linux || mkdir include/linux 1907test -d include/asm || mkdir include/asm 1908if test -z "$UUID_CMT" ; then 1909 uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \ 1910 lib/uuid/uuid_types.h" 1911fi 1912if test -z "$BLKID_CMT" ; then 1913 blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \ 1914 lib/blkid/blkid_types.h" 1915fi 1916for i in MCONFIG Makefile \ 1917 util/Makefile util/subst.conf util/gen-tarball util/install-symlink \ 1918 lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \ 1919 lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \ 1920 $uuid_out_list $blkid_out_list lib/support/Makefile \ 1921 lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \ 1922 misc/Makefile ext2ed/Makefile e2fsck/Makefile \ 1923 debugfs/Makefile tests/Makefile tests/progs/Makefile \ 1924 tests/fuzz/Makefile resize/Makefile doc/Makefile \ 1925 po/Makefile.in scrub/Makefile; do 1926 if test -d `dirname ${srcdir}/$i` ; then 1927 outlist="$outlist $i" 1928 fi 1929done 1930AC_CONFIG_FILES([$outlist]) 1931AC_OUTPUT 1932if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi 1933