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 dist-bzip2 no-dist-gzip dist-xz -Wno-portability subdir-objects])
16 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
17 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
19 AC_CONFIG_SRCDIR([sys-utils/mount.c])
20 AC_PREFIX_DEFAULT([/usr])
22 dnl version details from <major>.<minor>[-<suffix>]
23 PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
24 PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{
25 sub("-.*","",$2); print $2}')
26 PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{
27 sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0}')
30 LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
31 LIBBLKID_DATE="02-Jun-2017"
35 LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
38 LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
42 LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
45 LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
49 LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
51 dnl libsmartcols version
52 LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
53 LIBSMARTCOLS_LT_MAJOR=1
54 LIBSMARTCOLS_LT_MINOR=1
55 LIBSMARTCOLS_LT_MICRO=0
56 LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
59 LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
63 LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
65 # Check whether exec_prefix=/usr:
66 AS_CASE([$exec_prefix:$prefix],
67 [NONE:NONE | NONE:/usr | /usr:*],
68 [AC_MSG_NOTICE([Default --exec-prefix detected.])
69 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
70 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
71 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
75 AS_CASE([$prefix:$localstatedir],
76 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
78 AC_MSG_NOTICE([ --localstatedir defaults to /run])
81 AC_SUBST([localstatedir])
84 # The original default values of {bin,sbin,lib}dir
85 usrbin_execdir='${exec_prefix}/bin'
86 AC_SUBST([usrbin_execdir])
88 usrsbin_execdir='${exec_prefix}/sbin'
89 AC_SUBST([usrsbin_execdir])
92 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
93 [usrlib_execdir=$libdir],
94 [usrlib_execdir='${exec_prefix}'$libdir]
96 AC_SUBST([usrlib_execdir])
108 dnl Compiler warnings
109 UL_WARN_ADD([-fno-common])
111 UL_WARN_ADD([-Werror=sequence-point])
112 UL_WARN_ADD([-Wextra])
113 UL_WARN_ADD([-Wextra-semi])
114 UL_WARN_ADD([-Wembedded-directive])
115 UL_WARN_ADD([-Wmissing-declarations])
116 UL_WARN_ADD([-Wmissing-parameter-type])
117 UL_WARN_ADD([-Wmissing-prototypes])
118 UL_WARN_ADD([-Wno-missing-field-initializers])
119 UL_WARN_ADD([-Wredundant-decls])
120 UL_WARN_ADD([-Wsign-compare])
121 UL_WARN_ADD([-Wtype-limits])
122 UL_WARN_ADD([-Wuninitialized])
123 UL_WARN_ADD([-Wunused-but-set-parameter])
124 UL_WARN_ADD([-Wunused-but-set-variable])
125 UL_WARN_ADD([-Wunused-parameter])
126 UL_WARN_ADD([-Wunused-result])
127 UL_WARN_ADD([-Wunused-variable])
128 UL_WARN_ADD([-Wnested-externs])
129 UL_WARN_ADD([-Wpointer-arith])
130 UL_WARN_ADD([-Wstrict-prototypes])
131 UL_WARN_ADD([-Wformat-security])
132 UL_WARN_ADD([-Wimplicit-function-declaration])
133 AC_SUBST([WARN_CFLAGS])
135 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
136 AC_SUBST([BSD_WARN_CFLAGS])
137 UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
138 AC_SUBST([NO_UNUSED_WARN_CFLAGS])
143 dnl check supported linker flags
146 m4_ifndef([PKG_PROG_PKG_CONFIG],
147 [m4_fatal([Could not locate the pkg-config autoconf
148 macros. These are usually located in /usr/share/aclocal/pkg.m4.
149 If your macros are in a different location, try setting the
150 environment variable AL_OPTS="-I/other/macro/dir" before running
151 ./autogen.sh or autoreconf again.])])
154 GTK_DOC_CHECK([1.10])
155 AC_PATH_PROG([XSLTPROC], [xsltproc])
159 AS_CASE([${host_os}],
166 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
167 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
168 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
170 AS_IF([test "x$darwin_os" = xyes], [
171 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
174 dnl define ARCH_<NAME> conditionals
175 UL_SET_ARCH([I86], [i?86-*])
176 UL_SET_ARCH([86_64], [x86_64*])
177 UL_SET_ARCH([IA64], [ia64*])
178 UL_SET_ARCH([S390], [s390*])
179 UL_SET_ARCH([SPARC], [sparc*])
180 UL_SET_ARCH([PPC], [ppc*|powerpc*])
181 UL_SET_ARCH([M68K], [m68*])
182 UL_SET_ARCH([MIPS], [mips*])
183 UL_SET_ARCH([HPPA], [hppa*|parisc*])
189 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
190 AM_GNU_GETTEXT_VERSION([0.18.3])
191 AM_GNU_GETTEXT([external])
193 AS_IF([test -d "$srcdir/po"], [
194 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
196 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"
199 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
200 #ifdef HAVE_LINUX_COMPILER_H
201 #include <linux/compiler.h>
229 security/pam_appl.h \
266 AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
267 [#ifdef LINUX_GSMMUX_H
268 # include <linux/gsmmux.h>
272 AC_CHECK_HEADERS([security/pam_misc.h],
273 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
274 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
275 #ifdef HAVE_SECURITY_PAM_APPL_H
276 #include <security/pam_appl.h>
280 AC_CHECK_HEADERS([linux/blkzoned.h])
282 AC_CHECK_HEADERS([security/openpam.h], [], [], [
283 #ifdef HAVE_SECURITY_PAM_APPL_H
284 #include <security/pam_appl.h>
288 AC_CHECK_HEADERS([langinfo.h],
289 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
290 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
292 dnl Convert some ac_cv_header_* variables to have_*
294 have_linux_version_h=$ac_cv_header_linux_version_h
295 have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
296 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
297 have_linux_raw_h=$ac_cv_header_linux_raw_h
298 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
299 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
300 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
301 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
302 have_security_openpam_h=$ac_cv_header_security_openpam_h
303 have_shadow_h=$ac_cv_header_shadow_h
304 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
305 have_utmpx_h=$ac_cv_header_utmpx_h
307 AS_CASE([$linux_os:$have_linux_version_h],
309 [AC_MSG_ERROR([kernel headers required on Linux])]
312 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
317 struct tm *tm = localtime(0);
318 if (a == -1) /* false */
319 sleep(tm->tm_gmtoff);
321 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
324 AC_CHECK_MEMBERS([struct termios.c_line],,,
325 [[#include <termios.h>]])
327 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
328 [#include <sys/stat.h>])
330 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
332 #ifdef HAVE_SYS_SWAP_H
333 # include <sys/swap.h>
337 [[swapon("/dev/null", 0);]])],
338 [AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
340 [AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
344 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
346 AC_CHECK_DECL([llseek],
347 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
348 [Define to 1 if have llseek prototype])],
350 [#include <unistd.h>])
352 AC_CHECK_DECL([lseek64],
353 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
354 [Define to 1 if have lseek64 prototype])],
356 [#define _LARGEFILE_SOURCE
357 #define _LARGEFILE64_SOURCE
358 #include <unistd.h>])
360 AC_CHECK_DECL([environ],
361 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
362 [Define to 1 if have **environ prototype])],
365 AC_CHECK_DECL([strsignal],
366 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
367 [Define to 1 if have strsignal function prototype])],
370 AC_CHECK_DECL([TIOCGLCKTRMIOS],
371 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
372 [#include <sys/ioctl.h>])
373 AC_CHECK_DECL([SOCK_CLOEXEC],
374 [have_sock_cloexec=yes], [have_sock_cloexec=no],
375 [#include <sys/types.h>
376 #include <sys/socket.h>])
377 AC_CHECK_DECL([SOCK_NONBLOCK],
378 [have_sock_nonblock=yes], [have_sock_nonblock=no],
379 [#include <sys/types.h>
380 #include <sys/socket.h>])
381 AC_CHECK_DECL([SO_PASSCRED],
382 [have_so_passcred=yes], [have_so_passcred=no],
383 [#include <sys/types.h>
384 #include <sys/socket.h>])
437 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
438 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
439 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
440 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
441 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
442 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
443 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
445 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
448 AC_CHECK_FUNCS([isnan], [],
449 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
450 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
452 AC_SUBST([MATH_LIBS])
455 dnl lib/mononotic.c may require -lrt
456 AC_CHECK_FUNCS([clock_gettime], [],
457 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
461 AC_CHECK_FUNCS([timer_create],
463 [AC_CHECK_LIB([rt], [timer_create], [
467 AC_SEARCH_LIBS([timer_create], [rt], [
470 REALTIME_LIBS="-lrt -lpthread"
476 AC_SUBST([REALTIME_LIBS])
479 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
481 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
483 AC_SUBST([RTAS_LIBS])
486 AC_CHECK_MEMBER([struct sockaddr.sa_len],
487 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
488 [#include <sys/types.h>
489 #include <sys/socket.h>])
492 AC_SEARCH_LIBS([socket], [socket],
493 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
494 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
496 AC_SUBST([SOCKET_LIBS])
500 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
501 AS_IF([test x"$have_dirfd" = xno], [
502 AC_CHECK_DECLS([dirfd],
503 [have_dirfd=yes], [have_dirfd=no],
504 [#include <sys/types.h>
505 #include <dirent.h>])
509 AS_IF([test x"$have_dirfd" = xno], [
510 AC_CHECK_MEMBERS([DIR.dd_fd],
511 [have_ddfd=yes], [have_ddfd=no],
512 [#include <sys/types.h>
513 #include <dirent.h>])
516 AS_CASE([$have_dirfd:$have_ddfd],
518 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
522 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
523 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
526 program_invocation_short_name = "test";
529 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
530 [Define if program_invocation_short_name is defined])
536 AC_MSG_CHECKING([whether __progname is defined])
537 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
538 [if (*__progname == 0) return 1;])],
539 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
540 AC_MSG_RESULT([yes]),
543 dnl Static compilation
544 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
546 AC_ARG_ENABLE([static-programs],
547 [AS_HELP_STRING([--enable-static-programs=LIST],
548 [link static the programs in LIST (comma-separated,
549 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
551 AS_CASE([$enable_static_programs],
553 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
555 [enable_static_programs=]
558 dnl Set all the individual AM_CONDITIONALs
559 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
560 AS_CASE([,$enable_static_programs,],
561 [*,UL_PRG,*], [static_[]UL_PRG=yes]
563 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
564 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
565 [test "x$static_[]UL_PRG" = xyes])
569 AC_ARG_ENABLE([all-programs],
570 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
571 [], [enable_all_programs=undefined]
574 AS_CASE([$enable_all_programs],
575 [yes], [AC_MSG_WARN([force to build all programs by default])
576 ul_default_estate=check],
577 [no], [AC_MSG_WARN([disable all programs by default])
578 ul_default_estate=no]
584 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
592 i = sscanf("x", $1, &s);
593 if (i == 1 && *s == 'x')
599 AC_CACHE_VAL([scanf_cv_alloc_modifier],
600 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
601 [scanf_cv_alloc_modifier=ms],
602 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
603 [scanf_cv_alloc_modifier=as],
604 [scanf_cv_alloc_modifier=no]
608 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
612 #if defined(__GLIBC__) && !defined(__UCLIBC__)
614 #if !(__GLIBC_PREREQ(2, 7))
615 #error %m is not available
618 #elif defined(_POSIX_VERSION)
620 #if _POSIX_VERSION < 200809L
621 #error %m is not available
625 #error Your C-library is not supported.
628 [scanf_cv_alloc_modifier=ms],
629 [scanf_cv_alloc_modifier=no])]
633 AC_MSG_CHECKING([scanf string alloc modifiers])
634 AS_CASE([$scanf_cv_alloc_modifier],
636 [AC_MSG_RESULT([(%ms) yes])
637 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
638 have_scanf_alloc_modifier=yes],
640 [AC_MSG_RESULT([(%as) yes])
641 have_scanf_alloc_modifier=yes
642 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
644 have_scanf_alloc_modifier=no]
648 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
651 AS_IF([test "x$with_util" = xno], [
652 AM_CONDITIONAL([HAVE_UTIL], [false])
655 UL_CHECK_LIB([util], [openpty])
659 AC_CHECK_TYPES([union semun], [], [], [[
662 AC_CHECK_TYPES([loff_t])
665 AC_ARG_ENABLE([widechar],
666 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
667 [], [enable_widechar=check]
669 UL_BUILD_INIT([widechar])
670 UL_REQUIRES_COMPILE([widechar], [[
678 if (w == WEOF) exit(1);
684 AS_IF([test "x$build_widechar" = xyes ], [
685 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
689 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
693 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
695 AC_CHECK_TYPES([sighandler_t], [], [], [[
699 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
703 # on Solaris, you can't mix and match standards, since we use c99
704 # aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
705 # check for crypt.h and use that without XOPEN_SOURCE.
706 AC_CHECK_HEADERS([crypt.h])
707 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
711 #define _XOPEN_SOURCE
715 char *c = crypt("abc","pw");
718 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
722 #define _XOPEN_SOURCE
726 char *c = crypt("abc","pw");
728 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
731 AC_MSG_ERROR([crypt() is not available])
734 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
737 AC_ARG_WITH([selinux],
738 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
739 [], [with_selinux=no]
742 AS_IF([test "x$with_selinux" = xno], [
743 AM_CONDITIONAL([HAVE_SELINUX], [false])
745 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
746 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
747 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
748 AM_CONDITIONAL([HAVE_SELINUX], [true])
752 AS_CASE([$with_selinux:$have_selinux],
753 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
756 AS_IF([test "x$have_selinux" = xyes], [
757 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
758 # This function is missing in old libselinux 1.xx versions
759 AC_CHECK_FUNCS([security_get_initial_context])
763 AC_SUBST([SELINUX_LIBS])
764 AC_SUBST([SELINUX_LIBS_STATIC])
768 AS_HELP_STRING([--with-audit], [compile with audit support]),
772 AS_IF([test "x$with_audit" = xno], [
773 AM_CONDITIONAL([HAVE_AUDIT], [false])
775 UL_CHECK_LIB([audit], [audit_log_user_message])
776 AS_CASE([$with_audit:$have_audit],
778 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
782 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
786 AS_IF([test "x$with_udev" = xno], [
787 AM_CONDITIONAL([HAVE_UDEV], [false])
789 UL_CHECK_LIB([udev], [udev_new])
790 AS_CASE([$with_udev:$have_udev],
792 [AC_MSG_ERROR([udev selected but libudev not found])]
797 dnl wide-char ncurses
798 AC_ARG_WITH([ncursesw],
799 AS_HELP_STRING([--with-ncursesw], [build with wide-char ncurses, enabled by default]),
800 [], [with_ncursesw=auto]
803 have_ncursesw_header=no
804 AS_IF([test "x$with_ncursesw" != xno], [
805 UL_NCURSES_CHECK([ncursesw])
806 AS_IF([test "x$have_ncursesw" = xyes], [
807 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
808 AC_CHECK_HEADERS([ncursesw/term.h])
809 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
811 AS_IF([test "x$have_ncursesw" = xyes], [
812 CURSES_LIB_NAME="ncursesw"
813 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
816 AS_CASE([$with_ncursesw:$have_ncursesw],
817 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
821 AC_ARG_WITH([ncurses],
822 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, disabled by default]),
823 [], [with_ncurses=auto]
826 have_ncurses_header=no
827 AS_CASE([$with_ncurses:$build_widechar],
828 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
830 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
831 UL_NCURSES_CHECK([ncurses])
832 AS_IF([test "x$have_ncurses" = xyes], [
833 AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h], [have_ncurses_header=yes])
834 AC_CHECK_HEADERS([ncurses/term.h term.h])
835 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
837 AS_IF([test "x$have_ncurses" = xyes], [
838 CURSES_LIB_NAME="ncurses"
839 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
842 AS_CASE([$with_ncurses:$have_ncurses],
843 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
845 AC_SUBST([NCURSES_CFLAGS])
846 AC_SUBST([NCURSES_LIBS])
847 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
851 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
855 AS_IF([test "x$with_slang" = xyes], [
856 AC_CHECK_HEADERS([slang.h slang/slang.h])
857 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
858 [have_slang=yes], [], [
861 #elif defined(HAVE_SLANG_SLANG_H)
862 #include <slang/slang.h>
865 AS_IF([test "x$have_slang" = xno], [
866 AC_MSG_ERROR([slang selected but slcurses.h not found])],
867 [CURSES_LIB_NAME=slang
870 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
873 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
874 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
875 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
876 [Define if curses library has the use_default_colors().])
878 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
879 AC_DEFINE(HAVE_RESIZETERM, 1,
880 [Define if curses library has the resizeterm().])
885 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
886 [], [with_tinfo=auto]
889 AS_IF([test "x$with_tinfo" != xno], [
890 dnl Try pkg-config for libtinfo
891 PKG_CHECK_MODULES(TINFO, [tinfo], [
892 dnl pkg-config success
894 UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [
896 dnl If pkg-config failed, fall back to classic searching.
897 AC_CHECK_LIB([tinfo], [tgetent], [
900 TINFO_LIBS_STATIC="-ltinfo"
904 AC_SUBST([TINFO_LIBS])
905 AC_SUBST([TINFO_LIBS_STATIC])
906 AC_SUBST([TINFO_CFLAGS])
907 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
908 AS_IF([test "x$have_tinfo" = xyes], [
909 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
913 AC_ARG_WITH([readline],
914 AS_HELP_STRING([--with-readline], [compile with GNU Readline support]),
915 [], [with_readline=auto]
918 AS_IF([test "x$with_readline" = xno], [
919 AM_CONDITIONAL([HAVE_READLINE], [false])
921 UL_CHECK_LIB([readline], [readline])
922 AS_CASE([$with_readline:$have_readline],
924 [AC_MSG_ERROR([readline selected but libreadline not found ])],
926 [READLINE_LIBS="-lreadline"
927 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
930 AC_SUBST([READLINE_LIBS])
931 AC_SUBST([READLINE_LIBS_STATIC])
934 AC_ARG_WITH([utempter],
935 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
936 [], [with_utempter=no]
939 AS_IF([test "x$with_utempter" = xyes], [
940 UL_CHECK_LIB([utempter], [utempter_add_record])
941 AS_IF([test "x$have_utempter" = xno], [
942 AC_MSG_ERROR([utempter selected but libutempter not found])
945 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
952 AC_ARG_ENABLE([libuuid],
953 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
954 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
956 UL_BUILD_INIT([libuuid])
957 AC_SUBST([LIBUUID_VERSION])
958 AC_SUBST([LIBUUID_VERSION_INFO])
959 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
961 AC_ARG_ENABLE([libuuid-force-uuidd],
962 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
963 [], [enable_libuuid_force_uuidd=no]
966 AS_IF([test "x$build_libuuid" = xyes], [
967 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
973 AC_ARG_ENABLE([libblkid],
974 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
975 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
977 UL_BUILD_INIT([libblkid])
978 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
979 AC_SUBST([LIBBLKID_DATE])
980 AC_SUBST([LIBBLKID_VERSION])
981 AC_SUBST([LIBBLKID_VERSION_INFO])
982 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
983 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
984 AS_IF([test "x$build_libblkid" = xyes], [
985 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
987 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
988 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
993 AC_ARG_ENABLE([libmount],
994 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
995 [], [UL_DEFAULT_ENABLE([libmount], [check])]
997 UL_BUILD_INIT([libmount])
998 UL_REQUIRES_BUILD([libmount], [libblkid])
999 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
1000 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1001 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
1002 AS_IF([test "x$build_libmount" = xyes], [
1003 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1006 AC_SUBST([LIBMOUNT_VERSION])
1007 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1008 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1009 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1010 AC_SUBST([LIBMOUNT_VERSION_INFO])
1011 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1013 AC_ARG_ENABLE([libmount-support-mtab],
1014 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1015 [], [enable_libmount_support_mtab=no]
1018 AS_IF([test "x$enable_libmount_support_mtab" == xyes], [
1019 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1026 AC_ARG_ENABLE([libsmartcols],
1027 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1028 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1030 UL_BUILD_INIT([libsmartcols])
1031 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1033 AC_SUBST([LIBSMARTCOLS_VERSION])
1034 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1035 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1041 AC_ARG_ENABLE([libfdisk],
1042 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1043 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1045 UL_BUILD_INIT([libfdisk])
1046 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1047 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1048 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1050 AS_IF([test "x$build_libblkid" = xyes],
1051 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1052 AC_SUBST([LIBFDISK_PC_REQUIRES])
1054 AC_SUBST([LIBFDISK_VERSION])
1055 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1056 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1057 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1058 AC_SUBST([LIBFDISK_VERSION_INFO])
1059 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1062 UL_BUILD_INIT([fdisk], [check])
1063 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1064 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1065 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1066 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1069 UL_BUILD_INIT([sfdisk], [check])
1070 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1071 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1072 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1073 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1076 UL_BUILD_INIT([cfdisk], [check])
1077 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1078 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1079 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1080 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1081 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1084 AC_ARG_ENABLE([mount],
1085 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1086 [], [UL_DEFAULT_ENABLE([mount], [check])]
1088 UL_BUILD_INIT([mount])
1089 UL_REQUIRES_LINUX([mount])
1090 UL_REQUIRES_BUILD([mount], [libmount])
1091 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1094 AC_ARG_ENABLE([losetup],
1095 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1096 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1098 UL_BUILD_INIT([losetup])
1099 UL_REQUIRES_LINUX([losetup])
1100 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1101 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1103 AC_ARG_ENABLE([zramctl],
1104 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1105 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1107 UL_BUILD_INIT([zramctl])
1108 UL_REQUIRES_LINUX([zramctl])
1109 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1110 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1112 AC_ARG_ENABLE([fsck],
1113 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1114 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1116 UL_BUILD_INIT([fsck])
1117 UL_REQUIRES_BUILD([fsck], [libmount])
1118 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1121 AC_ARG_ENABLE([partx],
1122 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1123 [], [UL_DEFAULT_ENABLE([partx], [check])]
1125 UL_BUILD_INIT([partx])
1126 UL_REQUIRES_LINUX([partx])
1127 UL_REQUIRES_BUILD([partx], [libblkid])
1128 UL_REQUIRES_BUILD([partx], [libsmartcols])
1129 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1132 AC_ARG_ENABLE([uuidd],
1133 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1134 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1136 UL_BUILD_INIT([uuidd])
1137 UL_REQUIRES_BUILD([uuidd], [libuuid])
1138 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1139 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1140 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" == xyes ], [
1141 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1143 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1146 UL_BUILD_INIT([uuidgen], [check])
1147 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1148 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1150 UL_BUILD_INIT([uuidparse], [check])
1151 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1152 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1153 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1155 UL_BUILD_INIT([blkid], [check])
1156 UL_REQUIRES_BUILD([blkid], [libblkid])
1157 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1159 UL_BUILD_INIT([findfs], [check])
1160 UL_REQUIRES_BUILD([findfs], [libblkid])
1161 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1163 UL_BUILD_INIT([wipefs], [check])
1164 UL_REQUIRES_BUILD([wipefs], [libblkid])
1165 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1166 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1168 UL_BUILD_INIT([findmnt], [check])
1169 UL_REQUIRES_BUILD([findmnt], [libmount])
1170 UL_REQUIRES_BUILD([findmnt], [libblkid])
1171 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1172 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1175 AC_ARG_ENABLE([mountpoint],
1176 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1177 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1179 UL_BUILD_INIT([mountpoint])
1180 UL_REQUIRES_BUILD([mountpoint], [libmount])
1181 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1184 AC_ARG_ENABLE([fallocate],
1185 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1186 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1188 UL_BUILD_INIT([fallocate])
1189 UL_REQUIRES_LINUX([fallocate])
1190 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1191 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1193 AS_IF([test "x$build_fallocate" = xyes], [
1194 dnl check for valid fallocate() function
1195 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1196 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1197 dnl and program can't be linked.
1198 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1199 dnl function prototype.
1200 AC_MSG_CHECKING([for valid fallocate() function])
1201 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1202 #ifdef HAVE_UNISTD_H
1203 # include <unistd.h>
1205 #ifdef HAVE_SYS_TYPES_H
1206 # include <sys/types.h>
1208 #ifdef HAVE_LINUX_FALLOC_H
1209 # include <linux/falloc.h>
1216 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1221 AC_MSG_RESULT([yes])
1222 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1223 AC_MSG_RESULT([no])])
1226 AS_IF([test "x$build_fallocate" = xyes], [
1227 dnl check for valid posix_fallocate() function
1228 AC_MSG_CHECKING([for valid posix_fallocate() function])
1229 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1230 #ifdef HAVE_UNISTD_H
1231 # include <unistd.h>
1233 #ifdef HAVE_SYS_TYPES_H
1234 # include <sys/types.h>
1236 #ifdef HAVE_LINUX_FALLOC_H
1237 # include <linux/falloc.h>
1244 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1249 AC_MSG_RESULT([yes])
1250 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1251 AC_MSG_RESULT([no])])
1255 AC_ARG_ENABLE([unshare],
1256 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1257 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1259 UL_BUILD_INIT([unshare])
1260 UL_REQUIRES_LINUX([unshare])
1261 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1262 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1263 AC_CHECK_FUNCS([unshare])
1265 AC_ARG_ENABLE([nsenter],
1266 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1267 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1269 UL_BUILD_INIT([nsenter])
1270 UL_REQUIRES_LINUX([nsenter])
1271 UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
1272 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1273 AC_CHECK_FUNCS([setns])
1276 AC_ARG_WITH([cap_ng],
1277 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1278 [], [with_cap_ng=auto]
1280 AS_IF([test "x$with_cap_ng" = xno], [
1281 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1284 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1288 AC_ARG_ENABLE([setpriv],
1289 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1290 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1292 UL_BUILD_INIT([setpriv])
1293 UL_REQUIRES_LINUX([setpriv])
1294 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
1295 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1296 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1299 AC_ARG_ENABLE([eject],
1300 AS_HELP_STRING([--disable-eject], [do not build eject]),
1301 [], [UL_DEFAULT_ENABLE([eject], [check])]
1303 UL_BUILD_INIT([eject])
1304 UL_REQUIRES_LINUX([eject])
1305 UL_REQUIRES_BUILD([eject], [libmount])
1306 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1309 AC_ARG_ENABLE([agetty],
1310 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1311 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1313 UL_BUILD_INIT([agetty])
1314 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1315 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx fucntions])
1316 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1317 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1318 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1320 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1324 AC_ARG_ENABLE([plymouth_support],
1325 AS_HELP_STRING([--disable-plymouth_support], [don not care about plymouth in sylogin(8) and agetty(8)]),
1326 [], [enable_plymouth_support=check]
1328 UL_BUILD_INIT([plymouth_support])
1329 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1330 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1331 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1332 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1333 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1334 AS_IF([test "x$build_plymouth_support" = xyes ], [
1335 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1340 AS_HELP_STRING([--without-libz], [compile without libz]),
1341 [], [with_libz=auto]
1343 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1344 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1348 AC_ARG_ENABLE([cramfs],
1349 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1350 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1352 UL_BUILD_INIT([cramfs])
1353 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1354 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1357 AC_ARG_ENABLE([bfs],
1358 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1359 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1361 UL_BUILD_INIT([bfs])
1362 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1365 AC_ARG_ENABLE([minix],
1366 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1367 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1369 UL_BUILD_INIT([minix])
1370 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1373 AC_ARG_ENABLE([fdformat],
1374 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1375 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1377 UL_BUILD_INIT([fdformat])
1378 UL_REQUIRES_LINUX([fdformat])
1379 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1382 AC_ARG_ENABLE([hwclock],
1383 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1384 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1386 have_linuxdummy=$linux_os
1388 UL_BUILD_INIT([hwclock])
1389 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1390 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1393 UL_BUILD_INIT([mkfs], [yes])
1394 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1396 UL_BUILD_INIT([isosize], [yes])
1397 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1400 UL_BUILD_INIT([fstrim], [check])
1401 UL_REQUIRES_LINUX([fstrim])
1402 UL_REQUIRES_BUILD([fstrim], [libmount])
1403 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1406 UL_BUILD_INIT([swapon], [check])
1407 UL_REQUIRES_LINUX([swapon])
1408 UL_REQUIRES_BUILD([swapon], [libblkid])
1409 UL_REQUIRES_BUILD([swapon], [libmount])
1410 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1411 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1414 UL_BUILD_INIT([lsblk], [check])
1415 UL_REQUIRES_LINUX([lsblk])
1416 UL_REQUIRES_BUILD([lsblk], [libblkid])
1417 UL_REQUIRES_BUILD([lsblk], [libmount])
1418 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1419 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1422 UL_BUILD_INIT([lscpu], [check])
1423 UL_REQUIRES_LINUX([lscpu])
1424 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1425 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1426 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1429 AC_ARG_ENABLE([lslogins],
1430 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1431 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1433 UL_BUILD_INIT([lslogins])
1434 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1435 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1436 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1437 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx fucntions])
1438 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1441 UL_BUILD_INIT([chcpu], [check])
1442 UL_REQUIRES_LINUX([chcpu])
1443 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1444 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1447 AC_ARG_ENABLE([wdctl],
1448 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1449 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1451 UL_BUILD_INIT([wdctl])
1452 UL_REQUIRES_LINUX([wdctl])
1453 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1454 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1455 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1458 UL_BUILD_INIT([swaplabel], [check])
1459 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1460 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1463 UL_BUILD_INIT([mkswap], [yes])
1464 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1465 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1466 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1470 AC_ARG_ENABLE([cal],
1471 AS_HELP_STRING([--disable-cal], [do not build cal]),
1472 [], [UL_DEFAULT_ENABLE([cal], [check])]
1474 UL_BUILD_INIT([cal])
1475 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1477 AC_ARG_ENABLE([logger],
1478 AS_HELP_STRING([--disable-logger], [do not build logger]),
1479 [], [UL_DEFAULT_ENABLE([logger], [check])]
1481 UL_BUILD_INIT([logger])
1482 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1484 UL_BUILD_INIT([look], [yes])
1485 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1487 UL_BUILD_INIT([mcookie], [yes])
1488 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1490 UL_BUILD_INIT([namei], [yes])
1491 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1493 UL_BUILD_INIT([whereis], [yes])
1494 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1496 UL_BUILD_INIT([getopt], [yes])
1497 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1500 UL_BUILD_INIT([blockdev], [check])
1501 UL_REQUIRES_LINUX([blockdev])
1502 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1505 UL_BUILD_INIT([prlimit], [check])
1506 UL_REQUIRES_LINUX([prlimit])
1507 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1508 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1509 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1510 AS_IF([test "x$build_prlimit" = xyes], [
1511 AC_CHECK_FUNCS([prlimit])
1515 UL_BUILD_INIT([lslocks], [check])
1516 UL_REQUIRES_LINUX([lslocks])
1517 UL_REQUIRES_BUILD([lslocks], [libmount])
1518 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1519 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1522 AC_ARG_ENABLE([switch_root],
1523 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1524 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1526 UL_BUILD_INIT([switch_root])
1527 UL_REQUIRES_LINUX([switch_root])
1528 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1529 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1532 AC_ARG_ENABLE([pivot_root],
1533 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1534 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1536 UL_BUILD_INIT([pivot_root])
1537 UL_REQUIRES_LINUX([pivot_root])
1538 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1539 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1542 UL_BUILD_INIT([flock], [check])
1543 UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
1544 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1547 AC_ARG_ENABLE([lsmem],
1548 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1549 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1551 UL_BUILD_INIT([lsmem])
1552 UL_REQUIRES_LINUX([lsmem])
1553 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1554 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1557 AC_ARG_ENABLE([chmem],
1558 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1559 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1561 UL_BUILD_INIT([chmem])
1562 UL_REQUIRES_LINUX([chmem])
1563 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1565 UL_BUILD_INIT([ipcmk], [yes])
1566 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1569 AC_ARG_ENABLE([ipcrm],
1570 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1571 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1573 UL_BUILD_INIT([ipcrm])
1574 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1576 AC_ARG_ENABLE([ipcs],
1577 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1578 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1580 UL_BUILD_INIT([ipcs])
1581 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1583 UL_BUILD_INIT([lsipc], [check])
1584 UL_REQUIRES_LINUX([lsipc])
1585 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1586 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1588 UL_BUILD_INIT([lsns], [check])
1589 UL_REQUIRES_LINUX([lsns])
1590 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1591 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1593 UL_BUILD_INIT([renice], [yes])
1594 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1596 UL_BUILD_INIT([setsid], [yes])
1597 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1599 UL_BUILD_INIT([readprofile], [check])
1600 UL_REQUIRES_LINUX([readprofile])
1601 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1603 UL_BUILD_INIT([dmesg], [check])
1604 UL_REQUIRES_LINUX([dmesg])
1605 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1607 UL_BUILD_INIT([ctrlaltdel], [check])
1608 UL_REQUIRES_LINUX([ctrlaltdel])
1609 dnl we assume reboot() to be the 1-argument variant, because even considering
1610 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1611 dnl reboot() with multiple arguments is yet only found in glibc versions
1612 dnl earlier than 2.x.
1613 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1614 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1616 UL_BUILD_INIT([fincore], [check])
1617 UL_REQUIRES_LINUX([fincore])
1618 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1619 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1621 UL_BUILD_INIT([fsfreeze], [check])
1622 UL_REQUIRES_LINUX([fsfreeze])
1623 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1625 UL_BUILD_INIT([blkdiscard], [check])
1626 UL_REQUIRES_LINUX([blkdiscard])
1627 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1629 UL_BUILD_INIT([blkzone], [check])
1630 UL_REQUIRES_LINUX([blkzone])
1631 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1632 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1634 UL_BUILD_INIT([ldattach], [check])
1635 UL_REQUIRES_LINUX([ldattach])
1636 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1638 UL_BUILD_INIT([rtcwake], [check])
1639 UL_REQUIRES_LINUX([rtcwake])
1640 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1642 UL_BUILD_INIT([setarch], [check])
1643 UL_REQUIRES_LINUX([setarch])
1644 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1646 UL_BUILD_INIT([script], [check])
1647 UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header])
1648 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1650 UL_BUILD_INIT([scriptreplay], [yes])
1651 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1653 UL_BUILD_INIT([col], [yes])
1654 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1656 UL_BUILD_INIT([colcrt], [yes])
1657 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1659 UL_BUILD_INIT([colrm], [yes])
1660 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1662 UL_BUILD_INIT([column], [check])
1663 UL_REQUIRES_BUILD([column], [libsmartcols])
1664 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1666 UL_BUILD_INIT([hexdump], [yes])
1667 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1669 UL_BUILD_INIT([rev], [yes])
1670 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1673 AC_ARG_ENABLE([tunelp],
1674 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1675 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1677 UL_BUILD_INIT([tunelp])
1678 UL_REQUIRES_LINUX([tunelp])
1679 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1682 AC_ARG_ENABLE([kill],
1683 AS_HELP_STRING([--disable-kill], [do not build kill]),
1684 [], [UL_DEFAULT_ENABLE([kill], [check])]
1686 UL_BUILD_INIT([kill])
1687 UL_REQUIRES_LINUX([kill])
1688 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1691 AC_ARG_ENABLE([last],
1692 AS_HELP_STRING([--disable-last], [do not build last]),
1693 [], [UL_DEFAULT_ENABLE([last], [check])]
1695 UL_BUILD_INIT([last])
1696 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1697 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx fucntions])
1698 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1701 AC_ARG_ENABLE([utmpdump],
1702 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1703 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1705 UL_BUILD_INIT([utmpdump])
1706 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1707 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx fucntions])
1708 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1711 AC_ARG_ENABLE([line],
1712 AS_HELP_STRING([--enable-line], [build line]),
1713 [], [UL_DEFAULT_ENABLE([line], [no])]
1715 UL_BUILD_INIT([line])
1716 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1719 AC_ARG_ENABLE([mesg],
1720 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1721 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1723 UL_BUILD_INIT([mesg])
1724 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1727 AC_ARG_ENABLE([raw],
1728 AS_HELP_STRING([--disable-raw], [do not build raw]),
1729 [], [UL_DEFAULT_ENABLE([raw], [check])]
1731 UL_BUILD_INIT([raw])
1732 UL_REQUIRES_LINUX([raw])
1733 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1734 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1737 AC_ARG_ENABLE([rename],
1738 AS_HELP_STRING([--disable-rename], [do not build rename]),
1739 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1741 UL_BUILD_INIT([rename])
1742 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1745 AC_ARG_ENABLE([vipw],
1746 AS_HELP_STRING([--enable-vipw], [build vipw]),
1747 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1749 UL_BUILD_INIT([vipw])
1750 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1751 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1754 AC_ARG_ENABLE([newgrp],
1755 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1756 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1758 UL_BUILD_INIT([newgrp])
1759 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1762 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1763 [], [with_user=check]
1766 AS_IF([test "x$with_user" != xno], [
1767 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1768 AS_CASE([$with_user:$have_user],
1770 [AC_MSG_ERROR([user selected but libuser not found])],
1772 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1774 # temporary solution, libuser has stupid .pc where are exported all
1775 # private dependencies to Requires: instead of Requires.private:
1776 AS_IF([test "x$have_user" = xyes], [
1780 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1782 AC_ARG_ENABLE([chfn-chsh-password],
1783 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1784 [], [enable_chfn_chsh_password=yes]
1787 AC_ARG_ENABLE([chfn-chsh],
1788 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1789 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1791 UL_BUILD_INIT([chfn_chsh])
1792 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1794 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1795 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1796 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1798 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1799 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1801 AC_ARG_ENABLE([chsh-only-listed],
1802 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1803 [], enable_chsh_only_listed=yes
1806 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1807 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1811 AC_ARG_ENABLE([login],
1812 AS_HELP_STRING([--disable-login], [do not build login]),
1813 [], [UL_DEFAULT_ENABLE([login], [check])]
1815 UL_BUILD_INIT([login])
1816 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1817 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
1818 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
1819 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx fucntions])
1820 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1822 AC_ARG_ENABLE([login-chown-vcs],
1823 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1824 [], [enable_login_chown_vcs=no]
1827 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1828 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1831 AC_ARG_ENABLE([login-stat-mail],
1832 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1833 [], [enable_login_stat_mail=no]
1836 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1837 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1841 AC_ARG_ENABLE([nologin],
1842 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1843 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
1845 UL_BUILD_INIT([nologin])
1846 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1849 AC_ARG_ENABLE([sulogin],
1850 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1851 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
1853 UL_BUILD_INIT([sulogin])
1854 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
1855 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1859 AS_HELP_STRING([--disable-su], [do not build su]),
1860 [], [UL_DEFAULT_ENABLE([su], [check])]
1863 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
1864 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
1865 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx fucntions])
1866 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1869 AC_ARG_ENABLE([runuser],
1870 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1871 [], [UL_DEFAULT_ENABLE([runuser], [check])]
1873 UL_BUILD_INIT([runuser])
1874 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
1875 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
1876 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx fucntions])
1877 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1881 AS_HELP_STRING([--disable-ul], [do not build ul]),
1882 [], [UL_DEFAULT_ENABLE([ul], [check])]
1885 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
1886 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1889 AC_ARG_ENABLE([more],
1890 AS_HELP_STRING([--disable-more], [do not build more]),
1891 [], [UL_DEFAULT_ENABLE([more], [check])]
1893 UL_BUILD_INIT([more])
1894 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
1895 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1899 AS_HELP_STRING([--enable-pg], [build pg]),
1900 [], [UL_DEFAULT_ENABLE([pg], [no])]
1903 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
1904 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1907 AC_ARG_ENABLE([setterm],
1908 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1909 [], [UL_DEFAULT_ENABLE([setterm], [check])]
1911 UL_BUILD_INIT([setterm])
1912 UL_REQUIRES_LINUX([setterm])
1913 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
1914 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1916 # build_schedutils= is just configure-only variable to control
1917 # ionice, taskset and chrt
1918 AC_ARG_ENABLE([schedutils],
1919 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1920 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
1924 UL_ENABLE_ALIAS([ionice], [schedutils])
1925 UL_BUILD_INIT([ionice])
1926 UL_REQUIRES_SYSCALL_CHECK([ionice],
1927 [UL_CHECK_SYSCALL([ioprio_set],
1938 UL_REQUIRES_SYSCALL_CHECK([ionice],
1939 [UL_CHECK_SYSCALL([ioprio_get],
1950 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1953 UL_ENABLE_ALIAS([taskset], [schedutils])
1954 UL_BUILD_INIT([taskset])
1955 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1956 UL_REQUIRES_SYSCALL_CHECK([taskset],
1957 [UL_CHECK_SYSCALL([sched_getaffinity])],
1958 [sched_getaffinity])
1959 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1963 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
1964 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
1966 UL_ENABLE_ALIAS([chrt], [schedutils])
1967 UL_BUILD_INIT([chrt])
1968 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
1969 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1971 AS_IF([test "x$build_chrt" = xyes], [
1972 UL_CHECK_SYSCALL([sched_setattr])
1976 AC_ARG_ENABLE([wall],
1977 AS_HELP_STRING([--disable-wall], [do not build wall]),
1978 [], [UL_DEFAULT_ENABLE([wall], [check])]
1980 UL_BUILD_INIT([wall])
1981 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
1982 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1985 AC_ARG_ENABLE([write],
1986 AS_HELP_STRING([--enable-write], [build write]),
1987 [], [UL_DEFAULT_ENABLE([write], [no])]
1989 UL_BUILD_INIT([write])
1990 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
1991 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx fucntions])
1992 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1995 AC_ARG_WITH([btrfs],
1996 AS_HELP_STRING([--with-btrfs], [build with support for btrfs]),
1997 [], [with_btrfs=check]
2000 AS_IF([test "x$with_btrfs" != xno], [
2001 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2003 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2005 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2008 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2011 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2014 AC_ARG_WITH([systemd],
2015 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
2016 [], [with_systemd=check]
2020 AS_IF([test "x$with_systemd" != xno], [
2021 # new version -- all libsystemd-* libs merged into libsystemd
2022 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2024 AS_IF([test "x$have_systemd" != "xyes"], [
2025 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2026 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2027 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2028 [have_systemd_journal=yes], [have_systemd_journal=no])
2029 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2032 AS_CASE([$with_systemd:$have_systemd],
2034 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2036 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2039 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2042 AC_ARG_WITH([systemdsystemunitdir],
2043 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
2044 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
2046 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2047 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2051 AC_ARG_WITH([smack],
2052 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2055 AS_IF([test "x$with_smack" = xyes], [
2056 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2060 AC_ARG_WITH([bashcompletiondir],
2061 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2063 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2064 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2066 with_bashcompletiondir=${datadir}/bash-completion/completions
2069 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2071 AC_ARG_ENABLE([bash-completion],
2072 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2073 [], [enable_bash_completion=yes]
2076 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2079 AC_ARG_WITH([python],
2080 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2081 [], [with_python=check withval=check]
2086 AS_IF([test "x$with_python" != xno], [
2087 # We follow distributions default and look for PKG module name "python"
2088 # (minimal version is 2) but if major version is explicitly specified by
2089 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2091 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2092 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2094 # check for python interpreter
2095 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2096 AS_CASE([$with_python:$have_python],
2098 [AC_MSG_ERROR([python selected but python interpreter not found])],
2100 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2102 # check for python development stuff
2103 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2104 [have_libpython=yes], [have_libpython=no])]
2109 AC_ARG_ENABLE([pylibmount],
2110 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2111 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2113 UL_BUILD_INIT([pylibmount])
2114 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2115 UL_REQUIRES_BUILD([pylibmount], [libmount])
2116 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2118 # We need to introduce a verbatim dependency into the Makefile, without automake
2119 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2120 verbatim_pylibmount_dependency='
2122 # pylibmountexec module must be installed after usrlib_exec libraries,
2123 # otherwise the libtool relink step will fail to find libmount.la and
2124 # will try -lmount which is possibly not available.
2125 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2128 AC_SUBST([verbatim_pylibmount_dependency])
2129 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2131 AC_ARG_ENABLE([pg-bell],
2132 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2133 [], [enable_pg_bell=yes]
2136 AS_IF([test "x$enable_pg_bell" = xyes], [
2137 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2141 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2142 AC_ARG_ENABLE([fs-paths-default],
2143 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2144 [AS_CASE([$enableval],
2145 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2146 [no], [fs_paths_defaults=""],
2147 [fs_paths_defaults="$enableval"]
2149 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2151 AC_ARG_ENABLE([fs-paths-extra],
2152 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2153 [AS_CASE([$enableval],
2154 [yes|no], [fs_paths_extra=""],
2155 [fs_paths_extra="$enableval"]
2159 fs_paths="$fs_paths_defaults"
2160 AS_IF([test "x$fs_paths_extra" != "x"], [
2161 AS_IF([test "x$fs_paths" != "x"], [
2162 fs_paths="${fs_paths}:"
2164 fs_paths="${fs_paths}${fs_paths_extra}"
2166 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2169 AC_ARG_ENABLE([use-tty-group],
2170 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2171 [], [enable_use_tty_group=yes]
2173 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2175 AS_IF([test "x$enable_use_tty_group" = xyes], [
2176 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2180 AC_ARG_ENABLE([sulogin-emergency-mount],
2181 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2182 [use emergency mount of /dev and /proc for sulogin]),
2183 [], [enable_sulogin_emergency_mount=no]
2186 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2187 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2188 [Should sulogin use a emergency mount of /dev and /proc?])
2192 AC_ARG_ENABLE([usrdir-path],
2193 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2194 [], [enable_usrdir_path=no]
2197 AS_IF([test "x$enable_usrdir_path" == xyes], [
2198 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2202 AC_ARG_ENABLE([makeinstall-chown],
2203 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2204 [], [enable_makeinstall_chown=yes]
2206 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2209 AC_ARG_ENABLE([makeinstall-setuid],
2210 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2211 [], [enable_makeinstall_setuid=yes]
2213 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2216 AC_ARG_ENABLE([colors-default],
2217 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2218 [], [enable_colors_default=yes]
2220 AS_IF([test "x$enable_colors_default" = xyes], [
2221 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2225 AC_ARG_VAR([SUID_CFLAGS],
2226 [CFLAGS used for binaries which are usually with the suid bit])
2227 AC_ARG_VAR([SUID_LDFLAGS],
2228 [LDFLAGS used for binaries which are usually with the suid bit])
2230 AC_ARG_VAR([DAEMON_CFLAGS],
2231 [CFLAGS used for binaries which are usually executed as daemons])
2232 AC_ARG_VAR([DAEMON_LDFLAGS],
2233 [LDFLAGS used for binaries which are usually executed as daemons])
2235 AC_ARG_VAR([SOLIB_CFLAGS],
2236 [CFLAGS used for shared libraries])
2237 AC_ARG_VAR([SOLIB_LDFLAGS],
2238 [LDFLAGS used for shared libraries])
2240 AC_ARG_VAR([ADJTIME_PATH],
2241 [Path to hwclock adjtime file, default /etc/adjtime])
2242 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2243 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2249 AC_CONFIG_HEADERS([config.h])
2252 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2257 libblkid/docs/Makefile
2258 libblkid/docs/version.xml
2259 libblkid/src/blkid.h
2260 libfdisk/docs/Makefile
2261 libfdisk/docs/version.xml
2262 libfdisk/src/libfdisk.h
2263 libmount/docs/Makefile
2264 libmount/docs/version.xml
2265 libmount/src/libmount.h
2266 libsmartcols/docs/Makefile
2267 libsmartcols/docs/version.xml
2268 libsmartcols/src/libsmartcols.h
2275 ${PACKAGE} ${VERSION}
2278 exec prefix: ${exec_prefix}
2280 localstatedir: ${localstatedir}
2284 includedir: ${includedir}
2285 usrbin_execdir: ${usrbin_execdir}
2286 usrsbin_execdir: ${usrsbin_execdir}
2287 usrlib_execdir: ${usrlib_execdir}
2291 suid cflags: ${SUID_CFLAGS}
2293 suid ldflags: ${SUID_LDFLAGS}
2296 Python version: ${PYTHON_VERSION}
2297 Python libs: ${pyexecdir}
2299 Bash completions: ${with_bashcompletiondir}
2300 Systemd support: ${have_systemd}
2301 Btrfs support: ${have_btrfs}
2302 Wide-char support: ${build_widechar}
2308 Type 'make' or 'make <utilname>' to compile.