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="17-May-2023"
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
46 LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
50 LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
52 dnl libsmartcols version
53 LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
54 LIBSMARTCOLS_LT_MAJOR=1
55 LIBSMARTCOLS_LT_MINOR=1
56 LIBSMARTCOLS_LT_MICRO=0
57 LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
60 LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
64 LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
66 # Check whether exec_prefix=/usr:
67 AS_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]) ])
77 # Check whether prefix=/usr
80 [AC_MSG_NOTICE([Default --prefix detected.])
81 AS_CASE([$localstatedir], [NONE | '${prefix}/var' | "${prefix}"/var ],
82 [localstatedir=/var; AC_MSG_NOTICE([ --localstatedir defaults to /var])])
83 AS_CASE([$sysconfdir], [NONE | '${prefix}/etc' | "${prefix}"/etc ],
84 [sysconfdir=/etc; AC_MSG_NOTICE([ --sysconfdir defaults to /etc])])
89 # default for old versions without $runstatedir
90 AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
92 # our default if $localstatedir unchanged
93 AS_CASE([$localstatedir:$runstatedir],
94 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
95 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
98 AC_SUBST([runstatedir])
101 # The original default values of {bin,sbin,lib}dir
102 usrbin_execdir='${exec_prefix}/bin'
103 AC_SUBST([usrbin_execdir])
105 usrsbin_execdir='${exec_prefix}/sbin'
106 AC_SUBST([usrsbin_execdir])
109 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
110 [usrlib_execdir=$libdir],
111 [usrlib_execdir='${exec_prefix}'$libdir]
113 AC_SUBST([usrlib_execdir])
115 # static configuration maintaned by packages (e.g. /usr/lib)
116 AC_ARG_VAR([SYSCONFSTATICDIR],
117 [Path to static system configuration, default ${prefix}/lib])
118 AS_IF([test "x$SYSCONFSTATICDIR" = x],
119 [sysconfstaticdir='${prefix}/lib'],
120 [sysconfstaticdir=$SYSCONFSTATICDIR])
121 AC_SUBST([sysconfstaticdir])
128 # Don't use autotools integrated LEX/YACC support for libsmartcols
129 AC_PATH_PROG([FLEX], [flex])
130 AC_PATH_PROG([BISON], [bison])
136 dnl Compiler warnings
137 UL_WARN_ADD([-fno-common])
139 UL_WARN_ADD([-Wextra])
141 UL_WARN_ADD([-Waddress-of-packed-member])
142 UL_WARN_ADD([-Wdiscarded-qualifiers])
143 UL_WARN_ADD([-Wembedded-directive])
144 UL_WARN_ADD([-Wextra-semi])
145 UL_WARN_ADD([-Wformat-security])
146 UL_WARN_ADD([-Wimplicit-function-declaration])
147 UL_WARN_ADD([-Wmissing-declarations])
148 UL_WARN_ADD([-Wmissing-parameter-type])
149 UL_WARN_ADD([-Wmissing-prototypes])
150 UL_WARN_ADD([-Wnested-externs])
151 UL_WARN_ADD([-Wno-missing-field-initializers])
152 UL_WARN_ADD([-Wold-style-definition])
153 UL_WARN_ADD([-Wpointer-arith])
154 UL_WARN_ADD([-Wredundant-decls])
155 UL_WARN_ADD([-Wsign-compare])
156 UL_WARN_ADD([-Wstrict-prototypes])
157 UL_WARN_ADD([-Wtype-limits])
158 UL_WARN_ADD([-Wuninitialized])
159 UL_WARN_ADD([-Wunused-but-set-parameter])
160 UL_WARN_ADD([-Wunused-but-set-variable])
161 UL_WARN_ADD([-Wunused-parameter])
162 UL_WARN_ADD([-Wunused-result])
163 UL_WARN_ADD([-Wunused-variable])
165 UL_WARN_ADD([-Walloca])
167 AC_ARG_ENABLE([werror],
168 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
169 [], [enable_werror=no]
171 AS_IF([test "x$enable_werror" = xyes], [
172 UL_WARN_ADD([-Werror])
174 UL_WARN_ADD([-Werror=sequence-point])
177 AC_SUBST([WARN_CFLAGS])
180 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
181 AC_SUBST([BSD_WARN_CFLAGS])
183 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
184 AC_SUBST([PYTHON_WARN_CFLAGS])
187 AC_ARG_ENABLE([asan],
188 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
191 AS_IF([test "x$enable_asan" = xyes], [
192 UL_WARN_ADD([-fsanitize=address])
193 ASAN_LDFLAGS="-fsanitize=address"
195 AC_SUBST([ASAN_LDFLAGS])
197 AC_ARG_ENABLE([ubsan],
198 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
199 [], [enable_ubsan=no]
201 AS_IF([test "x$enable_ubsan" = xyes], [
202 UL_WARN_ADD([-fsanitize=undefined])
203 UBSAN_LDFLAGS="-fsanitize=undefined"
205 AC_SUBST([UBSAN_LDFLAGS])
207 AC_ARG_ENABLE([fuzzing-engine],
208 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
209 [], [enable_fuzzing_engine=no]
211 AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
212 UL_WARN_ADD([-fno-omit-frame-pointer])
213 UL_WARN_ADD([-gline-tables-only])
214 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
215 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
217 AC_SUBST([FUZZING_ENGINE_LDFLAGS])
219 AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
220 AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
222 AC_ARG_ENABLE([coverage],
223 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
224 [], [enable_coverage=no]
226 AS_IF([test "x$enable_coverage" = xyes], [
227 UL_WARN_ADD([--coverage])
228 COVERAGE_LDFLAGS="--coverage"
230 AC_SUBST([COVERAGE_LDFLAGS])
231 AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
236 dnl check supported linker flags
239 m4_ifndef([PKG_PROG_PKG_CONFIG],
240 [m4_fatal([Could not locate the pkg-config autoconf
241 macros. These are usually located in /usr/share/aclocal/pkg.m4.
242 If your macros are in a different location, try setting the
243 environment variable AL_OPTS="-I/other/macro/dir" before running
244 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
246 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
248 GTK_DOC_CHECK([1.10])
249 AC_PATH_PROG([XSLTPROC], [xsltproc])
254 AS_CASE([${host_os}],
261 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
262 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
263 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
265 AS_IF([test "x$darwin_os" = xyes], [
266 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
269 dnl define ARCH_<NAME> conditionals
270 UL_SET_ARCH([I86], [i?86-*])
271 UL_SET_ARCH([86_64], [x86_64*])
272 UL_SET_ARCH([IA64], [ia64*])
273 UL_SET_ARCH([S390], [s390*])
274 UL_SET_ARCH([SPARC], [sparc*])
275 UL_SET_ARCH([PPC], [ppc*|powerpc*])
276 UL_SET_ARCH([M68K], [m68*])
277 UL_SET_ARCH([MIPS], [mips*])
278 UL_SET_ARCH([HPPA], [hppa*|parisc*])
284 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
285 AM_GNU_GETTEXT_VERSION([0.18.3])
286 AM_GNU_GETTEXT([external])
288 AS_IF([test -d "$srcdir/po"], [
289 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
290 ], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
292 af am ar as be bg bn bn_IN ca
293 cs cy da de el en_GB es et eu_ES
294 fa fi fr gl gu he hi hr hu
295 hy id is it ja ka kn ko ku
296 lo lt lv mk ml mr ms my nb
297 nl nn no nso or pa pl pt pt_BR
298 ro ru si sk sl sq sr sr@Latn sv
299 ta te th tr uk ur vi zh_CN zh_TW
303 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
304 #ifdef HAVE_LINUX_COMPILER_H
305 #include <linux/compiler.h>
309 asm-generic/fcntl.h \
330 linux/net_namespace.h \
346 security/pam_appl.h \
386 # There is a collision in old kernel-headers. The both files mount.h and fs.h
387 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
389 AC_CHECK_HEADERS([linux/fs.h ], [], [],
390 [#ifdef HAVE_SYS_MOUNT_H
391 # include <linux/fs.h>
392 # include <sys/mount.h>
396 AC_CHECK_HEADERS([linux/mount.h ], [], [],
397 [#ifdef HAVE_LINUX_MOUNT_H
398 # include <linux/mount.h>
402 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
403 [#ifdef LINUX_GSMMUX_H
404 # include <linux/gsmmux.h>
408 AC_CHECK_HEADERS([security/pam_misc.h],
409 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
410 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
411 #ifdef HAVE_SECURITY_PAM_APPL_H
412 #include <security/pam_appl.h>
416 AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
417 #include <linux/blkzoned.h>
420 AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
421 #include <linux/pr.h>
424 AC_CHECK_HEADERS([security/openpam.h], [], [], [
425 #ifdef HAVE_SECURITY_PAM_APPL_H
426 #include <security/pam_appl.h>
430 AC_CHECK_HEADERS([langinfo.h],
431 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
432 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
434 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
435 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
436 #include <langinfo.h>
439 str = nl_langinfo (ALTMON_1);
440 str = nl_langinfo (ALTMON_2);
441 str = nl_langinfo (ALTMON_3);
442 str = nl_langinfo (ALTMON_4);
443 str = nl_langinfo (ALTMON_5);
444 str = nl_langinfo (ALTMON_6);
445 str = nl_langinfo (ALTMON_7);
446 str = nl_langinfo (ALTMON_8);
447 str = nl_langinfo (ALTMON_9);
448 str = nl_langinfo (ALTMON_10);
449 str = nl_langinfo (ALTMON_11);
450 str = nl_langinfo (ALTMON_12);
453 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
454 [Define if langinfo.h defines ALTMON_x constants])
460 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
461 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
462 #include <langinfo.h>
465 str = nl_langinfo (_NL_ABALTMON_1);
466 str = nl_langinfo (_NL_ABALTMON_2);
467 str = nl_langinfo (_NL_ABALTMON_3);
468 str = nl_langinfo (_NL_ABALTMON_4);
469 str = nl_langinfo (_NL_ABALTMON_5);
470 str = nl_langinfo (_NL_ABALTMON_6);
471 str = nl_langinfo (_NL_ABALTMON_7);
472 str = nl_langinfo (_NL_ABALTMON_8);
473 str = nl_langinfo (_NL_ABALTMON_9);
474 str = nl_langinfo (_NL_ABALTMON_10);
475 str = nl_langinfo (_NL_ABALTMON_11);
476 str = nl_langinfo (_NL_ABALTMON_12);
479 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
480 [Define if langinfo.h defines _NL_ABALTMON_x constants])
486 dnl Convert some ac_cv_header_* variables to have_*
488 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
489 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
490 have_linux_capability_h=$ac_cv_header_linux_capability_h
491 have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
492 have_linux_mount_h=$ac_cv_header_linux_mount_h
493 have_linux_pr_h=$ac_cv_header_linux_pr_h
494 have_linux_raw_h=$ac_cv_header_linux_raw_h
495 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
496 have_linux_version_h=$ac_cv_header_linux_version_h
497 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
498 have_pty_h=$ac_cv_header_pty_h
499 have_security_openpam_h=$ac_cv_header_security_openpam_h
500 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
501 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
502 have_shadow_h=$ac_cv_header_shadow_h
503 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
504 have_utmpx_h=$ac_cv_header_utmpx_h
505 have_mntent_h=$ac_cv_header_mntent_h
507 AS_CASE([$linux_os:$have_linux_version_h],
509 [AC_MSG_ERROR([kernel headers required on Linux])]
512 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
517 struct tm *tm = localtime(0);
518 if (a == -1) /* false */
519 sleep(tm->tm_gmtoff);
521 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
524 AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
525 AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
527 AC_CHECK_MEMBERS([struct termios.c_line],,,
528 [[#include <termios.h>]])
530 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
531 [[#include <sys/stat.h>]])
533 AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
534 AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
535 [[#include <sys/stat.h>]])
537 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
539 AC_CHECK_DECL([environ],
540 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
541 [Define to 1 if have **environ prototype])],
544 AC_CHECK_DECL([strsignal],
545 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
546 [Define to 1 if have strsignal function prototype])],
549 AC_CHECK_DECL([TIOCGLCKTRMIOS],
550 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
551 [#include <sys/ioctl.h>])
552 AC_CHECK_DECL([SOCK_CLOEXEC],
553 [have_sock_cloexec=yes], [have_sock_cloexec=no],
554 [#include <sys/types.h>
555 #include <sys/socket.h>])
556 AC_CHECK_DECL([SOCK_NONBLOCK],
557 [have_sock_nonblock=yes], [have_sock_nonblock=no],
558 [#include <sys/types.h>
559 #include <sys/socket.h>])
560 AC_CHECK_DECL([SO_PASSCRED],
561 [have_so_passcred=yes], [have_so_passcred=no],
562 [#include <sys/types.h>
563 #include <sys/socket.h>])
592 landlock_create_ruleset \
594 landlock_restrict_self \
644 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
645 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
646 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
647 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
648 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
649 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
650 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
651 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
653 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
654 AM_CONDITIONAL([HAVE_LINUX_LANDLOCK_H], [test "x$ac_cv_header_linux_landlock_h" = xyes])
656 have_setns_syscall="yes"
657 UL_CHECK_SYSCALL([setns])
658 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
659 have_setns_syscall="no"
662 UL_CHECK_SYSCALL([pidfd_open])
663 UL_CHECK_SYSCALL([pidfd_send_signal])
664 UL_CHECK_SYSCALL([close_range])
666 have_renameat2_syscall="yes"
667 UL_CHECK_SYSCALL([renameat2])
668 AS_IF([test "x$ul_cv_syscall_renameat2" = xno], [
669 have_renameat2_syscall="no"
672 UL_CHECK_SYSCALL([fsconfig])
673 UL_CHECK_SYSCALL([fsmount])
674 UL_CHECK_SYSCALL([fsopen])
675 UL_CHECK_SYSCALL([fspick])
676 UL_CHECK_SYSCALL([mount_setattr])
677 UL_CHECK_SYSCALL([move_mount])
678 UL_CHECK_SYSCALL([open_tree])
680 AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
681 test "x$ul_cv_syscall_fsmount" = xno ||
682 test "x$ul_cv_syscall_fsopen" = xno ||
683 test "x$ul_cv_syscall_fspick" = xno ||
684 test "x$ul_cv_syscall_mount_setattr" = xno ||
685 test "x$ul_cv_syscall_move_mount" = xno ||
686 test "x$ul_cv_syscall_open_tree" = xno],
688 have_mountfd_api="no"
690 have_mountfd_api="yes"
691 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
695 AC_CHECK_FUNCS([isnan], [],
696 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
697 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
699 AC_SUBST([MATH_LIBS])
702 dnl lib/mononotic.c may require -lrt
703 AC_CHECK_FUNCS([clock_gettime], [],
704 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
708 AC_CHECK_FUNCS([timer_create],
710 [AC_CHECK_LIB([rt], [timer_create], [
713 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
715 AC_SEARCH_LIBS([timer_create], [rt], [
718 REALTIME_LIBS="-lrt -lpthread"
719 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
725 AC_SUBST([REALTIME_LIBS])
727 AS_IF([test x"$have_timer" = xno], [
728 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
732 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
734 AC_DEFINE([HAVE_LIBRTAS], [1], [Define if librtas exists])
736 AC_SUBST([RTAS_LIBS])
739 AC_CHECK_MEMBER([struct sockaddr.sa_len],
740 AC_DEFINE([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
741 [#include <sys/types.h>
742 #include <sys/socket.h>])
745 AC_SEARCH_LIBS([socket], [socket],
746 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
747 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
749 AC_SUBST([SOCKET_LIBS])
753 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
754 AS_IF([test x"$have_dirfd" = xno], [
755 AC_CHECK_DECLS([dirfd],
756 [have_dirfd=yes], [have_dirfd=no],
757 [#include <sys/types.h>
758 #include <dirent.h>])
762 AS_IF([test x"$have_dirfd" = xno], [
763 AC_CHECK_MEMBERS([DIR.dd_fd],
764 [have_ddfd=yes], [have_ddfd=no],
765 [#include <sys/types.h>
766 #include <dirent.h>])
769 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
772 AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
775 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
776 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
779 program_invocation_short_name = "test";
782 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
783 [Define if program_invocation_short_name is defined])
789 AC_MSG_CHECKING([whether __progname is defined])
790 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
791 [if (*__progname == 0) return 1;])],
792 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
793 AC_MSG_RESULT([yes]),
796 AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
797 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
798 [Define to 1 if OPAL status ioctl is defined])],,
799 [#include <linux/sed-opal.h>])
801 dnl Static compilation
802 m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare])
804 AC_ARG_ENABLE([static-programs],
805 [AS_HELP_STRING([--enable-static-programs=LIST],
806 [link static the programs in LIST (comma-separated,
807 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
809 AS_CASE([$enable_static_programs],
811 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
813 [enable_static_programs=]
816 dnl Set all the individual AM_CONDITIONALs
817 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
818 AS_CASE([,$enable_static_programs,],
819 [*,UL_PRG,*], [static_[]UL_PRG=yes]
821 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
822 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
823 [test "x$static_[]UL_PRG" = xyes])
827 AC_ARG_ENABLE([all-programs],
828 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
829 [], [enable_all_programs=undefined]
832 AS_CASE([$enable_all_programs],
833 [yes], [AC_MSG_WARN([force to build all programs by default])
834 ul_default_estate=check],
835 [no], [AC_MSG_WARN([disable all programs and man pages by default])
836 ul_default_estate=no]
840 AC_ARG_ENABLE([asciidoc],
841 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
842 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
844 UL_BUILD_INIT([asciidoc])
845 UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
846 AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
847 have_asciidoctor_failure_level=no
848 AS_IF([test "x$build_asciidoc" = xyes], [
849 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
850 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
852 have_asciidoctor_failure_level=yes
857 AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
860 AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
861 AC_MSG_NOTICE([re-use already generated man-pages.])
864 AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
867 AC_ARG_ENABLE([poman],
868 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
869 [], [UL_DEFAULT_ENABLE([poman], [check])]
871 UL_BUILD_INIT([poman])
872 UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
873 AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
879 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
882 AS_IF([test "x$with_util" = xno], [
883 AM_CONDITIONAL([HAVE_UTIL], [false])
886 UL_CHECK_LIB([util], [openpty])
889 AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
890 AM_CONDITIONAL([HAVE_PTY], [true])
891 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
894 AM_CONDITIONAL([HAVE_PTY], [false])
897 AC_CHECK_TYPES([union semun], [], [], [[
900 AC_CHECK_TYPES([loff_t])
903 AC_ARG_ENABLE([widechar],
904 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
905 [], [enable_widechar=check]
907 UL_BUILD_INIT([widechar])
908 UL_REQUIRES_COMPILE([widechar], [[
917 if (w == WEOF) exit(1);
923 AS_IF([test "x$build_widechar" = xyes ], [
924 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
928 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
932 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
934 AC_CHECK_TYPES([sighandler_t], [], [], [[
938 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
942 # on Solaris, you can't mix and match standards, since we use c99
943 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
944 # check for crypt.h and use that without XOPEN_SOURCE.
946 AC_CHECK_HEADERS([crypt.h])
947 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
951 #define _XOPEN_SOURCE
955 char *c = crypt("abc","pw");
960 UL_SET_LIBS([-lcrypt])
961 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
965 #define _XOPEN_SOURCE
969 char *c = crypt("abc","pw");
974 AC_MSG_WARN([crypt() is not available])
978 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
981 AC_ARG_WITH([selinux],
982 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
983 [], [with_selinux=no]
986 AS_IF([test "x$with_selinux" = xno], [
987 AM_CONDITIONAL([HAVE_SELINUX], [false])
989 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
990 AS_CASE([$with_selinux:$have_selinux],
991 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
993 AS_IF([test "x$have_selinux" = xyes], [
994 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
995 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
996 AM_CONDITIONAL([HAVE_SELINUX], [true])
998 UL_SET_LIBS([$SELINUX_LIBS])
999 # This function is missing in old libselinux 1.xx versions
1000 AC_CHECK_FUNCS([security_get_initial_context])
1004 AC_SUBST([SELINUX_LIBS])
1005 AC_SUBST([SELINUX_LIBS_STATIC])
1008 AC_ARG_WITH([audit],
1009 AS_HELP_STRING([--with-audit], [compile with audit support]),
1013 AS_IF([test "x$with_audit" = xno], [
1014 AM_CONDITIONAL([HAVE_AUDIT], [false])
1016 UL_CHECK_LIB([audit], [audit_log_user_message])
1017 AS_CASE([$with_audit:$have_audit],
1019 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1023 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
1024 [], [with_udev=auto]
1027 AS_IF([test "x$with_udev" = xno], [
1028 AM_CONDITIONAL([HAVE_UDEV], [false])
1030 UL_CHECK_LIB([udev], [udev_new])
1031 AS_CASE([$with_udev:$have_udev],
1033 [AC_MSG_ERROR([udev selected but libudev not found])]
1038 dnl wide-char ncurses
1039 AC_ARG_WITH([ncursesw],
1040 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
1041 [], [with_ncursesw=auto]
1044 have_ncursesw_header=no
1045 AS_IF([test "x$with_ncursesw" != xno], [
1046 UL_NCURSES_CHECK([ncursesw])
1047 AS_IF([test "x$have_ncursesw" = xyes], [
1048 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1049 AC_CHECK_HEADERS([ncursesw/term.h])
1051 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1052 # unsuccessful to avoid too many *_H permitations in config.h
1053 AS_IF([test "x$have_ncursesw_header" = xno], [
1054 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1055 AC_CHECK_HEADERS([term.h])
1057 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1059 AS_IF([test "x$have_ncursesw" = xyes], [
1060 CURSES_LIB_NAME="ncursesw"
1061 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
1064 AS_CASE([$with_ncursesw:$have_ncursesw],
1065 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
1068 dnl non-wide ncurses
1069 AC_ARG_WITH([ncurses],
1070 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
1071 [], [with_ncurses=auto]
1074 have_ncurses_header=no
1075 AS_CASE([$with_ncurses:$build_widechar],
1076 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1078 AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
1079 UL_NCURSES_CHECK([ncurses])
1080 AS_IF([test "x$have_ncurses" = xyes], [
1081 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1082 AC_CHECK_HEADERS([ncurses/term.h])
1084 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1085 # unsuccessful to avoid too many *_H permitations in config.h
1086 AS_IF([test "x$have_ncurses_header" = xno], [
1087 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1088 AC_CHECK_HEADERS([term.h])
1090 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1092 AS_IF([test "x$have_ncurses" = xyes], [
1093 CURSES_LIB_NAME="ncurses"
1094 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
1097 AS_CASE([$with_ncurses:$have_ncurses],
1098 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1100 AC_SUBST([NCURSES_CFLAGS])
1101 AC_SUBST([NCURSES_LIBS])
1102 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
1105 AC_ARG_WITH([slang],
1106 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
1110 AS_IF([test "x$with_slang" = xyes], [
1111 AC_CHECK_HEADERS([slang.h slang/slang.h])
1112 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
1113 [have_slang=yes], [], [
1116 #elif defined(HAVE_SLANG_SLANG_H)
1117 #include <slang/slang.h>
1120 AS_IF([test "x$have_slang" = xno], [
1121 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1122 [CURSES_LIB_NAME=slang
1125 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1128 AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
1129 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1130 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1131 [Define if curses library has the use_default_colors().])
1133 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1134 AC_DEFINE(HAVE_RESIZETERM, 1,
1135 [Define if curses library has the resizeterm().])
1140 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1141 [], [with_tinfo=auto]
1145 AS_IF([test "x$with_tinfo" != xno], [
1146 AS_IF([test "x$have_ncursesw" = xyes], [
1147 UL_TINFO_CHECK([tinfow])
1149 AS_IF([test "x$have_tinfow" = xno], [
1150 UL_TINFO_CHECK([tinfo])
1153 AC_SUBST([TINFO_LIBS])
1154 AC_SUBST([TINFO_LIBS_STATIC])
1155 AC_SUBST([TINFO_CFLAGS])
1156 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1157 AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
1158 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1162 AC_ARG_WITH([readline],
1163 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1164 [], [with_readline=auto]
1167 AS_IF([test "x$with_readline" = xno], [
1168 AM_CONDITIONAL([HAVE_READLINE], [false])
1170 UL_CHECK_LIB([readline], [readline])
1171 AS_CASE([$with_readline:$have_readline],
1173 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1175 [READLINE_LIBS="-lreadline"
1176 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1179 AC_SUBST([READLINE_LIBS])
1180 AC_SUBST([READLINE_LIBS_STATIC])
1183 AC_ARG_WITH([utempter],
1184 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1185 [], [with_utempter=no]
1188 AS_IF([test "x$with_utempter" = xyes], [
1189 UL_CHECK_LIB([utempter], [utempter_add_record])
1190 AS_IF([test "x$have_utempter" = xno], [
1191 AC_MSG_ERROR([utempter selected but libutempter not found])
1194 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1201 AC_ARG_ENABLE([libuuid],
1202 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1203 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1205 UL_BUILD_INIT([libuuid])
1206 AC_SUBST([LIBUUID_VERSION])
1207 AC_SUBST([LIBUUID_VERSION_INFO])
1208 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1210 AC_ARG_ENABLE([libuuid-force-uuidd],
1211 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1212 [], [enable_libuuid_force_uuidd=no]
1215 AS_IF([test "x$build_libuuid" = xyes], [
1216 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1222 AC_ARG_ENABLE([libblkid],
1223 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1224 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1226 UL_BUILD_INIT([libblkid])
1227 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1228 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1229 AC_SUBST([LIBBLKID_DATE])
1230 AC_SUBST([LIBBLKID_VERSION])
1231 AC_SUBST([LIBBLKID_VERSION_INFO])
1232 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1233 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1234 AS_IF([test "x$build_libblkid" = xyes], [
1235 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1237 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1238 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
1243 AC_ARG_ENABLE([libmount],
1244 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1245 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1247 UL_BUILD_INIT([libmount])
1248 UL_REQUIRES_BUILD([libmount], [libblkid])
1249 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1250 UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
1251 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1252 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
1253 AS_IF([test "x$build_libmount" = xyes], [
1254 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1255 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1256 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1258 AC_MSG_WARN([libmount will be compiled without namespaces support])
1262 AC_SUBST([LIBMOUNT_VERSION])
1263 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1264 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1265 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1266 AC_SUBST([LIBMOUNT_VERSION_INFO])
1267 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1269 AC_ARG_ENABLE([libmount-mountfd-support],
1270 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1271 [], [enable_libmount_mountfd_support=check]
1273 UL_BUILD_INIT([libmount_mountfd_support])
1274 UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1275 UL_REQUIRES_LINUX([libmount_mountfd_support])
1276 UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
1277 UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
1278 AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1279 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1286 AC_ARG_ENABLE([libsmartcols],
1287 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1288 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1290 UL_BUILD_INIT([libsmartcols])
1291 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1293 AC_SUBST([LIBSMARTCOLS_VERSION])
1294 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1295 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1301 AC_ARG_ENABLE([libfdisk],
1302 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1303 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1305 UL_BUILD_INIT([libfdisk])
1306 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1307 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1308 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
1310 AS_IF([test "x$build_libblkid" = xyes],
1311 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1312 AC_SUBST([LIBFDISK_PC_REQUIRES])
1314 AC_SUBST([LIBFDISK_VERSION])
1315 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1316 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1317 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1318 AC_SUBST([LIBFDISK_VERSION_INFO])
1319 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1322 AC_ARG_ENABLE([fdisks],
1323 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1324 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1326 enable_fdisk=$enable_fdisks
1327 enable_sfdisk=$enable_fdisks
1328 enable_cfdisk=$enable_fdisks
1330 UL_BUILD_INIT([fdisk])
1331 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1332 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1333 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1334 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1335 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1338 UL_BUILD_INIT([sfdisk])
1339 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1340 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1341 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1342 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1343 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1346 UL_BUILD_INIT([cfdisk])
1347 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1348 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1349 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1350 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1351 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1354 AC_ARG_ENABLE([mount],
1355 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1356 [], [UL_DEFAULT_ENABLE([mount], [check])]
1358 UL_BUILD_INIT([mount])
1359 UL_REQUIRES_LINUX([mount])
1360 UL_REQUIRES_BUILD([mount], [libmount])
1361 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1364 AC_ARG_ENABLE([losetup],
1365 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1366 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1368 UL_BUILD_INIT([losetup])
1369 UL_REQUIRES_LINUX([losetup])
1370 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1371 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1373 AC_ARG_ENABLE([zramctl],
1374 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1375 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1377 UL_BUILD_INIT([zramctl])
1378 UL_REQUIRES_LINUX([zramctl])
1379 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1380 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1382 AC_ARG_ENABLE([fsck],
1383 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1384 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1386 UL_BUILD_INIT([fsck])
1387 UL_REQUIRES_BUILD([fsck], [libmount])
1388 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1391 AC_ARG_ENABLE([partx],
1392 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1393 [], [UL_DEFAULT_ENABLE([partx], [check])]
1395 UL_BUILD_INIT([partx])
1396 UL_REQUIRES_LINUX([partx])
1397 UL_REQUIRES_BUILD([partx], [libblkid])
1398 UL_REQUIRES_BUILD([partx], [libsmartcols])
1399 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1402 AC_ARG_ENABLE([uuidd],
1403 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1404 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1406 UL_BUILD_INIT([uuidd])
1407 UL_REQUIRES_BUILD([uuidd], [libuuid])
1408 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1409 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1410 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1411 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1413 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1416 AC_ARG_ENABLE([uuidgen],
1417 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1418 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1420 UL_BUILD_INIT([uuidgen])
1421 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1422 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1424 UL_BUILD_INIT([uuidparse], [check])
1425 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1426 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1427 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1429 AC_ARG_ENABLE([blkid],
1430 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1431 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1433 UL_BUILD_INIT([blkid])
1434 UL_REQUIRES_BUILD([blkid], [libblkid])
1435 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1437 UL_BUILD_INIT([findfs], [check])
1438 UL_REQUIRES_BUILD([findfs], [libblkid])
1439 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1441 AC_ARG_ENABLE([wipefs],
1442 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1443 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1445 UL_BUILD_INIT([wipefs])
1446 UL_REQUIRES_BUILD([wipefs], [libblkid])
1447 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1448 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1450 UL_BUILD_INIT([findmnt], [check])
1451 UL_REQUIRES_BUILD([findmnt], [libmount])
1452 UL_REQUIRES_BUILD([findmnt], [libblkid])
1453 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1454 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1457 AC_ARG_ENABLE([mountpoint],
1458 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1459 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1461 UL_BUILD_INIT([mountpoint])
1462 UL_REQUIRES_BUILD([mountpoint], [libmount])
1463 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1466 AC_ARG_ENABLE([fallocate],
1467 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1468 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1470 UL_BUILD_INIT([fallocate])
1471 UL_REQUIRES_LINUX([fallocate])
1472 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1473 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1475 AS_IF([test "x$build_fallocate" = xyes], [
1476 dnl check for valid fallocate() function
1477 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1478 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1479 dnl and program can't be linked.
1480 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1481 dnl function prototype.
1482 AC_MSG_CHECKING([for valid fallocate() function])
1483 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1484 #ifdef HAVE_UNISTD_H
1485 # include <unistd.h>
1487 #ifdef HAVE_SYS_TYPES_H
1488 # include <sys/types.h>
1490 #ifdef HAVE_LINUX_FALLOC_H
1491 # include <linux/falloc.h>
1498 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1503 AC_MSG_RESULT([yes])
1504 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1505 AC_MSG_RESULT([no])])
1508 AS_IF([test "x$build_fallocate" = xyes], [
1509 dnl check for valid posix_fallocate() function
1510 AC_MSG_CHECKING([for valid posix_fallocate() function])
1511 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1512 #ifdef HAVE_UNISTD_H
1513 # include <unistd.h>
1515 #ifdef HAVE_SYS_TYPES_H
1516 # include <sys/types.h>
1518 #ifdef HAVE_LINUX_FALLOC_H
1519 # include <linux/falloc.h>
1526 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1531 AC_MSG_RESULT([yes])
1532 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1533 AC_MSG_RESULT([no])])
1537 AC_ARG_ENABLE([unshare],
1538 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1539 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1541 UL_BUILD_INIT([unshare])
1542 UL_REQUIRES_LINUX([unshare])
1543 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1544 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1545 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1547 AC_MSG_CHECKING([for valid unshare() function])
1548 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1557 AC_MSG_RESULT([yes])
1558 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1564 AC_ARG_ENABLE([nsenter],
1565 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1566 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1568 UL_BUILD_INIT([nsenter])
1569 UL_REQUIRES_LINUX([nsenter])
1570 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1571 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1573 AC_MSG_CHECKING([for valid setns() function])
1574 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1580 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1584 AC_MSG_RESULT([yes])
1585 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1591 AC_ARG_WITH([cap_ng],
1592 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1593 [], [with_cap_ng=auto]
1595 AS_IF([test "x$with_cap_ng" = xno], [
1596 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1599 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1603 AC_ARG_ENABLE([setpriv],
1604 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1605 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1607 UL_BUILD_INIT([setpriv])
1608 UL_REQUIRES_LINUX([setpriv])
1609 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1610 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1611 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1612 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1614 AC_ARG_ENABLE([hardlink],
1615 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1616 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1618 UL_BUILD_INIT([hardlink])
1619 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1622 AC_ARG_ENABLE([eject],
1623 AS_HELP_STRING([--disable-eject], [do not build eject]),
1624 [], [UL_DEFAULT_ENABLE([eject], [check])]
1626 UL_BUILD_INIT([eject])
1627 UL_REQUIRES_LINUX([eject])
1628 UL_REQUIRES_BUILD([eject], [libmount])
1629 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1632 AC_ARG_ENABLE([agetty],
1633 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1634 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1636 UL_BUILD_INIT([agetty])
1637 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1638 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1639 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1640 AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
1641 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1643 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1647 AC_ARG_ENABLE([plymouth_support],
1648 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]),
1649 [], [enable_plymouth_support=check]
1651 UL_BUILD_INIT([plymouth_support])
1652 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1653 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1654 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1655 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1656 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1657 AS_IF([test "x$build_plymouth_support" = xyes ], [
1658 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty])
1663 AS_HELP_STRING([--without-libz], [compile without libz]),
1664 [], [with_libz=auto]
1666 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1667 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1670 AC_ARG_WITH([libmagic],
1671 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1672 [], [with_libmagic=auto]
1674 AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1675 AC_CHECK_LIB([magic], [magic_open], [
1676 AC_CHECK_HEADER(magic.h, [
1677 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1678 MAGIC_LIBS="-lmagic"
1682 AC_SUBST([MAGIC_LIBS])
1685 AC_ARG_ENABLE([cramfs],
1686 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1687 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1689 UL_BUILD_INIT([cramfs])
1690 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1691 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1694 AC_ARG_ENABLE([bfs],
1695 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1696 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1698 UL_BUILD_INIT([bfs])
1699 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1702 AC_ARG_ENABLE([minix],
1703 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1704 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1706 UL_BUILD_INIT([minix])
1707 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1710 AC_ARG_ENABLE([fdformat],
1711 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1712 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
1714 UL_BUILD_INIT([fdformat])
1715 UL_REQUIRES_LINUX([fdformat])
1716 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1719 AC_ARG_ENABLE([hwclock],
1720 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1721 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1723 have_linuxdummy=$linux_os
1725 UL_BUILD_INIT([hwclock])
1726 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1727 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1729 AC_ARG_ENABLE([hwclock_cmos],
1730 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1731 [], [enable_hwclock_cmos=check]
1733 UL_BUILD_INIT([hwclock_cmos])
1734 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1735 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1736 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1737 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1738 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1741 AC_ARG_ENABLE([hwclock_gplv3],
1742 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1743 [], [enable_hwclock_gplv3=yes]
1745 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1746 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1747 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1751 AC_ARG_ENABLE([mkfs],
1752 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1753 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1755 UL_BUILD_INIT([mkfs])
1756 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1758 UL_BUILD_INIT([isosize], [yes])
1759 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1762 AC_ARG_ENABLE([fstrim],
1763 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1764 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1766 UL_BUILD_INIT([fstrim])
1767 UL_REQUIRES_LINUX([fstrim])
1768 UL_REQUIRES_BUILD([fstrim], [libmount])
1769 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1772 AC_ARG_ENABLE([swapon],
1773 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1774 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1776 UL_BUILD_INIT([swapon])
1777 UL_REQUIRES_LINUX([swapon])
1778 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1779 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1780 UL_REQUIRES_BUILD([swapon], [libblkid])
1781 UL_REQUIRES_BUILD([swapon], [libmount])
1782 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1783 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1784 AC_CHECK_FUNCS([swapon])
1785 AC_CHECK_FUNCS([swapoff])
1788 UL_BUILD_INIT([lsblk], [check])
1789 UL_REQUIRES_LINUX([lsblk])
1790 UL_REQUIRES_BUILD([lsblk], [libblkid])
1791 UL_REQUIRES_BUILD([lsblk], [libmount])
1792 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1793 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1796 AC_ARG_ENABLE([lscpu],
1797 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1798 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1800 UL_BUILD_INIT([lscpu])
1801 UL_REQUIRES_LINUX([lscpu])
1802 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1803 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1804 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1806 AC_ARG_ENABLE([lsfd],
1807 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1808 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1810 UL_BUILD_INIT([lsfd])
1811 UL_REQUIRES_LINUX([lsfd])
1812 UL_REQUIRES_BUILD([lsfd], [libsmartcols])
1813 UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file])
1814 AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
1816 AC_ARG_ENABLE([lslogins],
1817 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1818 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1820 UL_BUILD_INIT([lslogins])
1821 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1822 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1823 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1824 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1825 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1828 UL_BUILD_INIT([chcpu], [check])
1829 UL_REQUIRES_LINUX([chcpu])
1830 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1831 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1834 AC_ARG_ENABLE([wdctl],
1835 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1836 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1838 UL_BUILD_INIT([wdctl])
1839 UL_REQUIRES_LINUX([wdctl])
1840 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1841 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1842 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1845 UL_BUILD_INIT([swaplabel], [check])
1846 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1847 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1850 UL_BUILD_INIT([mkswap], [yes])
1851 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1852 AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
1853 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1857 AC_ARG_ENABLE([cal],
1858 AS_HELP_STRING([--disable-cal], [do not build cal]),
1859 [], [UL_DEFAULT_ENABLE([cal], [check])]
1861 UL_BUILD_INIT([cal])
1862 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1864 AC_ARG_ENABLE([logger],
1865 AS_HELP_STRING([--disable-logger], [do not build logger]),
1866 [], [UL_DEFAULT_ENABLE([logger], [check])]
1868 UL_BUILD_INIT([logger])
1869 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1871 UL_BUILD_INIT([look], [yes])
1872 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1874 UL_BUILD_INIT([mcookie], [yes])
1875 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1877 UL_BUILD_INIT([namei], [yes])
1878 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1880 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1881 if test "x$matriplet" != "x"; then
1882 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1883 ["Multi-arch triplet for whereis library search path"])
1885 AC_ARG_ENABLE([whereis],
1886 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1887 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1889 UL_BUILD_INIT([whereis])
1890 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1892 AC_ARG_ENABLE([pipesz],
1893 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
1894 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
1896 UL_BUILD_INIT([pipesz])
1897 UL_REQUIRES_LINUX([pipesz])
1898 AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1900 UL_BUILD_INIT([fadvise], [check])
1901 UL_REQUIRES_LINUX([fadvise])
1902 AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1904 AC_ARG_ENABLE([waitpid],
1905 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
1906 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
1908 UL_BUILD_INIT([waitpid])
1909 UL_REQUIRES_LINUX([waitpid])
1910 UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
1911 AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1913 UL_BUILD_INIT([enosys], [check])
1914 UL_REQUIRES_LINUX([enosys])
1915 AS_IF([test "x$build_enosys" = xyes], [
1916 AC_MSG_CHECKING([for valid audit arch])
1918 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1919 [AC_MSG_RESULT([yes])],
1920 [AC_MSG_RESULT([no])
1924 AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1926 UL_BUILD_INIT([lsclocks], [check])
1927 UL_REQUIRES_LINUX([lsclocks])
1928 AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes])
1930 UL_BUILD_INIT([getopt], [yes])
1931 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1934 UL_BUILD_INIT([blockdev], [check])
1935 UL_REQUIRES_LINUX([blockdev])
1936 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1939 UL_BUILD_INIT([prlimit], [check])
1940 UL_REQUIRES_LINUX([prlimit])
1941 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1942 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1943 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1944 AS_IF([test "x$build_prlimit" = xyes], [
1945 dnl check for valid prlimit() function
1946 AC_MSG_CHECKING([for valid prlimit() function])
1947 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1948 #include <sys/types.h>
1949 #include <sys/time.h>
1950 #include <sys/resource.h>
1954 ret = prlimit(0, RLIMIT_AS, NULL, NULL);
1959 AC_MSG_RESULT([yes])
1960 AC_DEFINE([HAVE_PRLIMIT], [1], [Have valid prlimit() function])],[
1961 AC_MSG_RESULT([no])])
1966 UL_BUILD_INIT([lslocks], [check])
1967 UL_REQUIRES_LINUX([lslocks])
1968 UL_REQUIRES_BUILD([lslocks], [libmount])
1969 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1970 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1973 AC_ARG_ENABLE([switch_root],
1974 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1975 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1977 UL_BUILD_INIT([switch_root])
1978 UL_REQUIRES_LINUX([switch_root])
1979 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1980 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1981 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1984 AC_ARG_ENABLE([pivot_root],
1985 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1986 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1988 UL_BUILD_INIT([pivot_root])
1989 UL_REQUIRES_LINUX([pivot_root])
1990 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1991 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1994 UL_BUILD_INIT([flock], [check])
1995 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1996 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1999 AC_ARG_ENABLE([lsmem],
2000 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
2001 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
2003 UL_BUILD_INIT([lsmem])
2004 UL_REQUIRES_LINUX([lsmem])
2005 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
2006 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
2009 AC_ARG_ENABLE([chmem],
2010 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
2011 [], [UL_DEFAULT_ENABLE([chmem], [check])]
2013 UL_BUILD_INIT([chmem])
2014 UL_REQUIRES_LINUX([chmem])
2015 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
2018 AC_ARG_ENABLE([ipcmk],
2019 AS_HELP_STRING([--disable-ipcmk], [do not build ipcmk]),
2020 [], [UL_DEFAULT_ENABLE([ipcmk], [check])]
2022 UL_BUILD_INIT([ipcmk])
2023 UL_EXCLUDE_ARCH([ipcmk], [*darwin*])
2024 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
2026 AC_ARG_ENABLE([ipcrm],
2027 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
2028 [], [UL_DEFAULT_ENABLE([ipcrm], [check])]
2030 UL_BUILD_INIT([ipcrm])
2031 UL_EXCLUDE_ARCH([ipcrm], [*darwin*])
2032 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
2034 AC_ARG_ENABLE([ipcs],
2035 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
2036 [], [UL_DEFAULT_ENABLE([ipcs], [check])]
2038 UL_BUILD_INIT([ipcs])
2039 UL_EXCLUDE_ARCH([ipcs], [*darwin*])
2040 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
2043 AC_ARG_ENABLE([irqtop],
2044 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
2045 [], [UL_DEFAULT_ENABLE([irqtop], [check])]
2047 UL_BUILD_INIT([irqtop])
2048 UL_REQUIRES_LINUX([irqtop])
2049 UL_REQUIRES_BUILD([irqtop], [libsmartcols])
2050 UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
2051 UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
2052 AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
2054 AC_ARG_ENABLE([lsirq],
2055 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
2056 [], [UL_DEFAULT_ENABLE([lsirq], [check])]
2058 UL_BUILD_INIT([lsirq])
2059 UL_REQUIRES_LINUX([lsirq])
2060 UL_REQUIRES_BUILD([lsirq], [libsmartcols])
2061 AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
2064 UL_BUILD_INIT([choom], [check])
2065 UL_REQUIRES_LINUX([choom])
2066 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
2068 UL_BUILD_INIT([lsipc], [check])
2069 UL_REQUIRES_LINUX([lsipc])
2070 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
2071 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
2073 AC_ARG_ENABLE([lsns],
2074 AS_HELP_STRING([--disable-lsns], [do not build lsns]),
2075 [], [UL_DEFAULT_ENABLE([lsns], [check])]
2077 UL_BUILD_INIT([lsns])
2078 UL_REQUIRES_LINUX([lsns])
2079 UL_REQUIRES_BUILD([lsns], [libsmartcols])
2080 UL_REQUIRES_BUILD([lsns], [libmount])
2081 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
2083 UL_BUILD_INIT([renice], [yes])
2084 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
2087 AC_ARG_ENABLE([rfkill],
2088 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
2089 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
2091 UL_BUILD_INIT([rfkill])
2092 UL_REQUIRES_LINUX([rfkill])
2093 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
2094 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
2097 UL_BUILD_INIT([setpgid], [yes])
2098 AM_CONDITIONAL([BUILD_SETPGID], [test "x$build_setpgid" = xyes])
2100 UL_BUILD_INIT([setsid], [yes])
2101 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
2103 UL_BUILD_INIT([readprofile], [check])
2104 UL_REQUIRES_LINUX([readprofile])
2105 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
2107 UL_BUILD_INIT([dmesg], [check])
2108 UL_REQUIRES_LINUX([dmesg])
2109 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
2111 UL_BUILD_INIT([ctrlaltdel], [check])
2112 UL_REQUIRES_LINUX([ctrlaltdel])
2113 dnl we assume reboot() to be the 1-argument variant, because even considering
2114 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
2115 dnl reboot() with multiple arguments is yet only found in glibc versions
2116 dnl earlier than 2.x.
2117 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
2118 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
2120 enable_exch=$have_renameat2_syscall
2121 UL_BUILD_INIT([exch])
2122 UL_REQUIRES_LINUX([exch])
2123 AM_CONDITIONAL([BUILD_EXCH], [test "x$build_exch" = xyes])
2125 UL_BUILD_INIT([fincore], [check])
2126 UL_REQUIRES_LINUX([fincore])
2127 UL_REQUIRES_BUILD([fincore], [libsmartcols])
2128 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
2130 UL_BUILD_INIT([fsfreeze], [check])
2131 UL_REQUIRES_LINUX([fsfreeze])
2132 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
2134 UL_BUILD_INIT([blkdiscard], [check])
2135 UL_REQUIRES_LINUX([blkdiscard])
2136 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
2138 UL_BUILD_INIT([blkzone], [check])
2139 UL_REQUIRES_LINUX([blkzone])
2140 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
2141 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
2143 UL_BUILD_INIT([blkpr], [check])
2144 UL_REQUIRES_LINUX([blkpr])
2145 UL_REQUIRES_HAVE([blkpr], [linux_pr_h], [linux/pr.h header])
2146 AM_CONDITIONAL([BUILD_BLKPR], [test "x$build_blkpr" = xyes])
2148 UL_BUILD_INIT([ldattach], [check])
2149 UL_REQUIRES_LINUX([ldattach])
2150 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
2152 UL_BUILD_INIT([rtcwake], [check])
2153 UL_REQUIRES_LINUX([rtcwake])
2154 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
2156 UL_BUILD_INIT([setarch], [check])
2157 UL_REQUIRES_LINUX([setarch])
2158 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
2161 # build_scriptutils= is just configure-only variable to control
2162 # script, scriptreplay and scriptlive
2163 AC_ARG_ENABLE([scriptutils],
2164 AS_HELP_STRING([--disable-scriptutils], [do not build script, scriptreplay and scriptlive]),
2165 [], [UL_DEFAULT_ENABLE([scriptutils], [check])]
2168 UL_ENABLE_ALIAS([script], [scriptutils])
2169 UL_BUILD_INIT([script])
2170 UL_REQUIRES_HAVE([script], [pty], [openpty function (libutil)])
2171 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
2173 UL_ENABLE_ALIAS([scriptreplay], [scriptutils])
2174 UL_BUILD_INIT([scriptreplay])
2175 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
2177 UL_ENABLE_ALIAS([scriptlive], [scriptutils])
2178 UL_BUILD_INIT([scriptlive])
2179 UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)])
2180 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
2183 UL_BUILD_INIT([col], [check])
2184 UL_REQUIRES_COMPILE([col], [#include <limits.h>], [__GLIBC__], [building for glibc])
2185 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
2187 UL_BUILD_INIT([colcrt], [yes])
2188 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
2190 UL_BUILD_INIT([colrm], [yes])
2191 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
2193 UL_BUILD_INIT([column], [check])
2194 UL_REQUIRES_BUILD([column], [libsmartcols])
2195 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
2197 UL_BUILD_INIT([hexdump], [yes])
2198 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
2200 UL_BUILD_INIT([rev], [yes])
2201 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
2204 AC_ARG_ENABLE([tunelp],
2205 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
2206 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
2208 UL_BUILD_INIT([tunelp])
2209 UL_REQUIRES_LINUX([tunelp])
2210 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
2213 AC_ARG_ENABLE([kill],
2214 AS_HELP_STRING([--disable-kill], [do not build kill]),
2215 [], [UL_DEFAULT_ENABLE([kill], [check])]
2217 UL_BUILD_INIT([kill])
2218 UL_REQUIRES_LINUX([kill])
2219 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
2222 AC_ARG_ENABLE([last],
2223 AS_HELP_STRING([--disable-last], [do not build last]),
2224 [], [UL_DEFAULT_ENABLE([last], [check])]
2226 UL_BUILD_INIT([last])
2227 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
2228 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
2229 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2232 AC_ARG_ENABLE([utmpdump],
2233 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
2234 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
2236 UL_BUILD_INIT([utmpdump])
2237 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
2238 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
2239 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
2242 AC_ARG_ENABLE([line],
2243 AS_HELP_STRING([--enable-line], [build line]),
2244 [], [UL_DEFAULT_ENABLE([line], [no])]
2246 UL_BUILD_INIT([line])
2247 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2250 AC_ARG_ENABLE([mesg],
2251 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
2252 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
2254 UL_BUILD_INIT([mesg])
2255 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
2258 AC_ARG_ENABLE([raw],
2259 AS_HELP_STRING([--disable-raw], [do not build raw]),
2260 [], [UL_DEFAULT_ENABLE([raw], [check])]
2262 UL_BUILD_INIT([raw])
2263 UL_REQUIRES_LINUX([raw])
2264 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
2265 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
2268 AC_ARG_ENABLE([rename],
2269 AS_HELP_STRING([--disable-rename], [do not build rename]),
2270 [], [UL_DEFAULT_ENABLE([rename], [yes])]
2272 UL_BUILD_INIT([rename])
2273 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
2276 AC_ARG_ENABLE([vipw],
2277 AS_HELP_STRING([--enable-vipw], [build vipw]),
2278 [], [UL_DEFAULT_ENABLE([vipw], [no])]
2280 UL_BUILD_INIT([vipw])
2281 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
2282 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
2285 AC_ARG_ENABLE([newgrp],
2286 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
2287 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
2289 UL_BUILD_INIT([newgrp])
2290 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
2291 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
2294 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
2295 [], [with_user=check]
2298 AS_IF([test "x$with_user" != xno], [
2299 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
2300 AS_CASE([$with_user:$have_user],
2302 [AC_MSG_ERROR([user selected but libuser not found])],
2304 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2306 # temporary solution, libuser has stupid .pc where are exported all
2307 # private dependencies to Requires: instead of Requires.private:
2308 AS_IF([test "x$have_user" = xyes], [
2312 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
2314 AC_ARG_ENABLE([chfn-chsh-password],
2315 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
2316 [], [enable_chfn_chsh_password=yes]
2319 AC_ARG_ENABLE([chfn-chsh],
2320 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
2321 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
2323 UL_BUILD_INIT([chfn_chsh])
2324 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
2325 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
2327 AS_IF([test "x$enable_chfn_chsh_password" = xyes || test "x$have_user" = xyes], [
2328 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
2329 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
2331 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2332 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
2334 AC_ARG_ENABLE([chsh-only-listed],
2335 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2336 [], enable_chsh_only_listed=yes
2339 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2340 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2344 AC_ARG_ENABLE([login],
2345 AS_HELP_STRING([--disable-login], [do not build login]),
2346 [], [UL_DEFAULT_ENABLE([login], [check])]
2348 UL_BUILD_INIT([login])
2349 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2350 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2351 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2352 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2353 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2355 AC_ARG_ENABLE([login-chown-vcs],
2356 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2357 [], [enable_login_chown_vcs=no]
2360 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2361 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2364 AC_ARG_ENABLE([login-stat-mail],
2365 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2366 [], [enable_login_stat_mail=no]
2369 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2370 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2374 AC_ARG_ENABLE([nologin],
2375 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2376 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2378 UL_BUILD_INIT([nologin])
2379 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2382 AC_ARG_ENABLE([sulogin],
2383 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2384 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2386 UL_BUILD_INIT([sulogin])
2387 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2388 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2389 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2393 AS_HELP_STRING([--disable-su], [do not build su]),
2394 [], [UL_DEFAULT_ENABLE([su], [check])]
2397 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2398 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2399 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2400 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2403 AC_ARG_ENABLE([runuser],
2404 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2405 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2407 UL_BUILD_INIT([runuser])
2408 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2409 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2410 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2411 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2415 AS_HELP_STRING([--disable-ul], [do not build ul]),
2416 [], [UL_DEFAULT_ENABLE([ul], [check])]
2419 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2420 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2423 AC_ARG_ENABLE([more],
2424 AS_HELP_STRING([--disable-more], [do not build more]),
2425 [], [UL_DEFAULT_ENABLE([more], [check])]
2427 UL_BUILD_INIT([more])
2428 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2429 UL_REQUIRES_LINUX([more])
2430 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2434 AS_HELP_STRING([--enable-pg], [build pg]),
2435 [], [UL_DEFAULT_ENABLE([pg], [no])]
2438 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2439 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2442 AC_ARG_ENABLE([setterm],
2443 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2444 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2446 UL_BUILD_INIT([setterm])
2447 UL_REQUIRES_LINUX([setterm])
2448 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2449 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2451 # build_schedutils= is just configure-only variable to control
2452 # ionice, taskset and chrt
2453 AC_ARG_ENABLE([schedutils],
2454 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2455 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2459 UL_ENABLE_ALIAS([ionice], [schedutils])
2460 UL_BUILD_INIT([ionice])
2461 UL_REQUIRES_SYSCALL_CHECK([ionice],
2462 [UL_CHECK_SYSCALL([ioprio_set],
2473 UL_REQUIRES_SYSCALL_CHECK([ionice],
2474 [UL_CHECK_SYSCALL([ioprio_get],
2485 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2488 UL_ENABLE_ALIAS([taskset], [schedutils])
2489 UL_BUILD_INIT([taskset])
2490 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2491 UL_REQUIRES_SYSCALL_CHECK([taskset],
2492 [UL_CHECK_SYSCALL([sched_getaffinity])],
2493 [sched_getaffinity])
2494 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2498 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2499 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2501 UL_ENABLE_ALIAS([chrt], [schedutils])
2502 UL_BUILD_INIT([chrt])
2503 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2504 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2506 AS_IF([test "x$build_chrt" = xyes], [
2507 UL_CHECK_SYSCALL([sched_setattr])
2510 UL_ENABLE_ALIAS([uclampset], [schedutils])
2511 UL_BUILD_INIT([uclampset])
2512 UL_REQUIRES_SYSCALL_CHECK([uclampset],
2513 [UL_CHECK_SYSCALL([sched_setattr])], [sched_setattr])
2514 AM_CONDITIONAL([BUILD_UCLAMPSET], [test "x$build_uclampset" = xyes])
2517 AC_ARG_ENABLE([wall],
2518 AS_HELP_STRING([--disable-wall], [do not build wall]),
2519 [], [UL_DEFAULT_ENABLE([wall], [check])]
2521 UL_BUILD_INIT([wall])
2522 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2523 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2526 AC_ARG_ENABLE([write],
2527 AS_HELP_STRING([--enable-write], [build write]),
2528 [], [UL_DEFAULT_ENABLE([write], [no])]
2530 UL_BUILD_INIT([write])
2531 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2532 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2533 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2536 AC_ARG_WITH([btrfs],
2537 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2538 [], [with_btrfs=check]
2541 AS_IF([test "x$with_btrfs" != xno], [
2542 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2544 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2546 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2549 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2552 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2555 AC_ARG_WITH([systemd],
2556 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2557 [], [with_systemd=check]
2561 AS_IF([test "x$with_systemd" != xno], [
2562 # new version -- all libsystemd-* libs merged into libsystemd
2563 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2565 AS_IF([test "x$have_systemd" != "xyes"], [
2566 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2567 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2568 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2569 [have_systemd_journal=yes], [have_systemd_journal=no])
2570 AS_IF([test "x$have_systemd_daemon" = "xyes" && test "x$have_systemd_journal" = "xyes" ],[
2573 AS_CASE([$with_systemd:$have_systemd],
2575 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2577 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2578 AC_DEFINE([USE_SYSTEMD], [1], [Define if systemd support is wanted ])
2579 AC_CHECK_DECLS([sd_session_get_username], [], [], [#include <systemd/sd-login.h>])
2582 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2585 AC_ARG_WITH([systemdsystemunitdir],
2586 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2588 AS_IF([test "x$have_systemd" = xyes], [
2589 PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
2591 [with_systemdsystemunitdir=no])
2594 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2595 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2599 AC_ARG_WITH([smack],
2600 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2603 AS_IF([test "x$with_smack" = xyes], [
2604 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2607 AC_ARG_WITH([econf],
2608 AS_HELP_STRING([--without-econf], [do not use libeconf]),
2609 [], [with_econf=check]
2613 AS_IF([test "x$with_econf" != xno], [
2614 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
2615 AS_CASE([$with_econf:$have_econf],
2617 [AC_MSG_ERROR([libeconf expected but libeconf not found])],
2619 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
2622 AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
2624 AC_ARG_WITH([vendordir],
2625 AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
2628 AC_SUBST([vendordir], [$with_vendordir])
2629 AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
2630 AS_IF([test "x$with_vendordir" != x], [
2631 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
2635 AC_ARG_ENABLE([bash-completion],
2636 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2637 [], [enable_bash_completion=yes]
2640 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2642 AC_ARG_WITH([bashcompletiondir],
2643 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2645 AS_IF([test "x$enable_bash_completion" = xyes], [
2646 PKG_CHECK_VAR([with_bashcompletiondir], [bash-completion], [completionsdir],
2648 [with_bashcompletiondir=${datadir}/bash-completion/completions])
2651 AS_IF([test "x$enable_bash_completion" = xyes], [
2652 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2656 AC_ARG_WITH([python],
2657 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2658 [], [with_python=check withval=check]
2663 AS_IF([test "x$with_python" != xno], [
2664 # We follow distributions default and look for PKG module name "python"
2665 # (minimal version is 2) but if major version is explicitly specified by
2666 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2668 AS_IF([test "x$withval" != xno && test "x$withval" != xyes && test "x$withval" != xcheck],
2669 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2671 # check for python interpreter
2672 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2673 AS_CASE([$with_python:$have_python],
2675 [AC_MSG_ERROR([python selected but python interpreter not found])],
2677 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2679 # check for python development stuff
2681 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], [have_libpython=yes], [have_libpython=no])
2683 # https://github.com/util-linux/util-linux/issues/2366
2684 AX_COMPARE_VERSION([$PYTHON_VERSION], [ge], [3.12], [
2685 UL_WARN_ADD([-Wno-error=redundant-decls], [PYTHON_CFLAGS])
2692 AC_ARG_ENABLE([pylibmount],
2693 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2694 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2696 UL_BUILD_INIT([pylibmount])
2697 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2698 UL_REQUIRES_BUILD([pylibmount], [libmount])
2699 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2701 # We need to introduce a verbatim dependency into the Makefile, without automake
2702 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2703 verbatim_pylibmount_dependency='
2705 # pylibmountexec module must be installed after usrlib_exec libraries,
2706 # otherwise the libtool relink step will fail to find libmount.la and
2707 # will try -lmount which is possibly not available.
2708 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2711 AC_SUBST([verbatim_pylibmount_dependency])
2712 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2714 AC_ARG_ENABLE([pg-bell],
2715 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2716 [], [enable_pg_bell=yes]
2719 AS_IF([test "x$enable_pg_bell" = xyes], [
2720 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2724 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2725 AC_ARG_ENABLE([fs-paths-default],
2726 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2727 [AS_CASE([$enableval],
2728 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2729 [no], [fs_paths_defaults=""],
2730 [fs_paths_defaults="$enableval"]
2732 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2734 AC_ARG_ENABLE([fs-paths-extra],
2735 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2736 [AS_CASE([$enableval],
2737 [yes|no], [fs_paths_extra=""],
2738 [fs_paths_extra="$enableval"]
2742 fs_paths="$fs_paths_defaults"
2743 AS_IF([test "x$fs_paths_extra" != "x"], [
2744 AS_IF([test "x$fs_paths" != "x"], [
2745 fs_paths="${fs_paths}:"
2747 fs_paths="${fs_paths}${fs_paths_extra}"
2749 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2752 AC_ARG_ENABLE([use-tty-group],
2753 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2754 [], [enable_use_tty_group=yes]
2756 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2758 AS_IF([test "x$enable_use_tty_group" = xyes], [
2759 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2763 AC_ARG_ENABLE([sulogin-emergency-mount],
2764 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2765 [use emergency mount of /dev and /proc for sulogin]),
2766 [], [enable_sulogin_emergency_mount=no]
2769 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2770 AS_IF([test "x$linux_os" = xyes], [ ],
2771 [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
2772 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2773 [Should sulogin use an emergency mount of /dev and /proc?])
2777 AC_ARG_ENABLE([usrdir-path],
2778 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2779 [], [enable_usrdir_path=no]
2782 AS_IF([test "x$enable_usrdir_path" = xyes], [
2783 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2787 AC_ARG_ENABLE([makeinstall-chown],
2788 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2789 [], [enable_makeinstall_chown=yes]
2791 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2794 AC_ARG_ENABLE([makeinstall-setuid],
2795 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2796 [], [enable_makeinstall_setuid=yes]
2798 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2801 AC_ARG_ENABLE([colors-default],
2802 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2803 [], [enable_colors_default=yes]
2805 AS_IF([test "x$enable_colors_default" = xyes], [
2806 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2810 AC_ARG_WITH([cryptsetup],
2811 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2812 [], [with_cryptsetup=no]
2815 AS_IF([test "x$with_cryptsetup" = xno], [
2816 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2817 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2819 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2820 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2821 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2822 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
2823 SAVE_CFLAGS="$CFLAGS"
2824 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2826 LIBS="$CRYPTSETUP_LIBS $LIBS"
2827 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
2828 AC_DEFINE([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
2830 AS_IF([test "x$with_cryptsetup" = xdlopen], [
2832 AC_CHECK_LIB([dl], [dlsym], [
2833 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen])
2834 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true])
2835 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])])
2837 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2839 CFLAGS="$SAVE_CFLAGS"
2841 have_cryptsetup=yes],
2843 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2844 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2847 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2848 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2851 AC_SUBST([CRYPTSETUP_LIBS])
2852 AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2855 AC_ARG_VAR([SUID_CFLAGS],
2856 [CFLAGS used for binaries which are usually with the suid bit])
2857 AC_ARG_VAR([SUID_LDFLAGS],
2858 [LDFLAGS used for binaries which are usually with the suid bit])
2860 AC_ARG_VAR([DAEMON_CFLAGS],
2861 [CFLAGS used for binaries which are usually executed as daemons])
2862 AC_ARG_VAR([DAEMON_LDFLAGS],
2863 [LDFLAGS used for binaries which are usually executed as daemons])
2865 AC_ARG_VAR([SOLIB_CFLAGS],
2866 [CFLAGS used for shared libraries])
2867 AC_ARG_VAR([SOLIB_LDFLAGS],
2868 [LDFLAGS used for shared libraries])
2870 AC_ARG_VAR([ADJTIME_PATH],
2871 [Path to hwclock adjtime file, default /etc/adjtime])
2872 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2873 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2875 if test "x${build_alias}" != "x${host_alias}"; then
2876 AC_MSG_NOTICE([setting link_all_deplibs=unknown for libtool])
2877 # work around Debian patch to libtool breaking cross-compiles
2878 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737
2879 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726
2880 link_all_deplibs=unknown
2887 AC_CONFIG_HEADERS([config.h])
2890 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2895 libblkid/docs/Makefile
2896 libblkid/docs/version.xml
2897 libblkid/src/blkid.h
2898 libfdisk/docs/Makefile
2899 libfdisk/docs/version.xml
2900 libfdisk/src/libfdisk.h
2901 libmount/docs/Makefile
2902 libmount/docs/version.xml
2903 libmount/src/libmount.h
2904 libsmartcols/docs/Makefile
2905 libsmartcols/docs/version.xml
2906 libsmartcols/src/libsmartcols.h
2914 ${PACKAGE} ${VERSION}
2917 exec prefix: ${exec_prefix}
2922 usrbin_execdir: ${usrbin_execdir}
2923 usrsbin_execdir: ${usrsbin_execdir}
2924 usrlib_execdir: ${usrlib_execdir}
2926 localstatedir: ${localstatedir}
2927 runstatedir: ${runstatedir}
2928 includedir: ${includedir}
2929 sysconfdir: ${sysconfdir}
2930 sysconfstaticdir: ${sysconfstaticdir}
2932 vendordir: ${with_vendordir}
2935 Python version: ${PYTHON_VERSION}
2936 Python libs: ${pyexecdir}
2938 Bash completions: ${with_bashcompletiondir}
2939 Systemd support: ${have_systemd}
2940 Systemd unitdir: ${with_systemdsystemunitdir}
2941 libeconf support: ${have_econf}
2942 Btrfs support: ${have_btrfs}
2943 Wide-char support: ${build_widechar}
2944 libcryptsetup support: ${have_cryptsetup}
2946 Manual pages: ${build_asciidoc}
2947 Manual pages translated: ${build_poman}
2949 compiler: ${CC} / ${CXX}
2950 suid cflags: ${SUID_CFLAGS}
2952 suid ldflags: ${SUID_LDFLAGS}
2953 ASAN enabled: ${enable_asan}
2954 Fuzzing enabled: ${enable_fuzzing_engine}
2955 Coverage enabled ${enable_coverage}
2963 Type 'make' or 'make <utilname>' to compile.