1AC_INIT([util-linux], 2 m4_esyscmd([tools/git-version-gen .tarball-version]), 3 [kzak@redhat.com],, 4 [http://www.kernel.org/pub/linux/utils/util-linux/]) 5 6 7AC_PREREQ([2.60]) 8 9AC_CONFIG_AUX_DIR([config]) 10AC_CONFIG_MACRO_DIR([m4]) 11dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run 12dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors. 13AC_USE_SYSTEM_EXTENSIONS 14AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects]) 15 16m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], 17 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) 18m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 19 20AC_CONFIG_SRCDIR([sys-utils/mount.c]) 21AC_PREFIX_DEFAULT([/usr]) 22 23dnl version details from <major>.<minor>[-<suffix>] 24PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}') 25PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{ 26 sub("-.*","",$2); print $2}') 27PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{ 28 sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0}') 29 30dnl libblkid version 31LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" 32LIBBLKID_DATE="23-Jul-2020" 33LIBBLKID_LT_MAJOR=1 34LIBBLKID_LT_MINOR=1 35LIBBLKID_LT_MICRO=0 36LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR 37 38dnl libuuid version 39LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" 40LIBUUID_LT_MAJOR=1 41LIBUUID_LT_MINOR=3 42LIBUUID_LT_MICRO=0 43LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR 44 45dnl libmount version 46LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" 47LIBMOUNT_LT_MAJOR=1 48LIBMOUNT_LT_MINOR=1 49LIBMOUNT_LT_MICRO=0 50LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR 51 52dnl libsmartcols version 53LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" 54LIBSMARTCOLS_LT_MAJOR=1 55LIBSMARTCOLS_LT_MINOR=1 56LIBSMARTCOLS_LT_MICRO=0 57LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR 58 59dnl libfdisk version 60LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" 61LIBFDISK_LT_MAJOR=1 62LIBFDISK_LT_MINOR=1 63LIBFDISK_LT_MICRO=0 64LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR 65 66# Check whether exec_prefix=/usr: 67AS_CASE([$exec_prefix:$prefix], 68[NONE:NONE | NONE:/usr | /usr:*], 69 [AC_MSG_NOTICE([Default --exec-prefix detected.]) 70 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ]) 71 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])]) 72 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ]) 73 AS_CASE([$libdir], ['${exec_prefix}/lib64'],[libdir=/lib64; AC_MSG_NOTICE([ --libdir defaults to /lib64]) ]) 74 ] 75) 76 77 78# default for old versions without $runstatedir 79AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run']) 80 81# our default if $localstatedir unchanged 82AS_CASE([$localstatedir:$runstatedir], 83 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ], 84 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])] 85) 86 87AC_SUBST([runstatedir]) 88 89 90# The original default values of {bin,sbin,lib}dir 91usrbin_execdir='${exec_prefix}/bin' 92AC_SUBST([usrbin_execdir]) 93 94usrsbin_execdir='${exec_prefix}/sbin' 95AC_SUBST([usrsbin_execdir]) 96 97AS_CASE([$libdir], 98 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ], 99 [usrlib_execdir=$libdir], 100 [usrlib_execdir='${exec_prefix}'$libdir] 101) 102AC_SUBST([usrlib_execdir]) 103 104# static configuration maintaned by packages (e.g. /usr/lib) 105AC_ARG_VAR([SYSCONFSTATICDIR], 106 [Path to static system configuration, default ${prefix}/lib]) 107AS_IF([test "x$SYSCONFSTATICDIR" = x], 108 [sysconfstaticdir='${prefix}/lib'], 109 [sysconfstaticdir=$SYSCONFSTATICDIR]) 110AC_SUBST([sysconfstaticdir]) 111 112 113AM_PROG_CC_C_O 114AC_PROG_MKDIR_P 115AC_PROG_CC_STDC 116AC_PROG_YACC 117AC_CANONICAL_HOST 118AC_C_CONST 119AC_C_VOLATILE 120AC_C_BIGENDIAN 121 122dnl Compiler warnings 123UL_WARN_ADD([-fno-common]) 124UL_WARN_ADD([-Wall]) 125UL_WARN_ADD([-Wextra]) 126UL_WARN_ADD([-Wextra-semi]) 127UL_WARN_ADD([-Wembedded-directive]) 128UL_WARN_ADD([-Wmissing-declarations]) 129UL_WARN_ADD([-Wmissing-parameter-type]) 130UL_WARN_ADD([-Wmissing-prototypes]) 131UL_WARN_ADD([-Wno-missing-field-initializers]) 132UL_WARN_ADD([-Wredundant-decls]) 133UL_WARN_ADD([-Wsign-compare]) 134UL_WARN_ADD([-Wtype-limits]) 135UL_WARN_ADD([-Wuninitialized]) 136UL_WARN_ADD([-Wunused-but-set-parameter]) 137UL_WARN_ADD([-Wunused-but-set-variable]) 138UL_WARN_ADD([-Wunused-parameter]) 139UL_WARN_ADD([-Wunused-result]) 140UL_WARN_ADD([-Wunused-variable]) 141UL_WARN_ADD([-Wnested-externs]) 142UL_WARN_ADD([-Wpointer-arith]) 143UL_WARN_ADD([-Wstrict-prototypes]) 144UL_WARN_ADD([-Wformat-security]) 145UL_WARN_ADD([-Wimplicit-function-declaration]) 146UL_WARN_ADD([-Wdiscarded-qualifiers]) 147UL_WARN_ADD([-Waddress-of-packed-member]) 148 149AC_ARG_ENABLE([werror], 150 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]), 151 [], [enable_werror=no] 152) 153AS_IF([test "x$enable_werror" = xyes], [ 154 UL_WARN_ADD([-Werror]) 155],[ 156 UL_WARN_ADD([-Werror=sequence-point]) 157]) 158 159AC_SUBST([WARN_CFLAGS]) 160 161 162UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS]) 163AC_SUBST([BSD_WARN_CFLAGS]) 164 165UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS]) 166AC_SUBST([PYTHON_WARN_CFLAGS]) 167 168UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS]) 169AC_SUBST([NO_UNUSED_WARN_CFLAGS]) 170 171 172AC_ARG_ENABLE([asan], 173 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]), 174 [], [enable_asan=no] 175) 176AS_IF([test "x$enable_asan" = xyes], [ 177 UL_WARN_ADD([-fsanitize=address]) 178 ASAN_LDFLAGS="-fsanitize=address" 179]) 180AC_SUBST([ASAN_LDFLAGS]) 181 182AC_ARG_ENABLE([ubsan], 183 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]), 184 [], [enable_ubsan=no] 185) 186AS_IF([test "x$enable_ubsan" = xyes], [ 187 UL_WARN_ADD([-fsanitize=undefined]) 188 UBSAN_LDFLAGS="-fsanitize=undefined" 189]) 190AC_SUBST([UBSAN_LDFLAGS]) 191 192dnl libtool-2 193LT_INIT 194 195dnl check supported linker flags 196AX_CHECK_VSCRIPT 197 198m4_ifndef([PKG_PROG_PKG_CONFIG], 199 [m4_fatal([Could not locate the pkg-config autoconf 200 macros. These are usually located in /usr/share/aclocal/pkg.m4. 201 If your macros are in a different location, try setting the 202 environment variable AL_OPTS="-I/other/macro/dir" before running 203 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])]) 204PKG_PROG_PKG_CONFIG 205PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig']) 206 207GTK_DOC_CHECK([1.10]) 208AC_PATH_PROG([XSLTPROC], [xsltproc]) 209 210linux_os=no 211bsd_os=no 212AS_CASE([${host_os}], 213 [*linux*], 214 [linux_os=yes], 215 [*darwin*], 216 [darwin_os=yes], 217 [*bsd*|*dragonfly*], 218 [bsd_os=yes]) 219AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes]) 220AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes]) 221AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes]) 222 223AS_IF([test "x$darwin_os" = xyes], [ 224 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X]) 225]) 226 227dnl define ARCH_<NAME> conditionals 228UL_SET_ARCH([I86], [i?86-*]) 229UL_SET_ARCH([86_64], [x86_64*]) 230UL_SET_ARCH([IA64], [ia64*]) 231UL_SET_ARCH([S390], [s390*]) 232UL_SET_ARCH([SPARC], [sparc*]) 233UL_SET_ARCH([PPC], [ppc*|powerpc*]) 234UL_SET_ARCH([M68K], [m68*]) 235UL_SET_ARCH([MIPS], [mips*]) 236UL_SET_ARCH([HPPA], [hppa*|parisc*]) 237 238AC_SYS_LARGEFILE 239AC_HEADER_ASSERT 240AC_STRUCT_TIMEZONE 241 242dnl Don't forget to maintain alternatively allowed versions in autogen.sh! 243AM_GNU_GETTEXT_VERSION([0.18.3]) 244AM_GNU_GETTEXT([external]) 245 246AS_IF([test -d "$srcdir/po"], [ 247 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'` 248], [ 249 ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu" 250]) 251 252AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [ 253#ifdef HAVE_LINUX_COMPILER_H 254#include <linux/compiler.h> 255#endif 256]) 257AC_CHECK_HEADERS([ \ 258 asm/io.h \ 259 err.h \ 260 errno.h \ 261 fcntl.h \ 262 getopt.h \ 263 inttypes.h \ 264 lastlog.h \ 265 libutil.h \ 266 linux/btrfs.h \ 267 linux/cdrom.h \ 268 linux/falloc.h \ 269 linux/watchdog.h \ 270 linux/fd.h \ 271 linux/raw.h \ 272 linux/tiocl.h \ 273 linux/version.h \ 274 linux/securebits.h \ 275 linux/net_namespace.h \ 276 linux/capability.h \ 277 locale.h \ 278 mntent.h \ 279 net/if.h \ 280 net/if_dl.h \ 281 netinet/in.h \ 282 paths.h \ 283 pty.h \ 284 security/pam_appl.h \ 285 stdint.h \ 286 stdio_ext.h \ 287 stdlib.h \ 288 endian.h \ 289 byteswap.h \ 290 sys/endian.h \ 291 sys/disk.h \ 292 sys/disklabel.h \ 293 sys/file.h \ 294 sys/io.h \ 295 sys/ioccom.h \ 296 sys/ioctl.h \ 297 sys/mkdev.h \ 298 sys/mount.h \ 299 sys/param.h \ 300 sys/prctl.h \ 301 sys/resource.h \ 302 sys/signalfd.h \ 303 sys/socket.h \ 304 sys/sockio.h \ 305 sys/stat.h \ 306 sys/sysmacros.h \ 307 sys/swap.h \ 308 sys/syscall.h \ 309 sys/time.h \ 310 sys/timex.h \ 311 sys/ttydefaults.h \ 312 sys/types.h \ 313 sys/ucred.h \ 314 sys/un.h \ 315 unistd.h \ 316 shadow.h \ 317 utmp.h \ 318 utmpx.h \ 319]) 320 321# There is a collision in old kernel-headers. The both files mount.h and fs.h 322# define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1. 323# 324AC_CHECK_HEADERS([linux/fs.h ], [], [], 325 [#ifdef HAVE_SYS_MOUNT_H 326 # include <linux/fs.h> 327 # include <sys/mount.h> 328 #endif 329]) 330 331AC_CHECK_HEADERS([linux/gsmmux.h ], [], [], 332 [#ifdef LINUX_GSMMUX_H 333 # include <linux/gsmmux.h> 334 #endif 335]) 336 337AC_CHECK_HEADERS([security/pam_misc.h], 338 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])], 339 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [ 340#ifdef HAVE_SECURITY_PAM_APPL_H 341#include <security/pam_appl.h> 342#endif 343]) 344 345AC_CHECK_HEADERS([linux/blkzoned.h]) 346 347AC_CHECK_HEADERS([security/openpam.h], [], [], [ 348#ifdef HAVE_SECURITY_PAM_APPL_H 349#include <security/pam_appl.h> 350#endif 351]) 352 353AC_CHECK_HEADERS([langinfo.h], 354 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])], 355 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])]) 356 357AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants]) 358AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 359 #include <langinfo.h> 360]], [[ 361 char *str; 362 str = nl_langinfo (ALTMON_1); 363 str = nl_langinfo (ALTMON_2); 364 str = nl_langinfo (ALTMON_3); 365 str = nl_langinfo (ALTMON_4); 366 str = nl_langinfo (ALTMON_5); 367 str = nl_langinfo (ALTMON_6); 368 str = nl_langinfo (ALTMON_7); 369 str = nl_langinfo (ALTMON_8); 370 str = nl_langinfo (ALTMON_9); 371 str = nl_langinfo (ALTMON_10); 372 str = nl_langinfo (ALTMON_11); 373 str = nl_langinfo (ALTMON_12); 374]])], [ 375 AC_MSG_RESULT([yes]) 376 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1], 377 [Define if langinfo.h defines ALTMON_x constants]) 378], [ 379 AC_MSG_RESULT([no]) 380]) 381 382 383AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants]) 384AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 385 #include <langinfo.h> 386]], [[ 387 char *str; 388 str = nl_langinfo (_NL_ABALTMON_1); 389 str = nl_langinfo (_NL_ABALTMON_2); 390 str = nl_langinfo (_NL_ABALTMON_3); 391 str = nl_langinfo (_NL_ABALTMON_4); 392 str = nl_langinfo (_NL_ABALTMON_5); 393 str = nl_langinfo (_NL_ABALTMON_6); 394 str = nl_langinfo (_NL_ABALTMON_7); 395 str = nl_langinfo (_NL_ABALTMON_8); 396 str = nl_langinfo (_NL_ABALTMON_9); 397 str = nl_langinfo (_NL_ABALTMON_10); 398 str = nl_langinfo (_NL_ABALTMON_11); 399 str = nl_langinfo (_NL_ABALTMON_12); 400]])], [ 401 AC_MSG_RESULT([yes]) 402 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1], 403 [Define if langinfo.h defines _NL_ABALTMON_x constants]) 404], [ 405 AC_MSG_RESULT([no]) 406]) 407 408 409dnl Convert some ac_cv_header_* variables to have_* 410dnl 411have_linux_version_h=$ac_cv_header_linux_version_h 412have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h 413have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h 414have_linux_raw_h=$ac_cv_header_linux_raw_h 415have_linux_securebits_h=$ac_cv_header_linux_securebits_h 416have_linux_capability_h=$ac_cv_header_linux_capability_h 417have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h 418have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h 419have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h 420have_security_openpam_h=$ac_cv_header_security_openpam_h 421have_shadow_h=$ac_cv_header_shadow_h 422have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h 423have_utmpx_h=$ac_cv_header_utmpx_h 424have_pty_h=$ac_cv_header_pty_h 425 426AS_CASE([$linux_os:$have_linux_version_h], 427 [yes:no], 428 [AC_MSG_ERROR([kernel headers required on Linux])] 429) 430 431AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 432#include <time.h> 433#include <unistd.h> 434]], [[ 435 int a = 0; 436 struct tm *tm = localtime(0); 437 if (a == -1) /* false */ 438 sleep(tm->tm_gmtoff); 439]])], 440[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?]) 441]) 442 443AC_CHECK_MEMBERS([struct termios.c_line],,, 444 [[#include <termios.h>]]) 445 446AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,, 447 [#include <sys/stat.h>]) 448 449AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]]) 450 451AC_CHECK_DECL([environ], 452 [AC_DEFINE([HAVE_ENVIRON_DECL], [1], 453 [Define to 1 if have **environ prototype])], 454) 455 456AC_CHECK_DECL([strsignal], 457 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1], 458 [Define to 1 if have strsignal function prototype])], 459) 460 461AC_CHECK_DECL([TIOCGLCKTRMIOS], 462 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no], 463 [#include <sys/ioctl.h>]) 464AC_CHECK_DECL([SOCK_CLOEXEC], 465 [have_sock_cloexec=yes], [have_sock_cloexec=no], 466 [#include <sys/types.h> 467 #include <sys/socket.h>]) 468AC_CHECK_DECL([SOCK_NONBLOCK], 469 [have_sock_nonblock=yes], [have_sock_nonblock=no], 470 [#include <sys/types.h> 471 #include <sys/socket.h>]) 472AC_CHECK_DECL([SO_PASSCRED], 473 [have_so_passcred=yes], [have_so_passcred=no], 474 [#include <sys/types.h> 475 #include <sys/socket.h>]) 476 477AC_CHECK_FUNCS([ \ 478 clearenv \ 479 __fpurge \ 480 fpurge \ 481 __fpending \ 482 secure_getenv \ 483 __secure_getenv \ 484 eaccess \ 485 err \ 486 errx \ 487 explicit_bzero \ 488 fmemopen \ 489 fsync \ 490 utimensat \ 491 getdomainname \ 492 getdtablesize \ 493 getexecname \ 494 getmntinfo \ 495 getrandom \ 496 getrlimit \ 497 getsgnam \ 498 inotify_init \ 499 jrand48 \ 500 lchown \ 501 llseek \ 502 mempcpy \ 503 mkostemp \ 504 nanosleep \ 505 ntp_gettime \ 506 personality \ 507 pidfd_open \ 508 pidfd_send_signal \ 509 posix_fadvise \ 510 prctl \ 511 qsort_r \ 512 rpmatch \ 513 scandirat \ 514 setprogname \ 515 setresgid \ 516 setresuid \ 517 sched_setattr \ 518 sched_setscheduler \ 519 sigqueue \ 520 srandom \ 521 strnchr \ 522 strndup \ 523 strnlen \ 524 sysconf \ 525 sysinfo \ 526 timegm \ 527 usleep \ 528 vwarnx \ 529 warn \ 530 warnx \ 531]) 532AC_FUNC_FSEEKO 533 534AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no]) 535AC_CHECK_FUNCS([ioperm iopl], [have_io=yes]) 536AC_CHECK_FUNCS([futimens], [have_futimens=yes]) 537AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes]) 538AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no]) 539AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no]) 540AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no]) 541AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no]) 542 543AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes]) 544 545have_setns_syscall="yes" 546UL_CHECK_SYSCALL([setns]) 547AS_IF([test "x$ul_cv_syscall_setns" = xno], [ 548 have_setns_syscall="no" 549]) 550 551UL_CHECK_SYSCALL([pidfd_open]) 552UL_CHECK_SYSCALL([pidfd_send_signal]) 553 554AC_CHECK_FUNCS([isnan], [], 555 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])] 556 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])] 557) 558AC_SUBST([MATH_LIBS]) 559 560 561dnl lib/mononotic.c may require -lrt 562AC_CHECK_FUNCS([clock_gettime], [], 563 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])] 564) 565 566have_timer="no" 567AC_CHECK_FUNCS([timer_create], 568 [have_timer="yes"], 569 [AC_CHECK_LIB([rt], [timer_create], [ 570 have_timer="yes" 571 REALTIME_LIBS="-lrt" 572 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt]) 573 ],[ 574 AC_SEARCH_LIBS([timer_create], [rt], [ 575 AC_MSG_RESULT(yes) 576 have_timer="yes" 577 REALTIME_LIBS="-lrt -lpthread" 578 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread]) 579 ],[], [-lpthread] 580 ) 581 ])] 582) 583 584AC_SUBST([REALTIME_LIBS]) 585 586AS_IF([test x"$have_timer" = xno], [ 587 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"]) 588]) 589 590 591AC_CHECK_LIB([rtas], [rtas_get_sysparm], [ 592 RTAS_LIBS="-lrtas" 593 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [], 594]) 595AC_SUBST([RTAS_LIBS]) 596 597 598AC_CHECK_MEMBER([struct sockaddr.sa_len], 599 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [], 600 [#include <sys/types.h> 601 #include <sys/socket.h>]) 602 603SOCKET_LIBS= 604AC_SEARCH_LIBS([socket], [socket], 605 [AS_IF([test x"$ac_cv_search_socket" != x"none required"], 606 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"]) 607]) 608AC_SUBST([SOCKET_LIBS]) 609 610 611have_dirfd=no 612AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no]) 613AS_IF([test x"$have_dirfd" = xno], [ 614 AC_CHECK_DECLS([dirfd], 615 [have_dirfd=yes], [have_dirfd=no], 616 [#include <sys/types.h> 617 #include <dirent.h>]) 618]) 619 620have_ddfd=no 621AS_IF([test x"$have_dirfd" = xno], [ 622 AC_CHECK_MEMBERS([DIR.dd_fd], 623 [have_ddfd=yes], [have_ddfd=no], 624 [#include <sys/types.h> 625 #include <dirent.h>]) 626]) 627 628AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes]) 629 630 631AC_MSG_CHECKING([whether program_invocation_short_name is defined]) 632AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 633 #include <errno.h> 634]], [[ 635 program_invocation_short_name = "test"; 636]])], [ 637 AC_MSG_RESULT([yes]) 638 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1], 639 [Define if program_invocation_short_name is defined]) 640], [ 641 AC_MSG_RESULT([no]) 642]) 643 644 645AC_MSG_CHECKING([whether __progname is defined]) 646AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;], 647 [if (*__progname == 0) return 1;])], 648 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined]) 649 AC_MSG_RESULT([yes]), 650 AC_MSG_RESULT([no])) 651 652dnl Static compilation 653m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare]) 654 655AC_ARG_ENABLE([static-programs], 656 [AS_HELP_STRING([--enable-static-programs=LIST], 657 [link static the programs in LIST (comma-separated, 658 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])]) 659 660AS_CASE([$enable_static_programs], 661 [yes], 662 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)], 663 [no], 664 [enable_static_programs=] 665) 666 667dnl Set all the individual AM_CONDITIONALs 668m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [ 669 AS_CASE([,$enable_static_programs,], 670 [*,UL_PRG,*], [static_[]UL_PRG=yes] 671 ) 672 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])]) 673 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG), 674 [test "x$static_[]UL_PRG" = xyes]) 675]) 676 677 678AC_ARG_ENABLE([all-programs], 679 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]), 680 [], [enable_all_programs=undefined] 681) 682 683AS_CASE([$enable_all_programs], 684 [yes], [AC_MSG_WARN([force to build all programs by default]) 685 ul_default_estate=check], 686 [no], [AC_MSG_WARN([disable all programs by default]) 687 ul_default_estate=no] 688) 689 690 691AX_CHECK_TLS 692 693AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl 694# include <stdio.h> 695# include <stdlib.h> 696int main() 697{ 698 int i; 699 int rc = 1; 700 char *s; 701 i = sscanf("x", $1, &s); 702 if (i == 1 && *s == 'x') 703 rc = 0; 704 free(s); 705 return rc; 706}]) 707 708AC_CACHE_VAL([scanf_cv_alloc_modifier], 709 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])], 710 [scanf_cv_alloc_modifier=ms], 711 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])], 712 [scanf_cv_alloc_modifier=as], 713 [scanf_cv_alloc_modifier=no] 714 ) 715 , 716 717 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([ 718 #include <stdio.h> 719 #include <unistd.h> 720 721 #if defined(__GLIBC__) && !defined(__UCLIBC__) 722 723 #if !(__GLIBC_PREREQ(2, 7)) 724 #error %m is not available 725 #endif 726 727 #elif defined(_POSIX_VERSION) 728 729 #if _POSIX_VERSION < 200809L 730 #error %m is not available 731 #endif 732 733 #else 734 #error Your C-library is not supported. 735 #endif 736 ])], 737 [scanf_cv_alloc_modifier=ms], 738 [scanf_cv_alloc_modifier=no])] 739 ) 740) 741 742AC_MSG_CHECKING([scanf string alloc modifiers]) 743AS_CASE([$scanf_cv_alloc_modifier], 744 [ms], 745 [AC_MSG_RESULT([(%ms) yes]) 746 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier]) 747 have_scanf_alloc_modifier=yes], 748 [as], 749 [AC_MSG_RESULT([(%as) yes]) 750 have_scanf_alloc_modifier=yes 751 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])], 752 [AC_MSG_RESULT([no]) 753 have_scanf_alloc_modifier=no] 754) 755 756have_pty=no 757AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]), 758 [], [with_util=auto] 759) 760AS_IF([test "x$with_util" = xno], [ 761 AM_CONDITIONAL([HAVE_UTIL], [false]) 762 have_util=no 763], [ 764 UL_CHECK_LIB([util], [openpty]) 765]) 766 767AS_IF([test "x$have_pty_h" = xyes -a "x$have_sys_signalfd_h" = xyes -a "x$have_util" = xyes], [ 768 AM_CONDITIONAL([HAVE_PTY], [true]) 769 AC_DEFINE([HAVE_PTY], [1], [have PTY support]) 770 have_pty=yes 771], [ 772 AM_CONDITIONAL([HAVE_PTY], [false]) 773]) 774 775AC_CHECK_TYPES([union semun], [], [], [[ 776#include <sys/sem.h> 777]]) 778AC_CHECK_TYPES([loff_t]) 779 780 781AC_ARG_ENABLE([widechar], 782 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]), 783 [], [enable_widechar=check] 784) 785UL_BUILD_INIT([widechar]) 786UL_REQUIRES_COMPILE([widechar], [[ 787 #include <wchar.h> 788 #include <wctype.h> 789 #include <stdio.h> 790 #include <stdlib.h> 791 ]], [[ 792 wchar_t wc; 793 wint_t w; 794 w = fgetwc(stdin); 795 if (w == WEOF) exit(1); 796 wc = w; 797 fputwc(wc,stdout); 798 ]], 799 [wchar_t support]) 800 801AS_IF([test "x$build_widechar" = xyes ], [ 802 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?]) 803]) 804 805 806AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[ 807#include <sched.h__> 808]]) 809 810AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes]) 811 812AC_CHECK_TYPES([sighandler_t], [], [], [[ 813#include <signal.h> 814]]) 815 816AC_CHECK_DECLS([CPU_ALLOC], [], [], [[ 817#include <sched.h__> 818]]) 819 820# on Solaris, you can't mix and match standards, since we use c99 821# apparently at this stage, XOPEN_SOURCE will conflict. As workaround, 822# check for crypt.h and use that without XOPEN_SOURCE. 823have_crypt=no 824AC_CHECK_HEADERS([crypt.h]) 825AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 826#ifdef HAVE_CRYPT_H 827#include <crypt.h> 828#else 829#define _XOPEN_SOURCE 830#include <unistd.h> 831#endif 832]], [[ 833char *c = crypt("abc","pw"); 834]])],[ 835 have_libcrypt=no 836 have_crypt=yes 837],[ 838 LIBS="$LIBS -lcrypt" 839 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 840 #ifdef HAVE_CRYPT_H 841 #include <crypt.h> 842 #else 843 #define _XOPEN_SOURCE 844 #include <unistd.h> 845 #endif 846 ]], [[ 847 char *c = crypt("abc","pw"); 848 ]])],[ 849 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?]) 850 have_libcrypt=yes 851 have_crypt=yes 852 ],[ 853 AC_MSG_WARN([crypt() is not available]) 854 ]) 855]) 856AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes]) 857 858 859AC_ARG_WITH([selinux], 860 AS_HELP_STRING([--with-selinux], [compile with SELinux support]), 861 [], [with_selinux=no] 862) 863 864AS_IF([test "x$with_selinux" = xno], [ 865 AM_CONDITIONAL([HAVE_SELINUX], [false]) 866], [ 867 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0], 868 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available]) 869 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux]) 870 AM_CONDITIONAL([HAVE_SELINUX], [true]) 871 have_selinux=yes], 872 [have_selinux=no]) 873 874 AS_CASE([$with_selinux:$have_selinux], 875 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])] 876 ) 877 878 AS_IF([test "x$have_selinux" = xyes], [ 879 UL_SET_FLAGS([], [], [$SELINUX_LIBS]) 880 # This function is missing in old libselinux 1.xx versions 881 AC_CHECK_FUNCS([security_get_initial_context]) 882 UL_RESTORE_FLAGS 883 ]) 884]) 885AC_SUBST([SELINUX_LIBS]) 886AC_SUBST([SELINUX_LIBS_STATIC]) 887 888 889AC_ARG_WITH([audit], 890 AS_HELP_STRING([--with-audit], [compile with audit support]), 891 [], [with_audit=no] 892) 893 894AS_IF([test "x$with_audit" = xno], [ 895 AM_CONDITIONAL([HAVE_AUDIT], [false]) 896], [ 897 UL_CHECK_LIB([audit], [audit_log_user_message]) 898 AS_CASE([$with_audit:$have_audit], 899 [yes:no], 900 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])] 901 ) 902]) 903 904AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]), 905 [], [with_udev=auto] 906) 907 908AS_IF([test "x$with_udev" = xno], [ 909 AM_CONDITIONAL([HAVE_UDEV], [false]) 910], [ 911 UL_CHECK_LIB([udev], [udev_new]) 912 AS_CASE([$with_udev:$have_udev], 913 [yes:no], 914 [AC_MSG_ERROR([udev selected but libudev not found])] 915 ) 916]) 917 918 919dnl wide-char ncurses 920AC_ARG_WITH([ncursesw], 921 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]), 922 [], [with_ncursesw=auto] 923) 924have_ncursesw=no 925have_ncursesw_header=no 926AS_IF([test "x$with_ncursesw" != xno], [ 927 UL_NCURSES_CHECK([ncursesw]) 928 AS_IF([test "x$have_ncursesw" = xyes], [ 929 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes]) 930 AC_CHECK_HEADERS([ncursesw/term.h]) 931 932 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is 933 # unsuccessful to avoid too many *_H permitations in config.h 934 AS_IF([test "x$have_ncursesw_header" = xno], [ 935 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes]) 936 AC_CHECK_HEADERS([term.h]) 937 ]) 938 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no]) 939 ]) 940 AS_IF([test "x$have_ncursesw" = xyes], [ 941 CURSES_LIB_NAME="ncursesw" 942 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available]) 943 ]) 944]) 945AS_CASE([$with_ncursesw:$have_ncursesw], 946 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])]) 947 948 949dnl non-wide ncurses 950AC_ARG_WITH([ncurses], 951 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]), 952 [], [with_ncurses=auto] 953) 954have_ncurses=no 955have_ncurses_header=no 956AS_CASE([$with_ncurses:$build_widechar], 957 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])]) 958 959AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [ 960 UL_NCURSES_CHECK([ncurses]) 961 AS_IF([test "x$have_ncurses" = xyes], [ 962 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes]) 963 AC_CHECK_HEADERS([ncurses/term.h]) 964 965 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is 966 # unsuccessful to avoid too many *_H permitations in config.h 967 AS_IF([test "x$have_ncurses_header" = xno], [ 968 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes]) 969 AC_CHECK_HEADERS([term.h]) 970 ]) 971 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no]) 972 ]) 973 AS_IF([test "x$have_ncurses" = xyes], [ 974 CURSES_LIB_NAME="ncurses" 975 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available]) 976 ]) 977]) 978AS_CASE([$with_ncurses:$have_ncurses], 979 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])]) 980 981AC_SUBST([NCURSES_CFLAGS]) 982AC_SUBST([NCURSES_LIBS]) 983AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes]) 984 985 986AC_ARG_WITH([slang], 987 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]), 988 [], [with_slang=no] 989) 990have_slang=no 991AS_IF([test "x$with_slang" = xyes], [ 992 AC_CHECK_HEADERS([slang.h slang/slang.h]) 993 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h], 994 [have_slang=yes], [], [ 995#ifdef HAVE_SLANG_H 996#include <slang.h> 997#elif defined(HAVE_SLANG_SLANG_H) 998#include <slang/slang.h> 999#endif 1000]) 1001 AS_IF([test "x$have_slang" = xno], [ 1002 AC_MSG_ERROR([slang selected but slcurses.h not found])], 1003 [CURSES_LIB_NAME=slang 1004 ]) 1005]) 1006AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes]) 1007 1008 1009AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [ 1010 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [ 1011 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1, 1012 [Define if curses library has the use_default_colors().]) 1013 ]) 1014 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [ 1015 AC_DEFINE(HAVE_RESIZETERM, 1, 1016 [Define if curses library has the resizeterm().]) 1017 ]) 1018]) 1019 1020 1021AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]), 1022 [], [with_tinfo=auto] 1023) 1024have_tinfo=no 1025have_tinfow=no 1026AS_IF([test "x$with_tinfo" != xno], [ 1027 AS_IF([test "x$have_ncursesw" = xyes], [ 1028 UL_TINFO_CHECK([tinfow]) 1029 ]) 1030 AS_IF([test "x$have_tinfow" = xno], [ 1031 UL_TINFO_CHECK([tinfo]) 1032 ]) 1033]) 1034AC_SUBST([TINFO_LIBS]) 1035AC_SUBST([TINFO_LIBS_STATIC]) 1036AC_SUBST([TINFO_CFLAGS]) 1037AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes]) 1038AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [ 1039 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.]) 1040]) 1041 1042 1043AC_ARG_WITH([readline], 1044 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]), 1045 [], [with_readline=auto] 1046) 1047 1048AS_IF([test "x$with_readline" = xno], [ 1049 AM_CONDITIONAL([HAVE_READLINE], [false]) 1050], [ 1051 UL_CHECK_LIB([readline], [readline]) 1052 AS_CASE([$with_readline:$have_readline], 1053 [yes:no], 1054 [AC_MSG_ERROR([readline selected but libreadline not found ])], 1055 [*:yes], 1056 [READLINE_LIBS="-lreadline" 1057 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"] 1058 ) 1059]) 1060AC_SUBST([READLINE_LIBS]) 1061AC_SUBST([READLINE_LIBS_STATIC]) 1062 1063 1064AC_ARG_WITH([utempter], 1065 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]), 1066 [], [with_utempter=no] 1067) 1068 1069AS_IF([test "x$with_utempter" = xyes], [ 1070 UL_CHECK_LIB([utempter], [utempter_add_record]) 1071 AS_IF([test "x$have_utempter" = xno], [ 1072 AC_MSG_ERROR([utempter selected but libutempter not found]) 1073 ]) 1074], [ 1075 AM_CONDITIONAL([HAVE_UTEMPTER], [false]) 1076]) 1077 1078 1079dnl 1080dnl libuuid 1081dnl 1082AC_ARG_ENABLE([libuuid], 1083 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]), 1084 [], [UL_DEFAULT_ENABLE([libuuid], [yes])] 1085) 1086UL_BUILD_INIT([libuuid]) 1087AC_SUBST([LIBUUID_VERSION]) 1088AC_SUBST([LIBUUID_VERSION_INFO]) 1089AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes) 1090 1091AC_ARG_ENABLE([libuuid-force-uuidd], 1092 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]), 1093 [], [enable_libuuid_force_uuidd=no] 1094) 1095 1096AS_IF([test "x$build_libuuid" = xyes], [ 1097 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.]) 1098]) 1099 1100dnl 1101dnl libblkid 1102dnl 1103AC_ARG_ENABLE([libblkid], 1104 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]), 1105 [], [UL_DEFAULT_ENABLE([libblkid], [check])] 1106) 1107UL_BUILD_INIT([libblkid]) 1108UL_REQUIRES_HAVE([libblkid], [openat], [openat functions]) 1109UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function]) 1110AC_SUBST([LIBBLKID_DATE]) 1111AC_SUBST([LIBBLKID_VERSION]) 1112AC_SUBST([LIBBLKID_VERSION_INFO]) 1113AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string]) 1114AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string]) 1115AS_IF([test "x$build_libblkid" = xyes], [ 1116 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.]) 1117]) 1118AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes]) 1119AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes]) 1120 1121dnl 1122dnl libmount 1123dnl 1124AC_ARG_ENABLE([libmount], 1125 AS_HELP_STRING([--disable-libmount], [do not build libmount]), 1126 [], [UL_DEFAULT_ENABLE([libmount], [check])] 1127) 1128UL_BUILD_INIT([libmount]) 1129UL_REQUIRES_BUILD([libmount], [libblkid]) 1130UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier]) 1131UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function]) 1132AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) 1133AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes]) 1134AS_IF([test "x$build_libmount" = xyes], [ 1135 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.]) 1136 AS_IF([test "x$have_setns_syscall" = "xyes"], [ 1137 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.]) 1138 ],[ 1139 AC_MSG_WARN([libmount will be compiled without namespaces support]) 1140 ]) 1141]) 1142 1143AC_SUBST([LIBMOUNT_VERSION]) 1144AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR) 1145AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR) 1146AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE) 1147AC_SUBST([LIBMOUNT_VERSION_INFO]) 1148AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string]) 1149 1150AC_ARG_ENABLE([libmount-support-mtab], 1151 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]), 1152 [], [enable_libmount_support_mtab=no] 1153) 1154 1155AS_IF([test "x$enable_libmount_support_mtab" = xyes], [ 1156 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.]) 1157]) 1158 1159dnl 1160dnl libsmartcols 1161dnl 1162AC_ARG_ENABLE([libsmartcols], 1163 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]), 1164 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])] 1165) 1166UL_BUILD_INIT([libsmartcols]) 1167AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes]) 1168 1169AC_SUBST([LIBSMARTCOLS_VERSION]) 1170AC_SUBST([LIBSMARTCOLS_VERSION_INFO]) 1171AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string]) 1172 1173 1174dnl 1175dnl libfdisk 1176dnl 1177AC_ARG_ENABLE([libfdisk], 1178 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]), 1179 [], [UL_DEFAULT_ENABLE([libfdisk], [check])] 1180) 1181UL_BUILD_INIT([libfdisk]) 1182UL_REQUIRES_BUILD([libfdisk], [libuuid]) 1183AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes]) 1184AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes]) 1185 1186AS_IF([test "x$build_libblkid" = xyes], 1187 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"]) 1188AC_SUBST([LIBFDISK_PC_REQUIRES]) 1189 1190AC_SUBST([LIBFDISK_VERSION]) 1191AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR) 1192AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR) 1193AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE) 1194AC_SUBST([LIBFDISK_VERSION_INFO]) 1195AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string]) 1196 1197 1198AC_ARG_ENABLE([fdisks], 1199 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]), 1200 [], [UL_DEFAULT_ENABLE([fdisks], [check])] 1201) 1202enable_fdisk=$enable_fdisks 1203enable_sfdisk=$enable_fdisks 1204enable_cfdisk=$enable_fdisks 1205 1206UL_BUILD_INIT([fdisk]) 1207UL_REQUIRES_HAVE([fdisk], [openat], [openat functions]) 1208UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function]) 1209UL_REQUIRES_BUILD([fdisk], [libfdisk]) 1210UL_REQUIRES_BUILD([fdisk], [libsmartcols]) 1211AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes]) 1212 1213 1214UL_BUILD_INIT([sfdisk]) 1215UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions]) 1216UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function]) 1217UL_REQUIRES_BUILD([sfdisk], [libfdisk]) 1218UL_REQUIRES_BUILD([sfdisk], [libsmartcols]) 1219AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes]) 1220 1221 1222UL_BUILD_INIT([cfdisk]) 1223UL_REQUIRES_BUILD([cfdisk], [libfdisk]) 1224UL_REQUIRES_BUILD([cfdisk], [libsmartcols]) 1225UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function]) 1226UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library]) 1227AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes]) 1228 1229 1230AC_ARG_ENABLE([mount], 1231 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]), 1232 [], [UL_DEFAULT_ENABLE([mount], [check])] 1233) 1234UL_BUILD_INIT([mount]) 1235UL_REQUIRES_LINUX([mount]) 1236UL_REQUIRES_BUILD([mount], [libmount]) 1237AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes]) 1238 1239 1240AC_ARG_ENABLE([losetup], 1241 AS_HELP_STRING([--disable-losetup], [do not build losetup]), 1242 [], [UL_DEFAULT_ENABLE([losetup], [check])] 1243) 1244UL_BUILD_INIT([losetup]) 1245UL_REQUIRES_LINUX([losetup]) 1246UL_REQUIRES_BUILD([losetup], [libsmartcols]) 1247AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes]) 1248 1249AC_ARG_ENABLE([zramctl], 1250 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]), 1251 [], [UL_DEFAULT_ENABLE([zramctl], [check])] 1252) 1253UL_BUILD_INIT([zramctl]) 1254UL_REQUIRES_LINUX([zramctl]) 1255UL_REQUIRES_BUILD([zramctl], [libsmartcols]) 1256AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes]) 1257 1258AC_ARG_ENABLE([fsck], 1259 AS_HELP_STRING([--disable-fsck], [do not build fsck]), 1260 [], [UL_DEFAULT_ENABLE([fsck], [check])] 1261) 1262UL_BUILD_INIT([fsck]) 1263UL_REQUIRES_BUILD([fsck], [libmount]) 1264AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes]) 1265 1266 1267AC_ARG_ENABLE([partx], 1268 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]), 1269 [], [UL_DEFAULT_ENABLE([partx], [check])] 1270) 1271UL_BUILD_INIT([partx]) 1272UL_REQUIRES_LINUX([partx]) 1273UL_REQUIRES_BUILD([partx], [libblkid]) 1274UL_REQUIRES_BUILD([partx], [libsmartcols]) 1275AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes]) 1276 1277 1278AC_ARG_ENABLE([uuidd], 1279 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]), 1280 [], [UL_DEFAULT_ENABLE([uuidd], [check])] 1281) 1282UL_BUILD_INIT([uuidd]) 1283UL_REQUIRES_BUILD([uuidd], [libuuid]) 1284UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function]) 1285UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header]) 1286AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [ 1287 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.]) 1288]) 1289AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes]) 1290 1291 1292UL_BUILD_INIT([uuidgen], [check]) 1293UL_REQUIRES_BUILD([uuidgen], [libuuid]) 1294AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes]) 1295 1296UL_BUILD_INIT([uuidparse], [check]) 1297UL_REQUIRES_BUILD([uuidparse], [libuuid]) 1298UL_REQUIRES_BUILD([uuidparse], [libsmartcols]) 1299AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes]) 1300 1301UL_BUILD_INIT([blkid], [check]) 1302UL_REQUIRES_BUILD([blkid], [libblkid]) 1303AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes]) 1304 1305UL_BUILD_INIT([findfs], [check]) 1306UL_REQUIRES_BUILD([findfs], [libblkid]) 1307AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes]) 1308 1309AC_ARG_ENABLE([wipefs], 1310 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]), 1311 [], [UL_DEFAULT_ENABLE([wipefs], [check])] 1312) 1313UL_BUILD_INIT([wipefs]) 1314UL_REQUIRES_BUILD([wipefs], [libblkid]) 1315UL_REQUIRES_BUILD([wipefs], [libsmartcols]) 1316AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes]) 1317 1318UL_BUILD_INIT([findmnt], [check]) 1319UL_REQUIRES_BUILD([findmnt], [libmount]) 1320UL_REQUIRES_BUILD([findmnt], [libblkid]) 1321UL_REQUIRES_BUILD([findmnt], [libsmartcols]) 1322AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes]) 1323 1324 1325AC_ARG_ENABLE([mountpoint], 1326 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]), 1327 [], [UL_DEFAULT_ENABLE([mountpoint], [check])] 1328) 1329UL_BUILD_INIT([mountpoint]) 1330UL_REQUIRES_BUILD([mountpoint], [libmount]) 1331AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes]) 1332 1333 1334AC_ARG_ENABLE([fallocate], 1335 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]), 1336 [], [UL_DEFAULT_ENABLE([fallocate], [check])] 1337) 1338UL_BUILD_INIT([fallocate]) 1339UL_REQUIRES_LINUX([fallocate]) 1340UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])]) 1341AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes]) 1342 1343AS_IF([test "x$build_fallocate" = xyes], [ 1344 dnl check for valid fallocate() function 1345 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64() 1346 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64() 1347 dnl and program can't be linked. 1348 dnl AC_CHECK_FUNC can't catch such errors since it's redefining 1349 dnl function prototype. 1350 AC_MSG_CHECKING([for valid fallocate() function]) 1351 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 1352#ifdef HAVE_UNISTD_H 1353# include <unistd.h> 1354#endif 1355#ifdef HAVE_SYS_TYPES_H 1356# include <sys/types.h> 1357#endif 1358#ifdef HAVE_LINUX_FALLOC_H 1359# include <linux/falloc.h> 1360#endif 1361#ifdef HAVE_FCNTL_H 1362# include <fcntl.h> 1363#endif 1364]],[[ 1365 long ret; 1366 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful); 1367 if (ret != 0) { 1368 return 1; 1369 } 1370 ]])],[ 1371 AC_MSG_RESULT([yes]) 1372 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[ 1373 AC_MSG_RESULT([no])]) 1374]) 1375 1376AS_IF([test "x$build_fallocate" = xyes], [ 1377 dnl check for valid posix_fallocate() function 1378 AC_MSG_CHECKING([for valid posix_fallocate() function]) 1379 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 1380#ifdef HAVE_UNISTD_H 1381# include <unistd.h> 1382#endif 1383#ifdef HAVE_SYS_TYPES_H 1384# include <sys/types.h> 1385#endif 1386#ifdef HAVE_LINUX_FALLOC_H 1387# include <linux/falloc.h> 1388#endif 1389#ifdef HAVE_FCNTL_H 1390# include <fcntl.h> 1391#endif 1392]],[[ 1393 long ret; 1394 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful); 1395 if (ret != 0) { 1396 return 1; 1397 } 1398 ]])],[ 1399 AC_MSG_RESULT([yes]) 1400 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[ 1401 AC_MSG_RESULT([no])]) 1402]) 1403 1404 1405AC_ARG_ENABLE([unshare], 1406 AS_HELP_STRING([--disable-unshare], [do not build unshare]), 1407 [], [UL_DEFAULT_ENABLE([unshare], [check])] 1408) 1409UL_BUILD_INIT([unshare]) 1410UL_REQUIRES_LINUX([unshare]) 1411UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])]) 1412UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file]) 1413AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes]) 1414AC_CHECK_FUNCS([unshare]) 1415 1416AC_ARG_ENABLE([nsenter], 1417 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]), 1418 [], [UL_DEFAULT_ENABLE([nsenter], [check])] 1419) 1420UL_BUILD_INIT([nsenter]) 1421UL_REQUIRES_LINUX([nsenter]) 1422UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall]) 1423AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes]) 1424AC_CHECK_FUNCS([setns]) 1425 1426 1427AC_ARG_WITH([cap_ng], 1428 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]), 1429 [], [with_cap_ng=auto] 1430) 1431AS_IF([test "x$with_cap_ng" = xno], [ 1432 AM_CONDITIONAL([HAVE_CAP_NG], [false]) 1433 have_cap_ng=no 1434],[ 1435 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng]) 1436]) 1437 1438 1439AC_ARG_ENABLE([setpriv], 1440 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]), 1441 [], [UL_DEFAULT_ENABLE([setpriv], [check])] 1442) 1443UL_BUILD_INIT([setpriv]) 1444UL_REQUIRES_LINUX([setpriv]) 1445UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file]) 1446UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file]) 1447UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library]) 1448AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes]) 1449 1450PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no]) 1451AS_IF([test "x$have_pcre" = xyes ], [ 1452 AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available]) 1453]) 1454AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes]) 1455 1456AC_ARG_ENABLE([hardlink], 1457 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]), 1458 [], [UL_DEFAULT_ENABLE([hardlink], [check])] 1459) 1460UL_BUILD_INIT([hardlink]) 1461AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes]) 1462 1463AC_ARG_ENABLE([eject], 1464 AS_HELP_STRING([--disable-eject], [do not build eject]), 1465 [], [UL_DEFAULT_ENABLE([eject], [check])] 1466) 1467UL_BUILD_INIT([eject]) 1468UL_REQUIRES_LINUX([eject]) 1469UL_REQUIRES_BUILD([eject], [libmount]) 1470AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes]) 1471 1472 1473AC_ARG_ENABLE([agetty], 1474 AS_HELP_STRING([--disable-agetty], [do not build agetty]), 1475 [], [UL_DEFAULT_ENABLE([agetty], [check])] 1476) 1477UL_BUILD_INIT([agetty]) 1478UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header]) 1479UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions]) 1480AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes]) 1481AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [ 1482 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature]) 1483],[ 1484 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality]) 1485]) 1486 1487 1488AC_ARG_ENABLE([plymouth_support], 1489 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]), 1490 [], [enable_plymouth_support=check] 1491) 1492UL_BUILD_INIT([plymouth_support]) 1493UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag]) 1494UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag]) 1495UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag]) 1496UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag]) 1497AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes]) 1498AS_IF([test "x$build_plymouth_support" = xyes ], [ 1499 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety]) 1500]) 1501 1502 1503AC_ARG_WITH([libz], 1504 AS_HELP_STRING([--without-libz], [compile without libz]), 1505 [], [with_libz=auto] 1506) 1507AS_IF([test "x$with_libz" = xno], [have_z=no], [ 1508 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no]) 1509]) 1510 1511AC_ARG_WITH([libmagic], 1512 AS_HELP_STRING([--without-libmagic], [compile without libmagic]), 1513 [], [with_libmagic=auto] 1514) 1515AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [ 1516 AC_CHECK_LIB([magic], [magic_open], [ 1517 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.]) 1518 MAGIC_LIBS="-lmagic" 1519 ]) 1520]) 1521AC_SUBST([MAGIC_LIBS]) 1522 1523 1524AC_ARG_ENABLE([cramfs], 1525 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]), 1526 [], [UL_DEFAULT_ENABLE([cramfs], [check])] 1527) 1528UL_BUILD_INIT([cramfs]) 1529UL_REQUIRES_HAVE([cramfs], [z], [z library]) 1530AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes]) 1531 1532 1533AC_ARG_ENABLE([bfs], 1534 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]), 1535 [], [UL_DEFAULT_ENABLE([bfs], [yes])] 1536) 1537UL_BUILD_INIT([bfs]) 1538AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes]) 1539 1540 1541AC_ARG_ENABLE([minix], 1542 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]), 1543 [], [UL_DEFAULT_ENABLE([minix], [yes])] 1544) 1545UL_BUILD_INIT([minix]) 1546AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes]) 1547 1548 1549AC_ARG_ENABLE([fdformat], 1550 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]), 1551 [], [UL_DEFAULT_ENABLE([fdformat], [check])] 1552) 1553UL_BUILD_INIT([fdformat]) 1554UL_REQUIRES_LINUX([fdformat]) 1555AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes]) 1556 1557 1558AC_ARG_ENABLE([hwclock], 1559 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]), 1560 [], [UL_DEFAULT_ENABLE([hwclock], [check])] 1561) 1562have_linuxdummy=$linux_os 1563 1564UL_BUILD_INIT([hwclock]) 1565UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux]) 1566AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes]) 1567 1568AC_ARG_ENABLE([hwclock_cmos], 1569 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]), 1570 [], [enable_hwclock_cmos=check] 1571) 1572UL_BUILD_INIT([hwclock_cmos]) 1573UL_REQUIRES_BUILD([hwclock_cmos], [hwclock]) 1574UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*]) 1575AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes]) 1576AS_IF([test "x$build_hwclock_cmos" = xyes ], [ 1577 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.]) 1578]) 1579 1580AC_ARG_ENABLE([hwclock_gplv3], 1581 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]), 1582 [], [enable_hwclock_gplv3=yes] 1583) 1584AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes]) 1585AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [ 1586 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock]) 1587]) 1588 1589 1590UL_BUILD_INIT([mkfs], [yes]) 1591AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes]) 1592 1593UL_BUILD_INIT([isosize], [yes]) 1594AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes]) 1595 1596 1597UL_BUILD_INIT([fstrim], [check]) 1598UL_REQUIRES_LINUX([fstrim]) 1599UL_REQUIRES_BUILD([fstrim], [libmount]) 1600AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes]) 1601 1602 1603UL_BUILD_INIT([swapon], [check]) 1604UL_REQUIRES_LINUX([swapon]) 1605UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon]) 1606UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff]) 1607UL_REQUIRES_BUILD([swapon], [libblkid]) 1608UL_REQUIRES_BUILD([swapon], [libmount]) 1609UL_REQUIRES_BUILD([swapon], [libsmartcols]) 1610AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes]) 1611AC_CHECK_FUNCS([swapon]) 1612AC_CHECK_FUNCS([swapoff]) 1613 1614 1615UL_BUILD_INIT([lsblk], [check]) 1616UL_REQUIRES_LINUX([lsblk]) 1617UL_REQUIRES_BUILD([lsblk], [libblkid]) 1618UL_REQUIRES_BUILD([lsblk], [libmount]) 1619UL_REQUIRES_BUILD([lsblk], [libsmartcols]) 1620AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes]) 1621 1622 1623UL_BUILD_INIT([lscpu], [check]) 1624UL_REQUIRES_LINUX([lscpu]) 1625UL_REQUIRES_BUILD([lscpu], [libsmartcols]) 1626UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type]) 1627AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes]) 1628 1629 1630AC_ARG_ENABLE([lslogins], 1631 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]), 1632 [], [UL_DEFAULT_ENABLE([lslogins], [check])] 1633) 1634UL_BUILD_INIT([lslogins]) 1635UL_REQUIRES_BUILD([lslogins], [libsmartcols]) 1636UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header]) 1637UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header]) 1638UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions]) 1639AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes]) 1640 1641 1642UL_BUILD_INIT([chcpu], [check]) 1643UL_REQUIRES_LINUX([chcpu]) 1644UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type]) 1645AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes]) 1646 1647 1648AC_ARG_ENABLE([wdctl], 1649 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]), 1650 [], [UL_DEFAULT_ENABLE([wdctl], [check])] 1651) 1652UL_BUILD_INIT([wdctl]) 1653UL_REQUIRES_LINUX([wdctl]) 1654UL_REQUIRES_BUILD([wdctl], [libsmartcols]) 1655UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file]) 1656AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes]) 1657 1658 1659UL_BUILD_INIT([swaplabel], [check]) 1660UL_REQUIRES_BUILD([swaplabel], [libblkid]) 1661AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes]) 1662 1663 1664UL_BUILD_INIT([mkswap], [yes]) 1665AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes]) 1666AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [ 1667 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs]) 1668]) 1669 1670 1671AC_ARG_ENABLE([cal], 1672 AS_HELP_STRING([--disable-cal], [do not build cal]), 1673 [], [UL_DEFAULT_ENABLE([cal], [check])] 1674) 1675UL_BUILD_INIT([cal]) 1676AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes]) 1677 1678AC_ARG_ENABLE([logger], 1679 AS_HELP_STRING([--disable-logger], [do not build logger]), 1680 [], [UL_DEFAULT_ENABLE([logger], [check])] 1681) 1682UL_BUILD_INIT([logger]) 1683AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes]) 1684 1685UL_BUILD_INIT([look], [yes]) 1686AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes]) 1687 1688UL_BUILD_INIT([mcookie], [yes]) 1689AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes]) 1690 1691UL_BUILD_INIT([namei], [yes]) 1692AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes]) 1693 1694matriplet="$($CC -print-multiarch 2>/dev/null || true)" 1695if test "x$matriplet" != "x"; then 1696 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"], 1697 ["Multi-arch triplet for whereis library search path"]) 1698fi 1699UL_BUILD_INIT([whereis], [yes]) 1700AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes]) 1701 1702UL_BUILD_INIT([getopt], [yes]) 1703AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes]) 1704 1705 1706UL_BUILD_INIT([blockdev], [check]) 1707UL_REQUIRES_LINUX([blockdev]) 1708AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes]) 1709 1710 1711UL_BUILD_INIT([prlimit], [check]) 1712UL_REQUIRES_LINUX([prlimit]) 1713UL_REQUIRES_BUILD([prlimit], [libsmartcols]) 1714UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64]) 1715AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes]) 1716AS_IF([test "x$build_prlimit" = xyes], [ 1717 AC_CHECK_FUNCS([prlimit]) 1718]) 1719 1720 1721UL_BUILD_INIT([lslocks], [check]) 1722UL_REQUIRES_LINUX([lslocks]) 1723UL_REQUIRES_BUILD([lslocks], [libmount]) 1724UL_REQUIRES_BUILD([lslocks], [libsmartcols]) 1725AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes]) 1726 1727 1728AC_ARG_ENABLE([switch_root], 1729 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]), 1730 [], [UL_DEFAULT_ENABLE([switch_root], [check])] 1731) 1732UL_BUILD_INIT([switch_root]) 1733UL_REQUIRES_LINUX([switch_root]) 1734UL_REQUIRES_HAVE([switch_root], [openat], [openat function]) 1735UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function]) 1736AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes]) 1737 1738 1739AC_ARG_ENABLE([pivot_root], 1740 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]), 1741 [], [UL_DEFAULT_ENABLE([pivot_root], [check])] 1742) 1743UL_BUILD_INIT([pivot_root]) 1744UL_REQUIRES_LINUX([pivot_root]) 1745UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])]) 1746AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes]) 1747 1748 1749UL_BUILD_INIT([flock], [check]) 1750UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function]) 1751AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes]) 1752 1753 1754AC_ARG_ENABLE([lsmem], 1755 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]), 1756 [], [UL_DEFAULT_ENABLE([lsmem], [check])] 1757) 1758UL_BUILD_INIT([lsmem]) 1759UL_REQUIRES_LINUX([lsmem]) 1760UL_REQUIRES_BUILD([lsmem], [libsmartcols]) 1761AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes]) 1762 1763 1764AC_ARG_ENABLE([chmem], 1765 AS_HELP_STRING([--disable-chmem], [do not build chmem]), 1766 [], [UL_DEFAULT_ENABLE([chmem], [check])] 1767) 1768UL_BUILD_INIT([chmem]) 1769UL_REQUIRES_LINUX([chmem]) 1770AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes]) 1771 1772UL_BUILD_INIT([ipcmk], [yes]) 1773AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes]) 1774 1775 1776AC_ARG_ENABLE([ipcrm], 1777 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]), 1778 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])] 1779) 1780UL_BUILD_INIT([ipcrm]) 1781AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes]) 1782 1783AC_ARG_ENABLE([ipcs], 1784 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]), 1785 [], [UL_DEFAULT_ENABLE([ipcs], [yes])] 1786) 1787UL_BUILD_INIT([ipcs]) 1788AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes]) 1789 1790 1791AC_ARG_ENABLE([irqtop], 1792 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]), 1793 [], [UL_DEFAULT_ENABLE([irqtop], [check])] 1794) 1795UL_BUILD_INIT([irqtop]) 1796UL_REQUIRES_LINUX([irqtop]) 1797UL_REQUIRES_BUILD([irqtop], [libsmartcols]) 1798UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function]) 1799UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library]) 1800AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes]) 1801 1802AC_ARG_ENABLE([lsirq], 1803 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]), 1804 [], [UL_DEFAULT_ENABLE([lsirq], [check])] 1805) 1806UL_BUILD_INIT([lsirq]) 1807UL_REQUIRES_LINUX([lsirq]) 1808UL_REQUIRES_BUILD([lsirq], [libsmartcols]) 1809AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes]) 1810 1811 1812UL_BUILD_INIT([choom], [check]) 1813UL_REQUIRES_LINUX([choom]) 1814AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes]) 1815 1816UL_BUILD_INIT([lsipc], [check]) 1817UL_REQUIRES_LINUX([lsipc]) 1818UL_REQUIRES_BUILD([lsipc], [libsmartcols]) 1819AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes]) 1820 1821UL_BUILD_INIT([lsns], [check]) 1822UL_REQUIRES_LINUX([lsns]) 1823UL_REQUIRES_BUILD([lsns], [libsmartcols]) 1824UL_REQUIRES_BUILD([lsns], [libmount]) 1825AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes]) 1826 1827UL_BUILD_INIT([renice], [yes]) 1828AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes]) 1829 1830 1831AC_ARG_ENABLE([rfkill], 1832 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]), 1833 [], [UL_DEFAULT_ENABLE([rfkill], [check])] 1834) 1835UL_BUILD_INIT([rfkill]) 1836UL_REQUIRES_LINUX([rfkill]) 1837UL_REQUIRES_BUILD([rfkill], [libsmartcols]) 1838AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes]) 1839 1840 1841UL_BUILD_INIT([setsid], [yes]) 1842AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes]) 1843 1844UL_BUILD_INIT([readprofile], [check]) 1845UL_REQUIRES_LINUX([readprofile]) 1846AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes]) 1847 1848UL_BUILD_INIT([dmesg], [check]) 1849UL_REQUIRES_LINUX([dmesg]) 1850AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes]) 1851 1852UL_BUILD_INIT([ctrlaltdel], [check]) 1853UL_REQUIRES_LINUX([ctrlaltdel]) 1854dnl we assume reboot() to be the 1-argument variant, because even considering 1855dnl widely used alternative C libraries like uclibc, dietlibc and musl, 1856dnl reboot() with multiple arguments is yet only found in glibc versions 1857dnl earlier than 2.x. 1858UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function]) 1859AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes]) 1860 1861UL_BUILD_INIT([fincore], [check]) 1862UL_REQUIRES_LINUX([fincore]) 1863UL_REQUIRES_BUILD([fincore], [libsmartcols]) 1864AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes]) 1865 1866UL_BUILD_INIT([fsfreeze], [check]) 1867UL_REQUIRES_LINUX([fsfreeze]) 1868AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes]) 1869 1870UL_BUILD_INIT([blkdiscard], [check]) 1871UL_REQUIRES_LINUX([blkdiscard]) 1872AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes]) 1873 1874UL_BUILD_INIT([blkzone], [check]) 1875UL_REQUIRES_LINUX([blkzone]) 1876UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header]) 1877AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes]) 1878 1879UL_BUILD_INIT([ldattach], [check]) 1880UL_REQUIRES_LINUX([ldattach]) 1881AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes]) 1882 1883UL_BUILD_INIT([rtcwake], [check]) 1884UL_REQUIRES_LINUX([rtcwake]) 1885AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes]) 1886 1887UL_BUILD_INIT([setarch], [check]) 1888UL_REQUIRES_LINUX([setarch]) 1889AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes]) 1890 1891UL_BUILD_INIT([script], [check]) 1892UL_REQUIRES_HAVE([script], [pty]) 1893AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes]) 1894 1895UL_BUILD_INIT([scriptreplay], [yes]) 1896AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes]) 1897 1898UL_BUILD_INIT([scriptlive], [check]) 1899UL_REQUIRES_HAVE([scriptlive], [pty]) 1900AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes]) 1901 1902UL_BUILD_INIT([col], [yes]) 1903AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes]) 1904 1905UL_BUILD_INIT([colcrt], [yes]) 1906AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes]) 1907 1908UL_BUILD_INIT([colrm], [yes]) 1909AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes]) 1910 1911UL_BUILD_INIT([column], [check]) 1912UL_REQUIRES_BUILD([column], [libsmartcols]) 1913AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes]) 1914 1915UL_BUILD_INIT([hexdump], [yes]) 1916AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes]) 1917 1918UL_BUILD_INIT([rev], [yes]) 1919AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes]) 1920 1921 1922AC_ARG_ENABLE([tunelp], 1923 AS_HELP_STRING([--enable-tunelp], [build tunelp]), 1924 [], [UL_DEFAULT_ENABLE([tunelp], [no])] 1925) 1926UL_BUILD_INIT([tunelp]) 1927UL_REQUIRES_LINUX([tunelp]) 1928AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes]) 1929 1930 1931AC_ARG_ENABLE([kill], 1932 AS_HELP_STRING([--disable-kill], [do not build kill]), 1933 [], [UL_DEFAULT_ENABLE([kill], [check])] 1934) 1935UL_BUILD_INIT([kill]) 1936UL_REQUIRES_LINUX([kill]) 1937AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes]) 1938 1939 1940AC_ARG_ENABLE([last], 1941 AS_HELP_STRING([--disable-last], [do not build last]), 1942 [], [UL_DEFAULT_ENABLE([last], [check])] 1943) 1944UL_BUILD_INIT([last]) 1945UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header]) 1946UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions]) 1947AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes]) 1948 1949 1950AC_ARG_ENABLE([utmpdump], 1951 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]), 1952 [], [UL_DEFAULT_ENABLE([utmpdump], [check])] 1953) 1954UL_BUILD_INIT([utmpdump]) 1955UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header]) 1956UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions]) 1957AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes]) 1958 1959 1960AC_ARG_ENABLE([line], 1961 AS_HELP_STRING([--enable-line], [build line]), 1962 [], [UL_DEFAULT_ENABLE([line], [no])] 1963) 1964UL_BUILD_INIT([line]) 1965AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes]) 1966 1967 1968AC_ARG_ENABLE([mesg], 1969 AS_HELP_STRING([--disable-mesg], [do not build mesg]), 1970 [], [UL_DEFAULT_ENABLE([mesg], [yes])] 1971) 1972UL_BUILD_INIT([mesg]) 1973AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes]) 1974 1975 1976AC_ARG_ENABLE([raw], 1977 AS_HELP_STRING([--disable-raw], [do not build raw]), 1978 [], [UL_DEFAULT_ENABLE([raw], [check])] 1979) 1980UL_BUILD_INIT([raw]) 1981UL_REQUIRES_LINUX([raw]) 1982UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file]) 1983AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes]) 1984 1985 1986AC_ARG_ENABLE([rename], 1987 AS_HELP_STRING([--disable-rename], [do not build rename]), 1988 [], [UL_DEFAULT_ENABLE([rename], [yes])] 1989) 1990UL_BUILD_INIT([rename]) 1991AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes]) 1992 1993 1994AC_ARG_ENABLE([vipw], 1995 AS_HELP_STRING([--enable-vipw], [build vipw]), 1996 [], [UL_DEFAULT_ENABLE([vipw], [no])] 1997) 1998UL_BUILD_INIT([vipw]) 1999UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header]) 2000AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes]) 2001 2002 2003AC_ARG_ENABLE([newgrp], 2004 AS_HELP_STRING([--enable-newgrp], [build newgrp]), 2005 [], [UL_DEFAULT_ENABLE([newgrp], [no])] 2006) 2007UL_BUILD_INIT([newgrp]) 2008UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function]) 2009AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes]) 2010 2011 2012AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]), 2013 [], [with_user=check] 2014) 2015have_user=no 2016AS_IF([test "x$with_user" != xno], [ 2017 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no]) 2018 AS_CASE([$with_user:$have_user], 2019 [yes:no], 2020 [AC_MSG_ERROR([user selected but libuser not found])], 2021 [*:yes], 2022 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])] 2023 ) 2024 # temporary solution, libuser has stupid .pc where are exported all 2025 # private dependencies to Requires: instead of Requires.private: 2026 AS_IF([test "x$have_user" = xyes], [ 2027 LIBUSER_LIBS=-luser 2028 ]) 2029]) 2030AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes]) 2031 2032AC_ARG_ENABLE([chfn-chsh-password], 2033 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]), 2034 [], [enable_chfn_chsh_password=yes] 2035) 2036 2037AC_ARG_ENABLE([chfn-chsh], 2038 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]), 2039 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])] 2040) 2041UL_BUILD_INIT([chfn_chsh]) 2042UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header]) 2043UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function]) 2044 2045AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [ 2046 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file]) 2047 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?]) 2048]) 2049AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes]) 2050AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes]) 2051 2052AC_ARG_ENABLE([chsh-only-listed], 2053 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]), 2054 [], enable_chsh_only_listed=yes 2055) 2056 2057AS_IF([test "x$enable_chsh_only_listed" = xyes], [ 2058 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?]) 2059]) 2060 2061 2062AC_ARG_ENABLE([login], 2063 AS_HELP_STRING([--disable-login], [do not build login]), 2064 [], [UL_DEFAULT_ENABLE([login], [check])] 2065) 2066UL_BUILD_INIT([login]) 2067UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file]) 2068UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions]) 2069UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header]) 2070UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions]) 2071AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes]) 2072 2073AC_ARG_ENABLE([login-chown-vcs], 2074 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]), 2075 [], [enable_login_chown_vcs=no] 2076) 2077 2078AS_IF([test "x$enable_login_chown_vcs" = xyes], [ 2079 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?]) 2080]) 2081 2082AC_ARG_ENABLE([login-stat-mail], 2083 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]), 2084 [], [enable_login_stat_mail=no] 2085) 2086 2087AS_IF([test "x$enable_login_stat_mail" = xyes], [ 2088 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?]) 2089]) 2090 2091 2092AC_ARG_ENABLE([nologin], 2093 AS_HELP_STRING([--disable-nologin], [do not build nologin]), 2094 [], [UL_DEFAULT_ENABLE([nologin], [yes])] 2095) 2096UL_BUILD_INIT([nologin]) 2097AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes]) 2098 2099 2100AC_ARG_ENABLE([sulogin], 2101 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]), 2102 [], [UL_DEFAULT_ENABLE([sulogin], [check])] 2103) 2104UL_BUILD_INIT([sulogin]) 2105UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function]) 2106UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header]) 2107AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes]) 2108 2109 2110AC_ARG_ENABLE([su], 2111 AS_HELP_STRING([--disable-su], [do not build su]), 2112 [], [UL_DEFAULT_ENABLE([su], [check])] 2113) 2114UL_BUILD_INIT([su]) 2115UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file]) 2116UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header]) 2117UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions]) 2118AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes]) 2119 2120 2121AC_ARG_ENABLE([runuser], 2122 AS_HELP_STRING([--disable-runuser], [do not build runuser]), 2123 [], [UL_DEFAULT_ENABLE([runuser], [check])] 2124) 2125UL_BUILD_INIT([runuser]) 2126UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file]) 2127UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header]) 2128UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions]) 2129AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes]) 2130 2131 2132AC_ARG_ENABLE([ul], 2133 AS_HELP_STRING([--disable-ul], [do not build ul]), 2134 [], [UL_DEFAULT_ENABLE([ul], [check])] 2135) 2136UL_BUILD_INIT([ul]) 2137UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries]) 2138AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes]) 2139 2140 2141AC_ARG_ENABLE([more], 2142 AS_HELP_STRING([--disable-more], [do not build more]), 2143 [], [UL_DEFAULT_ENABLE([more], [check])] 2144) 2145UL_BUILD_INIT([more]) 2146UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries]) 2147UL_REQUIRES_LINUX([more]) 2148AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes]) 2149 2150 2151AC_ARG_ENABLE([pg], 2152 AS_HELP_STRING([--enable-pg], [build pg]), 2153 [], [UL_DEFAULT_ENABLE([pg], [no])] 2154) 2155UL_BUILD_INIT([pg]) 2156UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library]) 2157AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes]) 2158 2159 2160AC_ARG_ENABLE([setterm], 2161 AS_HELP_STRING([--disable-setterm], [do not build setterm]), 2162 [], [UL_DEFAULT_ENABLE([setterm], [check])] 2163) 2164UL_BUILD_INIT([setterm]) 2165UL_REQUIRES_LINUX([setterm]) 2166UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library]) 2167AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes]) 2168 2169# build_schedutils= is just configure-only variable to control 2170# ionice, taskset and chrt 2171AC_ARG_ENABLE([schedutils], 2172 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]), 2173 [], [UL_DEFAULT_ENABLE([schedutils], [check])] 2174) 2175 2176 2177UL_ENABLE_ALIAS([ionice], [schedutils]) 2178UL_BUILD_INIT([ionice]) 2179UL_REQUIRES_SYSCALL_CHECK([ionice], 2180 [UL_CHECK_SYSCALL([ioprio_set], 2181 [alpha], [442], 2182 [i*86], [289], 2183 [ia64*], [1274], 2184 [powerpc*], [273], 2185 [s390*], [282], 2186 [sparc*], [196], 2187 [sh*], [288], 2188 [x86_64*], [251])], 2189 [ioprio_set]) 2190 2191UL_REQUIRES_SYSCALL_CHECK([ionice], 2192 [UL_CHECK_SYSCALL([ioprio_get], 2193 [alpha], [443], 2194 [i*86], [290], 2195 [ia64*], [1275], 2196 [powerpc*], [274], 2197 [s390*], [283], 2198 [sparc*], [218], 2199 [sh*], [289], 2200 [x86_64*], [252])], 2201 [ioprio_get]) 2202 2203AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes]) 2204 2205 2206UL_ENABLE_ALIAS([taskset], [schedutils]) 2207UL_BUILD_INIT([taskset]) 2208UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type]) 2209UL_REQUIRES_SYSCALL_CHECK([taskset], 2210 [UL_CHECK_SYSCALL([sched_getaffinity])], 2211 [sched_getaffinity]) 2212AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes]) 2213 2214 2215have_schedsetter=no 2216AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes], 2217 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes]) 2218 2219UL_ENABLE_ALIAS([chrt], [schedutils]) 2220UL_BUILD_INIT([chrt]) 2221UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions]) 2222AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes]) 2223 2224AS_IF([test "x$build_chrt" = xyes], [ 2225 UL_CHECK_SYSCALL([sched_setattr]) 2226]) 2227 2228 2229AC_ARG_ENABLE([wall], 2230 AS_HELP_STRING([--disable-wall], [do not build wall]), 2231 [], [UL_DEFAULT_ENABLE([wall], [check])] 2232) 2233UL_BUILD_INIT([wall]) 2234UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header]) 2235AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes]) 2236 2237 2238AC_ARG_ENABLE([write], 2239 AS_HELP_STRING([--enable-write], [build write]), 2240 [], [UL_DEFAULT_ENABLE([write], [no])] 2241) 2242UL_BUILD_INIT([write]) 2243UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header]) 2244UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions]) 2245AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes]) 2246 2247 2248AC_ARG_WITH([btrfs], 2249 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]), 2250 [], [with_btrfs=check] 2251) 2252have_btrfs=no 2253AS_IF([test "x$with_btrfs" != xno], [ 2254 AS_CASE([$with_btrfs:$have_linux_btrfs_h], 2255 [yes:no], 2256 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])], 2257 [check:no], 2258 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])], 2259 [*:yes], 2260 [have_btrfs=yes 2261 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])] 2262 ) 2263]) 2264AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes]) 2265 2266 2267AC_ARG_WITH([systemd], 2268 AS_HELP_STRING([--without-systemd], [do not build with systemd support]), 2269 [], [with_systemd=check] 2270) 2271 2272have_systemd=no 2273AS_IF([test "x$with_systemd" != xno], [ 2274 # new version -- all libsystemd-* libs merged into libsystemd 2275 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no]) 2276 # old versions 2277 AS_IF([test "x$have_systemd" != "xyes"], [ 2278 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon], 2279 [have_systemd_daemon=yes], [have_systemd_daemon=no]) 2280 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal], 2281 [have_systemd_journal=yes], [have_systemd_journal=no]) 2282 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[ 2283 have_systemd=yes]) 2284 ]) 2285 AS_CASE([$with_systemd:$have_systemd], 2286 [yes:no], 2287 [AC_MSG_ERROR([systemd expected but libsystemd not found])], 2288 [*:yes], 2289 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available]) 2290 ) 2291]) 2292AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes]) 2293 2294 2295AC_ARG_WITH([systemdsystemunitdir], 2296 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]), 2297 [], [with_systemdsystemunitdir=check] 2298) 2299AS_IF([test "x$with_systemdsystemunitdir" = xcheck], [ 2300 AS_IF([test "x$have_systemd" = xyes], [ 2301 with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd` 2302 ],[ 2303 with_systemdsystemunitdir=no 2304 ]) 2305]) 2306AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [ 2307 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) 2308]) 2309 2310 2311AC_ARG_WITH([smack], 2312 AS_HELP_STRING([--with-smack], [build with SMACK support]), 2313 [], [with_smack=no] 2314) 2315AS_IF([test "x$with_smack" = xyes], [ 2316 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support]) 2317]) 2318 2319AC_ARG_WITH([econf], 2320 AS_HELP_STRING([--without-econf], [do not use libeconf]), 2321 [], [with_econf=check] 2322) 2323 2324have_econf=no 2325AS_IF([test "x$with_econf" != xno], [ 2326 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no]) 2327 AS_CASE([$with_econf:$have_econf], 2328 [yes:no], 2329 [AC_MSG_ERROR([libeconf expected but libeconf not found])], 2330 [*:yes], 2331 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available]) 2332 ) 2333]) 2334AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes]) 2335 2336AC_ARG_WITH([vendordir], 2337 AS_HELP_STRING([--with-vendordir=DIR], [Direcotry for distribution provided configuration files]), 2338 [], [] 2339) 2340AC_SUBST([vendordir], [$with_vendordir]) 2341AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x]) 2342AS_IF([test "x$with_vendordir" != x], [ 2343 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir]) 2344]) 2345 2346 2347AC_ARG_WITH([bashcompletiondir], 2348 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]), 2349 [], 2350 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [ 2351 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion` 2352 ], [ 2353 with_bashcompletiondir=${datadir}/bash-completion/completions 2354 ]) 2355]) 2356AC_SUBST([bashcompletiondir], [$with_bashcompletiondir]) 2357 2358AC_ARG_ENABLE([bash-completion], 2359 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]), 2360 [], [enable_bash_completion=yes] 2361) 2362 2363AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes]) 2364 2365 2366AC_ARG_WITH([python], 2367 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]), 2368 [], [with_python=check withval=check] 2369) 2370 2371have_python=no 2372have_libpython=no 2373AS_IF([test "x$with_python" != xno], [ 2374 # We follow distributions default and look for PKG module name "python" 2375 # (minimal version is 2) but if major version is explicitly specified by 2376 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or 2377 # "python3". 2378 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck], 2379 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"]) 2380 2381 # check for python interpreter 2382 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no]) 2383 AS_CASE([$with_python:$have_python], 2384 [yes:no], 2385 [AC_MSG_ERROR([python selected but python interpreter not found])], 2386 [check:no], 2387 [AC_MSG_WARN([python interpreter not found, do not build python bindings])], 2388 [*:yes], 2389 # check for python development stuff 2390 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], 2391 [have_libpython=yes], [have_libpython=no])] 2392 ) 2393]) 2394 2395 2396AC_ARG_ENABLE([pylibmount], 2397 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]), 2398 [], [UL_DEFAULT_ENABLE([pylibmount], [check])] 2399) 2400UL_BUILD_INIT([pylibmount]) 2401UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython]) 2402UL_REQUIRES_BUILD([pylibmount], [libmount]) 2403AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"]) 2404 2405# We need to introduce a verbatim dependency into the Makefile, without automake 2406# trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable. 2407verbatim_pylibmount_dependency=' 2408 2409# pylibmountexec module must be installed after usrlib_exec libraries, 2410# otherwise the libtool relink step will fail to find libmount.la and 2411# will try -lmount which is possibly not available. 2412install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES 2413 2414' 2415AC_SUBST([verbatim_pylibmount_dependency]) 2416AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency]) 2417 2418AC_ARG_ENABLE([pg-bell], 2419 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]), 2420 [], [enable_pg_bell=yes] 2421) 2422 2423AS_IF([test "x$enable_pg_bell" = xyes], [ 2424 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?]) 2425]) 2426 2427 2428AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs]) 2429AC_ARG_ENABLE([fs-paths-default], 2430 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]), 2431 [AS_CASE([$enableval], 2432 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"], 2433 [no], [fs_paths_defaults=""], 2434 [fs_paths_defaults="$enableval"] 2435 )], 2436 [fs_paths_defaults="FS_PATHS_DEFAULT"] 2437) 2438AC_ARG_ENABLE([fs-paths-extra], 2439 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]), 2440 [AS_CASE([$enableval], 2441 [yes|no], [fs_paths_extra=""], 2442 [fs_paths_extra="$enableval"] 2443 )], 2444 [fs_paths_extra=""] 2445) 2446fs_paths="$fs_paths_defaults" 2447AS_IF([test "x$fs_paths_extra" != "x"], [ 2448 AS_IF([test "x$fs_paths" != "x"], [ 2449 fs_paths="${fs_paths}:" 2450 ]) 2451 fs_paths="${fs_paths}${fs_paths_extra}" 2452]) 2453AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers]) 2454 2455 2456AC_ARG_ENABLE([use-tty-group], 2457 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]), 2458 [], [enable_use_tty_group=yes] 2459) 2460AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes]) 2461 2462AS_IF([test "x$enable_use_tty_group" = xyes], [ 2463 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?]) 2464]) 2465 2466 2467AC_ARG_ENABLE([sulogin-emergency-mount], 2468 AS_HELP_STRING([--enable-sulogin-emergency-mount], 2469 [use emergency mount of /dev and /proc for sulogin]), 2470 [], [enable_sulogin_emergency_mount=no] 2471) 2472 2473AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [ 2474 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1], 2475 [Should sulogin use a emergency mount of /dev and /proc?]) 2476]) 2477 2478 2479AC_ARG_ENABLE([usrdir-path], 2480 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]), 2481 [], [enable_usrdir_path=no] 2482) 2483 2484AS_IF([test "x$enable_usrdir_path" = xyes], [ 2485 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable]) 2486]) 2487 2488 2489AC_ARG_ENABLE([makeinstall-chown], 2490 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]), 2491 [], [enable_makeinstall_chown=yes] 2492) 2493AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes]) 2494 2495 2496AC_ARG_ENABLE([makeinstall-setuid], 2497 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]), 2498 [], [enable_makeinstall_setuid=yes] 2499) 2500AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes]) 2501 2502 2503AC_ARG_ENABLE([colors-default], 2504 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]), 2505 [], [enable_colors_default=yes] 2506) 2507AS_IF([test "x$enable_colors_default" = xyes], [ 2508 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default]) 2509]) 2510 2511 2512AC_ARG_WITH([cryptsetup], 2513 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]), 2514 [], [with_cryptsetup=no] 2515) 2516 2517AS_IF([test "x$with_cryptsetup" = xno], [ 2518 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false]) 2519 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false]) 2520], [ 2521 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup], 2522 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available]) 2523 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup]) 2524 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true]) 2525 SAVE_CFLAGS="$CFLAGS" 2526 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS" 2527 SAVE_LIBS="$LIBS" 2528 LIBS="$CRYPTSETUP_LIBS $LIBS" 2529 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [ 2530 AC_DEFINE_UNQUOTED([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup]) 2531 ]) 2532 AS_IF([test "x$with_cryptsetup" = xdlopen], [ 2533 LIBS="-ldl $LIBS" 2534 AC_CHECK_LIB([dl], [dlsym], [ 2535 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen]) 2536 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true]) 2537 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])]) 2538 ], [ 2539 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false]) 2540 ]) 2541 CFLAGS="$SAVE_CFLAGS" 2542 LIBS="$SAVE_LIBS" 2543 have_cryptsetup=yes], 2544 [have_cryptsetup=no 2545 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false]) 2546 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false]) 2547 ]) 2548 2549 AS_CASE([$with_cryptsetup:$have_cryptsetup], 2550 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])] 2551 ) 2552]) 2553AC_SUBST([CRYPTSETUP_LIBS]) 2554AC_SUBST([CRYPTSETUP_LIBS_STATIC]) 2555 2556 2557AC_ARG_VAR([SUID_CFLAGS], 2558 [CFLAGS used for binaries which are usually with the suid bit]) 2559AC_ARG_VAR([SUID_LDFLAGS], 2560 [LDFLAGS used for binaries which are usually with the suid bit]) 2561 2562AC_ARG_VAR([DAEMON_CFLAGS], 2563 [CFLAGS used for binaries which are usually executed as daemons]) 2564AC_ARG_VAR([DAEMON_LDFLAGS], 2565 [LDFLAGS used for binaries which are usually executed as daemons]) 2566 2567AC_ARG_VAR([SOLIB_CFLAGS], 2568 [CFLAGS used for shared libraries]) 2569AC_ARG_VAR([SOLIB_LDFLAGS], 2570 [LDFLAGS used for shared libraries]) 2571 2572AC_ARG_VAR([ADJTIME_PATH], 2573 [Path to hwclock adjtime file, default /etc/adjtime]) 2574AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"]) 2575AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file]) 2576 2577 2578LIBS="" 2579 2580 2581AC_CONFIG_HEADERS([config.h]) 2582 2583# 2584# Don't use configure.ac to replace install paths! See Makefile PATHFILES for 2585# more details. 2586# 2587AC_CONFIG_FILES([ 2588Makefile 2589libblkid/docs/Makefile 2590libblkid/docs/version.xml 2591libblkid/src/blkid.h 2592libfdisk/docs/Makefile 2593libfdisk/docs/version.xml 2594libfdisk/src/libfdisk.h 2595libmount/docs/Makefile 2596libmount/docs/version.xml 2597libmount/src/libmount.h 2598libsmartcols/docs/Makefile 2599libsmartcols/docs/version.xml 2600libsmartcols/src/libsmartcols.h 2601po/Makefile.in 2602]) 2603 2604AC_OUTPUT 2605 2606AC_MSG_RESULT([ 2607 ${PACKAGE} ${VERSION} 2608 2609 prefix: ${prefix} 2610 exec prefix: ${exec_prefix} 2611 2612 runstatedir: ${runstatedir} 2613 bindir: ${bindir} 2614 sbindir: ${sbindir} 2615 libdir: ${libdir} 2616 includedir: ${includedir} 2617 usrbin_execdir: ${usrbin_execdir} 2618 usrsbin_execdir: ${usrsbin_execdir} 2619 usrlib_execdir: ${usrlib_execdir} 2620 vendordir: ${with_vendordir} 2621 2622 compiler: ${CC} 2623 cflags: ${CFLAGS} 2624 suid cflags: ${SUID_CFLAGS} 2625 ldflags: ${LDFLAGS} 2626 suid ldflags: ${SUID_LDFLAGS} 2627 ASAN enabled: ${enable_asan} 2628 2629 Python: ${PYTHON} 2630 Python version: ${PYTHON_VERSION} 2631 Python libs: ${pyexecdir} 2632 2633 Bash completions: ${with_bashcompletiondir} 2634 Systemd support: ${have_systemd} 2635 Systemd unitdir: ${with_systemdsystemunitdir} 2636 libeconf support: ${have_econf} 2637 Btrfs support: ${have_btrfs} 2638 Wide-char support: ${build_widechar} 2639 2640 warnings: 2641 2642${WARN_CFLAGS} 2643 2644 Type 'make' or 'make <utilname>' to compile. 2645]) 2646