2 m4_esyscmd([tools/git-version-gen .tarball-version]),
4 [https://www.kernel.org/pub/linux/utils/util-linux/])
9 AC_CONFIG_AUX_DIR([config])
10 AC_CONFIG_MACRO_DIR([m4])
11 dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
12 dnl the compiler (like LT_INIT) to avoid autoconf errors.
13 AC_USE_SYSTEM_EXTENSIONS
14 AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects])
16 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
17 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
18 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
20 AC_CONFIG_SRCDIR([sys-utils/mount.c])
21 AC_PREFIX_DEFAULT([/usr])
23 dnl version details from <major>.<minor>[-<suffix>]
24 PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
25 PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{
26 sub("-.*","",$2); print $2}')
27 PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{
28 sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0}')
31 LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
32 LIBBLKID_DATE="24-Jan-2024"
36 LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
39 LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
43 LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
45 dnl liblastlog2 version
46 LIBLASTLOG2_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
47 LIBLASTLOG2_LT_MAJOR=2
48 LIBLASTLOG2_LT_MINOR=0
49 LIBLASTLOG2_LT_MICRO=0
50 LIBLASTLOG2_VERSION_INFO=`expr $LIBLASTLOG2_LT_MAJOR + $LIBLASTLOG2_LT_MINOR`:$LIBLASTLOG2_LT_MICRO:$LIBLASTLOG2_LT_MINOR
53 LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
57 LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
59 dnl libsmartcols version
60 LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
61 LIBSMARTCOLS_LT_MAJOR=1
62 LIBSMARTCOLS_LT_MINOR=1
63 LIBSMARTCOLS_LT_MICRO=0
64 LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
67 LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
71 LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
73 # Check whether exec_prefix=/usr:
74 AS_CASE([$exec_prefix:$prefix],
75 [NONE:NONE | NONE:/usr | /usr:*],
76 [AC_MSG_NOTICE([Default --exec-prefix detected.])
77 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
78 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
79 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
80 AS_CASE([$libdir], ['${exec_prefix}/lib64'],[libdir=/lib64; AC_MSG_NOTICE([ --libdir defaults to /lib64]) ])
84 # Check whether prefix=/usr
87 [AC_MSG_NOTICE([Default --prefix detected.])
88 AS_CASE([$localstatedir], [NONE | '${prefix}/var' | "${prefix}"/var ],
89 [localstatedir=/var; AC_MSG_NOTICE([ --localstatedir defaults to /var])])
90 AS_CASE([$sysconfdir], [NONE | '${prefix}/etc' | "${prefix}"/etc ],
91 [sysconfdir=/etc; AC_MSG_NOTICE([ --sysconfdir defaults to /etc])])
95 AC_SUBST([localstatedir])
98 # default for old versions without $runstatedir
99 AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
101 # our default if $localstatedir unchanged
102 AS_CASE([$localstatedir:$runstatedir],
103 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
104 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
106 AC_SUBST([runstatedir])
109 # The original default values of {bin,sbin,lib}dir
110 usrbin_execdir='${exec_prefix}/bin'
111 AC_SUBST([usrbin_execdir])
113 usrsbin_execdir='${exec_prefix}/sbin'
114 AC_SUBST([usrsbin_execdir])
117 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
118 [usrlib_execdir=$libdir],
119 [usrlib_execdir='${exec_prefix}'$libdir]
121 AC_SUBST([usrlib_execdir])
123 # static configuration maintaned by packages (e.g. /usr/lib)
124 AC_ARG_VAR([SYSCONFSTATICDIR],
125 [Path to static system configuration, default ${prefix}/lib])
126 AS_IF([test "x$SYSCONFSTATICDIR" = x],
127 [sysconfstaticdir='${prefix}/lib'],
128 [sysconfstaticdir=$SYSCONFSTATICDIR])
129 AC_SUBST([sysconfstaticdir])
137 # Don't use autotools integrated LEX/YACC support for libsmartcols
138 AC_PATH_PROG([FLEX], [flex])
139 AC_PATH_PROG([BISON], [bison])
145 dnl Compiler warnings
146 UL_WARN_ADD([-fno-common])
148 UL_WARN_ADD([-Wextra])
150 UL_WARN_ADD([-Waddress-of-packed-member])
151 UL_WARN_ADD([-Wdiscarded-qualifiers])
152 UL_WARN_ADD([-Wembedded-directive])
153 UL_WARN_ADD([-Wextra-semi])
154 UL_WARN_ADD([-Wformat-security])
155 UL_WARN_ADD([-Wimplicit-function-declaration])
156 UL_WARN_ADD([-Wmissing-declarations])
157 UL_WARN_ADD([-Wmissing-parameter-type])
158 UL_WARN_ADD([-Wmissing-prototypes])
159 UL_WARN_ADD([-Wnested-externs])
160 UL_WARN_ADD([-Wno-missing-field-initializers])
161 UL_WARN_ADD([-Wold-style-definition])
162 UL_WARN_ADD([-Wpointer-arith])
163 UL_WARN_ADD([-Wredundant-decls])
164 UL_WARN_ADD([-Wsign-compare])
165 UL_WARN_ADD([-Wstrict-prototypes])
166 UL_WARN_ADD([-Wtype-limits])
167 UL_WARN_ADD([-Wuninitialized])
168 UL_WARN_ADD([-Wunused-but-set-parameter])
169 UL_WARN_ADD([-Wunused-but-set-variable])
170 UL_WARN_ADD([-Wunused-parameter])
171 UL_WARN_ADD([-Wunused-result])
172 UL_WARN_ADD([-Wunused-variable])
174 UL_WARN_ADD([-Walloca])
176 AC_ARG_ENABLE([werror],
177 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
178 [], [enable_werror=no]
180 AS_IF([test "x$enable_werror" = xyes], [
181 UL_WARN_ADD([-Werror])
183 UL_WARN_ADD([-Werror=sequence-point])
186 AC_SUBST([WARN_CFLAGS])
189 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
190 AC_SUBST([BSD_WARN_CFLAGS])
192 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
193 AC_SUBST([PYTHON_WARN_CFLAGS])
196 AC_ARG_ENABLE([asan],
197 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
200 AS_IF([test "x$enable_asan" = xyes], [
201 UL_WARN_ADD([-fsanitize=address])
202 ASAN_LDFLAGS="-fsanitize=address"
204 AC_SUBST([ASAN_LDFLAGS])
206 AC_ARG_ENABLE([ubsan],
207 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
208 [], [enable_ubsan=no]
210 AS_IF([test "x$enable_ubsan" = xyes], [
211 UL_WARN_ADD([-fsanitize=undefined])
212 UBSAN_LDFLAGS="-fsanitize=undefined"
214 AC_SUBST([UBSAN_LDFLAGS])
216 AC_ARG_ENABLE([fuzzing-engine],
217 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
218 [], [enable_fuzzing_engine=no]
220 AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
221 UL_WARN_ADD([-fno-omit-frame-pointer])
222 UL_WARN_ADD([-gline-tables-only])
223 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
224 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
226 AC_SUBST([FUZZING_ENGINE_LDFLAGS])
228 AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
229 AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
231 AC_ARG_ENABLE([coverage],
232 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
233 [], [enable_coverage=no]
235 AS_IF([test "x$enable_coverage" = xyes], [
236 UL_WARN_ADD([--coverage])
237 COVERAGE_LDFLAGS="--coverage"
239 AC_SUBST([COVERAGE_LDFLAGS])
240 AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
245 dnl check supported linker flags
248 m4_ifndef([PKG_PROG_PKG_CONFIG],
249 [m4_fatal([Could not locate the pkg-config autoconf
250 macros. These are usually located in /usr/share/aclocal/pkg.m4.
251 If your macros are in a different location, try setting the
252 environment variable AL_OPTS="-I/other/macro/dir" before running
253 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
255 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
257 GTK_DOC_CHECK([1.10])
258 AC_PATH_PROG([XSLTPROC], [xsltproc])
263 AS_CASE([${host_os}],
270 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
271 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
272 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
274 AS_IF([test "x$darwin_os" = xyes], [
275 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
278 dnl define ARCH_<NAME> conditionals
279 UL_SET_ARCH([I86], [i?86-*])
280 UL_SET_ARCH([86_64], [x86_64*])
281 UL_SET_ARCH([IA64], [ia64*])
282 UL_SET_ARCH([S390], [s390*])
283 UL_SET_ARCH([SPARC], [sparc*])
284 UL_SET_ARCH([PPC], [ppc*|powerpc*])
285 UL_SET_ARCH([M68K], [m68*])
286 UL_SET_ARCH([MIPS], [mips*])
287 UL_SET_ARCH([HPPA], [hppa*|parisc*])
293 AC_SYS_YEAR2038_RECOMMENDED
295 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
296 AM_GNU_GETTEXT_VERSION([0.18.3])
297 AM_GNU_GETTEXT([external])
299 AS_IF([test -d "$srcdir/po"], [
300 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
301 ], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
303 af am ar as be bg bn bn_IN ca
304 cs cy da de el en_GB es et eu_ES
305 fa fi fr gl gu he hi hr hu
306 hy id is it ja ka kn ko ku
307 lo lt lv mk ml mr ms my nb
308 nl nn no nso or pa pl pt pt_BR
309 ro ru si sk sl sq sr sr@Latn sv
310 ta te th tr uk ur vi zh_CN zh_TW
314 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
315 #ifdef HAVE_LINUX_COMPILER_H
316 #include <linux/compiler.h>
320 asm-generic/fcntl.h \
343 linux/net_namespace.h \
359 security/pam_appl.h \
360 security/pam_modules.h \
400 # There is a collision in old kernel-headers. The both files mount.h and fs.h
401 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
403 AC_CHECK_HEADERS([linux/fs.h ], [], [],
404 [#ifdef HAVE_SYS_MOUNT_H
405 # include <linux/fs.h>
406 # include <sys/mount.h>
410 AC_CHECK_HEADERS([linux/mount.h ], [], [],
411 [#ifdef HAVE_LINUX_MOUNT_H
412 # include <linux/mount.h>
416 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
417 [#ifdef LINUX_GSMMUX_H
418 # include <linux/gsmmux.h>
422 AC_CHECK_HEADERS([security/pam_misc.h],
423 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
424 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
425 #ifdef HAVE_SECURITY_PAM_APPL_H
426 #include <security/pam_appl.h>
430 AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
431 #include <linux/blkzoned.h>
434 AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
435 #include <linux/pr.h>
438 AC_CHECK_HEADERS([security/openpam.h], [], [], [
439 #ifdef HAVE_SECURITY_PAM_APPL_H
440 #include <security/pam_appl.h>
444 AC_CHECK_HEADERS([langinfo.h],
445 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
446 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
448 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
449 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
450 #include <langinfo.h>
453 str = nl_langinfo (ALTMON_1);
454 str = nl_langinfo (ALTMON_2);
455 str = nl_langinfo (ALTMON_3);
456 str = nl_langinfo (ALTMON_4);
457 str = nl_langinfo (ALTMON_5);
458 str = nl_langinfo (ALTMON_6);
459 str = nl_langinfo (ALTMON_7);
460 str = nl_langinfo (ALTMON_8);
461 str = nl_langinfo (ALTMON_9);
462 str = nl_langinfo (ALTMON_10);
463 str = nl_langinfo (ALTMON_11);
464 str = nl_langinfo (ALTMON_12);
467 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
468 [Define if langinfo.h defines ALTMON_x constants])
474 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
475 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
476 #include <langinfo.h>
479 str = nl_langinfo (_NL_ABALTMON_1);
480 str = nl_langinfo (_NL_ABALTMON_2);
481 str = nl_langinfo (_NL_ABALTMON_3);
482 str = nl_langinfo (_NL_ABALTMON_4);
483 str = nl_langinfo (_NL_ABALTMON_5);
484 str = nl_langinfo (_NL_ABALTMON_6);
485 str = nl_langinfo (_NL_ABALTMON_7);
486 str = nl_langinfo (_NL_ABALTMON_8);
487 str = nl_langinfo (_NL_ABALTMON_9);
488 str = nl_langinfo (_NL_ABALTMON_10);
489 str = nl_langinfo (_NL_ABALTMON_11);
490 str = nl_langinfo (_NL_ABALTMON_12);
493 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
494 [Define if langinfo.h defines _NL_ABALTMON_x constants])
500 dnl Convert some ac_cv_header_* variables to have_*
502 have_linux_audit_h=$ac_cv_header_linux_audit_h
503 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
504 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
505 have_linux_capability_h=$ac_cv_header_linux_capability_h
506 have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
507 have_linux_mount_h=$ac_cv_header_linux_mount_h
508 have_linux_pr_h=$ac_cv_header_linux_pr_h
509 have_linux_raw_h=$ac_cv_header_linux_raw_h
510 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
511 have_linux_version_h=$ac_cv_header_linux_version_h
512 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
513 have_pty_h=$ac_cv_header_pty_h
514 have_security_openpam_h=$ac_cv_header_security_openpam_h
515 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
516 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
517 have_security_pam_modules_h=$ac_cv_header_security_pam_modules_h
518 have_shadow_h=$ac_cv_header_shadow_h
519 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
520 have_utmpx_h=$ac_cv_header_utmpx_h
521 have_mntent_h=$ac_cv_header_mntent_h
522 have_sys_vfs_h=$ac_cv_header_sys_vfs_h
523 have_linux_bpf_h=$ac_cv_header_linux_bpf_h
525 AS_CASE([$linux_os:$have_linux_version_h],
527 [AC_MSG_ERROR([kernel headers required on Linux])]
530 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
535 struct tm *tm = localtime(0);
536 if (a == -1) /* false */
537 sleep(tm->tm_gmtoff);
539 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
542 AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
543 AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
545 AC_CHECK_MEMBERS([struct termios.c_line],,,
546 [[#include <termios.h>]])
548 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
549 [[#include <sys/stat.h>]])
551 AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
552 AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
553 [[#include <sys/stat.h>]])
555 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
557 AC_CHECK_DECL([environ],
558 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
559 [Define to 1 if have **environ prototype])],
562 AC_CHECK_DECL([strsignal],
563 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
564 [Define to 1 if have strsignal function prototype])],
567 AC_CHECK_DECL([TIOCGLCKTRMIOS],
568 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
569 [#include <sys/ioctl.h>])
570 AC_CHECK_DECL([SOCK_CLOEXEC],
571 [have_sock_cloexec=yes], [have_sock_cloexec=no],
572 [#include <sys/types.h>
573 #include <sys/socket.h>])
574 AC_CHECK_DECL([SOCK_NONBLOCK],
575 [have_sock_nonblock=yes], [have_sock_nonblock=no],
576 [#include <sys/types.h>
577 #include <sys/socket.h>])
578 AC_CHECK_DECL([SO_PASSCRED],
579 [have_so_passcred=yes], [have_so_passcred=no],
580 [#include <sys/types.h>
581 #include <sys/socket.h>])
610 landlock_create_ruleset \
612 landlock_restrict_self \
662 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
663 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
664 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
665 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
666 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
667 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
668 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
669 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
671 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
672 AM_CONDITIONAL([HAVE_LINUX_LANDLOCK_H], [test "x$ac_cv_header_linux_landlock_h" = xyes])
674 have_setns_syscall="yes"
675 UL_CHECK_SYSCALL([setns])
676 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
677 have_setns_syscall="no"
680 UL_CHECK_SYSCALL([pidfd_open])
681 UL_CHECK_SYSCALL([pidfd_send_signal])
682 UL_CHECK_SYSCALL([close_range])
683 UL_CHECK_SYSCALL([fsconfig])
684 UL_CHECK_SYSCALL([fsmount])
685 UL_CHECK_SYSCALL([fsopen])
686 UL_CHECK_SYSCALL([fspick])
687 UL_CHECK_SYSCALL([mount_setattr])
688 UL_CHECK_SYSCALL([move_mount])
689 UL_CHECK_SYSCALL([open_tree])
691 AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
692 test "x$ul_cv_syscall_fsmount" = xno ||
693 test "x$ul_cv_syscall_fsopen" = xno ||
694 test "x$ul_cv_syscall_fspick" = xno ||
695 test "x$ul_cv_syscall_mount_setattr" = xno ||
696 test "x$ul_cv_syscall_move_mount" = xno ||
697 test "x$ul_cv_syscall_open_tree" = xno],
699 have_mountfd_api="no"
701 have_mountfd_api="yes"
702 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
706 AC_CHECK_FUNCS([isnan], [],
707 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
708 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
710 AC_SUBST([MATH_LIBS])
713 dnl lib/mononotic.c may require -lrt
714 AC_CHECK_FUNCS([clock_gettime], [],
715 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
719 AC_CHECK_FUNCS([timer_create],
721 [AC_CHECK_LIB([rt], [timer_create], [
724 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
726 AC_SEARCH_LIBS([timer_create], [rt], [
729 REALTIME_LIBS="-lrt -lpthread"
730 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
736 AC_SUBST([REALTIME_LIBS])
738 AS_IF([test x"$have_timer" = xno], [
739 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
743 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
745 AC_DEFINE([HAVE_LIBRTAS], [1], [Define if librtas exists])
747 AC_SUBST([RTAS_LIBS])
750 AC_CHECK_MEMBER([struct sockaddr.sa_len],
751 AC_DEFINE([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
752 [#include <sys/types.h>
753 #include <sys/socket.h>])
756 AC_SEARCH_LIBS([socket], [socket],
757 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
758 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
760 AC_SUBST([SOCKET_LIBS])
764 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
765 AS_IF([test x"$have_dirfd" = xno], [
766 AC_CHECK_DECLS([dirfd],
767 [have_dirfd=yes], [have_dirfd=no],
768 [#include <sys/types.h>
769 #include <dirent.h>])
773 AS_IF([test x"$have_dirfd" = xno], [
774 AC_CHECK_MEMBERS([DIR.dd_fd],
775 [have_ddfd=yes], [have_ddfd=no],
776 [#include <sys/types.h>
777 #include <dirent.h>])
780 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
783 AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
786 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
787 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
790 program_invocation_short_name = "test";
793 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
794 [Define if program_invocation_short_name is defined])
800 AC_MSG_CHECKING([whether __progname is defined])
801 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
802 [if (*__progname == 0) return 1;])],
803 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
804 AC_MSG_RESULT([yes]),
807 AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
808 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
809 [Define to 1 if OPAL status ioctl is defined])],,
810 [#include <linux/sed-opal.h>])
812 dnl Static compilation
813 m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, partx, sfdisk, umount, unshare])
815 AC_ARG_ENABLE([static-programs],
816 [AS_HELP_STRING([--enable-static-programs=LIST],
817 [link static the programs in LIST (comma-separated,
818 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
820 AS_CASE([$enable_static_programs],
822 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
824 [enable_static_programs=]
827 dnl Set all the individual AM_CONDITIONALs
828 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
829 AS_CASE([,$enable_static_programs,],
830 [*,UL_PRG,*], [static_[]UL_PRG=yes]
832 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
833 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
834 [test "x$static_[]UL_PRG" = xyes])
838 AC_ARG_ENABLE([all-programs],
839 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
840 [], [enable_all_programs=undefined]
843 AS_CASE([$enable_all_programs],
844 [yes], [AC_MSG_WARN([force to build all programs by default])
845 ul_default_estate=check],
846 [no], [AC_MSG_WARN([disable all programs and man pages by default])
847 ul_default_estate=no]
851 AC_ARG_ENABLE([asciidoc],
852 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
853 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
855 UL_BUILD_INIT([asciidoc])
856 UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
857 AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
858 have_asciidoctor_failure_level=no
859 AS_IF([test "x$build_asciidoc" = xyes], [
860 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
861 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
863 have_asciidoctor_failure_level=yes
868 AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
871 AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
872 AC_MSG_NOTICE([re-use already generated man-pages.])
875 AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
878 AC_ARG_ENABLE([poman],
879 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
880 [], [UL_DEFAULT_ENABLE([poman], [check])]
882 UL_BUILD_INIT([poman])
883 UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
884 AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
890 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
893 AS_IF([test "x$with_util" = xno], [
894 AM_CONDITIONAL([HAVE_UTIL], [false])
897 UL_CHECK_LIB([util], [openpty])
900 AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
901 AM_CONDITIONAL([HAVE_PTY], [true])
902 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
905 AM_CONDITIONAL([HAVE_PTY], [false])
908 AC_CHECK_TYPES([union semun], [], [], [[
911 AC_CHECK_TYPES([loff_t])
914 AC_ARG_ENABLE([widechar],
915 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
916 [], [enable_widechar=check]
918 UL_BUILD_INIT([widechar])
919 UL_REQUIRES_COMPILE([widechar], [[
928 if (w == WEOF) exit(1);
934 AS_IF([test "x$build_widechar" = xyes ], [
935 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
939 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
943 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
945 AC_CHECK_TYPES([sighandler_t], [], [], [[
949 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
953 # on Solaris, you can't mix and match standards, since we use c99
954 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
955 # check for crypt.h and use that without XOPEN_SOURCE.
957 AC_CHECK_HEADERS([crypt.h])
958 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
962 #define _XOPEN_SOURCE
966 char *c = crypt("abc","pw");
971 UL_SET_LIBS([-lcrypt])
972 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
976 #define _XOPEN_SOURCE
980 char *c = crypt("abc","pw");
985 AC_MSG_WARN([crypt() is not available])
989 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
992 AC_ARG_WITH([selinux],
993 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
994 [], [with_selinux=no]
997 AS_IF([test "x$with_selinux" = xno], [
998 AM_CONDITIONAL([HAVE_SELINUX], [false])
1000 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
1001 AS_CASE([$with_selinux:$have_selinux],
1002 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
1004 AS_IF([test "x$have_selinux" = xyes], [
1005 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
1006 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
1007 AM_CONDITIONAL([HAVE_SELINUX], [true])
1009 UL_SET_LIBS([$SELINUX_LIBS])
1010 # This function is missing in old libselinux 1.xx versions
1011 AC_CHECK_FUNCS([security_get_initial_context])
1015 AC_SUBST([SELINUX_LIBS])
1016 AC_SUBST([SELINUX_LIBS_STATIC])
1019 AC_ARG_WITH([audit],
1020 AS_HELP_STRING([--with-audit], [compile with audit support]),
1024 AS_IF([test "x$with_audit" = xno], [
1025 AM_CONDITIONAL([HAVE_AUDIT], [false])
1027 UL_CHECK_LIB([audit], [audit_log_user_message])
1028 AS_CASE([$with_audit:$have_audit],
1030 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1034 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
1035 [], [with_udev=auto]
1038 AS_IF([test "x$with_udev" = xno], [
1039 AM_CONDITIONAL([HAVE_UDEV], [false])
1041 UL_CHECK_LIB([udev], [udev_new])
1042 AS_CASE([$with_udev:$have_udev],
1044 [AC_MSG_ERROR([udev selected but libudev not found])]
1049 dnl wide-char ncurses
1050 AC_ARG_WITH([ncursesw],
1051 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
1052 [], [with_ncursesw=auto]
1055 have_ncursesw_header=no
1056 AS_IF([test "x$with_ncursesw" != xno], [
1057 UL_NCURSES_CHECK([ncursesw])
1058 AS_IF([test "x$have_ncursesw" = xyes], [
1059 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1060 AC_CHECK_HEADERS([ncursesw/term.h])
1062 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1063 # unsuccessful to avoid too many *_H permitations in config.h
1064 AS_IF([test "x$have_ncursesw_header" = xno], [
1065 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1066 AC_CHECK_HEADERS([term.h])
1068 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1070 AS_IF([test "x$have_ncursesw" = xyes], [
1071 CURSES_LIB_NAME="ncursesw"
1072 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
1075 AS_CASE([$with_ncursesw:$have_ncursesw],
1076 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
1079 dnl non-wide ncurses
1080 AC_ARG_WITH([ncurses],
1081 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
1082 [], [with_ncurses=auto]
1085 have_ncurses_header=no
1086 AS_CASE([$with_ncurses:$build_widechar],
1087 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1089 AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
1090 UL_NCURSES_CHECK([ncurses])
1091 AS_IF([test "x$have_ncurses" = xyes], [
1092 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1093 AC_CHECK_HEADERS([ncurses/term.h])
1095 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1096 # unsuccessful to avoid too many *_H permitations in config.h
1097 AS_IF([test "x$have_ncurses_header" = xno], [
1098 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1099 AC_CHECK_HEADERS([term.h])
1101 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1103 AS_IF([test "x$have_ncurses" = xyes], [
1104 CURSES_LIB_NAME="ncurses"
1105 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
1108 AS_CASE([$with_ncurses:$have_ncurses],
1109 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1111 AC_SUBST([NCURSES_CFLAGS])
1112 AC_SUBST([NCURSES_LIBS])
1113 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
1116 AC_ARG_WITH([slang],
1117 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
1121 AS_IF([test "x$with_slang" = xyes], [
1122 AC_CHECK_HEADERS([slang.h slang/slang.h])
1123 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
1124 [have_slang=yes], [], [
1127 #elif defined(HAVE_SLANG_SLANG_H)
1128 #include <slang/slang.h>
1131 AS_IF([test "x$have_slang" = xno], [
1132 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1133 [CURSES_LIB_NAME=slang
1136 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1139 AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
1140 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1141 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1142 [Define if curses library has the use_default_colors().])
1144 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1145 AC_DEFINE(HAVE_RESIZETERM, 1,
1146 [Define if curses library has the resizeterm().])
1151 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1152 [], [with_tinfo=auto]
1156 AS_IF([test "x$with_tinfo" != xno], [
1157 AS_IF([test "x$have_ncursesw" = xyes], [
1158 UL_TINFO_CHECK([tinfow])
1160 AS_IF([test "x$have_tinfow" = xno], [
1161 UL_TINFO_CHECK([tinfo])
1164 AC_SUBST([TINFO_LIBS])
1165 AC_SUBST([TINFO_LIBS_STATIC])
1166 AC_SUBST([TINFO_CFLAGS])
1167 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1168 AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
1169 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1173 AC_ARG_WITH([readline],
1174 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1175 [], [with_readline=auto]
1178 AS_IF([test "x$with_readline" = xno], [
1179 AM_CONDITIONAL([HAVE_READLINE], [false])
1181 UL_CHECK_LIB([readline], [readline])
1182 AS_CASE([$with_readline:$have_readline],
1184 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1186 [READLINE_LIBS="-lreadline"
1187 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1190 AC_SUBST([READLINE_LIBS])
1191 AC_SUBST([READLINE_LIBS_STATIC])
1194 AC_ARG_WITH([utempter],
1195 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1196 [], [with_utempter=no]
1199 AS_IF([test "x$with_utempter" = xyes], [
1200 UL_CHECK_LIB([utempter], [utempter_add_record])
1201 AS_IF([test "x$have_utempter" = xno], [
1202 AC_MSG_ERROR([utempter selected but libutempter not found])
1205 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1212 AC_ARG_ENABLE([libuuid],
1213 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1214 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1216 UL_BUILD_INIT([libuuid])
1217 AC_SUBST([LIBUUID_VERSION])
1218 AC_SUBST([LIBUUID_VERSION_INFO])
1219 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1221 AC_ARG_ENABLE([libuuid-force-uuidd],
1222 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1223 [], [enable_libuuid_force_uuidd=no]
1226 AS_IF([test "x$build_libuuid" = xyes], [
1227 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1233 AC_ARG_ENABLE([liblastlog2],
1234 AS_HELP_STRING([--disable-liblastlog2], [do not build liblastlog2 and lastlog2 utilities]),
1235 [], [UL_DEFAULT_ENABLE([liblastlog2], [yes])]
1237 UL_BUILD_INIT([liblastlog2])
1240 AS_IF([test "x$build_liblastlog2" = xyes], [
1241 PKG_CHECK_MODULES([SQLITE3], [sqlite3], [have_sqlite3=yes], [have_sqlite3=no])
1243 UL_REQUIRES_HAVE([liblastlog2], [sqlite3], [sqlite3 library])
1244 AC_SUBST([SQLITE3_LIBS])
1246 AC_SUBST([LIBLASTLOG2_VERSION])
1247 AC_SUBST([LIBLASTLOG2_VERSION_INFO])
1248 AC_DEFINE_UNQUOTED([LIBLASTLOG2_VERSION], ["$LIBLASTLOG2_VERSION"], [liblastlog2 version string])
1249 AM_CONDITIONAL([BUILD_LIBLASTLOG2], [test "x$build_liblastlog2" = xyes])
1250 AM_CONDITIONAL([BUILD_LIBLASTLOG2_TESTS], [test "x$build_liblastlog2" = xyes && test "x$enable_static" = xyes])
1253 AC_ARG_ENABLE([pam_lastlog2],
1254 AS_HELP_STRING([--disable-pam-lastlog2], [do not build PAM lastlog2 module]),
1255 [], [UL_DEFAULT_ENABLE([pam_lastlog2], [check])]
1257 UL_BUILD_INIT([pam_lastlog2])
1258 UL_REQUIRES_BUILD([pam_lastlog2], [liblastlog2])
1259 UL_REQUIRES_HAVE([pam_lastlog2], [security_pam_modules_h], [pam_modules.h header file])
1260 AM_CONDITIONAL([BUILD_PAM_LASTLOG2], [test "x$build_pam_lastlog2" = xyes])
1266 AC_ARG_ENABLE([libblkid],
1267 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1268 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1270 UL_BUILD_INIT([libblkid])
1271 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1272 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1273 AC_SUBST([LIBBLKID_DATE])
1274 AC_SUBST([LIBBLKID_VERSION])
1275 AC_SUBST([LIBBLKID_VERSION_INFO])
1276 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1277 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1278 AS_IF([test "x$build_libblkid" = xyes], [
1279 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1281 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1282 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
1287 AC_ARG_ENABLE([libmount],
1288 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1289 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1291 UL_BUILD_INIT([libmount])
1292 UL_REQUIRES_BUILD([libmount], [libblkid])
1293 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1294 UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
1295 UL_REQUIRES_HAVE([libmount], [sys_vfs_h], [sys/vfs.h header file])
1296 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1297 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
1298 AS_IF([test "x$build_libmount" = xyes], [
1299 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1300 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1301 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1303 AC_MSG_WARN([libmount will be compiled without namespaces support])
1307 AC_SUBST([LIBMOUNT_VERSION])
1308 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1309 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1310 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1311 AC_SUBST([LIBMOUNT_VERSION_INFO])
1312 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1314 AC_ARG_ENABLE([libmount-mountfd-support],
1315 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1316 [], [enable_libmount_mountfd_support=check]
1318 UL_BUILD_INIT([libmount_mountfd_support])
1319 UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1320 UL_REQUIRES_LINUX([libmount_mountfd_support])
1321 UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
1322 UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
1323 AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1324 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1331 AC_ARG_ENABLE([libsmartcols],
1332 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1333 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1335 UL_BUILD_INIT([libsmartcols])
1336 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1338 AC_SUBST([LIBSMARTCOLS_VERSION])
1339 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1340 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1346 AC_ARG_ENABLE([libfdisk],
1347 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1348 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1350 UL_BUILD_INIT([libfdisk])
1351 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1352 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1353 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
1355 AS_IF([test "x$build_libblkid" = xyes],
1356 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1357 AC_SUBST([LIBFDISK_PC_REQUIRES])
1359 AC_SUBST([LIBFDISK_VERSION])
1360 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1361 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1362 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1363 AC_SUBST([LIBFDISK_VERSION_INFO])
1364 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1367 AC_ARG_ENABLE([fdisks],
1368 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1369 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1371 enable_fdisk=$enable_fdisks
1372 enable_sfdisk=$enable_fdisks
1373 enable_cfdisk=$enable_fdisks
1375 UL_BUILD_INIT([fdisk])
1376 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1377 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1378 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1379 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1380 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1383 UL_BUILD_INIT([sfdisk])
1384 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1385 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1386 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1387 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1388 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1391 UL_BUILD_INIT([cfdisk])
1392 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1393 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1394 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1395 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1396 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1399 AC_ARG_ENABLE([mount],
1400 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1401 [], [UL_DEFAULT_ENABLE([mount], [check])]
1403 UL_BUILD_INIT([mount])
1404 UL_REQUIRES_LINUX([mount])
1405 UL_REQUIRES_BUILD([mount], [libmount])
1406 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1409 AC_ARG_ENABLE([losetup],
1410 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1411 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1413 UL_BUILD_INIT([losetup])
1414 UL_REQUIRES_LINUX([losetup])
1415 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1416 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1418 AC_ARG_ENABLE([zramctl],
1419 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1420 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1422 UL_BUILD_INIT([zramctl])
1423 UL_REQUIRES_LINUX([zramctl])
1424 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1425 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1427 AC_ARG_ENABLE([fsck],
1428 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1429 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1431 UL_BUILD_INIT([fsck])
1432 UL_REQUIRES_BUILD([fsck], [libmount])
1433 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1436 AC_ARG_ENABLE([partx],
1437 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1438 [], [UL_DEFAULT_ENABLE([partx], [check])]
1440 UL_BUILD_INIT([partx])
1441 UL_REQUIRES_LINUX([partx])
1442 UL_REQUIRES_BUILD([partx], [libblkid])
1443 UL_REQUIRES_BUILD([partx], [libsmartcols])
1444 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1447 AC_ARG_ENABLE([uuidd],
1448 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1449 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1451 UL_BUILD_INIT([uuidd])
1452 UL_REQUIRES_BUILD([uuidd], [libuuid])
1453 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1454 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1455 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1456 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1458 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1461 AC_ARG_ENABLE([uuidgen],
1462 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1463 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1465 UL_BUILD_INIT([uuidgen])
1466 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1467 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1469 UL_BUILD_INIT([uuidparse], [check])
1470 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1471 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1472 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1474 AC_ARG_ENABLE([blkid],
1475 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1476 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1478 UL_BUILD_INIT([blkid])
1479 UL_REQUIRES_BUILD([blkid], [libblkid])
1480 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1482 UL_BUILD_INIT([findfs], [check])
1483 UL_REQUIRES_BUILD([findfs], [libblkid])
1484 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1486 AC_ARG_ENABLE([wipefs],
1487 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1488 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1490 UL_BUILD_INIT([wipefs])
1491 UL_REQUIRES_BUILD([wipefs], [libblkid])
1492 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1493 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1495 UL_BUILD_INIT([findmnt], [check])
1496 UL_REQUIRES_BUILD([findmnt], [libmount])
1497 UL_REQUIRES_BUILD([findmnt], [libblkid])
1498 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1499 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1502 AC_ARG_ENABLE([mountpoint],
1503 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1504 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1506 UL_BUILD_INIT([mountpoint])
1507 UL_REQUIRES_BUILD([mountpoint], [libmount])
1508 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1511 AC_ARG_ENABLE([fallocate],
1512 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1513 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1515 UL_BUILD_INIT([fallocate])
1516 UL_REQUIRES_LINUX([fallocate])
1517 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1518 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1520 AS_IF([test "x$build_fallocate" = xyes], [
1521 dnl check for valid fallocate() function
1522 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1523 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1524 dnl and program can't be linked.
1525 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1526 dnl function prototype.
1527 AC_MSG_CHECKING([for valid fallocate() function])
1528 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1529 #ifdef HAVE_UNISTD_H
1530 # include <unistd.h>
1532 #ifdef HAVE_SYS_TYPES_H
1533 # include <sys/types.h>
1535 #ifdef HAVE_LINUX_FALLOC_H
1536 # include <linux/falloc.h>
1543 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1548 AC_MSG_RESULT([yes])
1549 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1550 AC_MSG_RESULT([no])])
1553 AS_IF([test "x$build_fallocate" = xyes], [
1554 dnl check for valid posix_fallocate() function
1555 AC_MSG_CHECKING([for valid posix_fallocate() function])
1556 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1557 #ifdef HAVE_UNISTD_H
1558 # include <unistd.h>
1560 #ifdef HAVE_SYS_TYPES_H
1561 # include <sys/types.h>
1563 #ifdef HAVE_LINUX_FALLOC_H
1564 # include <linux/falloc.h>
1571 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1576 AC_MSG_RESULT([yes])
1577 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1578 AC_MSG_RESULT([no])])
1582 AC_ARG_ENABLE([unshare],
1583 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1584 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1586 UL_BUILD_INIT([unshare])
1587 UL_REQUIRES_LINUX([unshare])
1588 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1589 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1590 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1592 AC_MSG_CHECKING([for valid unshare() function])
1593 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1602 AC_MSG_RESULT([yes])
1603 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1609 AC_ARG_ENABLE([nsenter],
1610 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1611 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1613 UL_BUILD_INIT([nsenter])
1614 UL_REQUIRES_LINUX([nsenter])
1615 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1616 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1618 AC_MSG_CHECKING([for valid setns() function])
1619 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1625 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1629 AC_MSG_RESULT([yes])
1630 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1636 AC_ARG_WITH([cap_ng],
1637 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1638 [], [with_cap_ng=auto]
1640 AS_IF([test "x$with_cap_ng" = xno], [
1641 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1644 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1648 AC_ARG_ENABLE([setpriv],
1649 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1650 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1652 UL_BUILD_INIT([setpriv])
1653 UL_REQUIRES_LINUX([setpriv])
1654 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1655 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1656 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1657 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1659 AC_ARG_ENABLE([hardlink],
1660 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1661 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1663 UL_BUILD_INIT([hardlink])
1664 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1667 AC_ARG_ENABLE([eject],
1668 AS_HELP_STRING([--disable-eject], [do not build eject]),
1669 [], [UL_DEFAULT_ENABLE([eject], [check])]
1671 UL_BUILD_INIT([eject])
1672 UL_REQUIRES_LINUX([eject])
1673 UL_REQUIRES_BUILD([eject], [libmount])
1674 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1677 AC_ARG_ENABLE([agetty],
1678 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1679 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1681 UL_BUILD_INIT([agetty])
1682 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1683 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1684 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1685 AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
1686 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1688 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1692 AC_ARG_ENABLE([plymouth_support],
1693 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]),
1694 [], [enable_plymouth_support=check]
1696 UL_BUILD_INIT([plymouth_support])
1697 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1698 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1699 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1700 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1701 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1702 AS_IF([test "x$build_plymouth_support" = xyes ], [
1703 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty])
1708 AS_HELP_STRING([--without-libz], [compile without libz]),
1709 [], [with_libz=auto]
1711 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1712 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1715 AC_ARG_WITH([libmagic],
1716 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1717 [], [with_libmagic=auto]
1719 AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1720 AC_CHECK_LIB([magic], [magic_open], [
1721 AC_CHECK_HEADER(magic.h, [
1722 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1723 MAGIC_LIBS="-lmagic"
1727 AC_SUBST([MAGIC_LIBS])
1730 AC_ARG_ENABLE([cramfs],
1731 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1732 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1734 UL_BUILD_INIT([cramfs])
1735 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1736 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1739 AC_ARG_ENABLE([bfs],
1740 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1741 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1743 UL_BUILD_INIT([bfs])
1744 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1747 AC_ARG_ENABLE([minix],
1748 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1749 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1751 UL_BUILD_INIT([minix])
1752 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1755 AC_ARG_ENABLE([fdformat],
1756 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1757 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
1759 UL_BUILD_INIT([fdformat])
1760 UL_REQUIRES_LINUX([fdformat])
1761 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1764 AC_ARG_ENABLE([hwclock],
1765 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1766 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1768 have_linuxdummy=$linux_os
1770 UL_BUILD_INIT([hwclock])
1771 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1772 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1774 AC_ARG_ENABLE([hwclock_cmos],
1775 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1776 [], [enable_hwclock_cmos=check]
1778 UL_BUILD_INIT([hwclock_cmos])
1779 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1780 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1781 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1782 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1783 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1786 AC_ARG_ENABLE([hwclock_gplv3],
1787 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1788 [], [enable_hwclock_gplv3=yes]
1790 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1791 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1792 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1796 AC_ARG_ENABLE([mkfs],
1797 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1798 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1800 UL_BUILD_INIT([mkfs])
1801 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1803 UL_BUILD_INIT([isosize], [yes])
1804 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1807 AC_ARG_ENABLE([fstrim],
1808 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1809 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1811 UL_BUILD_INIT([fstrim])
1812 UL_REQUIRES_LINUX([fstrim])
1813 UL_REQUIRES_BUILD([fstrim], [libmount])
1814 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1817 AC_ARG_ENABLE([swapon],
1818 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1819 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1821 UL_BUILD_INIT([swapon])
1822 UL_REQUIRES_LINUX([swapon])
1823 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1824 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1825 UL_REQUIRES_BUILD([swapon], [libblkid])
1826 UL_REQUIRES_BUILD([swapon], [libmount])
1827 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1828 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1829 AC_CHECK_FUNCS([swapon])
1830 AC_CHECK_FUNCS([swapoff])
1833 UL_BUILD_INIT([lsblk], [check])
1834 UL_REQUIRES_LINUX([lsblk])
1835 UL_REQUIRES_BUILD([lsblk], [libblkid])
1836 UL_REQUIRES_BUILD([lsblk], [libmount])
1837 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1838 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1841 AC_ARG_ENABLE([lscpu],
1842 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1843 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1845 UL_BUILD_INIT([lscpu])
1846 UL_REQUIRES_LINUX([lscpu])
1847 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1848 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1849 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1851 AC_ARG_ENABLE([lsfd],
1852 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1853 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1855 UL_BUILD_INIT([lsfd])
1856 UL_REQUIRES_LINUX([lsfd])
1857 UL_REQUIRES_BUILD([lsfd], [libsmartcols])
1858 UL_REQUIRES_HAVE([lsfd], [linux_bpf_h], [linux/bpf.h header file])
1859 AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
1861 AC_ARG_ENABLE([lslogins],
1862 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1863 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1865 UL_BUILD_INIT([lslogins])
1866 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1867 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1868 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1869 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1870 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1873 UL_BUILD_INIT([chcpu], [check])
1874 UL_REQUIRES_LINUX([chcpu])
1875 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1876 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1879 AC_ARG_ENABLE([wdctl],
1880 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1881 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1883 UL_BUILD_INIT([wdctl])
1884 UL_REQUIRES_LINUX([wdctl])
1885 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1886 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1887 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1890 UL_BUILD_INIT([swaplabel], [check])
1891 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1892 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1895 UL_BUILD_INIT([mkswap], [yes])
1896 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1897 AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
1898 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1902 AC_ARG_ENABLE([cal],
1903 AS_HELP_STRING([--disable-cal], [do not build cal]),
1904 [], [UL_DEFAULT_ENABLE([cal], [check])]
1906 UL_BUILD_INIT([cal])
1907 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1909 AC_ARG_ENABLE([logger],
1910 AS_HELP_STRING([--disable-logger], [do not build logger]),
1911 [], [UL_DEFAULT_ENABLE([logger], [check])]
1913 UL_BUILD_INIT([logger])
1914 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1916 UL_BUILD_INIT([look], [yes])
1917 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1919 UL_BUILD_INIT([mcookie], [yes])
1920 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1922 UL_BUILD_INIT([namei], [yes])
1923 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1925 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1926 if test "x$matriplet" != "x"; then
1927 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1928 ["Multi-arch triplet for whereis library search path"])
1930 AC_ARG_ENABLE([whereis],
1931 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1932 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1934 UL_BUILD_INIT([whereis])
1935 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1937 AC_ARG_ENABLE([pipesz],
1938 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
1939 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
1941 UL_BUILD_INIT([pipesz])
1942 UL_REQUIRES_LINUX([pipesz])
1943 AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1945 UL_BUILD_INIT([fadvise], [check])
1946 UL_REQUIRES_LINUX([fadvise])
1947 AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1949 AC_ARG_ENABLE([waitpid],
1950 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
1951 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
1953 UL_BUILD_INIT([waitpid])
1954 UL_REQUIRES_LINUX([waitpid])
1955 UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
1956 AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1958 AC_ARG_ENABLE([enosys],
1959 AS_HELP_STRING([--disable-enosys], [do not build enosys]),
1960 [], [UL_DEFAULT_ENABLE([enosys], [check])]
1962 UL_BUILD_INIT([enosys])
1963 UL_REQUIRES_LINUX([enosys])
1964 UL_REQUIRES_HAVE([enosys], [linux_audit_h], [linux/audit.h header file])
1965 AS_IF([test "x$build_enosys" = xyes], [
1966 AC_MSG_CHECKING([for valid audit arch])
1968 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1969 [AC_MSG_RESULT([yes])],
1970 [AC_MSG_RESULT([no])
1974 AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1976 UL_BUILD_INIT([lsclocks], [check])
1977 UL_REQUIRES_LINUX([lsclocks])
1978 UL_REQUIRES_BUILD([lsclocks], [libsmartcols])
1979 AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes])
1981 UL_BUILD_INIT([getopt], [yes])
1982 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1985 UL_BUILD_INIT([blockdev], [check])
1986 UL_REQUIRES_LINUX([blockdev])
1987 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1990 UL_BUILD_INIT([prlimit], [check])
1991 UL_REQUIRES_LINUX([prlimit])
1992 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1993 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1994 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1995 AS_IF([test "x$build_prlimit" = xyes], [
1996 dnl check for valid prlimit() function
1997 AC_MSG_CHECKING([for valid prlimit() function])
1998 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1999 #include <sys/types.h>
2000 #include <sys/time.h>
2001 #include <sys/resource.h>
2005 ret = prlimit(0, RLIMIT_AS, NULL, NULL);
2010 AC_MSG_RESULT([yes])
2011 AC_DEFINE([HAVE_PRLIMIT], [1], [Have valid prlimit() function])],[
2012 AC_MSG_RESULT([no])])
2017 UL_BUILD_INIT([lslocks], [check])
2018 UL_REQUIRES_LINUX([lslocks])
2019 UL_REQUIRES_BUILD([lslocks], [libmount])
2020 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
2021 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
2024 AC_ARG_ENABLE([switch_root],
2025 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
2026 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
2028 UL_BUILD_INIT([switch_root])
2029 UL_REQUIRES_LINUX([switch_root])
2030 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
2031 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
2032 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
2035 AC_ARG_ENABLE([pivot_root],
2036 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
2037 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
2039 UL_BUILD_INIT([pivot_root])
2040 UL_REQUIRES_LINUX([pivot_root])
2041 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
2042 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
2045 UL_BUILD_INIT([flock], [check])
2046 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
2047 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
2050 AC_ARG_ENABLE([lsmem],
2051 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
2052 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
2054 UL_BUILD_INIT([lsmem])
2055 UL_REQUIRES_LINUX([lsmem])
2056 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
2057 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
2060 AC_ARG_ENABLE([chmem],
2061 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
2062 [], [UL_DEFAULT_ENABLE([chmem], [check])]
2064 UL_BUILD_INIT([chmem])
2065 UL_REQUIRES_LINUX([chmem])
2066 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
2069 AC_ARG_ENABLE([ipcmk],
2070 AS_HELP_STRING([--disable-ipcmk], [do not build ipcmk]),
2071 [], [UL_DEFAULT_ENABLE([ipcmk], [check])]
2073 UL_BUILD_INIT([ipcmk])
2074 UL_EXCLUDE_ARCH([ipcmk], [*darwin*])
2075 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
2077 AC_ARG_ENABLE([ipcrm],
2078 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
2079 [], [UL_DEFAULT_ENABLE([ipcrm], [check])]
2081 UL_BUILD_INIT([ipcrm])
2082 UL_EXCLUDE_ARCH([ipcrm], [*darwin*])
2083 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
2085 AC_ARG_ENABLE([ipcs],
2086 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
2087 [], [UL_DEFAULT_ENABLE([ipcs], [check])]
2089 UL_BUILD_INIT([ipcs])
2090 UL_EXCLUDE_ARCH([ipcs], [*darwin*])
2091 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
2094 AC_ARG_ENABLE([irqtop],
2095 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
2096 [], [UL_DEFAULT_ENABLE([irqtop], [check])]
2098 UL_BUILD_INIT([irqtop])
2099 UL_REQUIRES_LINUX([irqtop])
2100 UL_REQUIRES_BUILD([irqtop], [libsmartcols])
2101 UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
2102 UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
2103 AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
2105 AC_ARG_ENABLE([lsirq],
2106 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
2107 [], [UL_DEFAULT_ENABLE([lsirq], [check])]
2109 UL_BUILD_INIT([lsirq])
2110 UL_REQUIRES_LINUX([lsirq])
2111 UL_REQUIRES_BUILD([lsirq], [libsmartcols])
2112 AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
2115 UL_BUILD_INIT([choom], [check])
2116 UL_REQUIRES_LINUX([choom])
2117 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
2119 UL_BUILD_INIT([lsipc], [check])
2120 UL_REQUIRES_LINUX([lsipc])
2121 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
2122 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
2124 AC_ARG_ENABLE([lsns],
2125 AS_HELP_STRING([--disable-lsns], [do not build lsns]),
2126 [], [UL_DEFAULT_ENABLE([lsns], [check])]
2128 UL_BUILD_INIT([lsns])
2129 UL_REQUIRES_LINUX([lsns])
2130 UL_REQUIRES_BUILD([lsns], [libsmartcols])
2131 UL_REQUIRES_BUILD([lsns], [libmount])
2132 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
2134 UL_BUILD_INIT([renice], [yes])
2135 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
2138 AC_ARG_ENABLE([rfkill],
2139 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
2140 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
2142 UL_BUILD_INIT([rfkill])
2143 UL_REQUIRES_LINUX([rfkill])
2144 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
2145 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
2148 UL_BUILD_INIT([setpgid], [yes])
2149 AM_CONDITIONAL([BUILD_SETPGID], [test "x$build_setpgid" = xyes])
2151 UL_BUILD_INIT([setsid], [yes])
2152 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
2154 UL_BUILD_INIT([readprofile], [check])
2155 UL_REQUIRES_LINUX([readprofile])
2156 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
2158 UL_BUILD_INIT([dmesg], [check])
2159 UL_REQUIRES_LINUX([dmesg])
2160 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
2162 UL_BUILD_INIT([ctrlaltdel], [check])
2163 UL_REQUIRES_LINUX([ctrlaltdel])
2164 dnl we assume reboot() to be the 1-argument variant, because even considering
2165 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
2166 dnl reboot() with multiple arguments is yet only found in glibc versions
2167 dnl earlier than 2.x.
2168 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
2169 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
2171 AC_ARG_ENABLE([exch],
2172 AS_HELP_STRING([--disable-exch], [do not build exch]),
2173 [], [UL_DEFAULT_ENABLE([exch], [check])]
2175 UL_BUILD_INIT([exch])
2176 UL_REQUIRES_LINUX([exch])
2177 UL_REQUIRES_SYSCALL_CHECK([exch], [UL_CHECK_SYSCALL([renameat2])])
2178 AM_CONDITIONAL([BUILD_EXCH], [test "x$build_exch" = xyes])
2180 UL_BUILD_INIT([fincore], [check])
2181 UL_REQUIRES_LINUX([fincore])
2182 UL_REQUIRES_BUILD([fincore], [libsmartcols])
2183 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
2185 UL_BUILD_INIT([fsfreeze], [check])
2186 UL_REQUIRES_LINUX([fsfreeze])
2187 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
2189 UL_BUILD_INIT([blkdiscard], [check])
2190 UL_REQUIRES_LINUX([blkdiscard])
2191 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
2193 UL_BUILD_INIT([blkzone], [check])
2194 UL_REQUIRES_LINUX([blkzone])
2195 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
2196 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
2198 UL_BUILD_INIT([blkpr], [check])
2199 UL_REQUIRES_LINUX([blkpr])
2200 UL_REQUIRES_HAVE([blkpr], [linux_pr_h], [linux/pr.h header])
2201 AM_CONDITIONAL([BUILD_BLKPR], [test "x$build_blkpr" = xyes])
2203 UL_BUILD_INIT([ldattach], [check])
2204 UL_REQUIRES_LINUX([ldattach])
2205 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
2207 UL_BUILD_INIT([rtcwake], [check])
2208 UL_REQUIRES_LINUX([rtcwake])
2209 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
2211 UL_BUILD_INIT([setarch], [check])
2212 UL_REQUIRES_LINUX([setarch])
2213 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
2216 # build_scriptutils= is just configure-only variable to control
2217 # script, scriptreplay and scriptlive
2218 AC_ARG_ENABLE([scriptutils],
2219 AS_HELP_STRING([--disable-scriptutils], [do not build script, scriptreplay and scriptlive]),
2220 [], [UL_DEFAULT_ENABLE([scriptutils], [check])]
2223 UL_ENABLE_ALIAS([script], [scriptutils])
2224 UL_BUILD_INIT([script])
2225 UL_REQUIRES_HAVE([script], [pty], [openpty function (libutil)])
2226 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
2228 UL_ENABLE_ALIAS([scriptreplay], [scriptutils])
2229 UL_BUILD_INIT([scriptreplay])
2230 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
2232 UL_ENABLE_ALIAS([scriptlive], [scriptutils])
2233 UL_BUILD_INIT([scriptlive])
2234 UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)])
2235 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
2238 UL_BUILD_INIT([col], [check])
2239 UL_REQUIRES_COMPILE([col], [#include <limits.h>], [__GLIBC__], [building for glibc])
2240 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
2242 UL_BUILD_INIT([colcrt], [yes])
2243 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
2245 UL_BUILD_INIT([colrm], [yes])
2246 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
2248 UL_BUILD_INIT([column], [check])
2249 UL_REQUIRES_BUILD([column], [libsmartcols])
2250 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
2252 UL_BUILD_INIT([hexdump], [yes])
2253 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
2255 UL_BUILD_INIT([rev], [yes])
2256 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
2259 AC_ARG_ENABLE([tunelp],
2260 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
2261 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
2263 UL_BUILD_INIT([tunelp])
2264 UL_REQUIRES_LINUX([tunelp])
2265 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
2268 AC_ARG_ENABLE([kill],
2269 AS_HELP_STRING([--disable-kill], [do not build kill]),
2270 [], [UL_DEFAULT_ENABLE([kill], [check])]
2272 UL_BUILD_INIT([kill])
2273 UL_REQUIRES_LINUX([kill])
2274 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
2277 AC_ARG_ENABLE([last],
2278 AS_HELP_STRING([--disable-last], [do not build last]),
2279 [], [UL_DEFAULT_ENABLE([last], [check])]
2281 UL_BUILD_INIT([last])
2282 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
2283 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
2284 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2287 AC_ARG_ENABLE([utmpdump],
2288 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
2289 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
2291 UL_BUILD_INIT([utmpdump])
2292 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
2293 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
2294 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
2297 AC_ARG_ENABLE([line],
2298 AS_HELP_STRING([--enable-line], [build line]),
2299 [], [UL_DEFAULT_ENABLE([line], [no])]
2301 UL_BUILD_INIT([line])
2302 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2305 AC_ARG_ENABLE([mesg],
2306 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
2307 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
2309 UL_BUILD_INIT([mesg])
2310 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
2313 AC_ARG_ENABLE([raw],
2314 AS_HELP_STRING([--disable-raw], [do not build raw]),
2315 [], [UL_DEFAULT_ENABLE([raw], [check])]
2317 UL_BUILD_INIT([raw])
2318 UL_REQUIRES_LINUX([raw])
2319 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
2320 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
2323 AC_ARG_ENABLE([rename],
2324 AS_HELP_STRING([--disable-rename], [do not build rename]),
2325 [], [UL_DEFAULT_ENABLE([rename], [yes])]
2327 UL_BUILD_INIT([rename])
2328 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
2331 AC_ARG_ENABLE([vipw],
2332 AS_HELP_STRING([--enable-vipw], [build vipw]),
2333 [], [UL_DEFAULT_ENABLE([vipw], [no])]
2335 UL_BUILD_INIT([vipw])
2336 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
2337 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
2340 AC_ARG_ENABLE([newgrp],
2341 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
2342 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
2344 UL_BUILD_INIT([newgrp])
2345 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
2346 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
2349 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
2350 [], [with_user=check]
2353 AS_IF([test "x$with_user" != xno], [
2354 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
2355 AS_CASE([$with_user:$have_user],
2357 [AC_MSG_ERROR([user selected but libuser not found])],
2359 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2361 # temporary solution, libuser has stupid .pc where are exported all
2362 # private dependencies to Requires: instead of Requires.private:
2363 AS_IF([test "x$have_user" = xyes], [
2367 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
2369 AC_ARG_ENABLE([chfn-chsh-password],
2370 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
2371 [], [enable_chfn_chsh_password=yes]
2374 AC_ARG_ENABLE([chfn-chsh],
2375 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
2376 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
2378 UL_BUILD_INIT([chfn_chsh])
2379 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
2380 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
2382 AS_IF([test "x$enable_chfn_chsh_password" = xyes || test "x$have_user" = xyes], [
2383 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
2384 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
2386 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2387 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
2389 AC_ARG_ENABLE([chsh-only-listed],
2390 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2391 [], enable_chsh_only_listed=yes
2394 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2395 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2399 AC_ARG_ENABLE([login],
2400 AS_HELP_STRING([--disable-login], [do not build login]),
2401 [], [UL_DEFAULT_ENABLE([login], [check])]
2403 UL_BUILD_INIT([login])
2404 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2405 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2406 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2407 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2408 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2410 AC_ARG_ENABLE([login-chown-vcs],
2411 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2412 [], [enable_login_chown_vcs=no]
2415 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2416 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2419 AC_ARG_ENABLE([login-stat-mail],
2420 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2421 [], [enable_login_stat_mail=no]
2424 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2425 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2428 AC_ARG_ENABLE([login-lastlog],
2429 AS_HELP_STRING([--enable-login-lastlog], [program login writes lastlog entries]),
2430 [], [enable_login_lastlogin=no]
2433 AS_IF([test "x$enable_login_lastlogin" != xno], [
2434 AC_DEFINE([USE_LOGIN_LASTLOG],
2436 [Define if program login writes lastlog entries])
2439 AC_ARG_ENABLE([nologin],
2440 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2441 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2443 UL_BUILD_INIT([nologin])
2444 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2447 AC_ARG_ENABLE([sulogin],
2448 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2449 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2451 UL_BUILD_INIT([sulogin])
2452 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2453 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2454 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2458 AS_HELP_STRING([--disable-su], [do not build su]),
2459 [], [UL_DEFAULT_ENABLE([su], [check])]
2462 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2463 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2464 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2465 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2468 AC_ARG_ENABLE([runuser],
2469 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2470 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2472 UL_BUILD_INIT([runuser])
2473 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2474 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2475 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2476 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2480 AS_HELP_STRING([--disable-ul], [do not build ul]),
2481 [], [UL_DEFAULT_ENABLE([ul], [check])]
2484 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2485 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2488 AC_ARG_ENABLE([more],
2489 AS_HELP_STRING([--disable-more], [do not build more]),
2490 [], [UL_DEFAULT_ENABLE([more], [check])]
2492 UL_BUILD_INIT([more])
2493 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2494 UL_REQUIRES_LINUX([more])
2495 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2499 AS_HELP_STRING([--enable-pg], [build pg]),
2500 [], [UL_DEFAULT_ENABLE([pg], [no])]
2503 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2504 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2507 AC_ARG_ENABLE([setterm],
2508 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2509 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2511 UL_BUILD_INIT([setterm])
2512 UL_REQUIRES_LINUX([setterm])
2513 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2514 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2516 # build_schedutils= is just configure-only variable to control
2517 # ionice, taskset and chrt
2518 AC_ARG_ENABLE([schedutils],
2519 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2520 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2524 UL_ENABLE_ALIAS([ionice], [schedutils])
2525 UL_BUILD_INIT([ionice])
2526 UL_REQUIRES_SYSCALL_CHECK([ionice],
2527 [UL_CHECK_SYSCALL([ioprio_set],
2538 UL_REQUIRES_SYSCALL_CHECK([ionice],
2539 [UL_CHECK_SYSCALL([ioprio_get],
2550 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2553 UL_ENABLE_ALIAS([taskset], [schedutils])
2554 UL_BUILD_INIT([taskset])
2555 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2556 UL_REQUIRES_SYSCALL_CHECK([taskset],
2557 [UL_CHECK_SYSCALL([sched_getaffinity])],
2558 [sched_getaffinity])
2559 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2563 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2564 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2566 UL_ENABLE_ALIAS([chrt], [schedutils])
2567 UL_BUILD_INIT([chrt])
2568 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2569 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2571 AS_IF([test "x$build_chrt" = xyes], [
2572 UL_CHECK_SYSCALL([sched_setattr])
2575 UL_ENABLE_ALIAS([uclampset], [schedutils])
2576 UL_BUILD_INIT([uclampset])
2577 UL_REQUIRES_SYSCALL_CHECK([uclampset],
2578 [UL_CHECK_SYSCALL([sched_setattr])], [sched_setattr])
2579 AM_CONDITIONAL([BUILD_UCLAMPSET], [test "x$build_uclampset" = xyes])
2582 AC_ARG_ENABLE([wall],
2583 AS_HELP_STRING([--disable-wall], [do not build wall]),
2584 [], [UL_DEFAULT_ENABLE([wall], [check])]
2586 UL_BUILD_INIT([wall])
2587 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2588 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2591 AC_ARG_ENABLE([write],
2592 AS_HELP_STRING([--enable-write], [build write]),
2593 [], [UL_DEFAULT_ENABLE([write], [no])]
2595 UL_BUILD_INIT([write])
2596 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2597 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2598 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2601 AC_ARG_WITH([btrfs],
2602 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2603 [], [with_btrfs=check]
2606 AS_IF([test "x$with_btrfs" != xno], [
2607 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2609 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2611 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2614 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2617 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2620 AC_ARG_WITH([systemd],
2621 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2622 [], [with_systemd=check]
2626 AS_IF([test "x$with_systemd" != xno], [
2627 # new version -- all libsystemd-* libs merged into libsystemd
2628 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2630 AS_IF([test "x$have_systemd" != "xyes"], [
2631 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2632 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2633 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2634 [have_systemd_journal=yes], [have_systemd_journal=no])
2635 AS_IF([test "x$have_systemd_daemon" = "xyes" && test "x$have_systemd_journal" = "xyes" ],[
2638 AS_CASE([$with_systemd:$have_systemd],
2640 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2642 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2643 AC_DEFINE([USE_SYSTEMD], [1], [Define if systemd support is wanted ])
2644 AC_CHECK_DECLS([sd_session_get_username], [], [], [#include <systemd/sd-login.h>])
2647 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2650 AC_ARG_WITH([systemdsystemunitdir],
2651 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2653 AS_IF([test "x$have_systemd" = xyes], [
2654 PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
2656 [with_systemdsystemunitdir=no])
2659 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2660 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2663 AC_ARG_WITH([tmpfilesdir],
2664 AS_HELP_STRING([--with-tmpfilesdir=DIR], [directory for tmpfiles. See tmpfiles.d(5) for details]),
2666 AS_IF([test "x$have_systemd" = xyes], [
2667 PKG_CHECK_VAR([with_tmpfilesdir], [systemd], [tmpfilesdir],
2669 [with_tmpfilesdir=no])
2672 AS_IF([test "x$with_tmpfilesdir" != "xno"], [
2673 AC_SUBST([tmpfilesdir], [$with_tmpfilesdir])
2676 AC_ARG_WITH([smack],
2677 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2680 AS_IF([test "x$with_smack" = xyes], [
2681 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2684 AC_ARG_WITH([econf],
2685 AS_HELP_STRING([--without-econf], [do not use libeconf]),
2686 [], [with_econf=check]
2690 AS_IF([test "x$with_econf" != xno], [
2691 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
2692 AS_CASE([$with_econf:$have_econf],
2694 [AC_MSG_ERROR([libeconf expected but libeconf not found])],
2696 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
2699 AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
2701 AC_ARG_WITH([vendordir],
2702 AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
2705 AC_SUBST([vendordir], [$with_vendordir])
2706 AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
2707 AS_IF([test "x$with_vendordir" != x], [
2708 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
2712 AC_ARG_ENABLE([bash-completion],
2713 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2714 [], [enable_bash_completion=yes]
2717 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2719 AC_ARG_WITH([bashcompletiondir],
2720 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2722 AS_IF([test "x$enable_bash_completion" = xyes], [
2723 PKG_CHECK_VAR([with_bashcompletiondir], [bash-completion], [completionsdir],
2725 [with_bashcompletiondir=${datadir}/bash-completion/completions])
2728 AS_IF([test "x$enable_bash_completion" = xyes], [
2729 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2733 AC_ARG_WITH([python],
2734 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2735 [], [with_python=check withval=check]
2740 AS_IF([test "x$with_python" != xno], [
2741 # We follow distributions default and look for PKG module name "python"
2742 # (minimal version is 2) but if major version is explicitly specified by
2743 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2745 AS_IF([test "x$withval" != xno && test "x$withval" != xyes && test "x$withval" != xcheck],
2746 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2748 # check for python interpreter
2749 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2750 AS_CASE([$with_python:$have_python],
2752 [AC_MSG_ERROR([python selected but python interpreter not found])],
2754 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2756 # check for python development stuff
2758 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], [have_libpython=yes], [have_libpython=no])
2760 # https://github.com/util-linux/util-linux/issues/2366
2761 AX_COMPARE_VERSION([$PYTHON_VERSION], [ge], [3.12], [
2762 UL_WARN_ADD([-Wno-error=redundant-decls], [PYTHON_CFLAGS])
2769 AC_ARG_ENABLE([pylibmount],
2770 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2771 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2773 UL_BUILD_INIT([pylibmount])
2774 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2775 UL_REQUIRES_BUILD([pylibmount], [libmount])
2776 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2778 # We need to introduce a verbatim dependency into the Makefile, without automake
2779 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2780 verbatim_pylibmount_dependency='
2782 # pylibmountexec module must be installed after usrlib_exec libraries,
2783 # otherwise the libtool relink step will fail to find libmount.la and
2784 # will try -lmount which is possibly not available.
2785 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2788 AC_SUBST([verbatim_pylibmount_dependency])
2789 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2791 AC_ARG_ENABLE([pg-bell],
2792 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2793 [], [enable_pg_bell=yes]
2796 AS_IF([test "x$enable_pg_bell" = xyes], [
2797 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2801 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2802 AC_ARG_ENABLE([fs-paths-default],
2803 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2804 [AS_CASE([$enableval],
2805 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2806 [no], [fs_paths_defaults=""],
2807 [fs_paths_defaults="$enableval"]
2809 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2811 AC_ARG_ENABLE([fs-paths-extra],
2812 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2813 [AS_CASE([$enableval],
2814 [yes|no], [fs_paths_extra=""],
2815 [fs_paths_extra="$enableval"]
2819 fs_paths="$fs_paths_defaults"
2820 AS_IF([test "x$fs_paths_extra" != "x"], [
2821 AS_IF([test "x$fs_paths" != "x"], [
2822 fs_paths="${fs_paths}:"
2824 fs_paths="${fs_paths}${fs_paths_extra}"
2826 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2829 AC_ARG_ENABLE([use-tty-group],
2830 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2831 [], [enable_use_tty_group=yes]
2833 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2835 AS_IF([test "x$enable_use_tty_group" = xyes], [
2836 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2840 AC_ARG_ENABLE([sulogin-emergency-mount],
2841 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2842 [use emergency mount of /dev and /proc for sulogin]),
2843 [], [enable_sulogin_emergency_mount=no]
2846 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2847 AS_IF([test "x$linux_os" = xyes], [ ],
2848 [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
2849 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2850 [Should sulogin use an emergency mount of /dev and /proc?])
2854 AC_ARG_ENABLE([usrdir-path],
2855 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2856 [], [enable_usrdir_path=no]
2859 AS_IF([test "x$enable_usrdir_path" = xyes], [
2860 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2864 AC_ARG_ENABLE([makeinstall-chown],
2865 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2866 [], [enable_makeinstall_chown=yes]
2868 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2871 AC_ARG_ENABLE([makeinstall-setuid],
2872 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2873 [], [enable_makeinstall_setuid=yes]
2875 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2878 AC_ARG_ENABLE([colors-default],
2879 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2880 [], [enable_colors_default=yes]
2882 AS_IF([test "x$enable_colors_default" = xyes], [
2883 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2887 AC_ARG_WITH([cryptsetup],
2888 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2889 [], [with_cryptsetup=no]
2892 AS_IF([test "x$with_cryptsetup" = xno], [
2893 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2894 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2896 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2897 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2898 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2899 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
2900 SAVE_CFLAGS="$CFLAGS"
2901 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2903 LIBS="$CRYPTSETUP_LIBS $LIBS"
2904 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
2905 AC_DEFINE([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
2907 AS_IF([test "x$with_cryptsetup" = xdlopen], [
2909 AC_CHECK_LIB([dl], [dlsym], [
2910 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen])
2911 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true])
2912 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])])
2914 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2916 CFLAGS="$SAVE_CFLAGS"
2918 have_cryptsetup=yes],
2920 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2921 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2924 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2925 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2928 AC_SUBST([CRYPTSETUP_LIBS])
2929 AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2932 AC_ARG_VAR([SUID_CFLAGS],
2933 [CFLAGS used for binaries which are usually with the suid bit])
2934 AC_ARG_VAR([SUID_LDFLAGS],
2935 [LDFLAGS used for binaries which are usually with the suid bit])
2937 AC_ARG_VAR([DAEMON_CFLAGS],
2938 [CFLAGS used for binaries which are usually executed as daemons])
2939 AC_ARG_VAR([DAEMON_LDFLAGS],
2940 [LDFLAGS used for binaries which are usually executed as daemons])
2942 AC_ARG_VAR([SOLIB_CFLAGS],
2943 [CFLAGS used for shared libraries])
2944 AC_ARG_VAR([SOLIB_LDFLAGS],
2945 [LDFLAGS used for shared libraries])
2947 AC_ARG_VAR([ADJTIME_PATH],
2948 [Path to hwclock adjtime file, default /etc/adjtime])
2949 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2950 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2952 if test "x${build_alias}" != "x${host_alias}"; then
2953 AC_MSG_NOTICE([setting link_all_deplibs=unknown for libtool])
2954 # work around Debian patch to libtool breaking cross-compiles
2955 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737
2956 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726
2957 link_all_deplibs=unknown
2964 AC_CONFIG_HEADERS([config.h])
2967 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2972 libblkid/docs/Makefile
2973 libblkid/docs/version.xml
2974 libblkid/src/blkid.h
2975 libfdisk/docs/Makefile
2976 libfdisk/docs/version.xml
2977 libfdisk/src/libfdisk.h
2978 libmount/docs/Makefile
2979 libmount/docs/version.xml
2980 libmount/src/libmount.h
2981 libsmartcols/docs/Makefile
2982 libsmartcols/docs/version.xml
2983 libsmartcols/src/libsmartcols.h
2991 ${PACKAGE} ${VERSION}
2994 exec prefix: ${exec_prefix}
2999 usrbin_execdir: ${usrbin_execdir}
3000 usrsbin_execdir: ${usrsbin_execdir}
3001 usrlib_execdir: ${usrlib_execdir}
3003 localstatedir: ${localstatedir}
3004 runstatedir: ${runstatedir}
3005 includedir: ${includedir}
3006 sysconfdir: ${sysconfdir}
3007 sysconfstaticdir: ${sysconfstaticdir}
3009 vendordir: ${with_vendordir}
3012 Python version: ${PYTHON_VERSION}
3013 Python libs: ${pyexecdir}
3015 Bash completions: ${with_bashcompletiondir}
3016 Systemd support: ${have_systemd}
3017 Systemd unitdir: ${with_systemdsystemunitdir}
3018 tmpfilesdir: ${with_tmpfilesdir}
3019 libeconf support: ${have_econf}
3020 Btrfs support: ${have_btrfs}
3021 lastlog2 support: ${build_liblastlog2}
3022 Wide-char support: ${build_widechar}
3023 libcryptsetup support: ${have_cryptsetup}
3025 Manual pages: ${build_asciidoc}
3026 Manual pages translated: ${build_poman}
3028 compiler: ${CC} / ${CXX}
3029 suid cflags: ${SUID_CFLAGS}
3031 suid ldflags: ${SUID_LDFLAGS}
3032 ASAN enabled: ${enable_asan}
3033 Fuzzing enabled: ${enable_fuzzing_engine}
3034 Coverage enabled ${enable_coverage}
3042 Type 'make' or 'make <utilname>' to compile.