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])
131 dnl Compiler warnings
132 UL_WARN_ADD([-fno-common])
134 UL_WARN_ADD([-Wextra])
136 UL_WARN_ADD([-Waddress-of-packed-member])
137 UL_WARN_ADD([-Wdiscarded-qualifiers])
138 UL_WARN_ADD([-Wembedded-directive])
139 UL_WARN_ADD([-Wextra-semi])
140 UL_WARN_ADD([-Wformat-security])
141 UL_WARN_ADD([-Wimplicit-function-declaration])
142 UL_WARN_ADD([-Wmissing-declarations])
143 UL_WARN_ADD([-Wmissing-parameter-type])
144 UL_WARN_ADD([-Wmissing-prototypes])
145 UL_WARN_ADD([-Wnested-externs])
146 UL_WARN_ADD([-Wno-missing-field-initializers])
147 UL_WARN_ADD([-Wold-style-definition])
148 UL_WARN_ADD([-Wpointer-arith])
149 UL_WARN_ADD([-Wredundant-decls])
150 UL_WARN_ADD([-Wsign-compare])
151 UL_WARN_ADD([-Wstrict-prototypes])
152 UL_WARN_ADD([-Wtype-limits])
153 UL_WARN_ADD([-Wuninitialized])
154 UL_WARN_ADD([-Wunused-but-set-parameter])
155 UL_WARN_ADD([-Wunused-but-set-variable])
156 UL_WARN_ADD([-Wunused-parameter])
157 UL_WARN_ADD([-Wunused-result])
158 UL_WARN_ADD([-Wunused-variable])
160 AC_ARG_ENABLE([werror],
161 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
162 [], [enable_werror=no]
164 AS_IF([test "x$enable_werror" = xyes], [
165 UL_WARN_ADD([-Werror])
167 UL_WARN_ADD([-Werror=sequence-point])
170 AC_SUBST([WARN_CFLAGS])
173 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
174 AC_SUBST([BSD_WARN_CFLAGS])
176 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
177 AC_SUBST([PYTHON_WARN_CFLAGS])
179 UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
180 AC_SUBST([NO_UNUSED_WARN_CFLAGS])
183 AC_ARG_ENABLE([asan],
184 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
187 AS_IF([test "x$enable_asan" = xyes], [
188 UL_WARN_ADD([-fsanitize=address])
189 ASAN_LDFLAGS="-fsanitize=address"
191 AC_SUBST([ASAN_LDFLAGS])
193 AC_ARG_ENABLE([ubsan],
194 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
195 [], [enable_ubsan=no]
197 AS_IF([test "x$enable_ubsan" = xyes], [
198 UL_WARN_ADD([-fsanitize=undefined])
199 UBSAN_LDFLAGS="-fsanitize=undefined"
201 AC_SUBST([UBSAN_LDFLAGS])
203 AC_ARG_ENABLE([fuzzing-engine],
204 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
205 [], [enable_fuzzing_engine=no]
207 AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
208 UL_WARN_ADD([-fno-omit-frame-pointer])
209 UL_WARN_ADD([-gline-tables-only])
210 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
211 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
213 AC_SUBST([FUZZING_ENGINE_LDFLAGS])
215 AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
216 AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
218 AC_ARG_ENABLE([coverage],
219 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
220 [], [enable_coverage=no]
222 AS_IF([test "x$enable_coverage" = xyes], [
223 UL_WARN_ADD([--coverage])
224 COVERAGE_LDFLAGS="--coverage"
226 AC_SUBST([COVERAGE_LDFLAGS])
227 AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
232 dnl check supported linker flags
235 m4_ifndef([PKG_PROG_PKG_CONFIG],
236 [m4_fatal([Could not locate the pkg-config autoconf
237 macros. These are usually located in /usr/share/aclocal/pkg.m4.
238 If your macros are in a different location, try setting the
239 environment variable AL_OPTS="-I/other/macro/dir" before running
240 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
242 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
244 GTK_DOC_CHECK([1.10])
245 AC_PATH_PROG([XSLTPROC], [xsltproc])
250 AS_CASE([${host_os}],
257 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
258 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
259 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
261 AS_IF([test "x$darwin_os" = xyes], [
262 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
265 dnl define ARCH_<NAME> conditionals
266 UL_SET_ARCH([I86], [i?86-*])
267 UL_SET_ARCH([86_64], [x86_64*])
268 UL_SET_ARCH([IA64], [ia64*])
269 UL_SET_ARCH([S390], [s390*])
270 UL_SET_ARCH([SPARC], [sparc*])
271 UL_SET_ARCH([PPC], [ppc*|powerpc*])
272 UL_SET_ARCH([M68K], [m68*])
273 UL_SET_ARCH([MIPS], [mips*])
274 UL_SET_ARCH([HPPA], [hppa*|parisc*])
280 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
281 AM_GNU_GETTEXT_VERSION([0.18.3])
282 AM_GNU_GETTEXT([external])
284 AS_IF([test -d "$srcdir/po"], [
285 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
286 ], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
288 af am ar as be bg bn bn_IN ca
289 cs cy da de el en_GB es et eu_ES
290 fa fi fr gl gu he hi hr hu
291 hy id is it ja ka kn ko ku
292 lo lt lv mk ml mr ms my nb
293 nl nn no nso or pa pl pt pt_BR
294 ro ru si sk sl sq sr sr@Latn sv
295 ta te th tr uk ur vi zh_CN zh_TW
299 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
300 #ifdef HAVE_LINUX_COMPILER_H
301 #include <linux/compiler.h>
305 asm-generic/fcntl.h \
325 linux/net_namespace.h \
341 security/pam_appl.h \
381 # There is a collision in old kernel-headers. The both files mount.h and fs.h
382 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
384 AC_CHECK_HEADERS([linux/fs.h ], [], [],
385 [#ifdef HAVE_SYS_MOUNT_H
386 # include <linux/fs.h>
387 # include <sys/mount.h>
391 AC_CHECK_HEADERS([linux/mount.h ], [], [],
392 [#ifdef HAVE_LINUX_MOUNT_H
393 # include <linux/mount.h>
397 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
398 [#ifdef LINUX_GSMMUX_H
399 # include <linux/gsmmux.h>
403 AC_CHECK_HEADERS([security/pam_misc.h],
404 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
405 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
406 #ifdef HAVE_SECURITY_PAM_APPL_H
407 #include <security/pam_appl.h>
411 AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
412 #include <linux/blkzoned.h>
415 AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
416 #include <linux/pr.h>
419 AC_CHECK_HEADERS([security/openpam.h], [], [], [
420 #ifdef HAVE_SECURITY_PAM_APPL_H
421 #include <security/pam_appl.h>
425 AC_CHECK_HEADERS([langinfo.h],
426 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
427 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
429 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
430 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
431 #include <langinfo.h>
434 str = nl_langinfo (ALTMON_1);
435 str = nl_langinfo (ALTMON_2);
436 str = nl_langinfo (ALTMON_3);
437 str = nl_langinfo (ALTMON_4);
438 str = nl_langinfo (ALTMON_5);
439 str = nl_langinfo (ALTMON_6);
440 str = nl_langinfo (ALTMON_7);
441 str = nl_langinfo (ALTMON_8);
442 str = nl_langinfo (ALTMON_9);
443 str = nl_langinfo (ALTMON_10);
444 str = nl_langinfo (ALTMON_11);
445 str = nl_langinfo (ALTMON_12);
448 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
449 [Define if langinfo.h defines ALTMON_x constants])
455 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
456 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
457 #include <langinfo.h>
460 str = nl_langinfo (_NL_ABALTMON_1);
461 str = nl_langinfo (_NL_ABALTMON_2);
462 str = nl_langinfo (_NL_ABALTMON_3);
463 str = nl_langinfo (_NL_ABALTMON_4);
464 str = nl_langinfo (_NL_ABALTMON_5);
465 str = nl_langinfo (_NL_ABALTMON_6);
466 str = nl_langinfo (_NL_ABALTMON_7);
467 str = nl_langinfo (_NL_ABALTMON_8);
468 str = nl_langinfo (_NL_ABALTMON_9);
469 str = nl_langinfo (_NL_ABALTMON_10);
470 str = nl_langinfo (_NL_ABALTMON_11);
471 str = nl_langinfo (_NL_ABALTMON_12);
474 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
475 [Define if langinfo.h defines _NL_ABALTMON_x constants])
481 dnl Convert some ac_cv_header_* variables to have_*
483 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
484 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
485 have_linux_capability_h=$ac_cv_header_linux_capability_h
486 have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
487 have_linux_mount_h=$ac_cv_header_linux_mount_h
488 have_linux_pr_h=$ac_cv_header_linux_pr_h
489 have_linux_raw_h=$ac_cv_header_linux_raw_h
490 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
491 have_linux_version_h=$ac_cv_header_linux_version_h
492 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
493 have_pty_h=$ac_cv_header_pty_h
494 have_security_openpam_h=$ac_cv_header_security_openpam_h
495 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
496 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
497 have_shadow_h=$ac_cv_header_shadow_h
498 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
499 have_utmpx_h=$ac_cv_header_utmpx_h
500 have_mntent_h=$ac_cv_header_mntent_h
502 AS_CASE([$linux_os:$have_linux_version_h],
504 [AC_MSG_ERROR([kernel headers required on Linux])]
507 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
512 struct tm *tm = localtime(0);
513 if (a == -1) /* false */
514 sleep(tm->tm_gmtoff);
516 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
519 AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
520 AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
522 AC_CHECK_MEMBERS([struct termios.c_line],,,
523 [[#include <termios.h>]])
525 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
526 [[#include <sys/stat.h>]])
528 AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
529 AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
530 [[#include <sys/stat.h>]])
532 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
534 AC_CHECK_DECL([environ],
535 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
536 [Define to 1 if have **environ prototype])],
539 AC_CHECK_DECL([strsignal],
540 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
541 [Define to 1 if have strsignal function prototype])],
544 AC_CHECK_DECL([TIOCGLCKTRMIOS],
545 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
546 [#include <sys/ioctl.h>])
547 AC_CHECK_DECL([SOCK_CLOEXEC],
548 [have_sock_cloexec=yes], [have_sock_cloexec=no],
549 [#include <sys/types.h>
550 #include <sys/socket.h>])
551 AC_CHECK_DECL([SOCK_NONBLOCK],
552 [have_sock_nonblock=yes], [have_sock_nonblock=no],
553 [#include <sys/types.h>
554 #include <sys/socket.h>])
555 AC_CHECK_DECL([SO_PASSCRED],
556 [have_so_passcred=yes], [have_so_passcred=no],
557 [#include <sys/types.h>
558 #include <sys/socket.h>])
634 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
635 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
636 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
637 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
638 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
639 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
640 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
641 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
643 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
645 have_setns_syscall="yes"
646 UL_CHECK_SYSCALL([setns])
647 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
648 have_setns_syscall="no"
651 UL_CHECK_SYSCALL([pidfd_open])
652 UL_CHECK_SYSCALL([pidfd_send_signal])
653 UL_CHECK_SYSCALL([close_range])
655 UL_CHECK_SYSCALL([fsconfig])
656 UL_CHECK_SYSCALL([fsmount])
657 UL_CHECK_SYSCALL([fsopen])
658 UL_CHECK_SYSCALL([fspick])
659 UL_CHECK_SYSCALL([mount_setattr])
660 UL_CHECK_SYSCALL([move_mount])
661 UL_CHECK_SYSCALL([open_tree])
663 AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
664 test "x$ul_cv_syscall_fsmount" = xno ||
665 test "x$ul_cv_syscall_fsopen" = xno ||
666 test "x$ul_cv_syscall_fspick" = xno ||
667 test "x$ul_cv_syscall_mount_setattr" = xno ||
668 test "x$ul_cv_syscall_move_mount" = xno ||
669 test "x$ul_cv_syscall_open_tree" = xno],
671 have_mountfd_api="no"
673 have_mountfd_api="yes"
674 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
678 AC_CHECK_FUNCS([isnan], [],
679 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
680 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
682 AC_SUBST([MATH_LIBS])
685 dnl lib/mononotic.c may require -lrt
686 AC_CHECK_FUNCS([clock_gettime], [],
687 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
691 AC_CHECK_FUNCS([timer_create],
693 [AC_CHECK_LIB([rt], [timer_create], [
696 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
698 AC_SEARCH_LIBS([timer_create], [rt], [
701 REALTIME_LIBS="-lrt -lpthread"
702 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
708 AC_SUBST([REALTIME_LIBS])
710 AS_IF([test x"$have_timer" = xno], [
711 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
715 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
717 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
719 AC_SUBST([RTAS_LIBS])
722 AC_CHECK_MEMBER([struct sockaddr.sa_len],
723 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
724 [#include <sys/types.h>
725 #include <sys/socket.h>])
728 AC_SEARCH_LIBS([socket], [socket],
729 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
730 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
732 AC_SUBST([SOCKET_LIBS])
736 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
737 AS_IF([test x"$have_dirfd" = xno], [
738 AC_CHECK_DECLS([dirfd],
739 [have_dirfd=yes], [have_dirfd=no],
740 [#include <sys/types.h>
741 #include <dirent.h>])
745 AS_IF([test x"$have_dirfd" = xno], [
746 AC_CHECK_MEMBERS([DIR.dd_fd],
747 [have_ddfd=yes], [have_ddfd=no],
748 [#include <sys/types.h>
749 #include <dirent.h>])
752 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
755 AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
758 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
759 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
762 program_invocation_short_name = "test";
765 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
766 [Define if program_invocation_short_name is defined])
772 AC_MSG_CHECKING([whether __progname is defined])
773 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
774 [if (*__progname == 0) return 1;])],
775 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
776 AC_MSG_RESULT([yes]),
779 AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
780 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
781 [Define to 1 if OPAL status ioctl is defined])],,
782 [#include <linux/sed-opal.h>])
784 dnl Static compilation
785 m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare])
787 AC_ARG_ENABLE([static-programs],
788 [AS_HELP_STRING([--enable-static-programs=LIST],
789 [link static the programs in LIST (comma-separated,
790 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
792 AS_CASE([$enable_static_programs],
794 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
796 [enable_static_programs=]
799 dnl Set all the individual AM_CONDITIONALs
800 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
801 AS_CASE([,$enable_static_programs,],
802 [*,UL_PRG,*], [static_[]UL_PRG=yes]
804 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
805 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
806 [test "x$static_[]UL_PRG" = xyes])
810 AC_ARG_ENABLE([all-programs],
811 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
812 [], [enable_all_programs=undefined]
815 AS_CASE([$enable_all_programs],
816 [yes], [AC_MSG_WARN([force to build all programs by default])
817 ul_default_estate=check],
818 [no], [AC_MSG_WARN([disable all programs and man pages by default])
819 ul_default_estate=no]
823 AC_ARG_ENABLE([asciidoc],
824 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
825 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
827 UL_BUILD_INIT([asciidoc])
828 UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
829 AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
830 have_asciidoctor_failure_level=no
831 AS_IF([test "x$build_asciidoc" = xyes], [
832 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
833 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
835 have_asciidoctor_failure_level=yes
840 AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
843 AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
844 AC_MSG_NOTICE([re-use already generated man-pages.])
847 AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
850 AC_ARG_ENABLE([poman],
851 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
852 [], [UL_DEFAULT_ENABLE([poman], [check])]
854 UL_BUILD_INIT([poman])
855 UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
856 AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
862 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
865 AS_IF([test "x$with_util" = xno], [
866 AM_CONDITIONAL([HAVE_UTIL], [false])
869 UL_CHECK_LIB([util], [openpty])
872 AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
873 AM_CONDITIONAL([HAVE_PTY], [true])
874 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
877 AM_CONDITIONAL([HAVE_PTY], [false])
880 AC_CHECK_TYPES([union semun], [], [], [[
883 AC_CHECK_TYPES([loff_t])
886 AC_ARG_ENABLE([widechar],
887 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
888 [], [enable_widechar=check]
890 UL_BUILD_INIT([widechar])
891 UL_REQUIRES_COMPILE([widechar], [[
900 if (w == WEOF) exit(1);
906 AS_IF([test "x$build_widechar" = xyes ], [
907 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
911 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
915 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
917 AC_CHECK_TYPES([sighandler_t], [], [], [[
921 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
925 # on Solaris, you can't mix and match standards, since we use c99
926 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
927 # check for crypt.h and use that without XOPEN_SOURCE.
929 AC_CHECK_HEADERS([crypt.h])
930 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
934 #define _XOPEN_SOURCE
938 char *c = crypt("abc","pw");
943 UL_SET_LIBS([-lcrypt])
944 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
948 #define _XOPEN_SOURCE
952 char *c = crypt("abc","pw");
957 AC_MSG_WARN([crypt() is not available])
961 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
964 AC_ARG_WITH([selinux],
965 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
966 [], [with_selinux=no]
969 AS_IF([test "x$with_selinux" = xno], [
970 AM_CONDITIONAL([HAVE_SELINUX], [false])
972 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
973 AS_CASE([$with_selinux:$have_selinux],
974 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
976 AS_IF([test "x$have_selinux" = xyes], [
977 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
978 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
979 AM_CONDITIONAL([HAVE_SELINUX], [true])
981 UL_SET_LIBS([$SELINUX_LIBS])
982 # This function is missing in old libselinux 1.xx versions
983 AC_CHECK_FUNCS([security_get_initial_context])
987 AC_SUBST([SELINUX_LIBS])
988 AC_SUBST([SELINUX_LIBS_STATIC])
992 AS_HELP_STRING([--with-audit], [compile with audit support]),
996 AS_IF([test "x$with_audit" = xno], [
997 AM_CONDITIONAL([HAVE_AUDIT], [false])
999 UL_CHECK_LIB([audit], [audit_log_user_message])
1000 AS_CASE([$with_audit:$have_audit],
1002 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1006 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
1007 [], [with_udev=auto]
1010 AS_IF([test "x$with_udev" = xno], [
1011 AM_CONDITIONAL([HAVE_UDEV], [false])
1013 UL_CHECK_LIB([udev], [udev_new])
1014 AS_CASE([$with_udev:$have_udev],
1016 [AC_MSG_ERROR([udev selected but libudev not found])]
1021 dnl wide-char ncurses
1022 AC_ARG_WITH([ncursesw],
1023 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
1024 [], [with_ncursesw=auto]
1027 have_ncursesw_header=no
1028 AS_IF([test "x$with_ncursesw" != xno], [
1029 UL_NCURSES_CHECK([ncursesw])
1030 AS_IF([test "x$have_ncursesw" = xyes], [
1031 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1032 AC_CHECK_HEADERS([ncursesw/term.h])
1034 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1035 # unsuccessful to avoid too many *_H permitations in config.h
1036 AS_IF([test "x$have_ncursesw_header" = xno], [
1037 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1038 AC_CHECK_HEADERS([term.h])
1040 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1042 AS_IF([test "x$have_ncursesw" = xyes], [
1043 CURSES_LIB_NAME="ncursesw"
1044 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
1047 AS_CASE([$with_ncursesw:$have_ncursesw],
1048 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
1051 dnl non-wide ncurses
1052 AC_ARG_WITH([ncurses],
1053 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
1054 [], [with_ncurses=auto]
1057 have_ncurses_header=no
1058 AS_CASE([$with_ncurses:$build_widechar],
1059 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1061 AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
1062 UL_NCURSES_CHECK([ncurses])
1063 AS_IF([test "x$have_ncurses" = xyes], [
1064 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1065 AC_CHECK_HEADERS([ncurses/term.h])
1067 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1068 # unsuccessful to avoid too many *_H permitations in config.h
1069 AS_IF([test "x$have_ncurses_header" = xno], [
1070 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1071 AC_CHECK_HEADERS([term.h])
1073 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1075 AS_IF([test "x$have_ncurses" = xyes], [
1076 CURSES_LIB_NAME="ncurses"
1077 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
1080 AS_CASE([$with_ncurses:$have_ncurses],
1081 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1083 AC_SUBST([NCURSES_CFLAGS])
1084 AC_SUBST([NCURSES_LIBS])
1085 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
1088 AC_ARG_WITH([slang],
1089 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
1093 AS_IF([test "x$with_slang" = xyes], [
1094 AC_CHECK_HEADERS([slang.h slang/slang.h])
1095 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
1096 [have_slang=yes], [], [
1099 #elif defined(HAVE_SLANG_SLANG_H)
1100 #include <slang/slang.h>
1103 AS_IF([test "x$have_slang" = xno], [
1104 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1105 [CURSES_LIB_NAME=slang
1108 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1111 AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
1112 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1113 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1114 [Define if curses library has the use_default_colors().])
1116 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1117 AC_DEFINE(HAVE_RESIZETERM, 1,
1118 [Define if curses library has the resizeterm().])
1123 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1124 [], [with_tinfo=auto]
1128 AS_IF([test "x$with_tinfo" != xno], [
1129 AS_IF([test "x$have_ncursesw" = xyes], [
1130 UL_TINFO_CHECK([tinfow])
1132 AS_IF([test "x$have_tinfow" = xno], [
1133 UL_TINFO_CHECK([tinfo])
1136 AC_SUBST([TINFO_LIBS])
1137 AC_SUBST([TINFO_LIBS_STATIC])
1138 AC_SUBST([TINFO_CFLAGS])
1139 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1140 AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
1141 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1145 AC_ARG_WITH([readline],
1146 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1147 [], [with_readline=auto]
1150 AS_IF([test "x$with_readline" = xno], [
1151 AM_CONDITIONAL([HAVE_READLINE], [false])
1153 UL_CHECK_LIB([readline], [readline])
1154 AS_CASE([$with_readline:$have_readline],
1156 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1158 [READLINE_LIBS="-lreadline"
1159 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1162 AC_SUBST([READLINE_LIBS])
1163 AC_SUBST([READLINE_LIBS_STATIC])
1166 AC_ARG_WITH([utempter],
1167 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1168 [], [with_utempter=no]
1171 AS_IF([test "x$with_utempter" = xyes], [
1172 UL_CHECK_LIB([utempter], [utempter_add_record])
1173 AS_IF([test "x$have_utempter" = xno], [
1174 AC_MSG_ERROR([utempter selected but libutempter not found])
1177 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1184 AC_ARG_ENABLE([libuuid],
1185 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1186 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1188 UL_BUILD_INIT([libuuid])
1189 AC_SUBST([LIBUUID_VERSION])
1190 AC_SUBST([LIBUUID_VERSION_INFO])
1191 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1193 AC_ARG_ENABLE([libuuid-force-uuidd],
1194 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1195 [], [enable_libuuid_force_uuidd=no]
1198 AS_IF([test "x$build_libuuid" = xyes], [
1199 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1205 AC_ARG_ENABLE([libblkid],
1206 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1207 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1209 UL_BUILD_INIT([libblkid])
1210 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1211 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1212 AC_SUBST([LIBBLKID_DATE])
1213 AC_SUBST([LIBBLKID_VERSION])
1214 AC_SUBST([LIBBLKID_VERSION_INFO])
1215 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1216 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1217 AS_IF([test "x$build_libblkid" = xyes], [
1218 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1220 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1221 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
1226 AC_ARG_ENABLE([libmount],
1227 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1228 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1230 UL_BUILD_INIT([libmount])
1231 UL_REQUIRES_BUILD([libmount], [libblkid])
1232 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1233 UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
1234 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1235 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
1236 AS_IF([test "x$build_libmount" = xyes], [
1237 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1238 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1239 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1241 AC_MSG_WARN([libmount will be compiled without namespaces support])
1245 AC_SUBST([LIBMOUNT_VERSION])
1246 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1247 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1248 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1249 AC_SUBST([LIBMOUNT_VERSION_INFO])
1250 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1252 AC_ARG_ENABLE([libmount-mountfd-support],
1253 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1254 [], [enable_libmount_mountfd_support=check]
1256 UL_BUILD_INIT([libmount_mountfd_support])
1257 UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1258 UL_REQUIRES_LINUX([libmount_mountfd_support])
1259 UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
1260 UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
1261 AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1262 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1269 AC_ARG_ENABLE([libsmartcols],
1270 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1271 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1273 UL_BUILD_INIT([libsmartcols])
1274 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1276 AC_SUBST([LIBSMARTCOLS_VERSION])
1277 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1278 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1284 AC_ARG_ENABLE([libfdisk],
1285 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1286 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1288 UL_BUILD_INIT([libfdisk])
1289 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1290 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1291 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
1293 AS_IF([test "x$build_libblkid" = xyes],
1294 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1295 AC_SUBST([LIBFDISK_PC_REQUIRES])
1297 AC_SUBST([LIBFDISK_VERSION])
1298 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1299 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1300 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1301 AC_SUBST([LIBFDISK_VERSION_INFO])
1302 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1305 AC_ARG_ENABLE([fdisks],
1306 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1307 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1309 enable_fdisk=$enable_fdisks
1310 enable_sfdisk=$enable_fdisks
1311 enable_cfdisk=$enable_fdisks
1313 UL_BUILD_INIT([fdisk])
1314 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1315 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1316 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1317 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1318 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1321 UL_BUILD_INIT([sfdisk])
1322 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1323 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1324 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1325 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1326 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1329 UL_BUILD_INIT([cfdisk])
1330 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1331 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1332 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1333 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1334 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1337 AC_ARG_ENABLE([mount],
1338 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1339 [], [UL_DEFAULT_ENABLE([mount], [check])]
1341 UL_BUILD_INIT([mount])
1342 UL_REQUIRES_LINUX([mount])
1343 UL_REQUIRES_BUILD([mount], [libmount])
1344 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1347 AC_ARG_ENABLE([losetup],
1348 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1349 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1351 UL_BUILD_INIT([losetup])
1352 UL_REQUIRES_LINUX([losetup])
1353 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1354 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1356 AC_ARG_ENABLE([zramctl],
1357 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1358 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1360 UL_BUILD_INIT([zramctl])
1361 UL_REQUIRES_LINUX([zramctl])
1362 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1363 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1365 AC_ARG_ENABLE([fsck],
1366 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1367 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1369 UL_BUILD_INIT([fsck])
1370 UL_REQUIRES_BUILD([fsck], [libmount])
1371 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1374 AC_ARG_ENABLE([partx],
1375 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1376 [], [UL_DEFAULT_ENABLE([partx], [check])]
1378 UL_BUILD_INIT([partx])
1379 UL_REQUIRES_LINUX([partx])
1380 UL_REQUIRES_BUILD([partx], [libblkid])
1381 UL_REQUIRES_BUILD([partx], [libsmartcols])
1382 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1385 AC_ARG_ENABLE([uuidd],
1386 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1387 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1389 UL_BUILD_INIT([uuidd])
1390 UL_REQUIRES_BUILD([uuidd], [libuuid])
1391 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1392 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1393 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1394 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1396 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1399 AC_ARG_ENABLE([uuidgen],
1400 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1401 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1403 UL_BUILD_INIT([uuidgen])
1404 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1405 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1407 UL_BUILD_INIT([uuidparse], [check])
1408 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1409 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1410 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1412 AC_ARG_ENABLE([blkid],
1413 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1414 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1416 UL_BUILD_INIT([blkid])
1417 UL_REQUIRES_BUILD([blkid], [libblkid])
1418 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1420 UL_BUILD_INIT([findfs], [check])
1421 UL_REQUIRES_BUILD([findfs], [libblkid])
1422 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1424 AC_ARG_ENABLE([wipefs],
1425 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1426 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1428 UL_BUILD_INIT([wipefs])
1429 UL_REQUIRES_BUILD([wipefs], [libblkid])
1430 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1431 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1433 UL_BUILD_INIT([findmnt], [check])
1434 UL_REQUIRES_BUILD([findmnt], [libmount])
1435 UL_REQUIRES_BUILD([findmnt], [libblkid])
1436 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1437 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1440 AC_ARG_ENABLE([mountpoint],
1441 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1442 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1444 UL_BUILD_INIT([mountpoint])
1445 UL_REQUIRES_BUILD([mountpoint], [libmount])
1446 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1449 AC_ARG_ENABLE([fallocate],
1450 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1451 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1453 UL_BUILD_INIT([fallocate])
1454 UL_REQUIRES_LINUX([fallocate])
1455 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1456 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1458 AS_IF([test "x$build_fallocate" = xyes], [
1459 dnl check for valid fallocate() function
1460 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1461 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1462 dnl and program can't be linked.
1463 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1464 dnl function prototype.
1465 AC_MSG_CHECKING([for valid fallocate() function])
1466 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1467 #ifdef HAVE_UNISTD_H
1468 # include <unistd.h>
1470 #ifdef HAVE_SYS_TYPES_H
1471 # include <sys/types.h>
1473 #ifdef HAVE_LINUX_FALLOC_H
1474 # include <linux/falloc.h>
1481 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1486 AC_MSG_RESULT([yes])
1487 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1488 AC_MSG_RESULT([no])])
1491 AS_IF([test "x$build_fallocate" = xyes], [
1492 dnl check for valid posix_fallocate() function
1493 AC_MSG_CHECKING([for valid posix_fallocate() function])
1494 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1495 #ifdef HAVE_UNISTD_H
1496 # include <unistd.h>
1498 #ifdef HAVE_SYS_TYPES_H
1499 # include <sys/types.h>
1501 #ifdef HAVE_LINUX_FALLOC_H
1502 # include <linux/falloc.h>
1509 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1514 AC_MSG_RESULT([yes])
1515 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1516 AC_MSG_RESULT([no])])
1520 AC_ARG_ENABLE([unshare],
1521 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1522 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1524 UL_BUILD_INIT([unshare])
1525 UL_REQUIRES_LINUX([unshare])
1526 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1527 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1528 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1530 AC_MSG_CHECKING([for valid unshare() function])
1531 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1540 AC_MSG_RESULT([yes])
1541 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1547 AC_ARG_ENABLE([nsenter],
1548 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1549 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1551 UL_BUILD_INIT([nsenter])
1552 UL_REQUIRES_LINUX([nsenter])
1553 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1554 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1556 AC_MSG_CHECKING([for valid setns() function])
1557 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1563 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1567 AC_MSG_RESULT([yes])
1568 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1574 AC_ARG_WITH([cap_ng],
1575 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1576 [], [with_cap_ng=auto]
1578 AS_IF([test "x$with_cap_ng" = xno], [
1579 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1582 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1586 AC_ARG_ENABLE([setpriv],
1587 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1588 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1590 UL_BUILD_INIT([setpriv])
1591 UL_REQUIRES_LINUX([setpriv])
1592 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1593 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1594 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1595 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1597 AC_ARG_ENABLE([hardlink],
1598 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1599 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1601 UL_BUILD_INIT([hardlink])
1602 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1605 AC_ARG_ENABLE([eject],
1606 AS_HELP_STRING([--disable-eject], [do not build eject]),
1607 [], [UL_DEFAULT_ENABLE([eject], [check])]
1609 UL_BUILD_INIT([eject])
1610 UL_REQUIRES_LINUX([eject])
1611 UL_REQUIRES_BUILD([eject], [libmount])
1612 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1615 AC_ARG_ENABLE([agetty],
1616 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1617 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1619 UL_BUILD_INIT([agetty])
1620 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1621 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1622 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1623 AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
1624 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1626 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1630 AC_ARG_ENABLE([plymouth_support],
1631 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]),
1632 [], [enable_plymouth_support=check]
1634 UL_BUILD_INIT([plymouth_support])
1635 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1636 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1637 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1638 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1639 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1640 AS_IF([test "x$build_plymouth_support" = xyes ], [
1641 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1646 AS_HELP_STRING([--without-libz], [compile without libz]),
1647 [], [with_libz=auto]
1649 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1650 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1653 AC_ARG_WITH([libmagic],
1654 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1655 [], [with_libmagic=auto]
1657 AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1658 AC_CHECK_LIB([magic], [magic_open], [
1659 AC_CHECK_HEADER(magic.h, [
1660 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1661 MAGIC_LIBS="-lmagic"
1665 AC_SUBST([MAGIC_LIBS])
1668 AC_ARG_ENABLE([cramfs],
1669 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1670 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1672 UL_BUILD_INIT([cramfs])
1673 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1674 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1677 AC_ARG_ENABLE([bfs],
1678 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1679 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1681 UL_BUILD_INIT([bfs])
1682 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1685 AC_ARG_ENABLE([minix],
1686 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1687 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1689 UL_BUILD_INIT([minix])
1690 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1693 AC_ARG_ENABLE([fdformat],
1694 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1695 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
1697 UL_BUILD_INIT([fdformat])
1698 UL_REQUIRES_LINUX([fdformat])
1699 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1702 AC_ARG_ENABLE([hwclock],
1703 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1704 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1706 have_linuxdummy=$linux_os
1708 UL_BUILD_INIT([hwclock])
1709 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1710 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1712 AC_ARG_ENABLE([hwclock_cmos],
1713 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1714 [], [enable_hwclock_cmos=check]
1716 UL_BUILD_INIT([hwclock_cmos])
1717 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1718 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1719 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1720 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1721 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1724 AC_ARG_ENABLE([hwclock_gplv3],
1725 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1726 [], [enable_hwclock_gplv3=yes]
1728 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1729 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1730 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1734 AC_ARG_ENABLE([mkfs],
1735 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1736 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1738 UL_BUILD_INIT([mkfs])
1739 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1741 UL_BUILD_INIT([isosize], [yes])
1742 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1745 AC_ARG_ENABLE([fstrim],
1746 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1747 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1749 UL_BUILD_INIT([fstrim])
1750 UL_REQUIRES_LINUX([fstrim])
1751 UL_REQUIRES_BUILD([fstrim], [libmount])
1752 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1755 AC_ARG_ENABLE([swapon],
1756 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1757 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1759 UL_BUILD_INIT([swapon])
1760 UL_REQUIRES_LINUX([swapon])
1761 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1762 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1763 UL_REQUIRES_BUILD([swapon], [libblkid])
1764 UL_REQUIRES_BUILD([swapon], [libmount])
1765 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1766 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1767 AC_CHECK_FUNCS([swapon])
1768 AC_CHECK_FUNCS([swapoff])
1771 UL_BUILD_INIT([lsblk], [check])
1772 UL_REQUIRES_LINUX([lsblk])
1773 UL_REQUIRES_BUILD([lsblk], [libblkid])
1774 UL_REQUIRES_BUILD([lsblk], [libmount])
1775 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1776 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1779 AC_ARG_ENABLE([lscpu],
1780 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1781 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1783 UL_BUILD_INIT([lscpu])
1784 UL_REQUIRES_LINUX([lscpu])
1785 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1786 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1787 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1789 AC_ARG_ENABLE([lsfd],
1790 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1791 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1793 UL_BUILD_INIT([lsfd])
1794 UL_REQUIRES_LINUX([lsfd])
1795 UL_REQUIRES_BUILD([lsfd], [libsmartcols])
1796 UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file])
1797 AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
1799 AC_ARG_ENABLE([lslogins],
1800 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1801 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1803 UL_BUILD_INIT([lslogins])
1804 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1805 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1806 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1807 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1808 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1811 UL_BUILD_INIT([chcpu], [check])
1812 UL_REQUIRES_LINUX([chcpu])
1813 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1814 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1817 AC_ARG_ENABLE([wdctl],
1818 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1819 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1821 UL_BUILD_INIT([wdctl])
1822 UL_REQUIRES_LINUX([wdctl])
1823 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1824 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1825 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1828 UL_BUILD_INIT([swaplabel], [check])
1829 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1830 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1833 UL_BUILD_INIT([mkswap], [yes])
1834 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1835 AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
1836 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1840 AC_ARG_ENABLE([cal],
1841 AS_HELP_STRING([--disable-cal], [do not build cal]),
1842 [], [UL_DEFAULT_ENABLE([cal], [check])]
1844 UL_BUILD_INIT([cal])
1845 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1847 AC_ARG_ENABLE([logger],
1848 AS_HELP_STRING([--disable-logger], [do not build logger]),
1849 [], [UL_DEFAULT_ENABLE([logger], [check])]
1851 UL_BUILD_INIT([logger])
1852 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1854 UL_BUILD_INIT([look], [yes])
1855 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1857 UL_BUILD_INIT([mcookie], [yes])
1858 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1860 UL_BUILD_INIT([namei], [yes])
1861 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1863 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1864 if test "x$matriplet" != "x"; then
1865 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1866 ["Multi-arch triplet for whereis library search path"])
1868 AC_ARG_ENABLE([whereis],
1869 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1870 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1872 UL_BUILD_INIT([whereis])
1873 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1875 AC_ARG_ENABLE([pipesz],
1876 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
1877 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
1879 UL_BUILD_INIT([pipesz])
1880 UL_REQUIRES_LINUX([pipesz])
1881 AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1883 UL_BUILD_INIT([fadvise], [check])
1884 UL_REQUIRES_LINUX([fadvise])
1885 AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1887 AC_ARG_ENABLE([waitpid],
1888 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
1889 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
1891 UL_BUILD_INIT([waitpid])
1892 UL_REQUIRES_LINUX([waitpid])
1893 UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
1894 AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1896 UL_BUILD_INIT([enosys], [check])
1897 UL_REQUIRES_LINUX([enosys])
1898 AS_IF([test "x$build_enosys" = xyes], [
1899 AC_MSG_CHECKING([for valid audit arch])
1901 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1902 [AC_MSG_RESULT([yes])],
1903 [AC_MSG_RESULT([no])
1907 AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1909 UL_BUILD_INIT([lsclocks], [yes])
1910 AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes])
1912 UL_BUILD_INIT([getopt], [yes])
1913 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1916 UL_BUILD_INIT([blockdev], [check])
1917 UL_REQUIRES_LINUX([blockdev])
1918 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1921 UL_BUILD_INIT([prlimit], [check])
1922 UL_REQUIRES_LINUX([prlimit])
1923 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1924 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1925 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1926 AS_IF([test "x$build_prlimit" = xyes], [
1927 dnl check for valid prlimit() function
1928 AC_MSG_CHECKING([for valid prlimit() function])
1929 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1930 #include <sys/types.h>
1931 #include <sys/time.h>
1932 #include <sys/resource.h>
1936 ret = prlimit(0, RLIMIT_AS, NULL, NULL);
1941 AC_MSG_RESULT([yes])
1942 AC_DEFINE([HAVE_PRLIMIT], [1], [Have valid prlimit() function])],[
1943 AC_MSG_RESULT([no])])
1948 UL_BUILD_INIT([lslocks], [check])
1949 UL_REQUIRES_LINUX([lslocks])
1950 UL_REQUIRES_BUILD([lslocks], [libmount])
1951 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1952 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1955 AC_ARG_ENABLE([switch_root],
1956 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1957 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1959 UL_BUILD_INIT([switch_root])
1960 UL_REQUIRES_LINUX([switch_root])
1961 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1962 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1963 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1966 AC_ARG_ENABLE([pivot_root],
1967 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1968 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1970 UL_BUILD_INIT([pivot_root])
1971 UL_REQUIRES_LINUX([pivot_root])
1972 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1973 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1976 UL_BUILD_INIT([flock], [check])
1977 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1978 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1981 AC_ARG_ENABLE([lsmem],
1982 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1983 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1985 UL_BUILD_INIT([lsmem])
1986 UL_REQUIRES_LINUX([lsmem])
1987 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1988 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1991 AC_ARG_ENABLE([chmem],
1992 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1993 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1995 UL_BUILD_INIT([chmem])
1996 UL_REQUIRES_LINUX([chmem])
1997 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
2000 AC_ARG_ENABLE([ipcmk],
2001 AS_HELP_STRING([--disable-ipcmk], [do not build ipcmk]),
2002 [], [UL_DEFAULT_ENABLE([ipcmk], [check])]
2004 UL_BUILD_INIT([ipcmk])
2005 UL_EXCLUDE_ARCH([ipcmk], [*darwin*])
2006 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
2008 AC_ARG_ENABLE([ipcrm],
2009 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
2010 [], [UL_DEFAULT_ENABLE([ipcrm], [check])]
2012 UL_BUILD_INIT([ipcrm])
2013 UL_EXCLUDE_ARCH([ipcrm], [*darwin*])
2014 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
2016 AC_ARG_ENABLE([ipcs],
2017 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
2018 [], [UL_DEFAULT_ENABLE([ipcs], [check])]
2020 UL_BUILD_INIT([ipcs])
2021 UL_EXCLUDE_ARCH([ipcs], [*darwin*])
2022 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
2025 AC_ARG_ENABLE([irqtop],
2026 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
2027 [], [UL_DEFAULT_ENABLE([irqtop], [check])]
2029 UL_BUILD_INIT([irqtop])
2030 UL_REQUIRES_LINUX([irqtop])
2031 UL_REQUIRES_BUILD([irqtop], [libsmartcols])
2032 UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
2033 UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
2034 AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
2036 AC_ARG_ENABLE([lsirq],
2037 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
2038 [], [UL_DEFAULT_ENABLE([lsirq], [check])]
2040 UL_BUILD_INIT([lsirq])
2041 UL_REQUIRES_LINUX([lsirq])
2042 UL_REQUIRES_BUILD([lsirq], [libsmartcols])
2043 AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
2046 UL_BUILD_INIT([choom], [check])
2047 UL_REQUIRES_LINUX([choom])
2048 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
2050 UL_BUILD_INIT([lsipc], [check])
2051 UL_REQUIRES_LINUX([lsipc])
2052 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
2053 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
2055 AC_ARG_ENABLE([lsns],
2056 AS_HELP_STRING([--disable-lsns], [do not build lsns]),
2057 [], [UL_DEFAULT_ENABLE([lsns], [check])]
2059 UL_BUILD_INIT([lsns])
2060 UL_REQUIRES_LINUX([lsns])
2061 UL_REQUIRES_BUILD([lsns], [libsmartcols])
2062 UL_REQUIRES_BUILD([lsns], [libmount])
2063 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
2065 UL_BUILD_INIT([renice], [yes])
2066 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
2069 AC_ARG_ENABLE([rfkill],
2070 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
2071 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
2073 UL_BUILD_INIT([rfkill])
2074 UL_REQUIRES_LINUX([rfkill])
2075 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
2076 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
2079 UL_BUILD_INIT([setpgid], [yes])
2080 AM_CONDITIONAL([BUILD_SETPGID], [test "x$build_setpgid" = xyes])
2082 UL_BUILD_INIT([setsid], [yes])
2083 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
2085 UL_BUILD_INIT([readprofile], [check])
2086 UL_REQUIRES_LINUX([readprofile])
2087 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
2089 UL_BUILD_INIT([dmesg], [check])
2090 UL_REQUIRES_LINUX([dmesg])
2091 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
2093 UL_BUILD_INIT([ctrlaltdel], [check])
2094 UL_REQUIRES_LINUX([ctrlaltdel])
2095 dnl we assume reboot() to be the 1-argument variant, because even considering
2096 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
2097 dnl reboot() with multiple arguments is yet only found in glibc versions
2098 dnl earlier than 2.x.
2099 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
2100 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
2102 UL_BUILD_INIT([fincore], [check])
2103 UL_REQUIRES_LINUX([fincore])
2104 UL_REQUIRES_BUILD([fincore], [libsmartcols])
2105 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
2107 UL_BUILD_INIT([fsfreeze], [check])
2108 UL_REQUIRES_LINUX([fsfreeze])
2109 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
2111 UL_BUILD_INIT([blkdiscard], [check])
2112 UL_REQUIRES_LINUX([blkdiscard])
2113 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
2115 UL_BUILD_INIT([blkzone], [check])
2116 UL_REQUIRES_LINUX([blkzone])
2117 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
2118 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
2120 UL_BUILD_INIT([blkpr], [check])
2121 UL_REQUIRES_LINUX([blkpr])
2122 UL_REQUIRES_HAVE([blkpr], [linux_pr_h], [linux/pr.h header])
2123 AM_CONDITIONAL([BUILD_BLKPR], [test "x$build_blkpr" = xyes])
2125 UL_BUILD_INIT([ldattach], [check])
2126 UL_REQUIRES_LINUX([ldattach])
2127 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
2129 UL_BUILD_INIT([rtcwake], [check])
2130 UL_REQUIRES_LINUX([rtcwake])
2131 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
2133 UL_BUILD_INIT([setarch], [check])
2134 UL_REQUIRES_LINUX([setarch])
2135 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
2138 # build_scriptutils= is just configure-only variable to control
2139 # script, scriptreplay and scriptlive
2140 AC_ARG_ENABLE([scriptutils],
2141 AS_HELP_STRING([--disable-scriptutils], [do not build script, scriptreplay and scriptlive]),
2142 [], [UL_DEFAULT_ENABLE([scriptutils], [check])]
2145 UL_ENABLE_ALIAS([script], [scriptutils])
2146 UL_BUILD_INIT([script])
2147 UL_REQUIRES_HAVE([script], [pty], [openpty function (libutil)])
2148 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
2150 UL_ENABLE_ALIAS([scriptreplay], [scriptutils])
2151 UL_BUILD_INIT([scriptreplay])
2152 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
2154 UL_ENABLE_ALIAS([scriptlive], [scriptutils])
2155 UL_BUILD_INIT([scriptlive])
2156 UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)])
2157 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
2160 UL_BUILD_INIT([col], [yes])
2161 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
2163 UL_BUILD_INIT([colcrt], [yes])
2164 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
2166 UL_BUILD_INIT([colrm], [yes])
2167 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
2169 UL_BUILD_INIT([column], [check])
2170 UL_REQUIRES_BUILD([column], [libsmartcols])
2171 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
2173 UL_BUILD_INIT([hexdump], [yes])
2174 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
2176 UL_BUILD_INIT([rev], [yes])
2177 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
2180 AC_ARG_ENABLE([tunelp],
2181 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
2182 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
2184 UL_BUILD_INIT([tunelp])
2185 UL_REQUIRES_LINUX([tunelp])
2186 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
2189 AC_ARG_ENABLE([kill],
2190 AS_HELP_STRING([--disable-kill], [do not build kill]),
2191 [], [UL_DEFAULT_ENABLE([kill], [check])]
2193 UL_BUILD_INIT([kill])
2194 UL_REQUIRES_LINUX([kill])
2195 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
2198 AC_ARG_ENABLE([last],
2199 AS_HELP_STRING([--disable-last], [do not build last]),
2200 [], [UL_DEFAULT_ENABLE([last], [check])]
2202 UL_BUILD_INIT([last])
2203 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
2204 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
2205 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2208 AC_ARG_ENABLE([utmpdump],
2209 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
2210 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
2212 UL_BUILD_INIT([utmpdump])
2213 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
2214 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
2215 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
2218 AC_ARG_ENABLE([line],
2219 AS_HELP_STRING([--enable-line], [build line]),
2220 [], [UL_DEFAULT_ENABLE([line], [no])]
2222 UL_BUILD_INIT([line])
2223 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2226 AC_ARG_ENABLE([mesg],
2227 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
2228 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
2230 UL_BUILD_INIT([mesg])
2231 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
2234 AC_ARG_ENABLE([raw],
2235 AS_HELP_STRING([--disable-raw], [do not build raw]),
2236 [], [UL_DEFAULT_ENABLE([raw], [check])]
2238 UL_BUILD_INIT([raw])
2239 UL_REQUIRES_LINUX([raw])
2240 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
2241 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
2244 AC_ARG_ENABLE([rename],
2245 AS_HELP_STRING([--disable-rename], [do not build rename]),
2246 [], [UL_DEFAULT_ENABLE([rename], [yes])]
2248 UL_BUILD_INIT([rename])
2249 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
2252 AC_ARG_ENABLE([vipw],
2253 AS_HELP_STRING([--enable-vipw], [build vipw]),
2254 [], [UL_DEFAULT_ENABLE([vipw], [no])]
2256 UL_BUILD_INIT([vipw])
2257 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
2258 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
2261 AC_ARG_ENABLE([newgrp],
2262 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
2263 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
2265 UL_BUILD_INIT([newgrp])
2266 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
2267 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
2270 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
2271 [], [with_user=check]
2274 AS_IF([test "x$with_user" != xno], [
2275 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
2276 AS_CASE([$with_user:$have_user],
2278 [AC_MSG_ERROR([user selected but libuser not found])],
2280 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2282 # temporary solution, libuser has stupid .pc where are exported all
2283 # private dependencies to Requires: instead of Requires.private:
2284 AS_IF([test "x$have_user" = xyes], [
2288 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
2290 AC_ARG_ENABLE([chfn-chsh-password],
2291 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
2292 [], [enable_chfn_chsh_password=yes]
2295 AC_ARG_ENABLE([chfn-chsh],
2296 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
2297 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
2299 UL_BUILD_INIT([chfn_chsh])
2300 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
2301 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
2303 AS_IF([test "x$enable_chfn_chsh_password" = xyes || test "x$have_user" = xyes], [
2304 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
2305 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
2307 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2308 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
2310 AC_ARG_ENABLE([chsh-only-listed],
2311 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2312 [], enable_chsh_only_listed=yes
2315 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2316 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2320 AC_ARG_ENABLE([login],
2321 AS_HELP_STRING([--disable-login], [do not build login]),
2322 [], [UL_DEFAULT_ENABLE([login], [check])]
2324 UL_BUILD_INIT([login])
2325 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2326 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2327 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2328 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2329 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2331 AC_ARG_ENABLE([login-chown-vcs],
2332 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2333 [], [enable_login_chown_vcs=no]
2336 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2337 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2340 AC_ARG_ENABLE([login-stat-mail],
2341 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2342 [], [enable_login_stat_mail=no]
2345 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2346 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2350 AC_ARG_ENABLE([nologin],
2351 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2352 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2354 UL_BUILD_INIT([nologin])
2355 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2358 AC_ARG_ENABLE([sulogin],
2359 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2360 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2362 UL_BUILD_INIT([sulogin])
2363 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2364 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2365 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2369 AS_HELP_STRING([--disable-su], [do not build su]),
2370 [], [UL_DEFAULT_ENABLE([su], [check])]
2373 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2374 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2375 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2376 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2379 AC_ARG_ENABLE([runuser],
2380 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2381 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2383 UL_BUILD_INIT([runuser])
2384 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2385 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2386 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2387 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2391 AS_HELP_STRING([--disable-ul], [do not build ul]),
2392 [], [UL_DEFAULT_ENABLE([ul], [check])]
2395 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2396 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2399 AC_ARG_ENABLE([more],
2400 AS_HELP_STRING([--disable-more], [do not build more]),
2401 [], [UL_DEFAULT_ENABLE([more], [check])]
2403 UL_BUILD_INIT([more])
2404 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2405 UL_REQUIRES_LINUX([more])
2406 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2410 AS_HELP_STRING([--enable-pg], [build pg]),
2411 [], [UL_DEFAULT_ENABLE([pg], [no])]
2414 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2415 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2418 AC_ARG_ENABLE([setterm],
2419 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2420 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2422 UL_BUILD_INIT([setterm])
2423 UL_REQUIRES_LINUX([setterm])
2424 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2425 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2427 # build_schedutils= is just configure-only variable to control
2428 # ionice, taskset and chrt
2429 AC_ARG_ENABLE([schedutils],
2430 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2431 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2435 UL_ENABLE_ALIAS([ionice], [schedutils])
2436 UL_BUILD_INIT([ionice])
2437 UL_REQUIRES_SYSCALL_CHECK([ionice],
2438 [UL_CHECK_SYSCALL([ioprio_set],
2449 UL_REQUIRES_SYSCALL_CHECK([ionice],
2450 [UL_CHECK_SYSCALL([ioprio_get],
2461 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2464 UL_ENABLE_ALIAS([taskset], [schedutils])
2465 UL_BUILD_INIT([taskset])
2466 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2467 UL_REQUIRES_SYSCALL_CHECK([taskset],
2468 [UL_CHECK_SYSCALL([sched_getaffinity])],
2469 [sched_getaffinity])
2470 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2474 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2475 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2477 UL_ENABLE_ALIAS([chrt], [schedutils])
2478 UL_BUILD_INIT([chrt])
2479 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2480 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2482 AS_IF([test "x$build_chrt" = xyes], [
2483 UL_CHECK_SYSCALL([sched_setattr])
2486 UL_ENABLE_ALIAS([uclampset], [schedutils])
2487 UL_BUILD_INIT([uclampset])
2488 UL_REQUIRES_SYSCALL_CHECK([uclampset],
2489 [UL_CHECK_SYSCALL([sched_setattr])], [sched_setattr])
2490 AM_CONDITIONAL([BUILD_UCLAMPSET], [test "x$build_uclampset" = xyes])
2493 AC_ARG_ENABLE([wall],
2494 AS_HELP_STRING([--disable-wall], [do not build wall]),
2495 [], [UL_DEFAULT_ENABLE([wall], [check])]
2497 UL_BUILD_INIT([wall])
2498 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2499 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2502 AC_ARG_ENABLE([write],
2503 AS_HELP_STRING([--enable-write], [build write]),
2504 [], [UL_DEFAULT_ENABLE([write], [no])]
2506 UL_BUILD_INIT([write])
2507 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2508 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2509 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2512 AC_ARG_WITH([btrfs],
2513 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2514 [], [with_btrfs=check]
2517 AS_IF([test "x$with_btrfs" != xno], [
2518 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2520 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2522 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2525 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2528 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2531 AC_ARG_WITH([systemd],
2532 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2533 [], [with_systemd=check]
2537 AS_IF([test "x$with_systemd" != xno], [
2538 # new version -- all libsystemd-* libs merged into libsystemd
2539 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2541 AS_IF([test "x$have_systemd" != "xyes"], [
2542 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2543 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2544 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2545 [have_systemd_journal=yes], [have_systemd_journal=no])
2546 AS_IF([test "x$have_systemd_daemon" = "xyes" && test "x$have_systemd_journal" = "xyes" ],[
2549 AS_CASE([$with_systemd:$have_systemd],
2551 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2553 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2554 AC_DEFINE([USE_SYSTEMD], [1], [Define if systemd support is wanted ])
2555 AC_CHECK_DECLS([sd_session_get_username], [], [], [#include <systemd/sd-login.h>])
2558 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2561 AC_ARG_WITH([systemdsystemunitdir],
2562 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2564 AS_IF([test "x$have_systemd" = xyes], [
2565 PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
2567 [with_systemdsystemunitdir=no])
2570 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2571 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2575 AC_ARG_WITH([smack],
2576 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2579 AS_IF([test "x$with_smack" = xyes], [
2580 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2583 AC_ARG_WITH([econf],
2584 AS_HELP_STRING([--without-econf], [do not use libeconf]),
2585 [], [with_econf=check]
2589 AS_IF([test "x$with_econf" != xno], [
2590 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
2591 AS_CASE([$with_econf:$have_econf],
2593 [AC_MSG_ERROR([libeconf expected but libeconf not found])],
2595 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
2598 AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
2600 AC_ARG_WITH([vendordir],
2601 AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
2604 AC_SUBST([vendordir], [$with_vendordir])
2605 AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
2606 AS_IF([test "x$with_vendordir" != x], [
2607 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
2611 AC_ARG_ENABLE([bash-completion],
2612 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2613 [], [enable_bash_completion=yes]
2616 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2618 AC_ARG_WITH([bashcompletiondir],
2619 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2621 AS_IF([test "x$enable_bash_completion" = xyes], [
2622 PKG_CHECK_VAR([with_bashcompletiondir], [bash-completion], [completionsdir],
2624 [with_bashcompletiondir=${datadir}/bash-completion/completions])
2627 AS_IF([test "x$enable_bash_completion" = xyes], [
2628 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2632 AC_ARG_WITH([python],
2633 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2634 [], [with_python=check withval=check]
2639 AS_IF([test "x$with_python" != xno], [
2640 # We follow distributions default and look for PKG module name "python"
2641 # (minimal version is 2) but if major version is explicitly specified by
2642 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2644 AS_IF([test "x$withval" != xno && test "x$withval" != xyes && test "x$withval" != xcheck],
2645 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2647 # check for python interpreter
2648 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2649 AS_CASE([$with_python:$have_python],
2651 [AC_MSG_ERROR([python selected but python interpreter not found])],
2653 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2655 # check for python development stuff
2657 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], [have_libpython=yes], [have_libpython=no])
2659 # https://github.com/util-linux/util-linux/issues/2366
2660 AX_COMPARE_VERSION([$PYTHON_VERSION], [ge], [3.12], [
2661 UL_WARN_ADD([-Wno-error=redundant-decls], [PYTHON_CFLAGS])
2668 AC_ARG_ENABLE([pylibmount],
2669 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2670 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2672 UL_BUILD_INIT([pylibmount])
2673 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2674 UL_REQUIRES_BUILD([pylibmount], [libmount])
2675 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2677 # We need to introduce a verbatim dependency into the Makefile, without automake
2678 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2679 verbatim_pylibmount_dependency='
2681 # pylibmountexec module must be installed after usrlib_exec libraries,
2682 # otherwise the libtool relink step will fail to find libmount.la and
2683 # will try -lmount which is possibly not available.
2684 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2687 AC_SUBST([verbatim_pylibmount_dependency])
2688 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2690 AC_ARG_ENABLE([pg-bell],
2691 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2692 [], [enable_pg_bell=yes]
2695 AS_IF([test "x$enable_pg_bell" = xyes], [
2696 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2700 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2701 AC_ARG_ENABLE([fs-paths-default],
2702 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2703 [AS_CASE([$enableval],
2704 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2705 [no], [fs_paths_defaults=""],
2706 [fs_paths_defaults="$enableval"]
2708 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2710 AC_ARG_ENABLE([fs-paths-extra],
2711 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2712 [AS_CASE([$enableval],
2713 [yes|no], [fs_paths_extra=""],
2714 [fs_paths_extra="$enableval"]
2718 fs_paths="$fs_paths_defaults"
2719 AS_IF([test "x$fs_paths_extra" != "x"], [
2720 AS_IF([test "x$fs_paths" != "x"], [
2721 fs_paths="${fs_paths}:"
2723 fs_paths="${fs_paths}${fs_paths_extra}"
2725 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2728 AC_ARG_ENABLE([use-tty-group],
2729 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2730 [], [enable_use_tty_group=yes]
2732 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2734 AS_IF([test "x$enable_use_tty_group" = xyes], [
2735 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2739 AC_ARG_ENABLE([sulogin-emergency-mount],
2740 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2741 [use emergency mount of /dev and /proc for sulogin]),
2742 [], [enable_sulogin_emergency_mount=no]
2745 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2746 AS_IF([test "x$linux_os" = xyes], [ ],
2747 [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
2748 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2749 [Should sulogin use an emergency mount of /dev and /proc?])
2753 AC_ARG_ENABLE([usrdir-path],
2754 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2755 [], [enable_usrdir_path=no]
2758 AS_IF([test "x$enable_usrdir_path" = xyes], [
2759 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2763 AC_ARG_ENABLE([makeinstall-chown],
2764 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2765 [], [enable_makeinstall_chown=yes]
2767 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2770 AC_ARG_ENABLE([makeinstall-setuid],
2771 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2772 [], [enable_makeinstall_setuid=yes]
2774 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2777 AC_ARG_ENABLE([colors-default],
2778 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2779 [], [enable_colors_default=yes]
2781 AS_IF([test "x$enable_colors_default" = xyes], [
2782 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2786 AC_ARG_WITH([cryptsetup],
2787 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2788 [], [with_cryptsetup=no]
2791 AS_IF([test "x$with_cryptsetup" = xno], [
2792 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2793 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2795 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2796 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2797 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2798 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
2799 SAVE_CFLAGS="$CFLAGS"
2800 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2802 LIBS="$CRYPTSETUP_LIBS $LIBS"
2803 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
2804 AC_DEFINE_UNQUOTED([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
2806 AS_IF([test "x$with_cryptsetup" = xdlopen], [
2808 AC_CHECK_LIB([dl], [dlsym], [
2809 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen])
2810 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true])
2811 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])])
2813 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2815 CFLAGS="$SAVE_CFLAGS"
2817 have_cryptsetup=yes],
2819 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2820 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2823 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2824 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2827 AC_SUBST([CRYPTSETUP_LIBS])
2828 AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2831 AC_ARG_VAR([SUID_CFLAGS],
2832 [CFLAGS used for binaries which are usually with the suid bit])
2833 AC_ARG_VAR([SUID_LDFLAGS],
2834 [LDFLAGS used for binaries which are usually with the suid bit])
2836 AC_ARG_VAR([DAEMON_CFLAGS],
2837 [CFLAGS used for binaries which are usually executed as daemons])
2838 AC_ARG_VAR([DAEMON_LDFLAGS],
2839 [LDFLAGS used for binaries which are usually executed as daemons])
2841 AC_ARG_VAR([SOLIB_CFLAGS],
2842 [CFLAGS used for shared libraries])
2843 AC_ARG_VAR([SOLIB_LDFLAGS],
2844 [LDFLAGS used for shared libraries])
2846 AC_ARG_VAR([ADJTIME_PATH],
2847 [Path to hwclock adjtime file, default /etc/adjtime])
2848 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2849 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2851 if test "x${build_alias}" != "x${host_alias}"; then
2852 AC_MSG_NOTICE([setting link_all_deplibs=unknown for libtool])
2853 # work around Debian patch to libtool breaking cross-compiles
2854 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737
2855 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726
2856 link_all_deplibs=unknown
2863 AC_CONFIG_HEADERS([config.h])
2866 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2871 libblkid/docs/Makefile
2872 libblkid/docs/version.xml
2873 libblkid/src/blkid.h
2874 libfdisk/docs/Makefile
2875 libfdisk/docs/version.xml
2876 libfdisk/src/libfdisk.h
2877 libmount/docs/Makefile
2878 libmount/docs/version.xml
2879 libmount/src/libmount.h
2880 libsmartcols/docs/Makefile
2881 libsmartcols/docs/version.xml
2882 libsmartcols/src/libsmartcols.h
2890 ${PACKAGE} ${VERSION}
2893 exec prefix: ${exec_prefix}
2898 usrbin_execdir: ${usrbin_execdir}
2899 usrsbin_execdir: ${usrsbin_execdir}
2900 usrlib_execdir: ${usrlib_execdir}
2902 localstatedir: ${localstatedir}
2903 runstatedir: ${runstatedir}
2904 includedir: ${includedir}
2905 sysconfdir: ${sysconfdir}
2906 sysconfstaticdir: ${sysconfstaticdir}
2908 vendordir: ${with_vendordir}
2911 Python version: ${PYTHON_VERSION}
2912 Python libs: ${pyexecdir}
2914 Bash completions: ${with_bashcompletiondir}
2915 Systemd support: ${have_systemd}
2916 Systemd unitdir: ${with_systemdsystemunitdir}
2917 libeconf support: ${have_econf}
2918 Btrfs support: ${have_btrfs}
2919 Wide-char support: ${build_widechar}
2920 libcryptsetup support: ${have_cryptsetup}
2922 Manual pages: ${build_asciidoc}
2923 Manual pages translated: ${build_poman}
2925 compiler: ${CC} / ${CXX}
2926 suid cflags: ${SUID_CFLAGS}
2928 suid ldflags: ${SUID_LDFLAGS}
2929 ASAN enabled: ${enable_asan}
2930 Fuzzing enabled: ${enable_fuzzing_engine}
2931 Coverage enabled ${enable_coverage}
2939 Type 'make' or 'make <utilname>' to compile.