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])
161 AC_ARG_ENABLE([werror],
162 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
163 [], [enable_werror=no]
165 AS_IF([test "x$enable_werror" = xyes], [
166 UL_WARN_ADD([-Werror])
168 UL_WARN_ADD([-Werror=sequence-point])
171 AC_SUBST([WARN_CFLAGS])
174 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
175 AC_SUBST([BSD_WARN_CFLAGS])
177 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
178 AC_SUBST([PYTHON_WARN_CFLAGS])
180 UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
181 AC_SUBST([NO_UNUSED_WARN_CFLAGS])
184 AC_ARG_ENABLE([asan],
185 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
188 AS_IF([test "x$enable_asan" = xyes], [
189 UL_WARN_ADD([-fsanitize=address])
190 ASAN_LDFLAGS="-fsanitize=address"
192 AC_SUBST([ASAN_LDFLAGS])
194 AC_ARG_ENABLE([ubsan],
195 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
196 [], [enable_ubsan=no]
198 AS_IF([test "x$enable_ubsan" = xyes], [
199 UL_WARN_ADD([-fsanitize=undefined])
200 UBSAN_LDFLAGS="-fsanitize=undefined"
202 AC_SUBST([UBSAN_LDFLAGS])
204 AC_ARG_ENABLE([fuzzing-engine],
205 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
206 [], [enable_fuzzing_engine=no]
208 AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
209 UL_WARN_ADD([-fno-omit-frame-pointer])
210 UL_WARN_ADD([-gline-tables-only])
211 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
212 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
214 AC_SUBST([FUZZING_ENGINE_LDFLAGS])
216 AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
217 AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
219 AC_ARG_ENABLE([coverage],
220 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
221 [], [enable_coverage=no]
223 AS_IF([test "x$enable_coverage" = xyes], [
224 UL_WARN_ADD([--coverage])
225 COVERAGE_LDFLAGS="--coverage"
227 AC_SUBST([COVERAGE_LDFLAGS])
228 AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
233 dnl check supported linker flags
236 m4_ifndef([PKG_PROG_PKG_CONFIG],
237 [m4_fatal([Could not locate the pkg-config autoconf
238 macros. These are usually located in /usr/share/aclocal/pkg.m4.
239 If your macros are in a different location, try setting the
240 environment variable AL_OPTS="-I/other/macro/dir" before running
241 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
243 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
245 GTK_DOC_CHECK([1.10])
246 AC_PATH_PROG([XSLTPROC], [xsltproc])
251 AS_CASE([${host_os}],
258 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
259 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
260 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
262 AS_IF([test "x$darwin_os" = xyes], [
263 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
266 dnl define ARCH_<NAME> conditionals
267 UL_SET_ARCH([I86], [i?86-*])
268 UL_SET_ARCH([86_64], [x86_64*])
269 UL_SET_ARCH([IA64], [ia64*])
270 UL_SET_ARCH([S390], [s390*])
271 UL_SET_ARCH([SPARC], [sparc*])
272 UL_SET_ARCH([PPC], [ppc*|powerpc*])
273 UL_SET_ARCH([M68K], [m68*])
274 UL_SET_ARCH([MIPS], [mips*])
275 UL_SET_ARCH([HPPA], [hppa*|parisc*])
281 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
282 AM_GNU_GETTEXT_VERSION([0.18.3])
283 AM_GNU_GETTEXT([external])
285 AS_IF([test -d "$srcdir/po"], [
286 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
287 ], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
289 af am ar as be bg bn bn_IN ca
290 cs cy da de el en_GB es et eu_ES
291 fa fi fr gl gu he hi hr hu
292 hy id is it ja ka kn ko ku
293 lo lt lv mk ml mr ms my nb
294 nl nn no nso or pa pl pt pt_BR
295 ro ru si sk sl sq sr sr@Latn sv
296 ta te th tr uk ur vi zh_CN zh_TW
300 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
301 #ifdef HAVE_LINUX_COMPILER_H
302 #include <linux/compiler.h>
306 asm-generic/fcntl.h \
326 linux/net_namespace.h \
342 security/pam_appl.h \
382 # There is a collision in old kernel-headers. The both files mount.h and fs.h
383 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
385 AC_CHECK_HEADERS([linux/fs.h ], [], [],
386 [#ifdef HAVE_SYS_MOUNT_H
387 # include <linux/fs.h>
388 # include <sys/mount.h>
392 AC_CHECK_HEADERS([linux/mount.h ], [], [],
393 [#ifdef HAVE_LINUX_MOUNT_H
394 # include <linux/mount.h>
398 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
399 [#ifdef LINUX_GSMMUX_H
400 # include <linux/gsmmux.h>
404 AC_CHECK_HEADERS([security/pam_misc.h],
405 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
406 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
407 #ifdef HAVE_SECURITY_PAM_APPL_H
408 #include <security/pam_appl.h>
412 AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
413 #include <linux/blkzoned.h>
416 AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
417 #include <linux/pr.h>
420 AC_CHECK_HEADERS([security/openpam.h], [], [], [
421 #ifdef HAVE_SECURITY_PAM_APPL_H
422 #include <security/pam_appl.h>
426 AC_CHECK_HEADERS([langinfo.h],
427 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
428 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
430 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
431 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
432 #include <langinfo.h>
435 str = nl_langinfo (ALTMON_1);
436 str = nl_langinfo (ALTMON_2);
437 str = nl_langinfo (ALTMON_3);
438 str = nl_langinfo (ALTMON_4);
439 str = nl_langinfo (ALTMON_5);
440 str = nl_langinfo (ALTMON_6);
441 str = nl_langinfo (ALTMON_7);
442 str = nl_langinfo (ALTMON_8);
443 str = nl_langinfo (ALTMON_9);
444 str = nl_langinfo (ALTMON_10);
445 str = nl_langinfo (ALTMON_11);
446 str = nl_langinfo (ALTMON_12);
449 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
450 [Define if langinfo.h defines ALTMON_x constants])
456 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
457 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
458 #include <langinfo.h>
461 str = nl_langinfo (_NL_ABALTMON_1);
462 str = nl_langinfo (_NL_ABALTMON_2);
463 str = nl_langinfo (_NL_ABALTMON_3);
464 str = nl_langinfo (_NL_ABALTMON_4);
465 str = nl_langinfo (_NL_ABALTMON_5);
466 str = nl_langinfo (_NL_ABALTMON_6);
467 str = nl_langinfo (_NL_ABALTMON_7);
468 str = nl_langinfo (_NL_ABALTMON_8);
469 str = nl_langinfo (_NL_ABALTMON_9);
470 str = nl_langinfo (_NL_ABALTMON_10);
471 str = nl_langinfo (_NL_ABALTMON_11);
472 str = nl_langinfo (_NL_ABALTMON_12);
475 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
476 [Define if langinfo.h defines _NL_ABALTMON_x constants])
482 dnl Convert some ac_cv_header_* variables to have_*
484 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
485 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
486 have_linux_capability_h=$ac_cv_header_linux_capability_h
487 have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
488 have_linux_mount_h=$ac_cv_header_linux_mount_h
489 have_linux_pr_h=$ac_cv_header_linux_pr_h
490 have_linux_raw_h=$ac_cv_header_linux_raw_h
491 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
492 have_linux_version_h=$ac_cv_header_linux_version_h
493 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
494 have_pty_h=$ac_cv_header_pty_h
495 have_security_openpam_h=$ac_cv_header_security_openpam_h
496 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
497 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
498 have_shadow_h=$ac_cv_header_shadow_h
499 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
500 have_utmpx_h=$ac_cv_header_utmpx_h
501 have_mntent_h=$ac_cv_header_mntent_h
503 AS_CASE([$linux_os:$have_linux_version_h],
505 [AC_MSG_ERROR([kernel headers required on Linux])]
508 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
513 struct tm *tm = localtime(0);
514 if (a == -1) /* false */
515 sleep(tm->tm_gmtoff);
517 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
520 AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
521 AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
523 AC_CHECK_MEMBERS([struct termios.c_line],,,
524 [[#include <termios.h>]])
526 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
527 [[#include <sys/stat.h>]])
529 AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
530 AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
531 [[#include <sys/stat.h>]])
533 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
535 AC_CHECK_DECL([environ],
536 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
537 [Define to 1 if have **environ prototype])],
540 AC_CHECK_DECL([strsignal],
541 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
542 [Define to 1 if have strsignal function prototype])],
545 AC_CHECK_DECL([TIOCGLCKTRMIOS],
546 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
547 [#include <sys/ioctl.h>])
548 AC_CHECK_DECL([SOCK_CLOEXEC],
549 [have_sock_cloexec=yes], [have_sock_cloexec=no],
550 [#include <sys/types.h>
551 #include <sys/socket.h>])
552 AC_CHECK_DECL([SOCK_NONBLOCK],
553 [have_sock_nonblock=yes], [have_sock_nonblock=no],
554 [#include <sys/types.h>
555 #include <sys/socket.h>])
556 AC_CHECK_DECL([SO_PASSCRED],
557 [have_so_passcred=yes], [have_so_passcred=no],
558 [#include <sys/types.h>
559 #include <sys/socket.h>])
635 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
636 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
637 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
638 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
639 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
640 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
641 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
642 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
644 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
646 have_setns_syscall="yes"
647 UL_CHECK_SYSCALL([setns])
648 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
649 have_setns_syscall="no"
652 UL_CHECK_SYSCALL([pidfd_open])
653 UL_CHECK_SYSCALL([pidfd_send_signal])
654 UL_CHECK_SYSCALL([close_range])
656 UL_CHECK_SYSCALL([fsconfig])
657 UL_CHECK_SYSCALL([fsmount])
658 UL_CHECK_SYSCALL([fsopen])
659 UL_CHECK_SYSCALL([fspick])
660 UL_CHECK_SYSCALL([mount_setattr])
661 UL_CHECK_SYSCALL([move_mount])
662 UL_CHECK_SYSCALL([open_tree])
664 AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
665 test "x$ul_cv_syscall_fsmount" = xno ||
666 test "x$ul_cv_syscall_fsopen" = xno ||
667 test "x$ul_cv_syscall_fspick" = xno ||
668 test "x$ul_cv_syscall_mount_setattr" = xno ||
669 test "x$ul_cv_syscall_move_mount" = xno ||
670 test "x$ul_cv_syscall_open_tree" = xno],
672 have_mountfd_api="no"
674 have_mountfd_api="yes"
675 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
679 AC_CHECK_FUNCS([isnan], [],
680 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
681 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
683 AC_SUBST([MATH_LIBS])
686 dnl lib/mononotic.c may require -lrt
687 AC_CHECK_FUNCS([clock_gettime], [],
688 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
692 AC_CHECK_FUNCS([timer_create],
694 [AC_CHECK_LIB([rt], [timer_create], [
697 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
699 AC_SEARCH_LIBS([timer_create], [rt], [
702 REALTIME_LIBS="-lrt -lpthread"
703 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
709 AC_SUBST([REALTIME_LIBS])
711 AS_IF([test x"$have_timer" = xno], [
712 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
716 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
718 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
720 AC_SUBST([RTAS_LIBS])
723 AC_CHECK_MEMBER([struct sockaddr.sa_len],
724 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
725 [#include <sys/types.h>
726 #include <sys/socket.h>])
729 AC_SEARCH_LIBS([socket], [socket],
730 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
731 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
733 AC_SUBST([SOCKET_LIBS])
737 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
738 AS_IF([test x"$have_dirfd" = xno], [
739 AC_CHECK_DECLS([dirfd],
740 [have_dirfd=yes], [have_dirfd=no],
741 [#include <sys/types.h>
742 #include <dirent.h>])
746 AS_IF([test x"$have_dirfd" = xno], [
747 AC_CHECK_MEMBERS([DIR.dd_fd],
748 [have_ddfd=yes], [have_ddfd=no],
749 [#include <sys/types.h>
750 #include <dirent.h>])
753 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
756 AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
759 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
760 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
763 program_invocation_short_name = "test";
766 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
767 [Define if program_invocation_short_name is defined])
773 AC_MSG_CHECKING([whether __progname is defined])
774 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
775 [if (*__progname == 0) return 1;])],
776 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
777 AC_MSG_RESULT([yes]),
780 AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
781 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
782 [Define to 1 if OPAL status ioctl is defined])],,
783 [#include <linux/sed-opal.h>])
785 dnl Static compilation
786 m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare])
788 AC_ARG_ENABLE([static-programs],
789 [AS_HELP_STRING([--enable-static-programs=LIST],
790 [link static the programs in LIST (comma-separated,
791 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
793 AS_CASE([$enable_static_programs],
795 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
797 [enable_static_programs=]
800 dnl Set all the individual AM_CONDITIONALs
801 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
802 AS_CASE([,$enable_static_programs,],
803 [*,UL_PRG,*], [static_[]UL_PRG=yes]
805 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
806 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
807 [test "x$static_[]UL_PRG" = xyes])
811 AC_ARG_ENABLE([all-programs],
812 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
813 [], [enable_all_programs=undefined]
816 AS_CASE([$enable_all_programs],
817 [yes], [AC_MSG_WARN([force to build all programs by default])
818 ul_default_estate=check],
819 [no], [AC_MSG_WARN([disable all programs and man pages by default])
820 ul_default_estate=no]
824 AC_ARG_ENABLE([asciidoc],
825 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
826 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
828 UL_BUILD_INIT([asciidoc])
829 UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
830 AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
831 have_asciidoctor_failure_level=no
832 AS_IF([test "x$build_asciidoc" = xyes], [
833 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
834 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
836 have_asciidoctor_failure_level=yes
841 AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
844 AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
845 AC_MSG_NOTICE([re-use already generated man-pages.])
848 AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
851 AC_ARG_ENABLE([poman],
852 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
853 [], [UL_DEFAULT_ENABLE([poman], [check])]
855 UL_BUILD_INIT([poman])
856 UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
857 AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
863 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
866 AS_IF([test "x$with_util" = xno], [
867 AM_CONDITIONAL([HAVE_UTIL], [false])
870 UL_CHECK_LIB([util], [openpty])
873 AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
874 AM_CONDITIONAL([HAVE_PTY], [true])
875 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
878 AM_CONDITIONAL([HAVE_PTY], [false])
881 AC_CHECK_TYPES([union semun], [], [], [[
884 AC_CHECK_TYPES([loff_t])
887 AC_ARG_ENABLE([widechar],
888 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
889 [], [enable_widechar=check]
891 UL_BUILD_INIT([widechar])
892 UL_REQUIRES_COMPILE([widechar], [[
901 if (w == WEOF) exit(1);
907 AS_IF([test "x$build_widechar" = xyes ], [
908 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
912 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
916 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
918 AC_CHECK_TYPES([sighandler_t], [], [], [[
922 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
926 # on Solaris, you can't mix and match standards, since we use c99
927 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
928 # check for crypt.h and use that without XOPEN_SOURCE.
930 AC_CHECK_HEADERS([crypt.h])
931 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
935 #define _XOPEN_SOURCE
939 char *c = crypt("abc","pw");
944 UL_SET_LIBS([-lcrypt])
945 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
949 #define _XOPEN_SOURCE
953 char *c = crypt("abc","pw");
958 AC_MSG_WARN([crypt() is not available])
962 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
965 AC_ARG_WITH([selinux],
966 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
967 [], [with_selinux=no]
970 AS_IF([test "x$with_selinux" = xno], [
971 AM_CONDITIONAL([HAVE_SELINUX], [false])
973 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
974 AS_CASE([$with_selinux:$have_selinux],
975 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
977 AS_IF([test "x$have_selinux" = xyes], [
978 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
979 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
980 AM_CONDITIONAL([HAVE_SELINUX], [true])
982 UL_SET_LIBS([$SELINUX_LIBS])
983 # This function is missing in old libselinux 1.xx versions
984 AC_CHECK_FUNCS([security_get_initial_context])
988 AC_SUBST([SELINUX_LIBS])
989 AC_SUBST([SELINUX_LIBS_STATIC])
993 AS_HELP_STRING([--with-audit], [compile with audit support]),
997 AS_IF([test "x$with_audit" = xno], [
998 AM_CONDITIONAL([HAVE_AUDIT], [false])
1000 UL_CHECK_LIB([audit], [audit_log_user_message])
1001 AS_CASE([$with_audit:$have_audit],
1003 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1007 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
1008 [], [with_udev=auto]
1011 AS_IF([test "x$with_udev" = xno], [
1012 AM_CONDITIONAL([HAVE_UDEV], [false])
1014 UL_CHECK_LIB([udev], [udev_new])
1015 AS_CASE([$with_udev:$have_udev],
1017 [AC_MSG_ERROR([udev selected but libudev not found])]
1022 dnl wide-char ncurses
1023 AC_ARG_WITH([ncursesw],
1024 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
1025 [], [with_ncursesw=auto]
1028 have_ncursesw_header=no
1029 AS_IF([test "x$with_ncursesw" != xno], [
1030 UL_NCURSES_CHECK([ncursesw])
1031 AS_IF([test "x$have_ncursesw" = xyes], [
1032 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1033 AC_CHECK_HEADERS([ncursesw/term.h])
1035 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1036 # unsuccessful to avoid too many *_H permitations in config.h
1037 AS_IF([test "x$have_ncursesw_header" = xno], [
1038 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1039 AC_CHECK_HEADERS([term.h])
1041 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1043 AS_IF([test "x$have_ncursesw" = xyes], [
1044 CURSES_LIB_NAME="ncursesw"
1045 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
1048 AS_CASE([$with_ncursesw:$have_ncursesw],
1049 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
1052 dnl non-wide ncurses
1053 AC_ARG_WITH([ncurses],
1054 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
1055 [], [with_ncurses=auto]
1058 have_ncurses_header=no
1059 AS_CASE([$with_ncurses:$build_widechar],
1060 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1062 AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
1063 UL_NCURSES_CHECK([ncurses])
1064 AS_IF([test "x$have_ncurses" = xyes], [
1065 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1066 AC_CHECK_HEADERS([ncurses/term.h])
1068 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1069 # unsuccessful to avoid too many *_H permitations in config.h
1070 AS_IF([test "x$have_ncurses_header" = xno], [
1071 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1072 AC_CHECK_HEADERS([term.h])
1074 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1076 AS_IF([test "x$have_ncurses" = xyes], [
1077 CURSES_LIB_NAME="ncurses"
1078 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
1081 AS_CASE([$with_ncurses:$have_ncurses],
1082 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1084 AC_SUBST([NCURSES_CFLAGS])
1085 AC_SUBST([NCURSES_LIBS])
1086 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
1089 AC_ARG_WITH([slang],
1090 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
1094 AS_IF([test "x$with_slang" = xyes], [
1095 AC_CHECK_HEADERS([slang.h slang/slang.h])
1096 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
1097 [have_slang=yes], [], [
1100 #elif defined(HAVE_SLANG_SLANG_H)
1101 #include <slang/slang.h>
1104 AS_IF([test "x$have_slang" = xno], [
1105 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1106 [CURSES_LIB_NAME=slang
1109 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1112 AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
1113 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1114 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1115 [Define if curses library has the use_default_colors().])
1117 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1118 AC_DEFINE(HAVE_RESIZETERM, 1,
1119 [Define if curses library has the resizeterm().])
1124 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1125 [], [with_tinfo=auto]
1129 AS_IF([test "x$with_tinfo" != xno], [
1130 AS_IF([test "x$have_ncursesw" = xyes], [
1131 UL_TINFO_CHECK([tinfow])
1133 AS_IF([test "x$have_tinfow" = xno], [
1134 UL_TINFO_CHECK([tinfo])
1137 AC_SUBST([TINFO_LIBS])
1138 AC_SUBST([TINFO_LIBS_STATIC])
1139 AC_SUBST([TINFO_CFLAGS])
1140 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1141 AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
1142 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1146 AC_ARG_WITH([readline],
1147 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1148 [], [with_readline=auto]
1151 AS_IF([test "x$with_readline" = xno], [
1152 AM_CONDITIONAL([HAVE_READLINE], [false])
1154 UL_CHECK_LIB([readline], [readline])
1155 AS_CASE([$with_readline:$have_readline],
1157 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1159 [READLINE_LIBS="-lreadline"
1160 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1163 AC_SUBST([READLINE_LIBS])
1164 AC_SUBST([READLINE_LIBS_STATIC])
1167 AC_ARG_WITH([utempter],
1168 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1169 [], [with_utempter=no]
1172 AS_IF([test "x$with_utempter" = xyes], [
1173 UL_CHECK_LIB([utempter], [utempter_add_record])
1174 AS_IF([test "x$have_utempter" = xno], [
1175 AC_MSG_ERROR([utempter selected but libutempter not found])
1178 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1185 AC_ARG_ENABLE([libuuid],
1186 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1187 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1189 UL_BUILD_INIT([libuuid])
1190 AC_SUBST([LIBUUID_VERSION])
1191 AC_SUBST([LIBUUID_VERSION_INFO])
1192 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1194 AC_ARG_ENABLE([libuuid-force-uuidd],
1195 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1196 [], [enable_libuuid_force_uuidd=no]
1199 AS_IF([test "x$build_libuuid" = xyes], [
1200 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1206 AC_ARG_ENABLE([libblkid],
1207 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1208 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1210 UL_BUILD_INIT([libblkid])
1211 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1212 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1213 AC_SUBST([LIBBLKID_DATE])
1214 AC_SUBST([LIBBLKID_VERSION])
1215 AC_SUBST([LIBBLKID_VERSION_INFO])
1216 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1217 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1218 AS_IF([test "x$build_libblkid" = xyes], [
1219 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1221 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1222 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
1227 AC_ARG_ENABLE([libmount],
1228 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1229 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1231 UL_BUILD_INIT([libmount])
1232 UL_REQUIRES_BUILD([libmount], [libblkid])
1233 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1234 UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
1235 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1236 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
1237 AS_IF([test "x$build_libmount" = xyes], [
1238 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1239 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1240 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1242 AC_MSG_WARN([libmount will be compiled without namespaces support])
1246 AC_SUBST([LIBMOUNT_VERSION])
1247 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1248 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1249 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1250 AC_SUBST([LIBMOUNT_VERSION_INFO])
1251 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1253 AC_ARG_ENABLE([libmount-mountfd-support],
1254 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1255 [], [enable_libmount_mountfd_support=check]
1257 UL_BUILD_INIT([libmount_mountfd_support])
1258 UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1259 UL_REQUIRES_LINUX([libmount_mountfd_support])
1260 UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
1261 UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
1262 AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1263 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1270 AC_ARG_ENABLE([libsmartcols],
1271 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1272 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1274 UL_BUILD_INIT([libsmartcols])
1275 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1277 AC_SUBST([LIBSMARTCOLS_VERSION])
1278 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1279 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1285 AC_ARG_ENABLE([libfdisk],
1286 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1287 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1289 UL_BUILD_INIT([libfdisk])
1290 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1291 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1292 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
1294 AS_IF([test "x$build_libblkid" = xyes],
1295 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1296 AC_SUBST([LIBFDISK_PC_REQUIRES])
1298 AC_SUBST([LIBFDISK_VERSION])
1299 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1300 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1301 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1302 AC_SUBST([LIBFDISK_VERSION_INFO])
1303 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1306 AC_ARG_ENABLE([fdisks],
1307 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1308 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1310 enable_fdisk=$enable_fdisks
1311 enable_sfdisk=$enable_fdisks
1312 enable_cfdisk=$enable_fdisks
1314 UL_BUILD_INIT([fdisk])
1315 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1316 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1317 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1318 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1319 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1322 UL_BUILD_INIT([sfdisk])
1323 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1324 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1325 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1326 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1327 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1330 UL_BUILD_INIT([cfdisk])
1331 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1332 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1333 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1334 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1335 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1338 AC_ARG_ENABLE([mount],
1339 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1340 [], [UL_DEFAULT_ENABLE([mount], [check])]
1342 UL_BUILD_INIT([mount])
1343 UL_REQUIRES_LINUX([mount])
1344 UL_REQUIRES_BUILD([mount], [libmount])
1345 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1348 AC_ARG_ENABLE([losetup],
1349 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1350 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1352 UL_BUILD_INIT([losetup])
1353 UL_REQUIRES_LINUX([losetup])
1354 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1355 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1357 AC_ARG_ENABLE([zramctl],
1358 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1359 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1361 UL_BUILD_INIT([zramctl])
1362 UL_REQUIRES_LINUX([zramctl])
1363 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1364 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1366 AC_ARG_ENABLE([fsck],
1367 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1368 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1370 UL_BUILD_INIT([fsck])
1371 UL_REQUIRES_BUILD([fsck], [libmount])
1372 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1375 AC_ARG_ENABLE([partx],
1376 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1377 [], [UL_DEFAULT_ENABLE([partx], [check])]
1379 UL_BUILD_INIT([partx])
1380 UL_REQUIRES_LINUX([partx])
1381 UL_REQUIRES_BUILD([partx], [libblkid])
1382 UL_REQUIRES_BUILD([partx], [libsmartcols])
1383 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1386 AC_ARG_ENABLE([uuidd],
1387 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1388 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1390 UL_BUILD_INIT([uuidd])
1391 UL_REQUIRES_BUILD([uuidd], [libuuid])
1392 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1393 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1394 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1395 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1397 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1400 AC_ARG_ENABLE([uuidgen],
1401 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1402 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1404 UL_BUILD_INIT([uuidgen])
1405 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1406 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1408 UL_BUILD_INIT([uuidparse], [check])
1409 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1410 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1411 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1413 AC_ARG_ENABLE([blkid],
1414 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1415 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1417 UL_BUILD_INIT([blkid])
1418 UL_REQUIRES_BUILD([blkid], [libblkid])
1419 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1421 UL_BUILD_INIT([findfs], [check])
1422 UL_REQUIRES_BUILD([findfs], [libblkid])
1423 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1425 AC_ARG_ENABLE([wipefs],
1426 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1427 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1429 UL_BUILD_INIT([wipefs])
1430 UL_REQUIRES_BUILD([wipefs], [libblkid])
1431 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1432 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1434 UL_BUILD_INIT([findmnt], [check])
1435 UL_REQUIRES_BUILD([findmnt], [libmount])
1436 UL_REQUIRES_BUILD([findmnt], [libblkid])
1437 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1438 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1441 AC_ARG_ENABLE([mountpoint],
1442 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1443 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1445 UL_BUILD_INIT([mountpoint])
1446 UL_REQUIRES_BUILD([mountpoint], [libmount])
1447 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1450 AC_ARG_ENABLE([fallocate],
1451 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1452 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1454 UL_BUILD_INIT([fallocate])
1455 UL_REQUIRES_LINUX([fallocate])
1456 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1457 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1459 AS_IF([test "x$build_fallocate" = xyes], [
1460 dnl check for valid fallocate() function
1461 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1462 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1463 dnl and program can't be linked.
1464 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1465 dnl function prototype.
1466 AC_MSG_CHECKING([for valid fallocate() function])
1467 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1468 #ifdef HAVE_UNISTD_H
1469 # include <unistd.h>
1471 #ifdef HAVE_SYS_TYPES_H
1472 # include <sys/types.h>
1474 #ifdef HAVE_LINUX_FALLOC_H
1475 # include <linux/falloc.h>
1482 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1487 AC_MSG_RESULT([yes])
1488 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1489 AC_MSG_RESULT([no])])
1492 AS_IF([test "x$build_fallocate" = xyes], [
1493 dnl check for valid posix_fallocate() function
1494 AC_MSG_CHECKING([for valid posix_fallocate() function])
1495 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1496 #ifdef HAVE_UNISTD_H
1497 # include <unistd.h>
1499 #ifdef HAVE_SYS_TYPES_H
1500 # include <sys/types.h>
1502 #ifdef HAVE_LINUX_FALLOC_H
1503 # include <linux/falloc.h>
1510 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1515 AC_MSG_RESULT([yes])
1516 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1517 AC_MSG_RESULT([no])])
1521 AC_ARG_ENABLE([unshare],
1522 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1523 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1525 UL_BUILD_INIT([unshare])
1526 UL_REQUIRES_LINUX([unshare])
1527 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1528 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1529 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1531 AC_MSG_CHECKING([for valid unshare() function])
1532 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1541 AC_MSG_RESULT([yes])
1542 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1548 AC_ARG_ENABLE([nsenter],
1549 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1550 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1552 UL_BUILD_INIT([nsenter])
1553 UL_REQUIRES_LINUX([nsenter])
1554 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1555 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1557 AC_MSG_CHECKING([for valid setns() function])
1558 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1564 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1568 AC_MSG_RESULT([yes])
1569 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1575 AC_ARG_WITH([cap_ng],
1576 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1577 [], [with_cap_ng=auto]
1579 AS_IF([test "x$with_cap_ng" = xno], [
1580 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1583 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1587 AC_ARG_ENABLE([setpriv],
1588 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1589 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1591 UL_BUILD_INIT([setpriv])
1592 UL_REQUIRES_LINUX([setpriv])
1593 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1594 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1595 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1596 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1598 AC_ARG_ENABLE([hardlink],
1599 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1600 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1602 UL_BUILD_INIT([hardlink])
1603 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1606 AC_ARG_ENABLE([eject],
1607 AS_HELP_STRING([--disable-eject], [do not build eject]),
1608 [], [UL_DEFAULT_ENABLE([eject], [check])]
1610 UL_BUILD_INIT([eject])
1611 UL_REQUIRES_LINUX([eject])
1612 UL_REQUIRES_BUILD([eject], [libmount])
1613 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1616 AC_ARG_ENABLE([agetty],
1617 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1618 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1620 UL_BUILD_INIT([agetty])
1621 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1622 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1623 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1624 AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
1625 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1627 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1631 AC_ARG_ENABLE([plymouth_support],
1632 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]),
1633 [], [enable_plymouth_support=check]
1635 UL_BUILD_INIT([plymouth_support])
1636 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1637 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1638 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1639 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1640 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1641 AS_IF([test "x$build_plymouth_support" = xyes ], [
1642 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty])
1647 AS_HELP_STRING([--without-libz], [compile without libz]),
1648 [], [with_libz=auto]
1650 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1651 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1654 AC_ARG_WITH([libmagic],
1655 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1656 [], [with_libmagic=auto]
1658 AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1659 AC_CHECK_LIB([magic], [magic_open], [
1660 AC_CHECK_HEADER(magic.h, [
1661 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1662 MAGIC_LIBS="-lmagic"
1666 AC_SUBST([MAGIC_LIBS])
1669 AC_ARG_ENABLE([cramfs],
1670 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1671 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1673 UL_BUILD_INIT([cramfs])
1674 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1675 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1678 AC_ARG_ENABLE([bfs],
1679 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1680 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1682 UL_BUILD_INIT([bfs])
1683 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1686 AC_ARG_ENABLE([minix],
1687 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1688 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1690 UL_BUILD_INIT([minix])
1691 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1694 AC_ARG_ENABLE([fdformat],
1695 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1696 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
1698 UL_BUILD_INIT([fdformat])
1699 UL_REQUIRES_LINUX([fdformat])
1700 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1703 AC_ARG_ENABLE([hwclock],
1704 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1705 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1707 have_linuxdummy=$linux_os
1709 UL_BUILD_INIT([hwclock])
1710 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1711 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1713 AC_ARG_ENABLE([hwclock_cmos],
1714 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1715 [], [enable_hwclock_cmos=check]
1717 UL_BUILD_INIT([hwclock_cmos])
1718 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1719 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1720 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1721 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1722 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1725 AC_ARG_ENABLE([hwclock_gplv3],
1726 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1727 [], [enable_hwclock_gplv3=yes]
1729 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1730 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1731 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1735 AC_ARG_ENABLE([mkfs],
1736 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1737 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1739 UL_BUILD_INIT([mkfs])
1740 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1742 UL_BUILD_INIT([isosize], [yes])
1743 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1746 AC_ARG_ENABLE([fstrim],
1747 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1748 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1750 UL_BUILD_INIT([fstrim])
1751 UL_REQUIRES_LINUX([fstrim])
1752 UL_REQUIRES_BUILD([fstrim], [libmount])
1753 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1756 AC_ARG_ENABLE([swapon],
1757 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1758 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1760 UL_BUILD_INIT([swapon])
1761 UL_REQUIRES_LINUX([swapon])
1762 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1763 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1764 UL_REQUIRES_BUILD([swapon], [libblkid])
1765 UL_REQUIRES_BUILD([swapon], [libmount])
1766 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1767 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1768 AC_CHECK_FUNCS([swapon])
1769 AC_CHECK_FUNCS([swapoff])
1772 UL_BUILD_INIT([lsblk], [check])
1773 UL_REQUIRES_LINUX([lsblk])
1774 UL_REQUIRES_BUILD([lsblk], [libblkid])
1775 UL_REQUIRES_BUILD([lsblk], [libmount])
1776 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1777 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1780 AC_ARG_ENABLE([lscpu],
1781 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1782 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1784 UL_BUILD_INIT([lscpu])
1785 UL_REQUIRES_LINUX([lscpu])
1786 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1787 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1788 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1790 AC_ARG_ENABLE([lsfd],
1791 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1792 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1794 UL_BUILD_INIT([lsfd])
1795 UL_REQUIRES_LINUX([lsfd])
1796 UL_REQUIRES_BUILD([lsfd], [libsmartcols])
1797 UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file])
1798 AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
1800 AC_ARG_ENABLE([lslogins],
1801 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1802 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1804 UL_BUILD_INIT([lslogins])
1805 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1806 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1807 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1808 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1809 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1812 UL_BUILD_INIT([chcpu], [check])
1813 UL_REQUIRES_LINUX([chcpu])
1814 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1815 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1818 AC_ARG_ENABLE([wdctl],
1819 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1820 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1822 UL_BUILD_INIT([wdctl])
1823 UL_REQUIRES_LINUX([wdctl])
1824 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1825 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1826 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1829 UL_BUILD_INIT([swaplabel], [check])
1830 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1831 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1834 UL_BUILD_INIT([mkswap], [yes])
1835 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1836 AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
1837 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1841 AC_ARG_ENABLE([cal],
1842 AS_HELP_STRING([--disable-cal], [do not build cal]),
1843 [], [UL_DEFAULT_ENABLE([cal], [check])]
1845 UL_BUILD_INIT([cal])
1846 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1848 AC_ARG_ENABLE([logger],
1849 AS_HELP_STRING([--disable-logger], [do not build logger]),
1850 [], [UL_DEFAULT_ENABLE([logger], [check])]
1852 UL_BUILD_INIT([logger])
1853 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1855 UL_BUILD_INIT([look], [yes])
1856 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1858 UL_BUILD_INIT([mcookie], [yes])
1859 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1861 UL_BUILD_INIT([namei], [yes])
1862 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1864 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1865 if test "x$matriplet" != "x"; then
1866 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1867 ["Multi-arch triplet for whereis library search path"])
1869 AC_ARG_ENABLE([whereis],
1870 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1871 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1873 UL_BUILD_INIT([whereis])
1874 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1876 AC_ARG_ENABLE([pipesz],
1877 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
1878 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
1880 UL_BUILD_INIT([pipesz])
1881 UL_REQUIRES_LINUX([pipesz])
1882 AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1884 UL_BUILD_INIT([fadvise], [check])
1885 UL_REQUIRES_LINUX([fadvise])
1886 AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1888 AC_ARG_ENABLE([waitpid],
1889 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
1890 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
1892 UL_BUILD_INIT([waitpid])
1893 UL_REQUIRES_LINUX([waitpid])
1894 UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
1895 AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1897 UL_BUILD_INIT([enosys], [check])
1898 UL_REQUIRES_LINUX([enosys])
1899 AS_IF([test "x$build_enosys" = xyes], [
1900 AC_MSG_CHECKING([for valid audit arch])
1902 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1903 [AC_MSG_RESULT([yes])],
1904 [AC_MSG_RESULT([no])
1908 AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1910 UL_BUILD_INIT([lsclocks], [yes])
1911 AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes])
1913 UL_BUILD_INIT([getopt], [yes])
1914 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1917 UL_BUILD_INIT([blockdev], [check])
1918 UL_REQUIRES_LINUX([blockdev])
1919 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1922 UL_BUILD_INIT([prlimit], [check])
1923 UL_REQUIRES_LINUX([prlimit])
1924 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1925 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1926 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1927 AS_IF([test "x$build_prlimit" = xyes], [
1928 dnl check for valid prlimit() function
1929 AC_MSG_CHECKING([for valid prlimit() function])
1930 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1931 #include <sys/types.h>
1932 #include <sys/time.h>
1933 #include <sys/resource.h>
1937 ret = prlimit(0, RLIMIT_AS, NULL, NULL);
1942 AC_MSG_RESULT([yes])
1943 AC_DEFINE([HAVE_PRLIMIT], [1], [Have valid prlimit() function])],[
1944 AC_MSG_RESULT([no])])
1949 UL_BUILD_INIT([lslocks], [check])
1950 UL_REQUIRES_LINUX([lslocks])
1951 UL_REQUIRES_BUILD([lslocks], [libmount])
1952 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1953 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1956 AC_ARG_ENABLE([switch_root],
1957 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1958 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1960 UL_BUILD_INIT([switch_root])
1961 UL_REQUIRES_LINUX([switch_root])
1962 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1963 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1964 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1967 AC_ARG_ENABLE([pivot_root],
1968 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1969 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1971 UL_BUILD_INIT([pivot_root])
1972 UL_REQUIRES_LINUX([pivot_root])
1973 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1974 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1977 UL_BUILD_INIT([flock], [check])
1978 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1979 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1982 AC_ARG_ENABLE([lsmem],
1983 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1984 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1986 UL_BUILD_INIT([lsmem])
1987 UL_REQUIRES_LINUX([lsmem])
1988 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1989 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1992 AC_ARG_ENABLE([chmem],
1993 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1994 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1996 UL_BUILD_INIT([chmem])
1997 UL_REQUIRES_LINUX([chmem])
1998 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
2001 AC_ARG_ENABLE([ipcmk],
2002 AS_HELP_STRING([--disable-ipcmk], [do not build ipcmk]),
2003 [], [UL_DEFAULT_ENABLE([ipcmk], [check])]
2005 UL_BUILD_INIT([ipcmk])
2006 UL_EXCLUDE_ARCH([ipcmk], [*darwin*])
2007 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
2009 AC_ARG_ENABLE([ipcrm],
2010 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
2011 [], [UL_DEFAULT_ENABLE([ipcrm], [check])]
2013 UL_BUILD_INIT([ipcrm])
2014 UL_EXCLUDE_ARCH([ipcrm], [*darwin*])
2015 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
2017 AC_ARG_ENABLE([ipcs],
2018 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
2019 [], [UL_DEFAULT_ENABLE([ipcs], [check])]
2021 UL_BUILD_INIT([ipcs])
2022 UL_EXCLUDE_ARCH([ipcs], [*darwin*])
2023 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
2026 AC_ARG_ENABLE([irqtop],
2027 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
2028 [], [UL_DEFAULT_ENABLE([irqtop], [check])]
2030 UL_BUILD_INIT([irqtop])
2031 UL_REQUIRES_LINUX([irqtop])
2032 UL_REQUIRES_BUILD([irqtop], [libsmartcols])
2033 UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
2034 UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
2035 AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
2037 AC_ARG_ENABLE([lsirq],
2038 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
2039 [], [UL_DEFAULT_ENABLE([lsirq], [check])]
2041 UL_BUILD_INIT([lsirq])
2042 UL_REQUIRES_LINUX([lsirq])
2043 UL_REQUIRES_BUILD([lsirq], [libsmartcols])
2044 AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
2047 UL_BUILD_INIT([choom], [check])
2048 UL_REQUIRES_LINUX([choom])
2049 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
2051 UL_BUILD_INIT([lsipc], [check])
2052 UL_REQUIRES_LINUX([lsipc])
2053 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
2054 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
2056 AC_ARG_ENABLE([lsns],
2057 AS_HELP_STRING([--disable-lsns], [do not build lsns]),
2058 [], [UL_DEFAULT_ENABLE([lsns], [check])]
2060 UL_BUILD_INIT([lsns])
2061 UL_REQUIRES_LINUX([lsns])
2062 UL_REQUIRES_BUILD([lsns], [libsmartcols])
2063 UL_REQUIRES_BUILD([lsns], [libmount])
2064 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
2066 UL_BUILD_INIT([renice], [yes])
2067 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
2070 AC_ARG_ENABLE([rfkill],
2071 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
2072 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
2074 UL_BUILD_INIT([rfkill])
2075 UL_REQUIRES_LINUX([rfkill])
2076 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
2077 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
2080 UL_BUILD_INIT([setpgid], [yes])
2081 AM_CONDITIONAL([BUILD_SETPGID], [test "x$build_setpgid" = xyes])
2083 UL_BUILD_INIT([setsid], [yes])
2084 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
2086 UL_BUILD_INIT([readprofile], [check])
2087 UL_REQUIRES_LINUX([readprofile])
2088 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
2090 UL_BUILD_INIT([dmesg], [check])
2091 UL_REQUIRES_LINUX([dmesg])
2092 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
2094 UL_BUILD_INIT([ctrlaltdel], [check])
2095 UL_REQUIRES_LINUX([ctrlaltdel])
2096 dnl we assume reboot() to be the 1-argument variant, because even considering
2097 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
2098 dnl reboot() with multiple arguments is yet only found in glibc versions
2099 dnl earlier than 2.x.
2100 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
2101 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
2103 UL_BUILD_INIT([fincore], [check])
2104 UL_REQUIRES_LINUX([fincore])
2105 UL_REQUIRES_BUILD([fincore], [libsmartcols])
2106 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
2108 UL_BUILD_INIT([fsfreeze], [check])
2109 UL_REQUIRES_LINUX([fsfreeze])
2110 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
2112 UL_BUILD_INIT([blkdiscard], [check])
2113 UL_REQUIRES_LINUX([blkdiscard])
2114 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
2116 UL_BUILD_INIT([blkzone], [check])
2117 UL_REQUIRES_LINUX([blkzone])
2118 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
2119 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
2121 UL_BUILD_INIT([blkpr], [check])
2122 UL_REQUIRES_LINUX([blkpr])
2123 UL_REQUIRES_HAVE([blkpr], [linux_pr_h], [linux/pr.h header])
2124 AM_CONDITIONAL([BUILD_BLKPR], [test "x$build_blkpr" = xyes])
2126 UL_BUILD_INIT([ldattach], [check])
2127 UL_REQUIRES_LINUX([ldattach])
2128 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
2130 UL_BUILD_INIT([rtcwake], [check])
2131 UL_REQUIRES_LINUX([rtcwake])
2132 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
2134 UL_BUILD_INIT([setarch], [check])
2135 UL_REQUIRES_LINUX([setarch])
2136 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
2139 # build_scriptutils= is just configure-only variable to control
2140 # script, scriptreplay and scriptlive
2141 AC_ARG_ENABLE([scriptutils],
2142 AS_HELP_STRING([--disable-scriptutils], [do not build script, scriptreplay and scriptlive]),
2143 [], [UL_DEFAULT_ENABLE([scriptutils], [check])]
2146 UL_ENABLE_ALIAS([script], [scriptutils])
2147 UL_BUILD_INIT([script])
2148 UL_REQUIRES_HAVE([script], [pty], [openpty function (libutil)])
2149 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
2151 UL_ENABLE_ALIAS([scriptreplay], [scriptutils])
2152 UL_BUILD_INIT([scriptreplay])
2153 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
2155 UL_ENABLE_ALIAS([scriptlive], [scriptutils])
2156 UL_BUILD_INIT([scriptlive])
2157 UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)])
2158 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
2161 UL_BUILD_INIT([col], [yes])
2162 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
2164 UL_BUILD_INIT([colcrt], [yes])
2165 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
2167 UL_BUILD_INIT([colrm], [yes])
2168 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
2170 UL_BUILD_INIT([column], [check])
2171 UL_REQUIRES_BUILD([column], [libsmartcols])
2172 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
2174 UL_BUILD_INIT([hexdump], [yes])
2175 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
2177 UL_BUILD_INIT([rev], [yes])
2178 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
2181 AC_ARG_ENABLE([tunelp],
2182 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
2183 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
2185 UL_BUILD_INIT([tunelp])
2186 UL_REQUIRES_LINUX([tunelp])
2187 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
2190 AC_ARG_ENABLE([kill],
2191 AS_HELP_STRING([--disable-kill], [do not build kill]),
2192 [], [UL_DEFAULT_ENABLE([kill], [check])]
2194 UL_BUILD_INIT([kill])
2195 UL_REQUIRES_LINUX([kill])
2196 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
2199 AC_ARG_ENABLE([last],
2200 AS_HELP_STRING([--disable-last], [do not build last]),
2201 [], [UL_DEFAULT_ENABLE([last], [check])]
2203 UL_BUILD_INIT([last])
2204 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
2205 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
2206 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2209 AC_ARG_ENABLE([utmpdump],
2210 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
2211 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
2213 UL_BUILD_INIT([utmpdump])
2214 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
2215 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
2216 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
2219 AC_ARG_ENABLE([line],
2220 AS_HELP_STRING([--enable-line], [build line]),
2221 [], [UL_DEFAULT_ENABLE([line], [no])]
2223 UL_BUILD_INIT([line])
2224 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2227 AC_ARG_ENABLE([mesg],
2228 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
2229 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
2231 UL_BUILD_INIT([mesg])
2232 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
2235 AC_ARG_ENABLE([raw],
2236 AS_HELP_STRING([--disable-raw], [do not build raw]),
2237 [], [UL_DEFAULT_ENABLE([raw], [check])]
2239 UL_BUILD_INIT([raw])
2240 UL_REQUIRES_LINUX([raw])
2241 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
2242 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
2245 AC_ARG_ENABLE([rename],
2246 AS_HELP_STRING([--disable-rename], [do not build rename]),
2247 [], [UL_DEFAULT_ENABLE([rename], [yes])]
2249 UL_BUILD_INIT([rename])
2250 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
2253 AC_ARG_ENABLE([vipw],
2254 AS_HELP_STRING([--enable-vipw], [build vipw]),
2255 [], [UL_DEFAULT_ENABLE([vipw], [no])]
2257 UL_BUILD_INIT([vipw])
2258 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
2259 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
2262 AC_ARG_ENABLE([newgrp],
2263 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
2264 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
2266 UL_BUILD_INIT([newgrp])
2267 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
2268 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
2271 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
2272 [], [with_user=check]
2275 AS_IF([test "x$with_user" != xno], [
2276 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
2277 AS_CASE([$with_user:$have_user],
2279 [AC_MSG_ERROR([user selected but libuser not found])],
2281 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2283 # temporary solution, libuser has stupid .pc where are exported all
2284 # private dependencies to Requires: instead of Requires.private:
2285 AS_IF([test "x$have_user" = xyes], [
2289 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
2291 AC_ARG_ENABLE([chfn-chsh-password],
2292 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
2293 [], [enable_chfn_chsh_password=yes]
2296 AC_ARG_ENABLE([chfn-chsh],
2297 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
2298 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
2300 UL_BUILD_INIT([chfn_chsh])
2301 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
2302 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
2304 AS_IF([test "x$enable_chfn_chsh_password" = xyes || test "x$have_user" = xyes], [
2305 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
2306 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
2308 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2309 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
2311 AC_ARG_ENABLE([chsh-only-listed],
2312 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2313 [], enable_chsh_only_listed=yes
2316 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2317 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2321 AC_ARG_ENABLE([login],
2322 AS_HELP_STRING([--disable-login], [do not build login]),
2323 [], [UL_DEFAULT_ENABLE([login], [check])]
2325 UL_BUILD_INIT([login])
2326 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2327 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2328 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2329 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2330 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2332 AC_ARG_ENABLE([login-chown-vcs],
2333 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2334 [], [enable_login_chown_vcs=no]
2337 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2338 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2341 AC_ARG_ENABLE([login-stat-mail],
2342 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2343 [], [enable_login_stat_mail=no]
2346 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2347 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2351 AC_ARG_ENABLE([nologin],
2352 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2353 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2355 UL_BUILD_INIT([nologin])
2356 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2359 AC_ARG_ENABLE([sulogin],
2360 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2361 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2363 UL_BUILD_INIT([sulogin])
2364 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2365 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2366 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2370 AS_HELP_STRING([--disable-su], [do not build su]),
2371 [], [UL_DEFAULT_ENABLE([su], [check])]
2374 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2375 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2376 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2377 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2380 AC_ARG_ENABLE([runuser],
2381 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2382 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2384 UL_BUILD_INIT([runuser])
2385 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2386 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2387 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2388 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2392 AS_HELP_STRING([--disable-ul], [do not build ul]),
2393 [], [UL_DEFAULT_ENABLE([ul], [check])]
2396 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2397 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2400 AC_ARG_ENABLE([more],
2401 AS_HELP_STRING([--disable-more], [do not build more]),
2402 [], [UL_DEFAULT_ENABLE([more], [check])]
2404 UL_BUILD_INIT([more])
2405 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2406 UL_REQUIRES_LINUX([more])
2407 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2411 AS_HELP_STRING([--enable-pg], [build pg]),
2412 [], [UL_DEFAULT_ENABLE([pg], [no])]
2415 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2416 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2419 AC_ARG_ENABLE([setterm],
2420 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2421 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2423 UL_BUILD_INIT([setterm])
2424 UL_REQUIRES_LINUX([setterm])
2425 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2426 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2428 # build_schedutils= is just configure-only variable to control
2429 # ionice, taskset and chrt
2430 AC_ARG_ENABLE([schedutils],
2431 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2432 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2436 UL_ENABLE_ALIAS([ionice], [schedutils])
2437 UL_BUILD_INIT([ionice])
2438 UL_REQUIRES_SYSCALL_CHECK([ionice],
2439 [UL_CHECK_SYSCALL([ioprio_set],
2450 UL_REQUIRES_SYSCALL_CHECK([ionice],
2451 [UL_CHECK_SYSCALL([ioprio_get],
2462 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2465 UL_ENABLE_ALIAS([taskset], [schedutils])
2466 UL_BUILD_INIT([taskset])
2467 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2468 UL_REQUIRES_SYSCALL_CHECK([taskset],
2469 [UL_CHECK_SYSCALL([sched_getaffinity])],
2470 [sched_getaffinity])
2471 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2475 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2476 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2478 UL_ENABLE_ALIAS([chrt], [schedutils])
2479 UL_BUILD_INIT([chrt])
2480 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2481 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2483 AS_IF([test "x$build_chrt" = xyes], [
2484 UL_CHECK_SYSCALL([sched_setattr])
2487 UL_ENABLE_ALIAS([uclampset], [schedutils])
2488 UL_BUILD_INIT([uclampset])
2489 UL_REQUIRES_SYSCALL_CHECK([uclampset],
2490 [UL_CHECK_SYSCALL([sched_setattr])], [sched_setattr])
2491 AM_CONDITIONAL([BUILD_UCLAMPSET], [test "x$build_uclampset" = xyes])
2494 AC_ARG_ENABLE([wall],
2495 AS_HELP_STRING([--disable-wall], [do not build wall]),
2496 [], [UL_DEFAULT_ENABLE([wall], [check])]
2498 UL_BUILD_INIT([wall])
2499 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2500 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2503 AC_ARG_ENABLE([write],
2504 AS_HELP_STRING([--enable-write], [build write]),
2505 [], [UL_DEFAULT_ENABLE([write], [no])]
2507 UL_BUILD_INIT([write])
2508 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2509 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2510 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2513 AC_ARG_WITH([btrfs],
2514 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2515 [], [with_btrfs=check]
2518 AS_IF([test "x$with_btrfs" != xno], [
2519 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2521 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2523 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2526 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2529 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2532 AC_ARG_WITH([systemd],
2533 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2534 [], [with_systemd=check]
2538 AS_IF([test "x$with_systemd" != xno], [
2539 # new version -- all libsystemd-* libs merged into libsystemd
2540 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2542 AS_IF([test "x$have_systemd" != "xyes"], [
2543 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2544 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2545 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2546 [have_systemd_journal=yes], [have_systemd_journal=no])
2547 AS_IF([test "x$have_systemd_daemon" = "xyes" && test "x$have_systemd_journal" = "xyes" ],[
2550 AS_CASE([$with_systemd:$have_systemd],
2552 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2554 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2555 AC_DEFINE([USE_SYSTEMD], [1], [Define if systemd support is wanted ])
2556 AC_CHECK_DECLS([sd_session_get_username], [], [], [#include <systemd/sd-login.h>])
2559 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2562 AC_ARG_WITH([systemdsystemunitdir],
2563 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2565 AS_IF([test "x$have_systemd" = xyes], [
2566 PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
2568 [with_systemdsystemunitdir=no])
2571 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2572 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2576 AC_ARG_WITH([smack],
2577 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2580 AS_IF([test "x$with_smack" = xyes], [
2581 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2584 AC_ARG_WITH([econf],
2585 AS_HELP_STRING([--without-econf], [do not use libeconf]),
2586 [], [with_econf=check]
2590 AS_IF([test "x$with_econf" != xno], [
2591 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
2592 AS_CASE([$with_econf:$have_econf],
2594 [AC_MSG_ERROR([libeconf expected but libeconf not found])],
2596 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
2599 AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
2601 AC_ARG_WITH([vendordir],
2602 AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
2605 AC_SUBST([vendordir], [$with_vendordir])
2606 AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
2607 AS_IF([test "x$with_vendordir" != x], [
2608 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
2612 AC_ARG_ENABLE([bash-completion],
2613 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2614 [], [enable_bash_completion=yes]
2617 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2619 AC_ARG_WITH([bashcompletiondir],
2620 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2622 AS_IF([test "x$enable_bash_completion" = xyes], [
2623 PKG_CHECK_VAR([with_bashcompletiondir], [bash-completion], [completionsdir],
2625 [with_bashcompletiondir=${datadir}/bash-completion/completions])
2628 AS_IF([test "x$enable_bash_completion" = xyes], [
2629 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2633 AC_ARG_WITH([python],
2634 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2635 [], [with_python=check withval=check]
2640 AS_IF([test "x$with_python" != xno], [
2641 # We follow distributions default and look for PKG module name "python"
2642 # (minimal version is 2) but if major version is explicitly specified by
2643 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2645 AS_IF([test "x$withval" != xno && test "x$withval" != xyes && test "x$withval" != xcheck],
2646 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2648 # check for python interpreter
2649 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2650 AS_CASE([$with_python:$have_python],
2652 [AC_MSG_ERROR([python selected but python interpreter not found])],
2654 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2656 # check for python development stuff
2658 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], [have_libpython=yes], [have_libpython=no])
2660 # https://github.com/util-linux/util-linux/issues/2366
2661 AX_COMPARE_VERSION([$PYTHON_VERSION], [ge], [3.12], [
2662 UL_WARN_ADD([-Wno-error=redundant-decls], [PYTHON_CFLAGS])
2669 AC_ARG_ENABLE([pylibmount],
2670 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2671 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2673 UL_BUILD_INIT([pylibmount])
2674 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2675 UL_REQUIRES_BUILD([pylibmount], [libmount])
2676 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2678 # We need to introduce a verbatim dependency into the Makefile, without automake
2679 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2680 verbatim_pylibmount_dependency='
2682 # pylibmountexec module must be installed after usrlib_exec libraries,
2683 # otherwise the libtool relink step will fail to find libmount.la and
2684 # will try -lmount which is possibly not available.
2685 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2688 AC_SUBST([verbatim_pylibmount_dependency])
2689 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2691 AC_ARG_ENABLE([pg-bell],
2692 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2693 [], [enable_pg_bell=yes]
2696 AS_IF([test "x$enable_pg_bell" = xyes], [
2697 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2701 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2702 AC_ARG_ENABLE([fs-paths-default],
2703 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2704 [AS_CASE([$enableval],
2705 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2706 [no], [fs_paths_defaults=""],
2707 [fs_paths_defaults="$enableval"]
2709 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2711 AC_ARG_ENABLE([fs-paths-extra],
2712 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2713 [AS_CASE([$enableval],
2714 [yes|no], [fs_paths_extra=""],
2715 [fs_paths_extra="$enableval"]
2719 fs_paths="$fs_paths_defaults"
2720 AS_IF([test "x$fs_paths_extra" != "x"], [
2721 AS_IF([test "x$fs_paths" != "x"], [
2722 fs_paths="${fs_paths}:"
2724 fs_paths="${fs_paths}${fs_paths_extra}"
2726 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2729 AC_ARG_ENABLE([use-tty-group],
2730 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2731 [], [enable_use_tty_group=yes]
2733 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2735 AS_IF([test "x$enable_use_tty_group" = xyes], [
2736 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2740 AC_ARG_ENABLE([sulogin-emergency-mount],
2741 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2742 [use emergency mount of /dev and /proc for sulogin]),
2743 [], [enable_sulogin_emergency_mount=no]
2746 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2747 AS_IF([test "x$linux_os" = xyes], [ ],
2748 [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
2749 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2750 [Should sulogin use an emergency mount of /dev and /proc?])
2754 AC_ARG_ENABLE([usrdir-path],
2755 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2756 [], [enable_usrdir_path=no]
2759 AS_IF([test "x$enable_usrdir_path" = xyes], [
2760 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2764 AC_ARG_ENABLE([makeinstall-chown],
2765 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2766 [], [enable_makeinstall_chown=yes]
2768 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2771 AC_ARG_ENABLE([makeinstall-setuid],
2772 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2773 [], [enable_makeinstall_setuid=yes]
2775 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2778 AC_ARG_ENABLE([colors-default],
2779 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2780 [], [enable_colors_default=yes]
2782 AS_IF([test "x$enable_colors_default" = xyes], [
2783 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2787 AC_ARG_WITH([cryptsetup],
2788 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2789 [], [with_cryptsetup=no]
2792 AS_IF([test "x$with_cryptsetup" = xno], [
2793 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2794 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2796 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2797 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2798 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2799 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
2800 SAVE_CFLAGS="$CFLAGS"
2801 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2803 LIBS="$CRYPTSETUP_LIBS $LIBS"
2804 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
2805 AC_DEFINE_UNQUOTED([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
2807 AS_IF([test "x$with_cryptsetup" = xdlopen], [
2809 AC_CHECK_LIB([dl], [dlsym], [
2810 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen])
2811 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true])
2812 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])])
2814 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2816 CFLAGS="$SAVE_CFLAGS"
2818 have_cryptsetup=yes],
2820 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2821 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2824 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2825 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2828 AC_SUBST([CRYPTSETUP_LIBS])
2829 AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2832 AC_ARG_VAR([SUID_CFLAGS],
2833 [CFLAGS used for binaries which are usually with the suid bit])
2834 AC_ARG_VAR([SUID_LDFLAGS],
2835 [LDFLAGS used for binaries which are usually with the suid bit])
2837 AC_ARG_VAR([DAEMON_CFLAGS],
2838 [CFLAGS used for binaries which are usually executed as daemons])
2839 AC_ARG_VAR([DAEMON_LDFLAGS],
2840 [LDFLAGS used for binaries which are usually executed as daemons])
2842 AC_ARG_VAR([SOLIB_CFLAGS],
2843 [CFLAGS used for shared libraries])
2844 AC_ARG_VAR([SOLIB_LDFLAGS],
2845 [LDFLAGS used for shared libraries])
2847 AC_ARG_VAR([ADJTIME_PATH],
2848 [Path to hwclock adjtime file, default /etc/adjtime])
2849 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2850 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2852 if test "x${build_alias}" != "x${host_alias}"; then
2853 AC_MSG_NOTICE([setting link_all_deplibs=unknown for libtool])
2854 # work around Debian patch to libtool breaking cross-compiles
2855 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737
2856 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726
2857 link_all_deplibs=unknown
2864 AC_CONFIG_HEADERS([config.h])
2867 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2872 libblkid/docs/Makefile
2873 libblkid/docs/version.xml
2874 libblkid/src/blkid.h
2875 libfdisk/docs/Makefile
2876 libfdisk/docs/version.xml
2877 libfdisk/src/libfdisk.h
2878 libmount/docs/Makefile
2879 libmount/docs/version.xml
2880 libmount/src/libmount.h
2881 libsmartcols/docs/Makefile
2882 libsmartcols/docs/version.xml
2883 libsmartcols/src/libsmartcols.h
2891 ${PACKAGE} ${VERSION}
2894 exec prefix: ${exec_prefix}
2899 usrbin_execdir: ${usrbin_execdir}
2900 usrsbin_execdir: ${usrsbin_execdir}
2901 usrlib_execdir: ${usrlib_execdir}
2903 localstatedir: ${localstatedir}
2904 runstatedir: ${runstatedir}
2905 includedir: ${includedir}
2906 sysconfdir: ${sysconfdir}
2907 sysconfstaticdir: ${sysconfstaticdir}
2909 vendordir: ${with_vendordir}
2912 Python version: ${PYTHON_VERSION}
2913 Python libs: ${pyexecdir}
2915 Bash completions: ${with_bashcompletiondir}
2916 Systemd support: ${have_systemd}
2917 Systemd unitdir: ${with_systemdsystemunitdir}
2918 libeconf support: ${have_econf}
2919 Btrfs support: ${have_btrfs}
2920 Wide-char support: ${build_widechar}
2921 libcryptsetup support: ${have_cryptsetup}
2923 Manual pages: ${build_asciidoc}
2924 Manual pages translated: ${build_poman}
2926 compiler: ${CC} / ${CXX}
2927 suid cflags: ${SUID_CFLAGS}
2929 suid ldflags: ${SUID_LDFLAGS}
2930 ASAN enabled: ${enable_asan}
2931 Fuzzing enabled: ${enable_fuzzing_engine}
2932 Coverage enabled ${enable_coverage}
2940 Type 'make' or 'make <utilname>' to compile.