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="14-Jun-2019"
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], [true])],
333 [AM_CONDITIONAL([HAVE_LANGINFO], [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>])
525 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
526 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
527 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
528 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
529 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
530 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
531 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
532 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
534 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
536 have_setns_syscall="yes"
537 UL_CHECK_SYSCALL([setns])
538 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
539 have_setns_syscall="no"
542 AC_CHECK_FUNCS([isnan], [],
543 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
544 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
546 AC_SUBST([MATH_LIBS])
549 dnl lib/mononotic.c may require -lrt
550 AC_CHECK_FUNCS([clock_gettime], [],
551 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
555 AC_CHECK_FUNCS([timer_create],
557 [AC_CHECK_LIB([rt], [timer_create], [
560 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
562 AC_SEARCH_LIBS([timer_create], [rt], [
565 REALTIME_LIBS="-lrt -lpthread"
566 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
572 AC_SUBST([REALTIME_LIBS])
574 AS_IF([test x"$have_timer" = xno], [
575 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
579 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
581 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
583 AC_SUBST([RTAS_LIBS])
586 AC_CHECK_MEMBER([struct sockaddr.sa_len],
587 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
588 [#include <sys/types.h>
589 #include <sys/socket.h>])
592 AC_SEARCH_LIBS([socket], [socket],
593 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
594 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
596 AC_SUBST([SOCKET_LIBS])
600 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
601 AS_IF([test x"$have_dirfd" = xno], [
602 AC_CHECK_DECLS([dirfd],
603 [have_dirfd=yes], [have_dirfd=no],
604 [#include <sys/types.h>
605 #include <dirent.h>])
609 AS_IF([test x"$have_dirfd" = xno], [
610 AC_CHECK_MEMBERS([DIR.dd_fd],
611 [have_ddfd=yes], [have_ddfd=no],
612 [#include <sys/types.h>
613 #include <dirent.h>])
616 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes])
619 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
620 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
623 program_invocation_short_name = "test";
626 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
627 [Define if program_invocation_short_name is defined])
633 AC_MSG_CHECKING([whether __progname is defined])
634 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
635 [if (*__progname == 0) return 1;])],
636 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
637 AC_MSG_RESULT([yes]),
640 dnl Static compilation
641 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
643 AC_ARG_ENABLE([static-programs],
644 [AS_HELP_STRING([--enable-static-programs=LIST],
645 [link static the programs in LIST (comma-separated,
646 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
648 AS_CASE([$enable_static_programs],
650 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
652 [enable_static_programs=]
655 dnl Set all the individual AM_CONDITIONALs
656 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
657 AS_CASE([,$enable_static_programs,],
658 [*,UL_PRG,*], [static_[]UL_PRG=yes]
660 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
661 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
662 [test "x$static_[]UL_PRG" = xyes])
666 AC_ARG_ENABLE([all-programs],
667 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
668 [], [enable_all_programs=undefined]
671 AS_CASE([$enable_all_programs],
672 [yes], [AC_MSG_WARN([force to build all programs by default])
673 ul_default_estate=check],
674 [no], [AC_MSG_WARN([disable all programs by default])
675 ul_default_estate=no]
681 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
689 i = sscanf("x", $1, &s);
690 if (i == 1 && *s == 'x')
696 AC_CACHE_VAL([scanf_cv_alloc_modifier],
697 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
698 [scanf_cv_alloc_modifier=ms],
699 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
700 [scanf_cv_alloc_modifier=as],
701 [scanf_cv_alloc_modifier=no]
705 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
709 #if defined(__GLIBC__) && !defined(__UCLIBC__)
711 #if !(__GLIBC_PREREQ(2, 7))
712 #error %m is not available
715 #elif defined(_POSIX_VERSION)
717 #if _POSIX_VERSION < 200809L
718 #error %m is not available
722 #error Your C-library is not supported.
725 [scanf_cv_alloc_modifier=ms],
726 [scanf_cv_alloc_modifier=no])]
730 AC_MSG_CHECKING([scanf string alloc modifiers])
731 AS_CASE([$scanf_cv_alloc_modifier],
733 [AC_MSG_RESULT([(%ms) yes])
734 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
735 have_scanf_alloc_modifier=yes],
737 [AC_MSG_RESULT([(%as) yes])
738 have_scanf_alloc_modifier=yes
739 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
741 have_scanf_alloc_modifier=no]
745 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
748 AS_IF([test "x$with_util" = xno], [
749 AM_CONDITIONAL([HAVE_UTIL], [false])
752 UL_CHECK_LIB([util], [openpty])
755 AS_IF([test "x$have_pty_h" = xyes -a "x$have_sys_signalfd_h" = xyes -a "x$have_util" = xyes], [
756 AM_CONDITIONAL([HAVE_PTY], [true])
757 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
760 AM_CONDITIONAL([HAVE_PTY], [false])
763 AC_CHECK_TYPES([union semun], [], [], [[
766 AC_CHECK_TYPES([loff_t])
769 AC_ARG_ENABLE([widechar],
770 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
771 [], [enable_widechar=check]
773 UL_BUILD_INIT([widechar])
774 UL_REQUIRES_COMPILE([widechar], [[
783 if (w == WEOF) exit(1);
789 AS_IF([test "x$build_widechar" = xyes ], [
790 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
794 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
798 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
800 AC_CHECK_TYPES([sighandler_t], [], [], [[
804 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
808 # on Solaris, you can't mix and match standards, since we use c99
809 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
810 # check for crypt.h and use that without XOPEN_SOURCE.
812 AC_CHECK_HEADERS([crypt.h])
813 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
817 #define _XOPEN_SOURCE
821 char *c = crypt("abc","pw");
827 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
831 #define _XOPEN_SOURCE
835 char *c = crypt("abc","pw");
837 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
841 AC_MSG_WARN([crypt() is not available])
844 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
847 AC_ARG_WITH([selinux],
848 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
849 [], [with_selinux=no]
852 AS_IF([test "x$with_selinux" = xno], [
853 AM_CONDITIONAL([HAVE_SELINUX], [false])
855 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
856 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
857 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
858 AM_CONDITIONAL([HAVE_SELINUX], [true])
862 AS_CASE([$with_selinux:$have_selinux],
863 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
866 AS_IF([test "x$have_selinux" = xyes], [
867 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
868 # This function is missing in old libselinux 1.xx versions
869 AC_CHECK_FUNCS([security_get_initial_context])
873 AC_SUBST([SELINUX_LIBS])
874 AC_SUBST([SELINUX_LIBS_STATIC])
878 AS_HELP_STRING([--with-audit], [compile with audit support]),
882 AS_IF([test "x$with_audit" = xno], [
883 AM_CONDITIONAL([HAVE_AUDIT], [false])
885 UL_CHECK_LIB([audit], [audit_log_user_message])
886 AS_CASE([$with_audit:$have_audit],
888 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
892 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
896 AS_IF([test "x$with_udev" = xno], [
897 AM_CONDITIONAL([HAVE_UDEV], [false])
899 UL_CHECK_LIB([udev], [udev_new])
900 AS_CASE([$with_udev:$have_udev],
902 [AC_MSG_ERROR([udev selected but libudev not found])]
907 dnl wide-char ncurses
908 AC_ARG_WITH([ncursesw],
909 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
910 [], [with_ncursesw=auto]
913 have_ncursesw_header=no
914 AS_IF([test "x$with_ncursesw" != xno], [
915 UL_NCURSES_CHECK([ncursesw])
916 AS_IF([test "x$have_ncursesw" = xyes], [
917 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
918 AC_CHECK_HEADERS([ncursesw/term.h])
920 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
921 # unsuccessful to avoid too many *_H permitations in config.h
922 AS_IF([test "x$have_ncursesw_header" = xno], [
923 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
924 AC_CHECK_HEADERS([term.h])
926 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
928 AS_IF([test "x$have_ncursesw" = xyes], [
929 CURSES_LIB_NAME="ncursesw"
930 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
933 AS_CASE([$with_ncursesw:$have_ncursesw],
934 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
938 AC_ARG_WITH([ncurses],
939 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
940 [], [with_ncurses=auto]
943 have_ncurses_header=no
944 AS_CASE([$with_ncurses:$build_widechar],
945 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
947 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
948 UL_NCURSES_CHECK([ncurses])
949 AS_IF([test "x$have_ncurses" = xyes], [
950 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
951 AC_CHECK_HEADERS([ncurses/term.h])
953 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
954 # unsuccessful to avoid too many *_H permitations in config.h
955 AS_IF([test "x$have_ncurses_header" = xno], [
956 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
957 AC_CHECK_HEADERS([term.h])
959 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
961 AS_IF([test "x$have_ncurses" = xyes], [
962 CURSES_LIB_NAME="ncurses"
963 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
966 AS_CASE([$with_ncurses:$have_ncurses],
967 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
969 AC_SUBST([NCURSES_CFLAGS])
970 AC_SUBST([NCURSES_LIBS])
971 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
975 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
979 AS_IF([test "x$with_slang" = xyes], [
980 AC_CHECK_HEADERS([slang.h slang/slang.h])
981 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
982 [have_slang=yes], [], [
985 #elif defined(HAVE_SLANG_SLANG_H)
986 #include <slang/slang.h>
989 AS_IF([test "x$have_slang" = xno], [
990 AC_MSG_ERROR([slang selected but slcurses.h not found])],
991 [CURSES_LIB_NAME=slang
994 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
997 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
998 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
999 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1000 [Define if curses library has the use_default_colors().])
1002 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1003 AC_DEFINE(HAVE_RESIZETERM, 1,
1004 [Define if curses library has the resizeterm().])
1009 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1010 [], [with_tinfo=auto]
1014 AS_IF([test "x$with_tinfo" != xno], [
1015 AS_IF([test "x$have_ncursesw" = xyes], [
1016 UL_TINFO_CHECK([tinfow])
1018 AS_IF([test "x$have_tinfow" = xno], [
1019 UL_TINFO_CHECK([tinfo])
1022 AC_SUBST([TINFO_LIBS])
1023 AC_SUBST([TINFO_LIBS_STATIC])
1024 AC_SUBST([TINFO_CFLAGS])
1025 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes])
1026 AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [
1027 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1031 AC_ARG_WITH([readline],
1032 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1033 [], [with_readline=auto]
1036 AS_IF([test "x$with_readline" = xno], [
1037 AM_CONDITIONAL([HAVE_READLINE], [false])
1039 UL_CHECK_LIB([readline], [readline])
1040 AS_CASE([$with_readline:$have_readline],
1042 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1044 [READLINE_LIBS="-lreadline"
1045 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1048 AC_SUBST([READLINE_LIBS])
1049 AC_SUBST([READLINE_LIBS_STATIC])
1052 AC_ARG_WITH([utempter],
1053 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1054 [], [with_utempter=no]
1057 AS_IF([test "x$with_utempter" = xyes], [
1058 UL_CHECK_LIB([utempter], [utempter_add_record])
1059 AS_IF([test "x$have_utempter" = xno], [
1060 AC_MSG_ERROR([utempter selected but libutempter not found])
1063 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1070 AC_ARG_ENABLE([libuuid],
1071 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1072 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1074 UL_BUILD_INIT([libuuid])
1075 AC_SUBST([LIBUUID_VERSION])
1076 AC_SUBST([LIBUUID_VERSION_INFO])
1077 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1079 AC_ARG_ENABLE([libuuid-force-uuidd],
1080 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1081 [], [enable_libuuid_force_uuidd=no]
1084 AS_IF([test "x$build_libuuid" = xyes], [
1085 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1091 AC_ARG_ENABLE([libblkid],
1092 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1093 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1095 UL_BUILD_INIT([libblkid])
1096 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1097 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1098 AC_SUBST([LIBBLKID_DATE])
1099 AC_SUBST([LIBBLKID_VERSION])
1100 AC_SUBST([LIBBLKID_VERSION_INFO])
1101 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1102 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1103 AS_IF([test "x$build_libblkid" = xyes], [
1104 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1106 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1107 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
1112 AC_ARG_ENABLE([libmount],
1113 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1114 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1116 UL_BUILD_INIT([libmount])
1117 UL_REQUIRES_BUILD([libmount], [libblkid])
1118 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
1119 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1120 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1121 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
1122 AS_IF([test "x$build_libmount" = xyes], [
1123 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1124 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1125 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1127 AC_MSG_WARN([libmount will be compiled without namespaces support])
1131 AC_SUBST([LIBMOUNT_VERSION])
1132 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1133 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1134 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1135 AC_SUBST([LIBMOUNT_VERSION_INFO])
1136 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1138 AC_ARG_ENABLE([libmount-support-mtab],
1139 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1140 [], [enable_libmount_support_mtab=no]
1143 AS_IF([test "x$enable_libmount_support_mtab" = xyes], [
1144 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1150 AC_ARG_ENABLE([libsmartcols],
1151 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1152 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1154 UL_BUILD_INIT([libsmartcols])
1155 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1157 AC_SUBST([LIBSMARTCOLS_VERSION])
1158 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1159 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1165 AC_ARG_ENABLE([libfdisk],
1166 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1167 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1169 UL_BUILD_INIT([libfdisk])
1170 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1171 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1172 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1174 AS_IF([test "x$build_libblkid" = xyes],
1175 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1176 AC_SUBST([LIBFDISK_PC_REQUIRES])
1178 AC_SUBST([LIBFDISK_VERSION])
1179 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1180 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1181 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1182 AC_SUBST([LIBFDISK_VERSION_INFO])
1183 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1186 AC_ARG_ENABLE([fdisks],
1187 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1188 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1190 enable_fdisk=$enable_fdisks
1191 enable_sfdisk=$enable_fdisks
1192 enable_cfdisk=$enable_fdisks
1194 UL_BUILD_INIT([fdisk])
1195 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1196 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1197 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1198 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1199 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1202 UL_BUILD_INIT([sfdisk])
1203 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1204 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1205 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1206 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1207 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1210 UL_BUILD_INIT([cfdisk])
1211 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1212 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1213 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1214 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1215 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1218 AC_ARG_ENABLE([mount],
1219 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1220 [], [UL_DEFAULT_ENABLE([mount], [check])]
1222 UL_BUILD_INIT([mount])
1223 UL_REQUIRES_LINUX([mount])
1224 UL_REQUIRES_BUILD([mount], [libmount])
1225 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1228 AC_ARG_ENABLE([losetup],
1229 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1230 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1232 UL_BUILD_INIT([losetup])
1233 UL_REQUIRES_LINUX([losetup])
1234 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1235 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1237 AC_ARG_ENABLE([zramctl],
1238 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1239 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1241 UL_BUILD_INIT([zramctl])
1242 UL_REQUIRES_LINUX([zramctl])
1243 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1244 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1246 AC_ARG_ENABLE([fsck],
1247 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1248 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1250 UL_BUILD_INIT([fsck])
1251 UL_REQUIRES_BUILD([fsck], [libmount])
1252 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1255 AC_ARG_ENABLE([partx],
1256 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1257 [], [UL_DEFAULT_ENABLE([partx], [check])]
1259 UL_BUILD_INIT([partx])
1260 UL_REQUIRES_LINUX([partx])
1261 UL_REQUIRES_BUILD([partx], [libblkid])
1262 UL_REQUIRES_BUILD([partx], [libsmartcols])
1263 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1266 AC_ARG_ENABLE([uuidd],
1267 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1268 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1270 UL_BUILD_INIT([uuidd])
1271 UL_REQUIRES_BUILD([uuidd], [libuuid])
1272 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1273 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1274 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1275 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1277 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1280 UL_BUILD_INIT([uuidgen], [check])
1281 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1282 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1284 UL_BUILD_INIT([uuidparse], [check])
1285 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1286 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1287 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1289 UL_BUILD_INIT([blkid], [check])
1290 UL_REQUIRES_BUILD([blkid], [libblkid])
1291 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1293 UL_BUILD_INIT([findfs], [check])
1294 UL_REQUIRES_BUILD([findfs], [libblkid])
1295 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1297 AC_ARG_ENABLE([wipefs],
1298 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1299 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1301 UL_BUILD_INIT([wipefs])
1302 UL_REQUIRES_BUILD([wipefs], [libblkid])
1303 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1304 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1306 UL_BUILD_INIT([findmnt], [check])
1307 UL_REQUIRES_BUILD([findmnt], [libmount])
1308 UL_REQUIRES_BUILD([findmnt], [libblkid])
1309 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1310 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1313 AC_ARG_ENABLE([mountpoint],
1314 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1315 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1317 UL_BUILD_INIT([mountpoint])
1318 UL_REQUIRES_BUILD([mountpoint], [libmount])
1319 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1322 AC_ARG_ENABLE([fallocate],
1323 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1324 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1326 UL_BUILD_INIT([fallocate])
1327 UL_REQUIRES_LINUX([fallocate])
1328 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1329 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1331 AS_IF([test "x$build_fallocate" = xyes], [
1332 dnl check for valid fallocate() function
1333 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1334 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1335 dnl and program can't be linked.
1336 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1337 dnl function prototype.
1338 AC_MSG_CHECKING([for valid fallocate() function])
1339 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1340 #ifdef HAVE_UNISTD_H
1341 # include <unistd.h>
1343 #ifdef HAVE_SYS_TYPES_H
1344 # include <sys/types.h>
1346 #ifdef HAVE_LINUX_FALLOC_H
1347 # include <linux/falloc.h>
1354 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1359 AC_MSG_RESULT([yes])
1360 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1361 AC_MSG_RESULT([no])])
1364 AS_IF([test "x$build_fallocate" = xyes], [
1365 dnl check for valid posix_fallocate() function
1366 AC_MSG_CHECKING([for valid posix_fallocate() function])
1367 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1368 #ifdef HAVE_UNISTD_H
1369 # include <unistd.h>
1371 #ifdef HAVE_SYS_TYPES_H
1372 # include <sys/types.h>
1374 #ifdef HAVE_LINUX_FALLOC_H
1375 # include <linux/falloc.h>
1382 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1387 AC_MSG_RESULT([yes])
1388 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1389 AC_MSG_RESULT([no])])
1393 AC_ARG_ENABLE([unshare],
1394 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1395 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1397 UL_BUILD_INIT([unshare])
1398 UL_REQUIRES_LINUX([unshare])
1399 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1400 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1401 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1402 AC_CHECK_FUNCS([unshare])
1404 AC_ARG_ENABLE([nsenter],
1405 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1406 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1408 UL_BUILD_INIT([nsenter])
1409 UL_REQUIRES_LINUX([nsenter])
1410 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1411 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1412 AC_CHECK_FUNCS([setns])
1415 AC_ARG_WITH([cap_ng],
1416 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1417 [], [with_cap_ng=auto]
1419 AS_IF([test "x$with_cap_ng" = xno], [
1420 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1423 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1427 AC_ARG_ENABLE([setpriv],
1428 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1429 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1431 UL_BUILD_INIT([setpriv])
1432 UL_REQUIRES_LINUX([setpriv])
1433 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1434 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1435 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1436 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1438 PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no])
1439 AS_IF([test "x$have_pcre" = xyes ], [
1440 AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available])
1442 AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes])
1444 AC_ARG_ENABLE([hardlink],
1445 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1446 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1448 UL_BUILD_INIT([hardlink])
1449 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1451 AC_ARG_ENABLE([eject],
1452 AS_HELP_STRING([--disable-eject], [do not build eject]),
1453 [], [UL_DEFAULT_ENABLE([eject], [check])]
1455 UL_BUILD_INIT([eject])
1456 UL_REQUIRES_LINUX([eject])
1457 UL_REQUIRES_BUILD([eject], [libmount])
1458 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1461 AC_ARG_ENABLE([agetty],
1462 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1463 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1465 UL_BUILD_INIT([agetty])
1466 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1467 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1468 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1469 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1470 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1472 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1476 AC_ARG_ENABLE([plymouth_support],
1477 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]),
1478 [], [enable_plymouth_support=check]
1480 UL_BUILD_INIT([plymouth_support])
1481 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1482 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1483 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1484 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1485 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1486 AS_IF([test "x$build_plymouth_support" = xyes ], [
1487 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1492 AS_HELP_STRING([--without-libz], [compile without libz]),
1493 [], [with_libz=auto]
1495 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1496 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1500 AC_ARG_ENABLE([cramfs],
1501 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1502 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1504 UL_BUILD_INIT([cramfs])
1505 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1506 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1509 AC_ARG_ENABLE([bfs],
1510 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1511 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1513 UL_BUILD_INIT([bfs])
1514 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1517 AC_ARG_ENABLE([minix],
1518 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1519 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1521 UL_BUILD_INIT([minix])
1522 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1525 AC_ARG_ENABLE([fdformat],
1526 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1527 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1529 UL_BUILD_INIT([fdformat])
1530 UL_REQUIRES_LINUX([fdformat])
1531 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1534 AC_ARG_ENABLE([hwclock],
1535 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1536 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1538 have_linuxdummy=$linux_os
1540 UL_BUILD_INIT([hwclock])
1541 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1542 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1544 AC_ARG_ENABLE([hwclock_cmos],
1545 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1546 [], [enable_hwclock_cmos=check]
1548 UL_BUILD_INIT([hwclock_cmos])
1549 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1550 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1551 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1552 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1553 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1557 UL_BUILD_INIT([mkfs], [yes])
1558 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1560 UL_BUILD_INIT([isosize], [yes])
1561 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1564 UL_BUILD_INIT([fstrim], [check])
1565 UL_REQUIRES_LINUX([fstrim])
1566 UL_REQUIRES_BUILD([fstrim], [libmount])
1567 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1570 UL_BUILD_INIT([swapon], [check])
1571 UL_REQUIRES_LINUX([swapon])
1572 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1573 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1574 UL_REQUIRES_BUILD([swapon], [libblkid])
1575 UL_REQUIRES_BUILD([swapon], [libmount])
1576 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1577 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1578 AC_CHECK_FUNCS([swapon])
1579 AC_CHECK_FUNCS([swapoff])
1582 UL_BUILD_INIT([lsblk], [check])
1583 UL_REQUIRES_LINUX([lsblk])
1584 UL_REQUIRES_BUILD([lsblk], [libblkid])
1585 UL_REQUIRES_BUILD([lsblk], [libmount])
1586 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1587 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1590 UL_BUILD_INIT([lscpu], [check])
1591 UL_REQUIRES_LINUX([lscpu])
1592 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1593 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1594 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1597 AC_ARG_ENABLE([lslogins],
1598 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1599 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1601 UL_BUILD_INIT([lslogins])
1602 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1603 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1604 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1605 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1606 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1609 UL_BUILD_INIT([chcpu], [check])
1610 UL_REQUIRES_LINUX([chcpu])
1611 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1612 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1615 AC_ARG_ENABLE([wdctl],
1616 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1617 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1619 UL_BUILD_INIT([wdctl])
1620 UL_REQUIRES_LINUX([wdctl])
1621 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1622 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1623 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1626 UL_BUILD_INIT([swaplabel], [check])
1627 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1628 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1631 UL_BUILD_INIT([mkswap], [yes])
1632 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1633 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1634 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1638 AC_ARG_ENABLE([cal],
1639 AS_HELP_STRING([--disable-cal], [do not build cal]),
1640 [], [UL_DEFAULT_ENABLE([cal], [check])]
1642 UL_BUILD_INIT([cal])
1643 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1645 AC_ARG_ENABLE([logger],
1646 AS_HELP_STRING([--disable-logger], [do not build logger]),
1647 [], [UL_DEFAULT_ENABLE([logger], [check])]
1649 UL_BUILD_INIT([logger])
1650 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1652 UL_BUILD_INIT([look], [yes])
1653 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1655 UL_BUILD_INIT([mcookie], [yes])
1656 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1658 UL_BUILD_INIT([namei], [yes])
1659 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1661 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1662 if test "x$matriplet" != "x"; then
1663 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1664 ["Multi-arch triplet for whereis library search path"])
1666 UL_BUILD_INIT([whereis], [yes])
1667 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1669 UL_BUILD_INIT([getopt], [yes])
1670 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1673 UL_BUILD_INIT([blockdev], [check])
1674 UL_REQUIRES_LINUX([blockdev])
1675 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1678 UL_BUILD_INIT([prlimit], [check])
1679 UL_REQUIRES_LINUX([prlimit])
1680 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1681 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1682 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1683 AS_IF([test "x$build_prlimit" = xyes], [
1684 AC_CHECK_FUNCS([prlimit])
1688 UL_BUILD_INIT([lslocks], [check])
1689 UL_REQUIRES_LINUX([lslocks])
1690 UL_REQUIRES_BUILD([lslocks], [libmount])
1691 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1692 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1695 AC_ARG_ENABLE([switch_root],
1696 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1697 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1699 UL_BUILD_INIT([switch_root])
1700 UL_REQUIRES_LINUX([switch_root])
1701 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1702 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1703 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1706 AC_ARG_ENABLE([pivot_root],
1707 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1708 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1710 UL_BUILD_INIT([pivot_root])
1711 UL_REQUIRES_LINUX([pivot_root])
1712 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1713 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1716 UL_BUILD_INIT([flock], [check])
1717 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1718 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1721 AC_ARG_ENABLE([lsmem],
1722 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1723 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1725 UL_BUILD_INIT([lsmem])
1726 UL_REQUIRES_LINUX([lsmem])
1727 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1728 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1731 AC_ARG_ENABLE([chmem],
1732 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1733 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1735 UL_BUILD_INIT([chmem])
1736 UL_REQUIRES_LINUX([chmem])
1737 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1739 UL_BUILD_INIT([ipcmk], [yes])
1740 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1743 AC_ARG_ENABLE([ipcrm],
1744 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1745 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1747 UL_BUILD_INIT([ipcrm])
1748 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1750 AC_ARG_ENABLE([ipcs],
1751 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1752 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1754 UL_BUILD_INIT([ipcs])
1755 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1757 UL_BUILD_INIT([choom], [check])
1758 UL_REQUIRES_LINUX([choom])
1759 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
1761 UL_BUILD_INIT([lsipc], [check])
1762 UL_REQUIRES_LINUX([lsipc])
1763 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1764 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1766 UL_BUILD_INIT([lsns], [check])
1767 UL_REQUIRES_LINUX([lsns])
1768 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1769 UL_REQUIRES_BUILD([lsns], [libmount])
1770 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1772 UL_BUILD_INIT([renice], [yes])
1773 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1776 AC_ARG_ENABLE([rfkill],
1777 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
1778 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
1780 UL_BUILD_INIT([rfkill])
1781 UL_REQUIRES_LINUX([rfkill])
1782 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
1783 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
1786 UL_BUILD_INIT([setsid], [yes])
1787 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1789 UL_BUILD_INIT([readprofile], [check])
1790 UL_REQUIRES_LINUX([readprofile])
1791 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1793 UL_BUILD_INIT([dmesg], [check])
1794 UL_REQUIRES_LINUX([dmesg])
1795 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1797 UL_BUILD_INIT([ctrlaltdel], [check])
1798 UL_REQUIRES_LINUX([ctrlaltdel])
1799 dnl we assume reboot() to be the 1-argument variant, because even considering
1800 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1801 dnl reboot() with multiple arguments is yet only found in glibc versions
1802 dnl earlier than 2.x.
1803 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1804 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1806 UL_BUILD_INIT([fincore], [check])
1807 UL_REQUIRES_LINUX([fincore])
1808 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1809 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1811 UL_BUILD_INIT([fsfreeze], [check])
1812 UL_REQUIRES_LINUX([fsfreeze])
1813 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1815 UL_BUILD_INIT([blkdiscard], [check])
1816 UL_REQUIRES_LINUX([blkdiscard])
1817 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1819 UL_BUILD_INIT([blkzone], [check])
1820 UL_REQUIRES_LINUX([blkzone])
1821 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1822 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1824 UL_BUILD_INIT([ldattach], [check])
1825 UL_REQUIRES_LINUX([ldattach])
1826 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1828 UL_BUILD_INIT([rtcwake], [check])
1829 UL_REQUIRES_LINUX([rtcwake])
1830 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1832 UL_BUILD_INIT([setarch], [check])
1833 UL_REQUIRES_LINUX([setarch])
1834 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1836 UL_BUILD_INIT([script], [check])
1837 UL_REQUIRES_HAVE([script], [pty])
1838 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1840 UL_BUILD_INIT([scriptreplay], [yes])
1841 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1843 UL_BUILD_INIT([scriptlive], [yes])
1844 UL_REQUIRES_HAVE([scriptlive], [pty])
1845 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
1847 UL_BUILD_INIT([col], [yes])
1848 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1850 UL_BUILD_INIT([colcrt], [yes])
1851 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1853 UL_BUILD_INIT([colrm], [yes])
1854 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1856 UL_BUILD_INIT([column], [check])
1857 UL_REQUIRES_BUILD([column], [libsmartcols])
1858 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1860 UL_BUILD_INIT([hexdump], [yes])
1861 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1863 UL_BUILD_INIT([rev], [yes])
1864 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1867 AC_ARG_ENABLE([tunelp],
1868 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1869 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1871 UL_BUILD_INIT([tunelp])
1872 UL_REQUIRES_LINUX([tunelp])
1873 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1876 AC_ARG_ENABLE([kill],
1877 AS_HELP_STRING([--disable-kill], [do not build kill]),
1878 [], [UL_DEFAULT_ENABLE([kill], [check])]
1880 UL_BUILD_INIT([kill])
1881 UL_REQUIRES_LINUX([kill])
1882 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1885 AC_ARG_ENABLE([last],
1886 AS_HELP_STRING([--disable-last], [do not build last]),
1887 [], [UL_DEFAULT_ENABLE([last], [check])]
1889 UL_BUILD_INIT([last])
1890 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1891 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
1892 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1895 AC_ARG_ENABLE([utmpdump],
1896 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1897 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1899 UL_BUILD_INIT([utmpdump])
1900 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1901 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
1902 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1905 AC_ARG_ENABLE([line],
1906 AS_HELP_STRING([--enable-line], [build line]),
1907 [], [UL_DEFAULT_ENABLE([line], [no])]
1909 UL_BUILD_INIT([line])
1910 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1913 AC_ARG_ENABLE([mesg],
1914 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1915 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1917 UL_BUILD_INIT([mesg])
1918 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1921 AC_ARG_ENABLE([raw],
1922 AS_HELP_STRING([--disable-raw], [do not build raw]),
1923 [], [UL_DEFAULT_ENABLE([raw], [check])]
1925 UL_BUILD_INIT([raw])
1926 UL_REQUIRES_LINUX([raw])
1927 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1928 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1931 AC_ARG_ENABLE([rename],
1932 AS_HELP_STRING([--disable-rename], [do not build rename]),
1933 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1935 UL_BUILD_INIT([rename])
1936 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1939 AC_ARG_ENABLE([vipw],
1940 AS_HELP_STRING([--enable-vipw], [build vipw]),
1941 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1943 UL_BUILD_INIT([vipw])
1944 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1945 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1948 AC_ARG_ENABLE([newgrp],
1949 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1950 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1952 UL_BUILD_INIT([newgrp])
1953 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
1954 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1957 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1958 [], [with_user=check]
1961 AS_IF([test "x$with_user" != xno], [
1962 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1963 AS_CASE([$with_user:$have_user],
1965 [AC_MSG_ERROR([user selected but libuser not found])],
1967 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1969 # temporary solution, libuser has stupid .pc where are exported all
1970 # private dependencies to Requires: instead of Requires.private:
1971 AS_IF([test "x$have_user" = xyes], [
1975 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1977 AC_ARG_ENABLE([chfn-chsh-password],
1978 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1979 [], [enable_chfn_chsh_password=yes]
1982 AC_ARG_ENABLE([chfn-chsh],
1983 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1984 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1986 UL_BUILD_INIT([chfn_chsh])
1987 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1988 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
1990 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1991 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1992 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1994 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1995 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1997 AC_ARG_ENABLE([chsh-only-listed],
1998 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1999 [], enable_chsh_only_listed=yes
2002 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2003 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2007 AC_ARG_ENABLE([login],
2008 AS_HELP_STRING([--disable-login], [do not build login]),
2009 [], [UL_DEFAULT_ENABLE([login], [check])]
2011 UL_BUILD_INIT([login])
2012 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2013 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2014 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2015 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2016 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2018 AC_ARG_ENABLE([login-chown-vcs],
2019 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2020 [], [enable_login_chown_vcs=no]
2023 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2024 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2027 AC_ARG_ENABLE([login-stat-mail],
2028 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2029 [], [enable_login_stat_mail=no]
2032 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2033 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2037 AC_ARG_ENABLE([nologin],
2038 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2039 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2041 UL_BUILD_INIT([nologin])
2042 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2045 AC_ARG_ENABLE([sulogin],
2046 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2047 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2049 UL_BUILD_INIT([sulogin])
2050 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2051 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2052 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2056 AS_HELP_STRING([--disable-su], [do not build su]),
2057 [], [UL_DEFAULT_ENABLE([su], [check])]
2060 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2061 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2062 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2063 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2066 AC_ARG_ENABLE([runuser],
2067 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2068 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2070 UL_BUILD_INIT([runuser])
2071 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2072 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2073 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2074 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2078 AS_HELP_STRING([--disable-ul], [do not build ul]),
2079 [], [UL_DEFAULT_ENABLE([ul], [check])]
2082 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2083 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2086 AC_ARG_ENABLE([more],
2087 AS_HELP_STRING([--disable-more], [do not build more]),
2088 [], [UL_DEFAULT_ENABLE([more], [check])]
2090 UL_BUILD_INIT([more])
2091 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2092 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2096 AS_HELP_STRING([--enable-pg], [build pg]),
2097 [], [UL_DEFAULT_ENABLE([pg], [no])]
2100 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2101 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2104 AC_ARG_ENABLE([setterm],
2105 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2106 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2108 UL_BUILD_INIT([setterm])
2109 UL_REQUIRES_LINUX([setterm])
2110 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2111 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2113 # build_schedutils= is just configure-only variable to control
2114 # ionice, taskset and chrt
2115 AC_ARG_ENABLE([schedutils],
2116 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2117 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2121 UL_ENABLE_ALIAS([ionice], [schedutils])
2122 UL_BUILD_INIT([ionice])
2123 UL_REQUIRES_SYSCALL_CHECK([ionice],
2124 [UL_CHECK_SYSCALL([ioprio_set],
2135 UL_REQUIRES_SYSCALL_CHECK([ionice],
2136 [UL_CHECK_SYSCALL([ioprio_get],
2147 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2150 UL_ENABLE_ALIAS([taskset], [schedutils])
2151 UL_BUILD_INIT([taskset])
2152 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2153 UL_REQUIRES_SYSCALL_CHECK([taskset],
2154 [UL_CHECK_SYSCALL([sched_getaffinity])],
2155 [sched_getaffinity])
2156 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2160 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2161 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2163 UL_ENABLE_ALIAS([chrt], [schedutils])
2164 UL_BUILD_INIT([chrt])
2165 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2166 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2168 AS_IF([test "x$build_chrt" = xyes], [
2169 UL_CHECK_SYSCALL([sched_setattr])
2173 AC_ARG_ENABLE([wall],
2174 AS_HELP_STRING([--disable-wall], [do not build wall]),
2175 [], [UL_DEFAULT_ENABLE([wall], [check])]
2177 UL_BUILD_INIT([wall])
2178 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2179 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2182 AC_ARG_ENABLE([write],
2183 AS_HELP_STRING([--enable-write], [build write]),
2184 [], [UL_DEFAULT_ENABLE([write], [no])]
2186 UL_BUILD_INIT([write])
2187 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2188 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2189 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2192 AC_ARG_WITH([btrfs],
2193 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2194 [], [with_btrfs=check]
2197 AS_IF([test "x$with_btrfs" != xno], [
2198 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2200 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2202 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2205 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2208 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2211 AC_ARG_WITH([systemd],
2212 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2213 [], [with_systemd=check]
2217 AS_IF([test "x$with_systemd" != xno], [
2218 # new version -- all libsystemd-* libs merged into libsystemd
2219 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2221 AS_IF([test "x$have_systemd" != "xyes"], [
2222 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2223 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2224 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2225 [have_systemd_journal=yes], [have_systemd_journal=no])
2226 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2229 AS_CASE([$with_systemd:$have_systemd],
2231 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2233 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2236 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2239 AC_ARG_WITH([systemdsystemunitdir],
2240 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2241 [], [with_systemdsystemunitdir=check]
2243 AS_IF([test "x$with_systemdsystemunitdir" = xcheck], [
2244 AS_IF([test "x$have_systemd" = xyes], [
2245 with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
2247 with_systemdsystemunitdir=no
2250 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2251 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2255 AC_ARG_WITH([smack],
2256 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2259 AS_IF([test "x$with_smack" = xyes], [
2260 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2264 AC_ARG_WITH([bashcompletiondir],
2265 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2267 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2268 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2270 with_bashcompletiondir=${datadir}/bash-completion/completions
2273 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2275 AC_ARG_ENABLE([bash-completion],
2276 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2277 [], [enable_bash_completion=yes]
2280 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2283 AC_ARG_WITH([python],
2284 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2285 [], [with_python=check withval=check]
2290 AS_IF([test "x$with_python" != xno], [
2291 # We follow distributions default and look for PKG module name "python"
2292 # (minimal version is 2) but if major version is explicitly specified by
2293 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2295 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2296 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2298 # check for python interpreter
2299 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2300 AS_CASE([$with_python:$have_python],
2302 [AC_MSG_ERROR([python selected but python interpreter not found])],
2304 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2306 # check for python development stuff
2307 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2308 [have_libpython=yes], [have_libpython=no])]
2313 AC_ARG_ENABLE([pylibmount],
2314 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2315 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2317 UL_BUILD_INIT([pylibmount])
2318 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2319 UL_REQUIRES_BUILD([pylibmount], [libmount])
2320 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2322 # We need to introduce a verbatim dependency into the Makefile, without automake
2323 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2324 verbatim_pylibmount_dependency='
2326 # pylibmountexec module must be installed after usrlib_exec libraries,
2327 # otherwise the libtool relink step will fail to find libmount.la and
2328 # will try -lmount which is possibly not available.
2329 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2332 AC_SUBST([verbatim_pylibmount_dependency])
2333 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2335 AC_ARG_ENABLE([pg-bell],
2336 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2337 [], [enable_pg_bell=yes]
2340 AS_IF([test "x$enable_pg_bell" = xyes], [
2341 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2345 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2346 AC_ARG_ENABLE([fs-paths-default],
2347 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2348 [AS_CASE([$enableval],
2349 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2350 [no], [fs_paths_defaults=""],
2351 [fs_paths_defaults="$enableval"]
2353 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2355 AC_ARG_ENABLE([fs-paths-extra],
2356 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2357 [AS_CASE([$enableval],
2358 [yes|no], [fs_paths_extra=""],
2359 [fs_paths_extra="$enableval"]
2363 fs_paths="$fs_paths_defaults"
2364 AS_IF([test "x$fs_paths_extra" != "x"], [
2365 AS_IF([test "x$fs_paths" != "x"], [
2366 fs_paths="${fs_paths}:"
2368 fs_paths="${fs_paths}${fs_paths_extra}"
2370 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2373 AC_ARG_ENABLE([use-tty-group],
2374 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2375 [], [enable_use_tty_group=yes]
2377 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2379 AS_IF([test "x$enable_use_tty_group" = xyes], [
2380 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2384 AC_ARG_ENABLE([sulogin-emergency-mount],
2385 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2386 [use emergency mount of /dev and /proc for sulogin]),
2387 [], [enable_sulogin_emergency_mount=no]
2390 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2391 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2392 [Should sulogin use a emergency mount of /dev and /proc?])
2396 AC_ARG_ENABLE([usrdir-path],
2397 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2398 [], [enable_usrdir_path=no]
2401 AS_IF([test "x$enable_usrdir_path" = xyes], [
2402 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2406 AC_ARG_ENABLE([makeinstall-chown],
2407 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2408 [], [enable_makeinstall_chown=yes]
2410 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2413 AC_ARG_ENABLE([makeinstall-setuid],
2414 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2415 [], [enable_makeinstall_setuid=yes]
2417 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2420 AC_ARG_ENABLE([colors-default],
2421 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2422 [], [enable_colors_default=yes]
2424 AS_IF([test "x$enable_colors_default" = xyes], [
2425 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2429 AC_ARG_VAR([SUID_CFLAGS],
2430 [CFLAGS used for binaries which are usually with the suid bit])
2431 AC_ARG_VAR([SUID_LDFLAGS],
2432 [LDFLAGS used for binaries which are usually with the suid bit])
2434 AC_ARG_VAR([DAEMON_CFLAGS],
2435 [CFLAGS used for binaries which are usually executed as daemons])
2436 AC_ARG_VAR([DAEMON_LDFLAGS],
2437 [LDFLAGS used for binaries which are usually executed as daemons])
2439 AC_ARG_VAR([SOLIB_CFLAGS],
2440 [CFLAGS used for shared libraries])
2441 AC_ARG_VAR([SOLIB_LDFLAGS],
2442 [LDFLAGS used for shared libraries])
2444 AC_ARG_VAR([ADJTIME_PATH],
2445 [Path to hwclock adjtime file, default /etc/adjtime])
2446 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2447 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2453 AC_CONFIG_HEADERS([config.h])
2456 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2461 libblkid/docs/Makefile
2462 libblkid/docs/version.xml
2463 libblkid/src/blkid.h
2464 libfdisk/docs/Makefile
2465 libfdisk/docs/version.xml
2466 libfdisk/src/libfdisk.h
2467 libmount/docs/Makefile
2468 libmount/docs/version.xml
2469 libmount/src/libmount.h
2470 libsmartcols/docs/Makefile
2471 libsmartcols/docs/version.xml
2472 libsmartcols/src/libsmartcols.h
2479 ${PACKAGE} ${VERSION}
2482 exec prefix: ${exec_prefix}
2484 runstatedir: ${runstatedir}
2488 includedir: ${includedir}
2489 usrbin_execdir: ${usrbin_execdir}
2490 usrsbin_execdir: ${usrsbin_execdir}
2491 usrlib_execdir: ${usrlib_execdir}
2495 suid cflags: ${SUID_CFLAGS}
2497 suid ldflags: ${SUID_LDFLAGS}
2498 ASAN enabled: ${enable_asan}
2501 Python version: ${PYTHON_VERSION}
2502 Python libs: ${pyexecdir}
2504 Bash completions: ${with_bashcompletiondir}
2505 Systemd support: ${have_systemd}
2506 Systemd unitdir: ${with_systemdsystemunitdir}
2507 Btrfs support: ${have_btrfs}
2508 Wide-char support: ${build_widechar}
2514 Type 'make' or 'make <utilname>' to compile.