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 UL_WARN_ADD([-Walloca])
162 AC_ARG_ENABLE([werror],
163 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
164 [], [enable_werror=no]
166 AS_IF([test "x$enable_werror" = xyes], [
167 UL_WARN_ADD([-Werror])
169 UL_WARN_ADD([-Werror=sequence-point])
172 AC_SUBST([WARN_CFLAGS])
175 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
176 AC_SUBST([BSD_WARN_CFLAGS])
178 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
179 AC_SUBST([PYTHON_WARN_CFLAGS])
182 AC_ARG_ENABLE([asan],
183 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
186 AS_IF([test "x$enable_asan" = xyes], [
187 UL_WARN_ADD([-fsanitize=address])
188 ASAN_LDFLAGS="-fsanitize=address"
190 AC_SUBST([ASAN_LDFLAGS])
192 AC_ARG_ENABLE([ubsan],
193 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
194 [], [enable_ubsan=no]
196 AS_IF([test "x$enable_ubsan" = xyes], [
197 UL_WARN_ADD([-fsanitize=undefined])
198 UBSAN_LDFLAGS="-fsanitize=undefined"
200 AC_SUBST([UBSAN_LDFLAGS])
202 AC_ARG_ENABLE([fuzzing-engine],
203 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
204 [], [enable_fuzzing_engine=no]
206 AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
207 UL_WARN_ADD([-fno-omit-frame-pointer])
208 UL_WARN_ADD([-gline-tables-only])
209 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
210 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
212 AC_SUBST([FUZZING_ENGINE_LDFLAGS])
214 AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
215 AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
217 AC_ARG_ENABLE([coverage],
218 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
219 [], [enable_coverage=no]
221 AS_IF([test "x$enable_coverage" = xyes], [
222 UL_WARN_ADD([--coverage])
223 COVERAGE_LDFLAGS="--coverage"
225 AC_SUBST([COVERAGE_LDFLAGS])
226 AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
231 dnl check supported linker flags
234 m4_ifndef([PKG_PROG_PKG_CONFIG],
235 [m4_fatal([Could not locate the pkg-config autoconf
236 macros. These are usually located in /usr/share/aclocal/pkg.m4.
237 If your macros are in a different location, try setting the
238 environment variable AL_OPTS="-I/other/macro/dir" before running
239 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
241 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
243 GTK_DOC_CHECK([1.10])
244 AC_PATH_PROG([XSLTPROC], [xsltproc])
249 AS_CASE([${host_os}],
256 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
257 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
258 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
260 AS_IF([test "x$darwin_os" = xyes], [
261 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
264 dnl define ARCH_<NAME> conditionals
265 UL_SET_ARCH([I86], [i?86-*])
266 UL_SET_ARCH([86_64], [x86_64*])
267 UL_SET_ARCH([IA64], [ia64*])
268 UL_SET_ARCH([S390], [s390*])
269 UL_SET_ARCH([SPARC], [sparc*])
270 UL_SET_ARCH([PPC], [ppc*|powerpc*])
271 UL_SET_ARCH([M68K], [m68*])
272 UL_SET_ARCH([MIPS], [mips*])
273 UL_SET_ARCH([HPPA], [hppa*|parisc*])
279 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
280 AM_GNU_GETTEXT_VERSION([0.18.3])
281 AM_GNU_GETTEXT([external])
283 AS_IF([test -d "$srcdir/po"], [
284 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
285 ], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
287 af am ar as be bg bn bn_IN ca
288 cs cy da de el en_GB es et eu_ES
289 fa fi fr gl gu he hi hr hu
290 hy id is it ja ka kn ko ku
291 lo lt lv mk ml mr ms my nb
292 nl nn no nso or pa pl pt pt_BR
293 ro ru si sk sl sq sr sr@Latn sv
294 ta te th tr uk ur vi zh_CN zh_TW
298 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
299 #ifdef HAVE_LINUX_COMPILER_H
300 #include <linux/compiler.h>
304 asm-generic/fcntl.h \
324 linux/net_namespace.h \
340 security/pam_appl.h \
380 # There is a collision in old kernel-headers. The both files mount.h and fs.h
381 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
383 AC_CHECK_HEADERS([linux/fs.h ], [], [],
384 [#ifdef HAVE_SYS_MOUNT_H
385 # include <linux/fs.h>
386 # include <sys/mount.h>
390 AC_CHECK_HEADERS([linux/mount.h ], [], [],
391 [#ifdef HAVE_LINUX_MOUNT_H
392 # include <linux/mount.h>
396 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
397 [#ifdef LINUX_GSMMUX_H
398 # include <linux/gsmmux.h>
402 AC_CHECK_HEADERS([security/pam_misc.h],
403 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
404 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
405 #ifdef HAVE_SECURITY_PAM_APPL_H
406 #include <security/pam_appl.h>
410 AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
411 #include <linux/blkzoned.h>
414 AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
415 #include <linux/pr.h>
418 AC_CHECK_HEADERS([security/openpam.h], [], [], [
419 #ifdef HAVE_SECURITY_PAM_APPL_H
420 #include <security/pam_appl.h>
424 AC_CHECK_HEADERS([langinfo.h],
425 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
426 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
428 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
429 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
430 #include <langinfo.h>
433 str = nl_langinfo (ALTMON_1);
434 str = nl_langinfo (ALTMON_2);
435 str = nl_langinfo (ALTMON_3);
436 str = nl_langinfo (ALTMON_4);
437 str = nl_langinfo (ALTMON_5);
438 str = nl_langinfo (ALTMON_6);
439 str = nl_langinfo (ALTMON_7);
440 str = nl_langinfo (ALTMON_8);
441 str = nl_langinfo (ALTMON_9);
442 str = nl_langinfo (ALTMON_10);
443 str = nl_langinfo (ALTMON_11);
444 str = nl_langinfo (ALTMON_12);
447 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
448 [Define if langinfo.h defines ALTMON_x constants])
454 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
455 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
456 #include <langinfo.h>
459 str = nl_langinfo (_NL_ABALTMON_1);
460 str = nl_langinfo (_NL_ABALTMON_2);
461 str = nl_langinfo (_NL_ABALTMON_3);
462 str = nl_langinfo (_NL_ABALTMON_4);
463 str = nl_langinfo (_NL_ABALTMON_5);
464 str = nl_langinfo (_NL_ABALTMON_6);
465 str = nl_langinfo (_NL_ABALTMON_7);
466 str = nl_langinfo (_NL_ABALTMON_8);
467 str = nl_langinfo (_NL_ABALTMON_9);
468 str = nl_langinfo (_NL_ABALTMON_10);
469 str = nl_langinfo (_NL_ABALTMON_11);
470 str = nl_langinfo (_NL_ABALTMON_12);
473 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
474 [Define if langinfo.h defines _NL_ABALTMON_x constants])
480 dnl Convert some ac_cv_header_* variables to have_*
482 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
483 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
484 have_linux_capability_h=$ac_cv_header_linux_capability_h
485 have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
486 have_linux_mount_h=$ac_cv_header_linux_mount_h
487 have_linux_pr_h=$ac_cv_header_linux_pr_h
488 have_linux_raw_h=$ac_cv_header_linux_raw_h
489 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
490 have_linux_version_h=$ac_cv_header_linux_version_h
491 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
492 have_pty_h=$ac_cv_header_pty_h
493 have_security_openpam_h=$ac_cv_header_security_openpam_h
494 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
495 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
496 have_shadow_h=$ac_cv_header_shadow_h
497 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
498 have_utmpx_h=$ac_cv_header_utmpx_h
499 have_mntent_h=$ac_cv_header_mntent_h
501 AS_CASE([$linux_os:$have_linux_version_h],
503 [AC_MSG_ERROR([kernel headers required on Linux])]
506 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
511 struct tm *tm = localtime(0);
512 if (a == -1) /* false */
513 sleep(tm->tm_gmtoff);
515 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
518 AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
519 AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
521 AC_CHECK_MEMBERS([struct termios.c_line],,,
522 [[#include <termios.h>]])
524 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
525 [[#include <sys/stat.h>]])
527 AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
528 AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
529 [[#include <sys/stat.h>]])
531 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
533 AC_CHECK_DECL([environ],
534 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
535 [Define to 1 if have **environ prototype])],
538 AC_CHECK_DECL([strsignal],
539 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
540 [Define to 1 if have strsignal function prototype])],
543 AC_CHECK_DECL([TIOCGLCKTRMIOS],
544 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
545 [#include <sys/ioctl.h>])
546 AC_CHECK_DECL([SOCK_CLOEXEC],
547 [have_sock_cloexec=yes], [have_sock_cloexec=no],
548 [#include <sys/types.h>
549 #include <sys/socket.h>])
550 AC_CHECK_DECL([SOCK_NONBLOCK],
551 [have_sock_nonblock=yes], [have_sock_nonblock=no],
552 [#include <sys/types.h>
553 #include <sys/socket.h>])
554 AC_CHECK_DECL([SO_PASSCRED],
555 [have_so_passcred=yes], [have_so_passcred=no],
556 [#include <sys/types.h>
557 #include <sys/socket.h>])
633 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
634 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
635 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
636 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
637 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
638 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
639 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
640 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
642 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
644 have_setns_syscall="yes"
645 UL_CHECK_SYSCALL([setns])
646 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
647 have_setns_syscall="no"
650 UL_CHECK_SYSCALL([pidfd_open])
651 UL_CHECK_SYSCALL([pidfd_send_signal])
652 UL_CHECK_SYSCALL([close_range])
654 UL_CHECK_SYSCALL([fsconfig])
655 UL_CHECK_SYSCALL([fsmount])
656 UL_CHECK_SYSCALL([fsopen])
657 UL_CHECK_SYSCALL([fspick])
658 UL_CHECK_SYSCALL([mount_setattr])
659 UL_CHECK_SYSCALL([move_mount])
660 UL_CHECK_SYSCALL([open_tree])
662 AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
663 test "x$ul_cv_syscall_fsmount" = xno ||
664 test "x$ul_cv_syscall_fsopen" = xno ||
665 test "x$ul_cv_syscall_fspick" = xno ||
666 test "x$ul_cv_syscall_mount_setattr" = xno ||
667 test "x$ul_cv_syscall_move_mount" = xno ||
668 test "x$ul_cv_syscall_open_tree" = xno],
670 have_mountfd_api="no"
672 have_mountfd_api="yes"
673 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
677 AC_CHECK_FUNCS([isnan], [],
678 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
679 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
681 AC_SUBST([MATH_LIBS])
684 dnl lib/mononotic.c may require -lrt
685 AC_CHECK_FUNCS([clock_gettime], [],
686 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
690 AC_CHECK_FUNCS([timer_create],
692 [AC_CHECK_LIB([rt], [timer_create], [
695 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
697 AC_SEARCH_LIBS([timer_create], [rt], [
700 REALTIME_LIBS="-lrt -lpthread"
701 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
707 AC_SUBST([REALTIME_LIBS])
709 AS_IF([test x"$have_timer" = xno], [
710 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
714 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
716 AC_DEFINE([HAVE_LIBRTAS], [1], [Define if librtas exists])
718 AC_SUBST([RTAS_LIBS])
721 AC_CHECK_MEMBER([struct sockaddr.sa_len],
722 AC_DEFINE([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
723 [#include <sys/types.h>
724 #include <sys/socket.h>])
727 AC_SEARCH_LIBS([socket], [socket],
728 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
729 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
731 AC_SUBST([SOCKET_LIBS])
735 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
736 AS_IF([test x"$have_dirfd" = xno], [
737 AC_CHECK_DECLS([dirfd],
738 [have_dirfd=yes], [have_dirfd=no],
739 [#include <sys/types.h>
740 #include <dirent.h>])
744 AS_IF([test x"$have_dirfd" = xno], [
745 AC_CHECK_MEMBERS([DIR.dd_fd],
746 [have_ddfd=yes], [have_ddfd=no],
747 [#include <sys/types.h>
748 #include <dirent.h>])
751 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
754 AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
757 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
758 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
761 program_invocation_short_name = "test";
764 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
765 [Define if program_invocation_short_name is defined])
771 AC_MSG_CHECKING([whether __progname is defined])
772 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
773 [if (*__progname == 0) return 1;])],
774 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
775 AC_MSG_RESULT([yes]),
778 AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
779 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
780 [Define to 1 if OPAL status ioctl is defined])],,
781 [#include <linux/sed-opal.h>])
783 dnl Static compilation
784 m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare])
786 AC_ARG_ENABLE([static-programs],
787 [AS_HELP_STRING([--enable-static-programs=LIST],
788 [link static the programs in LIST (comma-separated,
789 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
791 AS_CASE([$enable_static_programs],
793 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
795 [enable_static_programs=]
798 dnl Set all the individual AM_CONDITIONALs
799 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
800 AS_CASE([,$enable_static_programs,],
801 [*,UL_PRG,*], [static_[]UL_PRG=yes]
803 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
804 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
805 [test "x$static_[]UL_PRG" = xyes])
809 AC_ARG_ENABLE([all-programs],
810 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
811 [], [enable_all_programs=undefined]
814 AS_CASE([$enable_all_programs],
815 [yes], [AC_MSG_WARN([force to build all programs by default])
816 ul_default_estate=check],
817 [no], [AC_MSG_WARN([disable all programs and man pages by default])
818 ul_default_estate=no]
822 AC_ARG_ENABLE([asciidoc],
823 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
824 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
826 UL_BUILD_INIT([asciidoc])
827 UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
828 AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
829 have_asciidoctor_failure_level=no
830 AS_IF([test "x$build_asciidoc" = xyes], [
831 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
832 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
834 have_asciidoctor_failure_level=yes
839 AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
842 AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
843 AC_MSG_NOTICE([re-use already generated man-pages.])
846 AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
849 AC_ARG_ENABLE([poman],
850 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
851 [], [UL_DEFAULT_ENABLE([poman], [check])]
853 UL_BUILD_INIT([poman])
854 UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
855 AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
861 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
864 AS_IF([test "x$with_util" = xno], [
865 AM_CONDITIONAL([HAVE_UTIL], [false])
868 UL_CHECK_LIB([util], [openpty])
871 AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
872 AM_CONDITIONAL([HAVE_PTY], [true])
873 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
876 AM_CONDITIONAL([HAVE_PTY], [false])
879 AC_CHECK_TYPES([union semun], [], [], [[
882 AC_CHECK_TYPES([loff_t])
885 AC_ARG_ENABLE([widechar],
886 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
887 [], [enable_widechar=check]
889 UL_BUILD_INIT([widechar])
890 UL_REQUIRES_COMPILE([widechar], [[
899 if (w == WEOF) exit(1);
905 AS_IF([test "x$build_widechar" = xyes ], [
906 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
910 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
914 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
916 AC_CHECK_TYPES([sighandler_t], [], [], [[
920 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
924 # on Solaris, you can't mix and match standards, since we use c99
925 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
926 # check for crypt.h and use that without XOPEN_SOURCE.
928 AC_CHECK_HEADERS([crypt.h])
929 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
933 #define _XOPEN_SOURCE
937 char *c = crypt("abc","pw");
942 UL_SET_LIBS([-lcrypt])
943 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
947 #define _XOPEN_SOURCE
951 char *c = crypt("abc","pw");
956 AC_MSG_WARN([crypt() is not available])
960 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
963 AC_ARG_WITH([selinux],
964 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
965 [], [with_selinux=no]
968 AS_IF([test "x$with_selinux" = xno], [
969 AM_CONDITIONAL([HAVE_SELINUX], [false])
971 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
972 AS_CASE([$with_selinux:$have_selinux],
973 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
975 AS_IF([test "x$have_selinux" = xyes], [
976 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
977 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
978 AM_CONDITIONAL([HAVE_SELINUX], [true])
980 UL_SET_LIBS([$SELINUX_LIBS])
981 # This function is missing in old libselinux 1.xx versions
982 AC_CHECK_FUNCS([security_get_initial_context])
986 AC_SUBST([SELINUX_LIBS])
987 AC_SUBST([SELINUX_LIBS_STATIC])
991 AS_HELP_STRING([--with-audit], [compile with audit support]),
995 AS_IF([test "x$with_audit" = xno], [
996 AM_CONDITIONAL([HAVE_AUDIT], [false])
998 UL_CHECK_LIB([audit], [audit_log_user_message])
999 AS_CASE([$with_audit:$have_audit],
1001 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1005 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
1006 [], [with_udev=auto]
1009 AS_IF([test "x$with_udev" = xno], [
1010 AM_CONDITIONAL([HAVE_UDEV], [false])
1012 UL_CHECK_LIB([udev], [udev_new])
1013 AS_CASE([$with_udev:$have_udev],
1015 [AC_MSG_ERROR([udev selected but libudev not found])]
1020 dnl wide-char ncurses
1021 AC_ARG_WITH([ncursesw],
1022 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
1023 [], [with_ncursesw=auto]
1026 have_ncursesw_header=no
1027 AS_IF([test "x$with_ncursesw" != xno], [
1028 UL_NCURSES_CHECK([ncursesw])
1029 AS_IF([test "x$have_ncursesw" = xyes], [
1030 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1031 AC_CHECK_HEADERS([ncursesw/term.h])
1033 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1034 # unsuccessful to avoid too many *_H permitations in config.h
1035 AS_IF([test "x$have_ncursesw_header" = xno], [
1036 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1037 AC_CHECK_HEADERS([term.h])
1039 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1041 AS_IF([test "x$have_ncursesw" = xyes], [
1042 CURSES_LIB_NAME="ncursesw"
1043 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
1046 AS_CASE([$with_ncursesw:$have_ncursesw],
1047 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
1050 dnl non-wide ncurses
1051 AC_ARG_WITH([ncurses],
1052 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
1053 [], [with_ncurses=auto]
1056 have_ncurses_header=no
1057 AS_CASE([$with_ncurses:$build_widechar],
1058 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1060 AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
1061 UL_NCURSES_CHECK([ncurses])
1062 AS_IF([test "x$have_ncurses" = xyes], [
1063 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1064 AC_CHECK_HEADERS([ncurses/term.h])
1066 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1067 # unsuccessful to avoid too many *_H permitations in config.h
1068 AS_IF([test "x$have_ncurses_header" = xno], [
1069 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1070 AC_CHECK_HEADERS([term.h])
1072 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1074 AS_IF([test "x$have_ncurses" = xyes], [
1075 CURSES_LIB_NAME="ncurses"
1076 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
1079 AS_CASE([$with_ncurses:$have_ncurses],
1080 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1082 AC_SUBST([NCURSES_CFLAGS])
1083 AC_SUBST([NCURSES_LIBS])
1084 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
1087 AC_ARG_WITH([slang],
1088 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
1092 AS_IF([test "x$with_slang" = xyes], [
1093 AC_CHECK_HEADERS([slang.h slang/slang.h])
1094 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
1095 [have_slang=yes], [], [
1098 #elif defined(HAVE_SLANG_SLANG_H)
1099 #include <slang/slang.h>
1102 AS_IF([test "x$have_slang" = xno], [
1103 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1104 [CURSES_LIB_NAME=slang
1107 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1110 AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
1111 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1112 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1113 [Define if curses library has the use_default_colors().])
1115 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1116 AC_DEFINE(HAVE_RESIZETERM, 1,
1117 [Define if curses library has the resizeterm().])
1122 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1123 [], [with_tinfo=auto]
1127 AS_IF([test "x$with_tinfo" != xno], [
1128 AS_IF([test "x$have_ncursesw" = xyes], [
1129 UL_TINFO_CHECK([tinfow])
1131 AS_IF([test "x$have_tinfow" = xno], [
1132 UL_TINFO_CHECK([tinfo])
1135 AC_SUBST([TINFO_LIBS])
1136 AC_SUBST([TINFO_LIBS_STATIC])
1137 AC_SUBST([TINFO_CFLAGS])
1138 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1139 AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
1140 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1144 AC_ARG_WITH([readline],
1145 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1146 [], [with_readline=auto]
1149 AS_IF([test "x$with_readline" = xno], [
1150 AM_CONDITIONAL([HAVE_READLINE], [false])
1152 UL_CHECK_LIB([readline], [readline])
1153 AS_CASE([$with_readline:$have_readline],
1155 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1157 [READLINE_LIBS="-lreadline"
1158 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1161 AC_SUBST([READLINE_LIBS])
1162 AC_SUBST([READLINE_LIBS_STATIC])
1165 AC_ARG_WITH([utempter],
1166 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1167 [], [with_utempter=no]
1170 AS_IF([test "x$with_utempter" = xyes], [
1171 UL_CHECK_LIB([utempter], [utempter_add_record])
1172 AS_IF([test "x$have_utempter" = xno], [
1173 AC_MSG_ERROR([utempter selected but libutempter not found])
1176 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1183 AC_ARG_ENABLE([libuuid],
1184 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1185 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1187 UL_BUILD_INIT([libuuid])
1188 AC_SUBST([LIBUUID_VERSION])
1189 AC_SUBST([LIBUUID_VERSION_INFO])
1190 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1192 AC_ARG_ENABLE([libuuid-force-uuidd],
1193 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1194 [], [enable_libuuid_force_uuidd=no]
1197 AS_IF([test "x$build_libuuid" = xyes], [
1198 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1204 AC_ARG_ENABLE([libblkid],
1205 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1206 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1208 UL_BUILD_INIT([libblkid])
1209 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1210 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1211 AC_SUBST([LIBBLKID_DATE])
1212 AC_SUBST([LIBBLKID_VERSION])
1213 AC_SUBST([LIBBLKID_VERSION_INFO])
1214 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1215 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1216 AS_IF([test "x$build_libblkid" = xyes], [
1217 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1219 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1220 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
1225 AC_ARG_ENABLE([libmount],
1226 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1227 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1229 UL_BUILD_INIT([libmount])
1230 UL_REQUIRES_BUILD([libmount], [libblkid])
1231 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1232 UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
1233 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1234 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
1235 AS_IF([test "x$build_libmount" = xyes], [
1236 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1237 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1238 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1240 AC_MSG_WARN([libmount will be compiled without namespaces support])
1244 AC_SUBST([LIBMOUNT_VERSION])
1245 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1246 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1247 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1248 AC_SUBST([LIBMOUNT_VERSION_INFO])
1249 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1251 AC_ARG_ENABLE([libmount-mountfd-support],
1252 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1253 [], [enable_libmount_mountfd_support=check]
1255 UL_BUILD_INIT([libmount_mountfd_support])
1256 UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1257 UL_REQUIRES_LINUX([libmount_mountfd_support])
1258 UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
1259 UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
1260 AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1261 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1268 AC_ARG_ENABLE([libsmartcols],
1269 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1270 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1272 UL_BUILD_INIT([libsmartcols])
1273 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1275 AC_SUBST([LIBSMARTCOLS_VERSION])
1276 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1277 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1283 AC_ARG_ENABLE([libfdisk],
1284 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1285 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1287 UL_BUILD_INIT([libfdisk])
1288 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1289 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1290 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
1292 AS_IF([test "x$build_libblkid" = xyes],
1293 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1294 AC_SUBST([LIBFDISK_PC_REQUIRES])
1296 AC_SUBST([LIBFDISK_VERSION])
1297 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1298 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1299 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1300 AC_SUBST([LIBFDISK_VERSION_INFO])
1301 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1304 AC_ARG_ENABLE([fdisks],
1305 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1306 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1308 enable_fdisk=$enable_fdisks
1309 enable_sfdisk=$enable_fdisks
1310 enable_cfdisk=$enable_fdisks
1312 UL_BUILD_INIT([fdisk])
1313 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1314 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1315 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1316 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1317 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1320 UL_BUILD_INIT([sfdisk])
1321 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1322 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1323 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1324 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1325 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1328 UL_BUILD_INIT([cfdisk])
1329 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1330 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1331 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1332 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1333 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1336 AC_ARG_ENABLE([mount],
1337 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1338 [], [UL_DEFAULT_ENABLE([mount], [check])]
1340 UL_BUILD_INIT([mount])
1341 UL_REQUIRES_LINUX([mount])
1342 UL_REQUIRES_BUILD([mount], [libmount])
1343 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1346 AC_ARG_ENABLE([losetup],
1347 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1348 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1350 UL_BUILD_INIT([losetup])
1351 UL_REQUIRES_LINUX([losetup])
1352 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1353 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1355 AC_ARG_ENABLE([zramctl],
1356 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1357 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1359 UL_BUILD_INIT([zramctl])
1360 UL_REQUIRES_LINUX([zramctl])
1361 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1362 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1364 AC_ARG_ENABLE([fsck],
1365 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1366 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1368 UL_BUILD_INIT([fsck])
1369 UL_REQUIRES_BUILD([fsck], [libmount])
1370 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1373 AC_ARG_ENABLE([partx],
1374 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1375 [], [UL_DEFAULT_ENABLE([partx], [check])]
1377 UL_BUILD_INIT([partx])
1378 UL_REQUIRES_LINUX([partx])
1379 UL_REQUIRES_BUILD([partx], [libblkid])
1380 UL_REQUIRES_BUILD([partx], [libsmartcols])
1381 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1384 AC_ARG_ENABLE([uuidd],
1385 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1386 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1388 UL_BUILD_INIT([uuidd])
1389 UL_REQUIRES_BUILD([uuidd], [libuuid])
1390 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1391 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1392 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1393 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1395 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1398 AC_ARG_ENABLE([uuidgen],
1399 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1400 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1402 UL_BUILD_INIT([uuidgen])
1403 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1404 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1406 UL_BUILD_INIT([uuidparse], [check])
1407 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1408 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1409 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1411 AC_ARG_ENABLE([blkid],
1412 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1413 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1415 UL_BUILD_INIT([blkid])
1416 UL_REQUIRES_BUILD([blkid], [libblkid])
1417 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1419 UL_BUILD_INIT([findfs], [check])
1420 UL_REQUIRES_BUILD([findfs], [libblkid])
1421 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1423 AC_ARG_ENABLE([wipefs],
1424 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1425 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1427 UL_BUILD_INIT([wipefs])
1428 UL_REQUIRES_BUILD([wipefs], [libblkid])
1429 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1430 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1432 UL_BUILD_INIT([findmnt], [check])
1433 UL_REQUIRES_BUILD([findmnt], [libmount])
1434 UL_REQUIRES_BUILD([findmnt], [libblkid])
1435 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1436 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1439 AC_ARG_ENABLE([mountpoint],
1440 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1441 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1443 UL_BUILD_INIT([mountpoint])
1444 UL_REQUIRES_BUILD([mountpoint], [libmount])
1445 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1448 AC_ARG_ENABLE([fallocate],
1449 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1450 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1452 UL_BUILD_INIT([fallocate])
1453 UL_REQUIRES_LINUX([fallocate])
1454 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1455 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1457 AS_IF([test "x$build_fallocate" = xyes], [
1458 dnl check for valid fallocate() function
1459 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1460 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1461 dnl and program can't be linked.
1462 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1463 dnl function prototype.
1464 AC_MSG_CHECKING([for valid fallocate() function])
1465 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1466 #ifdef HAVE_UNISTD_H
1467 # include <unistd.h>
1469 #ifdef HAVE_SYS_TYPES_H
1470 # include <sys/types.h>
1472 #ifdef HAVE_LINUX_FALLOC_H
1473 # include <linux/falloc.h>
1480 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1485 AC_MSG_RESULT([yes])
1486 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1487 AC_MSG_RESULT([no])])
1490 AS_IF([test "x$build_fallocate" = xyes], [
1491 dnl check for valid posix_fallocate() function
1492 AC_MSG_CHECKING([for valid posix_fallocate() function])
1493 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1494 #ifdef HAVE_UNISTD_H
1495 # include <unistd.h>
1497 #ifdef HAVE_SYS_TYPES_H
1498 # include <sys/types.h>
1500 #ifdef HAVE_LINUX_FALLOC_H
1501 # include <linux/falloc.h>
1508 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1513 AC_MSG_RESULT([yes])
1514 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1515 AC_MSG_RESULT([no])])
1519 AC_ARG_ENABLE([unshare],
1520 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1521 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1523 UL_BUILD_INIT([unshare])
1524 UL_REQUIRES_LINUX([unshare])
1525 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1526 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1527 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1529 AC_MSG_CHECKING([for valid unshare() function])
1530 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1539 AC_MSG_RESULT([yes])
1540 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1546 AC_ARG_ENABLE([nsenter],
1547 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1548 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1550 UL_BUILD_INIT([nsenter])
1551 UL_REQUIRES_LINUX([nsenter])
1552 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1553 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1555 AC_MSG_CHECKING([for valid setns() function])
1556 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1562 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1566 AC_MSG_RESULT([yes])
1567 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1573 AC_ARG_WITH([cap_ng],
1574 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1575 [], [with_cap_ng=auto]
1577 AS_IF([test "x$with_cap_ng" = xno], [
1578 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1581 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1585 AC_ARG_ENABLE([setpriv],
1586 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1587 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1589 UL_BUILD_INIT([setpriv])
1590 UL_REQUIRES_LINUX([setpriv])
1591 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1592 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1593 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1594 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1596 AC_ARG_ENABLE([hardlink],
1597 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1598 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1600 UL_BUILD_INIT([hardlink])
1601 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1604 AC_ARG_ENABLE([eject],
1605 AS_HELP_STRING([--disable-eject], [do not build eject]),
1606 [], [UL_DEFAULT_ENABLE([eject], [check])]
1608 UL_BUILD_INIT([eject])
1609 UL_REQUIRES_LINUX([eject])
1610 UL_REQUIRES_BUILD([eject], [libmount])
1611 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1614 AC_ARG_ENABLE([agetty],
1615 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1616 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1618 UL_BUILD_INIT([agetty])
1619 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1620 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1621 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1622 AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
1623 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1625 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1629 AC_ARG_ENABLE([plymouth_support],
1630 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]),
1631 [], [enable_plymouth_support=check]
1633 UL_BUILD_INIT([plymouth_support])
1634 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1635 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1636 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1637 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1638 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1639 AS_IF([test "x$build_plymouth_support" = xyes ], [
1640 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty])
1645 AS_HELP_STRING([--without-libz], [compile without libz]),
1646 [], [with_libz=auto]
1648 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1649 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1652 AC_ARG_WITH([libmagic],
1653 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1654 [], [with_libmagic=auto]
1656 AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1657 AC_CHECK_LIB([magic], [magic_open], [
1658 AC_CHECK_HEADER(magic.h, [
1659 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1660 MAGIC_LIBS="-lmagic"
1664 AC_SUBST([MAGIC_LIBS])
1667 AC_ARG_ENABLE([cramfs],
1668 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1669 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1671 UL_BUILD_INIT([cramfs])
1672 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1673 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1676 AC_ARG_ENABLE([bfs],
1677 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1678 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1680 UL_BUILD_INIT([bfs])
1681 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1684 AC_ARG_ENABLE([minix],
1685 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1686 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1688 UL_BUILD_INIT([minix])
1689 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1692 AC_ARG_ENABLE([fdformat],
1693 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1694 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
1696 UL_BUILD_INIT([fdformat])
1697 UL_REQUIRES_LINUX([fdformat])
1698 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1701 AC_ARG_ENABLE([hwclock],
1702 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1703 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1705 have_linuxdummy=$linux_os
1707 UL_BUILD_INIT([hwclock])
1708 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1709 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1711 AC_ARG_ENABLE([hwclock_cmos],
1712 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1713 [], [enable_hwclock_cmos=check]
1715 UL_BUILD_INIT([hwclock_cmos])
1716 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1717 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1718 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1719 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1720 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1723 AC_ARG_ENABLE([hwclock_gplv3],
1724 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1725 [], [enable_hwclock_gplv3=yes]
1727 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1728 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1729 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1733 AC_ARG_ENABLE([mkfs],
1734 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1735 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1737 UL_BUILD_INIT([mkfs])
1738 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1740 UL_BUILD_INIT([isosize], [yes])
1741 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1744 AC_ARG_ENABLE([fstrim],
1745 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1746 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1748 UL_BUILD_INIT([fstrim])
1749 UL_REQUIRES_LINUX([fstrim])
1750 UL_REQUIRES_BUILD([fstrim], [libmount])
1751 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1754 AC_ARG_ENABLE([swapon],
1755 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1756 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1758 UL_BUILD_INIT([swapon])
1759 UL_REQUIRES_LINUX([swapon])
1760 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1761 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1762 UL_REQUIRES_BUILD([swapon], [libblkid])
1763 UL_REQUIRES_BUILD([swapon], [libmount])
1764 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1765 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1766 AC_CHECK_FUNCS([swapon])
1767 AC_CHECK_FUNCS([swapoff])
1770 UL_BUILD_INIT([lsblk], [check])
1771 UL_REQUIRES_LINUX([lsblk])
1772 UL_REQUIRES_BUILD([lsblk], [libblkid])
1773 UL_REQUIRES_BUILD([lsblk], [libmount])
1774 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1775 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1778 AC_ARG_ENABLE([lscpu],
1779 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1780 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1782 UL_BUILD_INIT([lscpu])
1783 UL_REQUIRES_LINUX([lscpu])
1784 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1785 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1786 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1788 AC_ARG_ENABLE([lsfd],
1789 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1790 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1792 UL_BUILD_INIT([lsfd])
1793 UL_REQUIRES_LINUX([lsfd])
1794 UL_REQUIRES_BUILD([lsfd], [libsmartcols])
1795 UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file])
1796 AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
1798 AC_ARG_ENABLE([lslogins],
1799 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1800 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1802 UL_BUILD_INIT([lslogins])
1803 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1804 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1805 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1806 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1807 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1810 UL_BUILD_INIT([chcpu], [check])
1811 UL_REQUIRES_LINUX([chcpu])
1812 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1813 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1816 AC_ARG_ENABLE([wdctl],
1817 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1818 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1820 UL_BUILD_INIT([wdctl])
1821 UL_REQUIRES_LINUX([wdctl])
1822 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1823 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1824 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1827 UL_BUILD_INIT([swaplabel], [check])
1828 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1829 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1832 UL_BUILD_INIT([mkswap], [yes])
1833 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1834 AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
1835 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1839 AC_ARG_ENABLE([cal],
1840 AS_HELP_STRING([--disable-cal], [do not build cal]),
1841 [], [UL_DEFAULT_ENABLE([cal], [check])]
1843 UL_BUILD_INIT([cal])
1844 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1846 AC_ARG_ENABLE([logger],
1847 AS_HELP_STRING([--disable-logger], [do not build logger]),
1848 [], [UL_DEFAULT_ENABLE([logger], [check])]
1850 UL_BUILD_INIT([logger])
1851 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1853 UL_BUILD_INIT([look], [yes])
1854 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1856 UL_BUILD_INIT([mcookie], [yes])
1857 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1859 UL_BUILD_INIT([namei], [yes])
1860 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1862 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1863 if test "x$matriplet" != "x"; then
1864 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1865 ["Multi-arch triplet for whereis library search path"])
1867 AC_ARG_ENABLE([whereis],
1868 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1869 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1871 UL_BUILD_INIT([whereis])
1872 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1874 AC_ARG_ENABLE([pipesz],
1875 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
1876 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
1878 UL_BUILD_INIT([pipesz])
1879 UL_REQUIRES_LINUX([pipesz])
1880 AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1882 UL_BUILD_INIT([fadvise], [check])
1883 UL_REQUIRES_LINUX([fadvise])
1884 AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1886 AC_ARG_ENABLE([waitpid],
1887 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
1888 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
1890 UL_BUILD_INIT([waitpid])
1891 UL_REQUIRES_LINUX([waitpid])
1892 UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
1893 AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1895 UL_BUILD_INIT([enosys], [check])
1896 UL_REQUIRES_LINUX([enosys])
1897 AS_IF([test "x$build_enosys" = xyes], [
1898 AC_MSG_CHECKING([for valid audit arch])
1900 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1901 [AC_MSG_RESULT([yes])],
1902 [AC_MSG_RESULT([no])
1906 AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1908 UL_BUILD_INIT([lsclocks], [check])
1909 UL_REQUIRES_LINUX([lsclocks])
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], [check])
2161 UL_REQUIRES_COMPILE([col], [#include <limits.h>], [__GLIBC__], [building for glibc])
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([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.