2 m4_esyscmd([tools/git-version-gen .tarball-version]),
4 [http://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 AC_PROG_LIBTOOL) to avoid autoconf errors.
13 AC_USE_SYSTEM_EXTENSIONS
14 AM_INIT_AUTOMAKE([-Wall 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="21-Jan-2020"
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]) ])
78 # default for old versions without $runstatedir
79 AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
81 # our default if $localstatedir unchanged
82 AS_CASE([$localstatedir:$runstatedir],
83 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
84 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
87 AC_SUBST([runstatedir])
90 # The original default values of {bin,sbin,lib}dir
91 usrbin_execdir='${exec_prefix}/bin'
92 AC_SUBST([usrbin_execdir])
94 usrsbin_execdir='${exec_prefix}/sbin'
95 AC_SUBST([usrsbin_execdir])
98 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
99 [usrlib_execdir=$libdir],
100 [usrlib_execdir='${exec_prefix}'$libdir]
102 AC_SUBST([usrlib_execdir])
104 # static configuration maintaned by packages (e.g. /usr/lib)
105 AC_ARG_VAR([SYSCONFSTATICDIR],
106 [Path to static system configuration, default ${prefix}/lib])
107 AS_IF([test "x$SYSCONFSTATICDIR" = x],
108 [sysconfstaticdir='${prefix}/lib'],
109 [sysconfstaticdir=$SYSCONFSTATICDIR])
110 AC_SUBST([sysconfstaticdir])
122 dnl Compiler warnings
123 UL_WARN_ADD([-fno-common])
125 UL_WARN_ADD([-Werror=sequence-point])
126 UL_WARN_ADD([-Wextra])
127 UL_WARN_ADD([-Wextra-semi])
128 UL_WARN_ADD([-Wembedded-directive])
129 UL_WARN_ADD([-Wmissing-declarations])
130 UL_WARN_ADD([-Wmissing-parameter-type])
131 UL_WARN_ADD([-Wmissing-prototypes])
132 UL_WARN_ADD([-Wno-missing-field-initializers])
133 UL_WARN_ADD([-Wredundant-decls])
134 UL_WARN_ADD([-Wsign-compare])
135 UL_WARN_ADD([-Wtype-limits])
136 UL_WARN_ADD([-Wuninitialized])
137 UL_WARN_ADD([-Wunused-but-set-parameter])
138 UL_WARN_ADD([-Wunused-but-set-variable])
139 UL_WARN_ADD([-Wunused-parameter])
140 UL_WARN_ADD([-Wunused-result])
141 UL_WARN_ADD([-Wunused-variable])
142 UL_WARN_ADD([-Wnested-externs])
143 UL_WARN_ADD([-Wpointer-arith])
144 UL_WARN_ADD([-Wstrict-prototypes])
145 UL_WARN_ADD([-Wformat-security])
146 UL_WARN_ADD([-Wimplicit-function-declaration])
147 UL_WARN_ADD([-Wdiscarded-qualifiers])
148 AC_SUBST([WARN_CFLAGS])
150 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
151 AC_SUBST([BSD_WARN_CFLAGS])
153 UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
154 AC_SUBST([PYTHON_WARN_CFLAGS])
156 UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
157 AC_SUBST([NO_UNUSED_WARN_CFLAGS])
160 AC_ARG_ENABLE([asan],
161 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
164 AS_IF([test "x$enable_asan" = xyes], [
165 UL_WARN_ADD([-fsanitize=address])
166 ASAN_LDFLAGS="-fsanitize=address"
168 AC_SUBST([ASAN_LDFLAGS])
173 dnl check supported linker flags
176 m4_ifndef([PKG_PROG_PKG_CONFIG],
177 [m4_fatal([Could not locate the pkg-config autoconf
178 macros. These are usually located in /usr/share/aclocal/pkg.m4.
179 If your macros are in a different location, try setting the
180 environment variable AL_OPTS="-I/other/macro/dir" before running
181 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
183 PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
185 GTK_DOC_CHECK([1.10])
186 AC_PATH_PROG([XSLTPROC], [xsltproc])
190 AS_CASE([${host_os}],
197 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
198 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
199 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
201 AS_IF([test "x$darwin_os" = xyes], [
202 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
205 dnl define ARCH_<NAME> conditionals
206 UL_SET_ARCH([I86], [i?86-*])
207 UL_SET_ARCH([86_64], [x86_64*])
208 UL_SET_ARCH([IA64], [ia64*])
209 UL_SET_ARCH([S390], [s390*])
210 UL_SET_ARCH([SPARC], [sparc*])
211 UL_SET_ARCH([PPC], [ppc*|powerpc*])
212 UL_SET_ARCH([M68K], [m68*])
213 UL_SET_ARCH([MIPS], [mips*])
214 UL_SET_ARCH([HPPA], [hppa*|parisc*])
220 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
221 AM_GNU_GETTEXT_VERSION([0.18.3])
222 AM_GNU_GETTEXT([external])
224 AS_IF([test -d "$srcdir/po"], [
225 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
227 ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
230 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
231 #ifdef HAVE_LINUX_COMPILER_H
232 #include <linux/compiler.h>
253 linux/net_namespace.h \
262 security/pam_appl.h \
299 # There is a collision in old kernel-headers. The both files mount.h and fs.h
300 # define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
302 AC_CHECK_HEADERS([linux/fs.h ], [], [],
303 [#ifdef HAVE_SYS_MOUNT_H
304 # include <linux/fs.h>
305 # include <sys/mount.h>
309 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
310 [#ifdef LINUX_GSMMUX_H
311 # include <linux/gsmmux.h>
315 AC_CHECK_HEADERS([security/pam_misc.h],
316 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
317 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
318 #ifdef HAVE_SECURITY_PAM_APPL_H
319 #include <security/pam_appl.h>
323 AC_CHECK_HEADERS([linux/blkzoned.h])
325 AC_CHECK_HEADERS([security/openpam.h], [], [], [
326 #ifdef HAVE_SECURITY_PAM_APPL_H
327 #include <security/pam_appl.h>
331 AC_CHECK_HEADERS([langinfo.h],
332 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
333 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
335 AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
336 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
337 #include <langinfo.h>
340 str = nl_langinfo (ALTMON_1);
341 str = nl_langinfo (ALTMON_2);
342 str = nl_langinfo (ALTMON_3);
343 str = nl_langinfo (ALTMON_4);
344 str = nl_langinfo (ALTMON_5);
345 str = nl_langinfo (ALTMON_6);
346 str = nl_langinfo (ALTMON_7);
347 str = nl_langinfo (ALTMON_8);
348 str = nl_langinfo (ALTMON_9);
349 str = nl_langinfo (ALTMON_10);
350 str = nl_langinfo (ALTMON_11);
351 str = nl_langinfo (ALTMON_12);
354 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
355 [Define if langinfo.h defines ALTMON_x constants])
361 AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
362 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
363 #include <langinfo.h>
366 str = nl_langinfo (_NL_ABALTMON_1);
367 str = nl_langinfo (_NL_ABALTMON_2);
368 str = nl_langinfo (_NL_ABALTMON_3);
369 str = nl_langinfo (_NL_ABALTMON_4);
370 str = nl_langinfo (_NL_ABALTMON_5);
371 str = nl_langinfo (_NL_ABALTMON_6);
372 str = nl_langinfo (_NL_ABALTMON_7);
373 str = nl_langinfo (_NL_ABALTMON_8);
374 str = nl_langinfo (_NL_ABALTMON_9);
375 str = nl_langinfo (_NL_ABALTMON_10);
376 str = nl_langinfo (_NL_ABALTMON_11);
377 str = nl_langinfo (_NL_ABALTMON_12);
380 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
381 [Define if langinfo.h defines _NL_ABALTMON_x constants])
387 dnl Convert some ac_cv_header_* variables to have_*
389 have_linux_version_h=$ac_cv_header_linux_version_h
390 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
391 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
392 have_linux_raw_h=$ac_cv_header_linux_raw_h
393 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
394 have_linux_capability_h=$ac_cv_header_linux_capability_h
395 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
396 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
397 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
398 have_security_openpam_h=$ac_cv_header_security_openpam_h
399 have_shadow_h=$ac_cv_header_shadow_h
400 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
401 have_utmpx_h=$ac_cv_header_utmpx_h
402 have_pty_h=$ac_cv_header_pty_h
404 AS_CASE([$linux_os:$have_linux_version_h],
406 [AC_MSG_ERROR([kernel headers required on Linux])]
409 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
414 struct tm *tm = localtime(0);
415 if (a == -1) /* false */
416 sleep(tm->tm_gmtoff);
418 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
421 AC_CHECK_MEMBERS([struct termios.c_line],,,
422 [[#include <termios.h>]])
424 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
425 [#include <sys/stat.h>])
427 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
429 AC_CHECK_DECL([llseek],
430 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
431 [Define to 1 if have llseek prototype])],
433 [#include <unistd.h>])
435 AC_CHECK_DECL([lseek64],
436 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
437 [Define to 1 if have lseek64 prototype])],
439 [#define _LARGEFILE_SOURCE
440 #define _LARGEFILE64_SOURCE
441 #include <unistd.h>])
443 AC_CHECK_DECL([environ],
444 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
445 [Define to 1 if have **environ prototype])],
448 AC_CHECK_DECL([strsignal],
449 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
450 [Define to 1 if have strsignal function prototype])],
453 AC_CHECK_DECL([TIOCGLCKTRMIOS],
454 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
455 [#include <sys/ioctl.h>])
456 AC_CHECK_DECL([SOCK_CLOEXEC],
457 [have_sock_cloexec=yes], [have_sock_cloexec=no],
458 [#include <sys/types.h>
459 #include <sys/socket.h>])
460 AC_CHECK_DECL([SOCK_NONBLOCK],
461 [have_sock_nonblock=yes], [have_sock_nonblock=no],
462 [#include <sys/types.h>
463 #include <sys/socket.h>])
464 AC_CHECK_DECL([SO_PASSCRED],
465 [have_so_passcred=yes], [have_so_passcred=no],
466 [#include <sys/types.h>
467 #include <sys/socket.h>])
527 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
528 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
529 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
530 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
531 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
532 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
533 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
534 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
536 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
538 have_setns_syscall="yes"
539 UL_CHECK_SYSCALL([setns])
540 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
541 have_setns_syscall="no"
544 UL_CHECK_SYSCALL([pidfd_open])
545 UL_CHECK_SYSCALL([pidfd_send_signal])
547 AC_CHECK_FUNCS([isnan], [],
548 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
549 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
551 AC_SUBST([MATH_LIBS])
554 dnl lib/mononotic.c may require -lrt
555 AC_CHECK_FUNCS([clock_gettime], [],
556 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
560 AC_CHECK_FUNCS([timer_create],
562 [AC_CHECK_LIB([rt], [timer_create], [
565 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
567 AC_SEARCH_LIBS([timer_create], [rt], [
570 REALTIME_LIBS="-lrt -lpthread"
571 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
577 AC_SUBST([REALTIME_LIBS])
579 AS_IF([test x"$have_timer" = xno], [
580 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
584 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
586 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
588 AC_SUBST([RTAS_LIBS])
591 AC_CHECK_MEMBER([struct sockaddr.sa_len],
592 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
593 [#include <sys/types.h>
594 #include <sys/socket.h>])
597 AC_SEARCH_LIBS([socket], [socket],
598 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
599 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
601 AC_SUBST([SOCKET_LIBS])
605 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
606 AS_IF([test x"$have_dirfd" = xno], [
607 AC_CHECK_DECLS([dirfd],
608 [have_dirfd=yes], [have_dirfd=no],
609 [#include <sys/types.h>
610 #include <dirent.h>])
614 AS_IF([test x"$have_dirfd" = xno], [
615 AC_CHECK_MEMBERS([DIR.dd_fd],
616 [have_ddfd=yes], [have_ddfd=no],
617 [#include <sys/types.h>
618 #include <dirent.h>])
621 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes])
624 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
625 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
628 program_invocation_short_name = "test";
631 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
632 [Define if program_invocation_short_name is defined])
638 AC_MSG_CHECKING([whether __progname is defined])
639 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
640 [if (*__progname == 0) return 1;])],
641 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
642 AC_MSG_RESULT([yes]),
645 dnl Static compilation
646 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
648 AC_ARG_ENABLE([static-programs],
649 [AS_HELP_STRING([--enable-static-programs=LIST],
650 [link static the programs in LIST (comma-separated,
651 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
653 AS_CASE([$enable_static_programs],
655 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
657 [enable_static_programs=]
660 dnl Set all the individual AM_CONDITIONALs
661 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
662 AS_CASE([,$enable_static_programs,],
663 [*,UL_PRG,*], [static_[]UL_PRG=yes]
665 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
666 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
667 [test "x$static_[]UL_PRG" = xyes])
671 AC_ARG_ENABLE([all-programs],
672 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
673 [], [enable_all_programs=undefined]
676 AS_CASE([$enable_all_programs],
677 [yes], [AC_MSG_WARN([force to build all programs by default])
678 ul_default_estate=check],
679 [no], [AC_MSG_WARN([disable all programs by default])
680 ul_default_estate=no]
686 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
694 i = sscanf("x", $1, &s);
695 if (i == 1 && *s == 'x')
701 AC_CACHE_VAL([scanf_cv_alloc_modifier],
702 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
703 [scanf_cv_alloc_modifier=ms],
704 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
705 [scanf_cv_alloc_modifier=as],
706 [scanf_cv_alloc_modifier=no]
710 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
714 #if defined(__GLIBC__) && !defined(__UCLIBC__)
716 #if !(__GLIBC_PREREQ(2, 7))
717 #error %m is not available
720 #elif defined(_POSIX_VERSION)
722 #if _POSIX_VERSION < 200809L
723 #error %m is not available
727 #error Your C-library is not supported.
730 [scanf_cv_alloc_modifier=ms],
731 [scanf_cv_alloc_modifier=no])]
735 AC_MSG_CHECKING([scanf string alloc modifiers])
736 AS_CASE([$scanf_cv_alloc_modifier],
738 [AC_MSG_RESULT([(%ms) yes])
739 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
740 have_scanf_alloc_modifier=yes],
742 [AC_MSG_RESULT([(%as) yes])
743 have_scanf_alloc_modifier=yes
744 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
746 have_scanf_alloc_modifier=no]
750 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
753 AS_IF([test "x$with_util" = xno], [
754 AM_CONDITIONAL([HAVE_UTIL], [false])
757 UL_CHECK_LIB([util], [openpty])
760 AS_IF([test "x$have_pty_h" = xyes -a "x$have_sys_signalfd_h" = xyes -a "x$have_util" = xyes], [
761 AM_CONDITIONAL([HAVE_PTY], [true])
762 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
765 AM_CONDITIONAL([HAVE_PTY], [false])
768 AC_CHECK_TYPES([union semun], [], [], [[
771 AC_CHECK_TYPES([loff_t])
774 AC_ARG_ENABLE([widechar],
775 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
776 [], [enable_widechar=check]
778 UL_BUILD_INIT([widechar])
779 UL_REQUIRES_COMPILE([widechar], [[
788 if (w == WEOF) exit(1);
794 AS_IF([test "x$build_widechar" = xyes ], [
795 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
799 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
803 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
805 AC_CHECK_TYPES([sighandler_t], [], [], [[
809 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
813 # on Solaris, you can't mix and match standards, since we use c99
814 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
815 # check for crypt.h and use that without XOPEN_SOURCE.
817 AC_CHECK_HEADERS([crypt.h])
818 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
822 #define _XOPEN_SOURCE
826 char *c = crypt("abc","pw");
832 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
836 #define _XOPEN_SOURCE
840 char *c = crypt("abc","pw");
842 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
846 AC_MSG_WARN([crypt() is not available])
849 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
852 AC_ARG_WITH([selinux],
853 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
854 [], [with_selinux=no]
857 AS_IF([test "x$with_selinux" = xno], [
858 AM_CONDITIONAL([HAVE_SELINUX], [false])
860 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
861 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
862 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
863 AM_CONDITIONAL([HAVE_SELINUX], [true])
867 AS_CASE([$with_selinux:$have_selinux],
868 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
871 AS_IF([test "x$have_selinux" = xyes], [
872 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
873 # This function is missing in old libselinux 1.xx versions
874 AC_CHECK_FUNCS([security_get_initial_context])
878 AC_SUBST([SELINUX_LIBS])
879 AC_SUBST([SELINUX_LIBS_STATIC])
883 AS_HELP_STRING([--with-audit], [compile with audit support]),
887 AS_IF([test "x$with_audit" = xno], [
888 AM_CONDITIONAL([HAVE_AUDIT], [false])
890 UL_CHECK_LIB([audit], [audit_log_user_message])
891 AS_CASE([$with_audit:$have_audit],
893 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
897 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
901 AS_IF([test "x$with_udev" = xno], [
902 AM_CONDITIONAL([HAVE_UDEV], [false])
904 UL_CHECK_LIB([udev], [udev_new])
905 AS_CASE([$with_udev:$have_udev],
907 [AC_MSG_ERROR([udev selected but libudev not found])]
912 dnl wide-char ncurses
913 AC_ARG_WITH([ncursesw],
914 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
915 [], [with_ncursesw=auto]
918 have_ncursesw_header=no
919 AS_IF([test "x$with_ncursesw" != xno], [
920 UL_NCURSES_CHECK([ncursesw])
921 AS_IF([test "x$have_ncursesw" = xyes], [
922 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
923 AC_CHECK_HEADERS([ncursesw/term.h])
925 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
926 # unsuccessful to avoid too many *_H permitations in config.h
927 AS_IF([test "x$have_ncursesw_header" = xno], [
928 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
929 AC_CHECK_HEADERS([term.h])
931 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
933 AS_IF([test "x$have_ncursesw" = xyes], [
934 CURSES_LIB_NAME="ncursesw"
935 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
938 AS_CASE([$with_ncursesw:$have_ncursesw],
939 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
943 AC_ARG_WITH([ncurses],
944 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
945 [], [with_ncurses=auto]
948 have_ncurses_header=no
949 AS_CASE([$with_ncurses:$build_widechar],
950 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
952 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
953 UL_NCURSES_CHECK([ncurses])
954 AS_IF([test "x$have_ncurses" = xyes], [
955 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
956 AC_CHECK_HEADERS([ncurses/term.h])
958 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
959 # unsuccessful to avoid too many *_H permitations in config.h
960 AS_IF([test "x$have_ncurses_header" = xno], [
961 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
962 AC_CHECK_HEADERS([term.h])
964 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
966 AS_IF([test "x$have_ncurses" = xyes], [
967 CURSES_LIB_NAME="ncurses"
968 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
971 AS_CASE([$with_ncurses:$have_ncurses],
972 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
974 AC_SUBST([NCURSES_CFLAGS])
975 AC_SUBST([NCURSES_LIBS])
976 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
980 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
984 AS_IF([test "x$with_slang" = xyes], [
985 AC_CHECK_HEADERS([slang.h slang/slang.h])
986 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
987 [have_slang=yes], [], [
990 #elif defined(HAVE_SLANG_SLANG_H)
991 #include <slang/slang.h>
994 AS_IF([test "x$have_slang" = xno], [
995 AC_MSG_ERROR([slang selected but slcurses.h not found])],
996 [CURSES_LIB_NAME=slang
999 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
1002 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
1003 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1004 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1005 [Define if curses library has the use_default_colors().])
1007 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1008 AC_DEFINE(HAVE_RESIZETERM, 1,
1009 [Define if curses library has the resizeterm().])
1014 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1015 [], [with_tinfo=auto]
1019 AS_IF([test "x$with_tinfo" != xno], [
1020 AS_IF([test "x$have_ncursesw" = xyes], [
1021 UL_TINFO_CHECK([tinfow])
1023 AS_IF([test "x$have_tinfow" = xno], [
1024 UL_TINFO_CHECK([tinfo])
1027 AC_SUBST([TINFO_LIBS])
1028 AC_SUBST([TINFO_LIBS_STATIC])
1029 AC_SUBST([TINFO_CFLAGS])
1030 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes])
1031 AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [
1032 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1036 AC_ARG_WITH([readline],
1037 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1038 [], [with_readline=auto]
1041 AS_IF([test "x$with_readline" = xno], [
1042 AM_CONDITIONAL([HAVE_READLINE], [false])
1044 UL_CHECK_LIB([readline], [readline])
1045 AS_CASE([$with_readline:$have_readline],
1047 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1049 [READLINE_LIBS="-lreadline"
1050 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1053 AC_SUBST([READLINE_LIBS])
1054 AC_SUBST([READLINE_LIBS_STATIC])
1057 AC_ARG_WITH([utempter],
1058 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1059 [], [with_utempter=no]
1062 AS_IF([test "x$with_utempter" = xyes], [
1063 UL_CHECK_LIB([utempter], [utempter_add_record])
1064 AS_IF([test "x$have_utempter" = xno], [
1065 AC_MSG_ERROR([utempter selected but libutempter not found])
1068 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1075 AC_ARG_ENABLE([libuuid],
1076 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1077 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1079 UL_BUILD_INIT([libuuid])
1080 AC_SUBST([LIBUUID_VERSION])
1081 AC_SUBST([LIBUUID_VERSION_INFO])
1082 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1084 AC_ARG_ENABLE([libuuid-force-uuidd],
1085 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1086 [], [enable_libuuid_force_uuidd=no]
1089 AS_IF([test "x$build_libuuid" = xyes], [
1090 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1096 AC_ARG_ENABLE([libblkid],
1097 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1098 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1100 UL_BUILD_INIT([libblkid])
1101 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1102 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1103 AC_SUBST([LIBBLKID_DATE])
1104 AC_SUBST([LIBBLKID_VERSION])
1105 AC_SUBST([LIBBLKID_VERSION_INFO])
1106 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1107 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1108 AS_IF([test "x$build_libblkid" = xyes], [
1109 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1111 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1112 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
1117 AC_ARG_ENABLE([libmount],
1118 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1119 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1121 UL_BUILD_INIT([libmount])
1122 UL_REQUIRES_BUILD([libmount], [libblkid])
1123 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
1124 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1125 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1126 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
1127 AS_IF([test "x$build_libmount" = xyes], [
1128 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1129 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1130 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1132 AC_MSG_WARN([libmount will be compiled without namespaces support])
1136 AC_SUBST([LIBMOUNT_VERSION])
1137 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1138 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1139 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1140 AC_SUBST([LIBMOUNT_VERSION_INFO])
1141 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1143 AC_ARG_ENABLE([libmount-support-mtab],
1144 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1145 [], [enable_libmount_support_mtab=no]
1148 AS_IF([test "x$enable_libmount_support_mtab" = xyes], [
1149 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1155 AC_ARG_ENABLE([libsmartcols],
1156 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1157 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1159 UL_BUILD_INIT([libsmartcols])
1160 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1162 AC_SUBST([LIBSMARTCOLS_VERSION])
1163 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1164 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1170 AC_ARG_ENABLE([libfdisk],
1171 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1172 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1174 UL_BUILD_INIT([libfdisk])
1175 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1176 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1177 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1179 AS_IF([test "x$build_libblkid" = xyes],
1180 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1181 AC_SUBST([LIBFDISK_PC_REQUIRES])
1183 AC_SUBST([LIBFDISK_VERSION])
1184 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1185 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1186 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1187 AC_SUBST([LIBFDISK_VERSION_INFO])
1188 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1191 AC_ARG_ENABLE([fdisks],
1192 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1193 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1195 enable_fdisk=$enable_fdisks
1196 enable_sfdisk=$enable_fdisks
1197 enable_cfdisk=$enable_fdisks
1199 UL_BUILD_INIT([fdisk])
1200 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1201 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1202 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1203 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1204 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1207 UL_BUILD_INIT([sfdisk])
1208 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1209 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1210 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1211 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1212 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1215 UL_BUILD_INIT([cfdisk])
1216 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1217 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1218 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1219 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1220 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1223 AC_ARG_ENABLE([mount],
1224 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1225 [], [UL_DEFAULT_ENABLE([mount], [check])]
1227 UL_BUILD_INIT([mount])
1228 UL_REQUIRES_LINUX([mount])
1229 UL_REQUIRES_BUILD([mount], [libmount])
1230 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1233 AC_ARG_ENABLE([losetup],
1234 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1235 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1237 UL_BUILD_INIT([losetup])
1238 UL_REQUIRES_LINUX([losetup])
1239 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1240 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1242 AC_ARG_ENABLE([zramctl],
1243 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1244 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1246 UL_BUILD_INIT([zramctl])
1247 UL_REQUIRES_LINUX([zramctl])
1248 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1249 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1251 AC_ARG_ENABLE([fsck],
1252 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1253 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1255 UL_BUILD_INIT([fsck])
1256 UL_REQUIRES_BUILD([fsck], [libmount])
1257 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1260 AC_ARG_ENABLE([partx],
1261 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1262 [], [UL_DEFAULT_ENABLE([partx], [check])]
1264 UL_BUILD_INIT([partx])
1265 UL_REQUIRES_LINUX([partx])
1266 UL_REQUIRES_BUILD([partx], [libblkid])
1267 UL_REQUIRES_BUILD([partx], [libsmartcols])
1268 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1271 AC_ARG_ENABLE([uuidd],
1272 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1273 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1275 UL_BUILD_INIT([uuidd])
1276 UL_REQUIRES_BUILD([uuidd], [libuuid])
1277 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1278 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1279 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1280 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1282 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1285 UL_BUILD_INIT([uuidgen], [check])
1286 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1287 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1289 UL_BUILD_INIT([uuidparse], [check])
1290 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1291 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1292 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1294 UL_BUILD_INIT([blkid], [check])
1295 UL_REQUIRES_BUILD([blkid], [libblkid])
1296 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1298 UL_BUILD_INIT([findfs], [check])
1299 UL_REQUIRES_BUILD([findfs], [libblkid])
1300 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1302 AC_ARG_ENABLE([wipefs],
1303 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1304 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1306 UL_BUILD_INIT([wipefs])
1307 UL_REQUIRES_BUILD([wipefs], [libblkid])
1308 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1309 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1311 UL_BUILD_INIT([findmnt], [check])
1312 UL_REQUIRES_BUILD([findmnt], [libmount])
1313 UL_REQUIRES_BUILD([findmnt], [libblkid])
1314 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1315 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1318 AC_ARG_ENABLE([mountpoint],
1319 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1320 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1322 UL_BUILD_INIT([mountpoint])
1323 UL_REQUIRES_BUILD([mountpoint], [libmount])
1324 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1327 AC_ARG_ENABLE([fallocate],
1328 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1329 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1331 UL_BUILD_INIT([fallocate])
1332 UL_REQUIRES_LINUX([fallocate])
1333 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1334 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1336 AS_IF([test "x$build_fallocate" = xyes], [
1337 dnl check for valid fallocate() function
1338 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1339 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1340 dnl and program can't be linked.
1341 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1342 dnl function prototype.
1343 AC_MSG_CHECKING([for valid fallocate() function])
1344 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1345 #ifdef HAVE_UNISTD_H
1346 # include <unistd.h>
1348 #ifdef HAVE_SYS_TYPES_H
1349 # include <sys/types.h>
1351 #ifdef HAVE_LINUX_FALLOC_H
1352 # include <linux/falloc.h>
1359 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1364 AC_MSG_RESULT([yes])
1365 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1366 AC_MSG_RESULT([no])])
1369 AS_IF([test "x$build_fallocate" = xyes], [
1370 dnl check for valid posix_fallocate() function
1371 AC_MSG_CHECKING([for valid posix_fallocate() function])
1372 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1373 #ifdef HAVE_UNISTD_H
1374 # include <unistd.h>
1376 #ifdef HAVE_SYS_TYPES_H
1377 # include <sys/types.h>
1379 #ifdef HAVE_LINUX_FALLOC_H
1380 # include <linux/falloc.h>
1387 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1392 AC_MSG_RESULT([yes])
1393 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1394 AC_MSG_RESULT([no])])
1398 AC_ARG_ENABLE([unshare],
1399 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1400 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1402 UL_BUILD_INIT([unshare])
1403 UL_REQUIRES_LINUX([unshare])
1404 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1405 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1406 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1407 AC_CHECK_FUNCS([unshare])
1409 AC_ARG_ENABLE([nsenter],
1410 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1411 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1413 UL_BUILD_INIT([nsenter])
1414 UL_REQUIRES_LINUX([nsenter])
1415 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1416 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1417 AC_CHECK_FUNCS([setns])
1420 AC_ARG_WITH([cap_ng],
1421 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1422 [], [with_cap_ng=auto]
1424 AS_IF([test "x$with_cap_ng" = xno], [
1425 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1428 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1432 AC_ARG_ENABLE([setpriv],
1433 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1434 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1436 UL_BUILD_INIT([setpriv])
1437 UL_REQUIRES_LINUX([setpriv])
1438 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1439 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1440 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1441 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1443 PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no])
1444 AS_IF([test "x$have_pcre" = xyes ], [
1445 AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available])
1447 AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes])
1449 AC_ARG_ENABLE([hardlink],
1450 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1451 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1453 UL_BUILD_INIT([hardlink])
1454 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1456 AC_ARG_ENABLE([eject],
1457 AS_HELP_STRING([--disable-eject], [do not build eject]),
1458 [], [UL_DEFAULT_ENABLE([eject], [check])]
1460 UL_BUILD_INIT([eject])
1461 UL_REQUIRES_LINUX([eject])
1462 UL_REQUIRES_BUILD([eject], [libmount])
1463 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1466 AC_ARG_ENABLE([agetty],
1467 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1468 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1470 UL_BUILD_INIT([agetty])
1471 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1472 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1473 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1474 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1475 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1477 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1481 AC_ARG_ENABLE([plymouth_support],
1482 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]),
1483 [], [enable_plymouth_support=check]
1485 UL_BUILD_INIT([plymouth_support])
1486 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1487 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1488 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1489 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1490 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1491 AS_IF([test "x$build_plymouth_support" = xyes ], [
1492 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1497 AS_HELP_STRING([--without-libz], [compile without libz]),
1498 [], [with_libz=auto]
1500 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1501 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1505 AC_ARG_ENABLE([cramfs],
1506 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1507 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1509 UL_BUILD_INIT([cramfs])
1510 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1511 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1514 AC_ARG_ENABLE([bfs],
1515 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1516 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1518 UL_BUILD_INIT([bfs])
1519 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1522 AC_ARG_ENABLE([minix],
1523 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1524 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1526 UL_BUILD_INIT([minix])
1527 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1530 AC_ARG_ENABLE([fdformat],
1531 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1532 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1534 UL_BUILD_INIT([fdformat])
1535 UL_REQUIRES_LINUX([fdformat])
1536 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1539 AC_ARG_ENABLE([hwclock],
1540 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1541 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1543 have_linuxdummy=$linux_os
1545 UL_BUILD_INIT([hwclock])
1546 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1547 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1549 AC_ARG_ENABLE([hwclock_cmos],
1550 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1551 [], [enable_hwclock_cmos=check]
1553 UL_BUILD_INIT([hwclock_cmos])
1554 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1555 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1556 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1557 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1558 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1561 AC_ARG_ENABLE([hwclock_gplv3],
1562 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1563 [], [enable_hwclock_gplv3=yes]
1565 AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1566 AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1567 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1571 UL_BUILD_INIT([mkfs], [yes])
1572 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1574 UL_BUILD_INIT([isosize], [yes])
1575 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1578 UL_BUILD_INIT([fstrim], [check])
1579 UL_REQUIRES_LINUX([fstrim])
1580 UL_REQUIRES_BUILD([fstrim], [libmount])
1581 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1584 UL_BUILD_INIT([swapon], [check])
1585 UL_REQUIRES_LINUX([swapon])
1586 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1587 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1588 UL_REQUIRES_BUILD([swapon], [libblkid])
1589 UL_REQUIRES_BUILD([swapon], [libmount])
1590 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1591 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1592 AC_CHECK_FUNCS([swapon])
1593 AC_CHECK_FUNCS([swapoff])
1596 UL_BUILD_INIT([lsblk], [check])
1597 UL_REQUIRES_LINUX([lsblk])
1598 UL_REQUIRES_BUILD([lsblk], [libblkid])
1599 UL_REQUIRES_BUILD([lsblk], [libmount])
1600 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1601 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1604 UL_BUILD_INIT([lscpu], [check])
1605 UL_REQUIRES_LINUX([lscpu])
1606 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1607 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1608 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1611 AC_ARG_ENABLE([lslogins],
1612 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1613 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1615 UL_BUILD_INIT([lslogins])
1616 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1617 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1618 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1619 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1620 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1623 UL_BUILD_INIT([chcpu], [check])
1624 UL_REQUIRES_LINUX([chcpu])
1625 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1626 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1629 AC_ARG_ENABLE([wdctl],
1630 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1631 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1633 UL_BUILD_INIT([wdctl])
1634 UL_REQUIRES_LINUX([wdctl])
1635 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1636 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1637 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1640 UL_BUILD_INIT([swaplabel], [check])
1641 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1642 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1645 UL_BUILD_INIT([mkswap], [yes])
1646 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1647 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1648 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1652 AC_ARG_ENABLE([cal],
1653 AS_HELP_STRING([--disable-cal], [do not build cal]),
1654 [], [UL_DEFAULT_ENABLE([cal], [check])]
1656 UL_BUILD_INIT([cal])
1657 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1659 AC_ARG_ENABLE([logger],
1660 AS_HELP_STRING([--disable-logger], [do not build logger]),
1661 [], [UL_DEFAULT_ENABLE([logger], [check])]
1663 UL_BUILD_INIT([logger])
1664 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1666 UL_BUILD_INIT([look], [yes])
1667 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1669 UL_BUILD_INIT([mcookie], [yes])
1670 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1672 UL_BUILD_INIT([namei], [yes])
1673 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1675 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1676 if test "x$matriplet" != "x"; then
1677 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1678 ["Multi-arch triplet for whereis library search path"])
1680 UL_BUILD_INIT([whereis], [yes])
1681 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1683 UL_BUILD_INIT([getopt], [yes])
1684 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1687 UL_BUILD_INIT([blockdev], [check])
1688 UL_REQUIRES_LINUX([blockdev])
1689 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1692 UL_BUILD_INIT([prlimit], [check])
1693 UL_REQUIRES_LINUX([prlimit])
1694 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1695 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1696 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1697 AS_IF([test "x$build_prlimit" = xyes], [
1698 AC_CHECK_FUNCS([prlimit])
1702 UL_BUILD_INIT([lslocks], [check])
1703 UL_REQUIRES_LINUX([lslocks])
1704 UL_REQUIRES_BUILD([lslocks], [libmount])
1705 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1706 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1709 AC_ARG_ENABLE([switch_root],
1710 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1711 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1713 UL_BUILD_INIT([switch_root])
1714 UL_REQUIRES_LINUX([switch_root])
1715 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1716 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1717 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1720 AC_ARG_ENABLE([pivot_root],
1721 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1722 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1724 UL_BUILD_INIT([pivot_root])
1725 UL_REQUIRES_LINUX([pivot_root])
1726 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1727 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1730 UL_BUILD_INIT([flock], [check])
1731 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1732 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1735 AC_ARG_ENABLE([lsmem],
1736 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1737 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1739 UL_BUILD_INIT([lsmem])
1740 UL_REQUIRES_LINUX([lsmem])
1741 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1742 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1745 AC_ARG_ENABLE([chmem],
1746 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1747 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1749 UL_BUILD_INIT([chmem])
1750 UL_REQUIRES_LINUX([chmem])
1751 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1753 UL_BUILD_INIT([ipcmk], [yes])
1754 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1757 AC_ARG_ENABLE([ipcrm],
1758 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1759 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1761 UL_BUILD_INIT([ipcrm])
1762 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1764 AC_ARG_ENABLE([ipcs],
1765 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1766 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1768 UL_BUILD_INIT([ipcs])
1769 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1772 AC_ARG_ENABLE([irqtop],
1773 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
1774 [], [UL_DEFAULT_ENABLE([irqtop], [yes])]
1776 UL_BUILD_INIT([irqtop])
1777 UL_REQUIRES_LINUX([irqtop])
1778 UL_REQUIRES_BUILD([irqtop], [libsmartcols])
1779 UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
1780 UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1781 AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
1783 AC_ARG_ENABLE([lsirq],
1784 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
1785 [], [UL_DEFAULT_ENABLE([lsirq], [yes])]
1787 UL_BUILD_INIT([lsirq])
1788 UL_REQUIRES_LINUX([lsirq])
1789 UL_REQUIRES_BUILD([lsirq], [libsmartcols])
1790 AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
1793 UL_BUILD_INIT([choom], [check])
1794 UL_REQUIRES_LINUX([choom])
1795 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
1797 UL_BUILD_INIT([lsipc], [check])
1798 UL_REQUIRES_LINUX([lsipc])
1799 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1800 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1802 UL_BUILD_INIT([lsns], [check])
1803 UL_REQUIRES_LINUX([lsns])
1804 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1805 UL_REQUIRES_BUILD([lsns], [libmount])
1806 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1808 UL_BUILD_INIT([renice], [yes])
1809 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1812 AC_ARG_ENABLE([rfkill],
1813 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
1814 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
1816 UL_BUILD_INIT([rfkill])
1817 UL_REQUIRES_LINUX([rfkill])
1818 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
1819 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
1822 UL_BUILD_INIT([setsid], [yes])
1823 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1825 UL_BUILD_INIT([readprofile], [check])
1826 UL_REQUIRES_LINUX([readprofile])
1827 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1829 UL_BUILD_INIT([dmesg], [check])
1830 UL_REQUIRES_LINUX([dmesg])
1831 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1833 UL_BUILD_INIT([ctrlaltdel], [check])
1834 UL_REQUIRES_LINUX([ctrlaltdel])
1835 dnl we assume reboot() to be the 1-argument variant, because even considering
1836 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1837 dnl reboot() with multiple arguments is yet only found in glibc versions
1838 dnl earlier than 2.x.
1839 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1840 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1842 UL_BUILD_INIT([fincore], [check])
1843 UL_REQUIRES_LINUX([fincore])
1844 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1845 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1847 UL_BUILD_INIT([fsfreeze], [check])
1848 UL_REQUIRES_LINUX([fsfreeze])
1849 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1851 UL_BUILD_INIT([blkdiscard], [check])
1852 UL_REQUIRES_LINUX([blkdiscard])
1853 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1855 UL_BUILD_INIT([blkzone], [check])
1856 UL_REQUIRES_LINUX([blkzone])
1857 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1858 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1860 UL_BUILD_INIT([ldattach], [check])
1861 UL_REQUIRES_LINUX([ldattach])
1862 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1864 UL_BUILD_INIT([rtcwake], [check])
1865 UL_REQUIRES_LINUX([rtcwake])
1866 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1868 UL_BUILD_INIT([setarch], [check])
1869 UL_REQUIRES_LINUX([setarch])
1870 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1872 UL_BUILD_INIT([script], [check])
1873 UL_REQUIRES_HAVE([script], [pty])
1874 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1876 UL_BUILD_INIT([scriptreplay], [yes])
1877 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1879 UL_BUILD_INIT([scriptlive], [check])
1880 UL_REQUIRES_HAVE([scriptlive], [pty])
1881 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
1883 UL_BUILD_INIT([col], [yes])
1884 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1886 UL_BUILD_INIT([colcrt], [yes])
1887 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1889 UL_BUILD_INIT([colrm], [yes])
1890 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1892 UL_BUILD_INIT([column], [check])
1893 UL_REQUIRES_BUILD([column], [libsmartcols])
1894 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1896 UL_BUILD_INIT([hexdump], [yes])
1897 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1899 UL_BUILD_INIT([rev], [yes])
1900 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1903 AC_ARG_ENABLE([tunelp],
1904 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1905 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1907 UL_BUILD_INIT([tunelp])
1908 UL_REQUIRES_LINUX([tunelp])
1909 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1912 AC_ARG_ENABLE([kill],
1913 AS_HELP_STRING([--disable-kill], [do not build kill]),
1914 [], [UL_DEFAULT_ENABLE([kill], [check])]
1916 UL_BUILD_INIT([kill])
1917 UL_REQUIRES_LINUX([kill])
1918 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1921 AC_ARG_ENABLE([last],
1922 AS_HELP_STRING([--disable-last], [do not build last]),
1923 [], [UL_DEFAULT_ENABLE([last], [check])]
1925 UL_BUILD_INIT([last])
1926 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1927 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
1928 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1931 AC_ARG_ENABLE([utmpdump],
1932 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1933 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1935 UL_BUILD_INIT([utmpdump])
1936 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1937 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
1938 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1941 AC_ARG_ENABLE([line],
1942 AS_HELP_STRING([--enable-line], [build line]),
1943 [], [UL_DEFAULT_ENABLE([line], [no])]
1945 UL_BUILD_INIT([line])
1946 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1949 AC_ARG_ENABLE([mesg],
1950 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1951 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1953 UL_BUILD_INIT([mesg])
1954 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1957 AC_ARG_ENABLE([raw],
1958 AS_HELP_STRING([--disable-raw], [do not build raw]),
1959 [], [UL_DEFAULT_ENABLE([raw], [check])]
1961 UL_BUILD_INIT([raw])
1962 UL_REQUIRES_LINUX([raw])
1963 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1964 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1967 AC_ARG_ENABLE([rename],
1968 AS_HELP_STRING([--disable-rename], [do not build rename]),
1969 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1971 UL_BUILD_INIT([rename])
1972 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1975 AC_ARG_ENABLE([vipw],
1976 AS_HELP_STRING([--enable-vipw], [build vipw]),
1977 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1979 UL_BUILD_INIT([vipw])
1980 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1981 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1984 AC_ARG_ENABLE([newgrp],
1985 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1986 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1988 UL_BUILD_INIT([newgrp])
1989 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
1990 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1993 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1994 [], [with_user=check]
1997 AS_IF([test "x$with_user" != xno], [
1998 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1999 AS_CASE([$with_user:$have_user],
2001 [AC_MSG_ERROR([user selected but libuser not found])],
2003 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2005 # temporary solution, libuser has stupid .pc where are exported all
2006 # private dependencies to Requires: instead of Requires.private:
2007 AS_IF([test "x$have_user" = xyes], [
2011 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
2013 AC_ARG_ENABLE([chfn-chsh-password],
2014 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
2015 [], [enable_chfn_chsh_password=yes]
2018 AC_ARG_ENABLE([chfn-chsh],
2019 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
2020 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
2022 UL_BUILD_INIT([chfn_chsh])
2023 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
2024 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
2026 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
2027 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
2028 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
2030 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2031 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
2033 AC_ARG_ENABLE([chsh-only-listed],
2034 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2035 [], enable_chsh_only_listed=yes
2038 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2039 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2043 AC_ARG_ENABLE([login],
2044 AS_HELP_STRING([--disable-login], [do not build login]),
2045 [], [UL_DEFAULT_ENABLE([login], [check])]
2047 UL_BUILD_INIT([login])
2048 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2049 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2050 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2051 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2052 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2054 AC_ARG_ENABLE([login-chown-vcs],
2055 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2056 [], [enable_login_chown_vcs=no]
2059 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2060 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2063 AC_ARG_ENABLE([login-stat-mail],
2064 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2065 [], [enable_login_stat_mail=no]
2068 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2069 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2073 AC_ARG_ENABLE([nologin],
2074 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2075 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2077 UL_BUILD_INIT([nologin])
2078 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2081 AC_ARG_ENABLE([sulogin],
2082 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2083 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2085 UL_BUILD_INIT([sulogin])
2086 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2087 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2088 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2092 AS_HELP_STRING([--disable-su], [do not build su]),
2093 [], [UL_DEFAULT_ENABLE([su], [check])]
2096 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2097 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2098 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2099 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2102 AC_ARG_ENABLE([runuser],
2103 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2104 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2106 UL_BUILD_INIT([runuser])
2107 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2108 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2109 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2110 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2114 AS_HELP_STRING([--disable-ul], [do not build ul]),
2115 [], [UL_DEFAULT_ENABLE([ul], [check])]
2118 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2119 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2122 AC_ARG_ENABLE([more],
2123 AS_HELP_STRING([--disable-more], [do not build more]),
2124 [], [UL_DEFAULT_ENABLE([more], [check])]
2126 UL_BUILD_INIT([more])
2127 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2128 UL_REQUIRES_LINUX([more])
2129 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2133 AS_HELP_STRING([--enable-pg], [build pg]),
2134 [], [UL_DEFAULT_ENABLE([pg], [no])]
2137 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2138 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2141 AC_ARG_ENABLE([setterm],
2142 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2143 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2145 UL_BUILD_INIT([setterm])
2146 UL_REQUIRES_LINUX([setterm])
2147 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2148 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2150 # build_schedutils= is just configure-only variable to control
2151 # ionice, taskset and chrt
2152 AC_ARG_ENABLE([schedutils],
2153 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2154 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2158 UL_ENABLE_ALIAS([ionice], [schedutils])
2159 UL_BUILD_INIT([ionice])
2160 UL_REQUIRES_SYSCALL_CHECK([ionice],
2161 [UL_CHECK_SYSCALL([ioprio_set],
2172 UL_REQUIRES_SYSCALL_CHECK([ionice],
2173 [UL_CHECK_SYSCALL([ioprio_get],
2184 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2187 UL_ENABLE_ALIAS([taskset], [schedutils])
2188 UL_BUILD_INIT([taskset])
2189 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2190 UL_REQUIRES_SYSCALL_CHECK([taskset],
2191 [UL_CHECK_SYSCALL([sched_getaffinity])],
2192 [sched_getaffinity])
2193 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2197 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2198 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2200 UL_ENABLE_ALIAS([chrt], [schedutils])
2201 UL_BUILD_INIT([chrt])
2202 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2203 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2205 AS_IF([test "x$build_chrt" = xyes], [
2206 UL_CHECK_SYSCALL([sched_setattr])
2210 AC_ARG_ENABLE([wall],
2211 AS_HELP_STRING([--disable-wall], [do not build wall]),
2212 [], [UL_DEFAULT_ENABLE([wall], [check])]
2214 UL_BUILD_INIT([wall])
2215 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2216 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2219 AC_ARG_ENABLE([write],
2220 AS_HELP_STRING([--enable-write], [build write]),
2221 [], [UL_DEFAULT_ENABLE([write], [no])]
2223 UL_BUILD_INIT([write])
2224 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2225 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2226 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2229 AC_ARG_WITH([btrfs],
2230 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2231 [], [with_btrfs=check]
2234 AS_IF([test "x$with_btrfs" != xno], [
2235 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2237 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2239 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2242 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2245 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2248 AC_ARG_WITH([systemd],
2249 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2250 [], [with_systemd=check]
2254 AS_IF([test "x$with_systemd" != xno], [
2255 # new version -- all libsystemd-* libs merged into libsystemd
2256 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2258 AS_IF([test "x$have_systemd" != "xyes"], [
2259 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2260 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2261 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2262 [have_systemd_journal=yes], [have_systemd_journal=no])
2263 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2266 AS_CASE([$with_systemd:$have_systemd],
2268 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2270 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2273 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2276 AC_ARG_WITH([systemdsystemunitdir],
2277 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2278 [], [with_systemdsystemunitdir=check]
2280 AS_IF([test "x$with_systemdsystemunitdir" = xcheck], [
2281 AS_IF([test "x$have_systemd" = xyes], [
2282 with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
2284 with_systemdsystemunitdir=no
2287 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2288 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2292 AC_ARG_WITH([smack],
2293 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2296 AS_IF([test "x$with_smack" = xyes], [
2297 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2301 AC_ARG_WITH([bashcompletiondir],
2302 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2304 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2305 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2307 with_bashcompletiondir=${datadir}/bash-completion/completions
2310 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2312 AC_ARG_ENABLE([bash-completion],
2313 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2314 [], [enable_bash_completion=yes]
2317 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2320 AC_ARG_WITH([python],
2321 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2322 [], [with_python=check withval=check]
2327 AS_IF([test "x$with_python" != xno], [
2328 # We follow distributions default and look for PKG module name "python"
2329 # (minimal version is 2) but if major version is explicitly specified by
2330 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2332 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2333 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2335 # check for python interpreter
2336 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2337 AS_CASE([$with_python:$have_python],
2339 [AC_MSG_ERROR([python selected but python interpreter not found])],
2341 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2343 # check for python development stuff
2344 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2345 [have_libpython=yes], [have_libpython=no])]
2350 AC_ARG_ENABLE([pylibmount],
2351 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2352 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2354 UL_BUILD_INIT([pylibmount])
2355 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2356 UL_REQUIRES_BUILD([pylibmount], [libmount])
2357 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2359 # We need to introduce a verbatim dependency into the Makefile, without automake
2360 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2361 verbatim_pylibmount_dependency='
2363 # pylibmountexec module must be installed after usrlib_exec libraries,
2364 # otherwise the libtool relink step will fail to find libmount.la and
2365 # will try -lmount which is possibly not available.
2366 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2369 AC_SUBST([verbatim_pylibmount_dependency])
2370 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2372 AC_ARG_ENABLE([pg-bell],
2373 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2374 [], [enable_pg_bell=yes]
2377 AS_IF([test "x$enable_pg_bell" = xyes], [
2378 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2382 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2383 AC_ARG_ENABLE([fs-paths-default],
2384 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2385 [AS_CASE([$enableval],
2386 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2387 [no], [fs_paths_defaults=""],
2388 [fs_paths_defaults="$enableval"]
2390 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2392 AC_ARG_ENABLE([fs-paths-extra],
2393 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2394 [AS_CASE([$enableval],
2395 [yes|no], [fs_paths_extra=""],
2396 [fs_paths_extra="$enableval"]
2400 fs_paths="$fs_paths_defaults"
2401 AS_IF([test "x$fs_paths_extra" != "x"], [
2402 AS_IF([test "x$fs_paths" != "x"], [
2403 fs_paths="${fs_paths}:"
2405 fs_paths="${fs_paths}${fs_paths_extra}"
2407 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2410 AC_ARG_ENABLE([use-tty-group],
2411 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2412 [], [enable_use_tty_group=yes]
2414 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2416 AS_IF([test "x$enable_use_tty_group" = xyes], [
2417 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2421 AC_ARG_ENABLE([sulogin-emergency-mount],
2422 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2423 [use emergency mount of /dev and /proc for sulogin]),
2424 [], [enable_sulogin_emergency_mount=no]
2427 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2428 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2429 [Should sulogin use a emergency mount of /dev and /proc?])
2433 AC_ARG_ENABLE([usrdir-path],
2434 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2435 [], [enable_usrdir_path=no]
2438 AS_IF([test "x$enable_usrdir_path" = xyes], [
2439 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2443 AC_ARG_ENABLE([makeinstall-chown],
2444 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2445 [], [enable_makeinstall_chown=yes]
2447 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2450 AC_ARG_ENABLE([makeinstall-setuid],
2451 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2452 [], [enable_makeinstall_setuid=yes]
2454 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2457 AC_ARG_ENABLE([colors-default],
2458 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2459 [], [enable_colors_default=yes]
2461 AS_IF([test "x$enable_colors_default" = xyes], [
2462 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2466 AC_ARG_WITH([cryptsetup],
2467 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2468 [], [with_cryptsetup=no]
2471 AS_IF([test "x$with_cryptsetup" = xno], [
2472 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2474 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2475 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2476 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2477 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
2478 SAVE_CFLAGS="$CFLAGS"
2479 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2481 LIBS="$CRYPTSETUP_LIBS $LIBS"
2482 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
2483 AC_DEFINE_UNQUOTED([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
2485 CFLAGS="$SAVE_CFLAGS"
2487 have_cryptsetup=yes],
2489 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])])
2491 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2492 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2495 AC_SUBST([CRYPTSETUP_LIBS])
2496 AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2499 AC_ARG_VAR([SUID_CFLAGS],
2500 [CFLAGS used for binaries which are usually with the suid bit])
2501 AC_ARG_VAR([SUID_LDFLAGS],
2502 [LDFLAGS used for binaries which are usually with the suid bit])
2504 AC_ARG_VAR([DAEMON_CFLAGS],
2505 [CFLAGS used for binaries which are usually executed as daemons])
2506 AC_ARG_VAR([DAEMON_LDFLAGS],
2507 [LDFLAGS used for binaries which are usually executed as daemons])
2509 AC_ARG_VAR([SOLIB_CFLAGS],
2510 [CFLAGS used for shared libraries])
2511 AC_ARG_VAR([SOLIB_LDFLAGS],
2512 [LDFLAGS used for shared libraries])
2514 AC_ARG_VAR([ADJTIME_PATH],
2515 [Path to hwclock adjtime file, default /etc/adjtime])
2516 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2517 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2523 AC_CONFIG_HEADERS([config.h])
2526 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2531 libblkid/docs/Makefile
2532 libblkid/docs/version.xml
2533 libblkid/src/blkid.h
2534 libfdisk/docs/Makefile
2535 libfdisk/docs/version.xml
2536 libfdisk/src/libfdisk.h
2537 libmount/docs/Makefile
2538 libmount/docs/version.xml
2539 libmount/src/libmount.h
2540 libsmartcols/docs/Makefile
2541 libsmartcols/docs/version.xml
2542 libsmartcols/src/libsmartcols.h
2549 ${PACKAGE} ${VERSION}
2552 exec prefix: ${exec_prefix}
2554 runstatedir: ${runstatedir}
2558 includedir: ${includedir}
2559 usrbin_execdir: ${usrbin_execdir}
2560 usrsbin_execdir: ${usrsbin_execdir}
2561 usrlib_execdir: ${usrlib_execdir}
2565 suid cflags: ${SUID_CFLAGS}
2567 suid ldflags: ${SUID_LDFLAGS}
2568 ASAN enabled: ${enable_asan}
2571 Python version: ${PYTHON_VERSION}
2572 Python libs: ${pyexecdir}
2574 Bash completions: ${with_bashcompletiondir}
2575 Systemd support: ${have_systemd}
2576 Systemd unitdir: ${with_systemdsystemunitdir}
2577 Btrfs support: ${have_btrfs}
2578 Wide-char support: ${build_widechar}
2584 Type 'make' or 'make <utilname>' to compile.