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>])
436 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
437 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
438 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
439 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
440 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
441 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
442 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
444 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
447 AC_CHECK_FUNCS([isnan], [],
448 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
449 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
451 AC_SUBST([MATH_LIBS])
454 dnl lib/mononotic.c may require -lrt
455 AC_CHECK_FUNCS([clock_gettime], [],
456 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
460 AC_CHECK_FUNCS([timer_create],
462 [AC_CHECK_LIB([rt], [timer_create], [
466 AC_SEARCH_LIBS([timer_create], [rt], [
469 REALTIME_LIBS="-lrt -lpthread"
475 AC_SUBST([REALTIME_LIBS])
478 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
480 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
482 AC_SUBST([RTAS_LIBS])
485 AC_CHECK_MEMBER([struct sockaddr.sa_len],
486 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
487 [#include <sys/types.h>
488 #include <sys/socket.h>])
491 AC_SEARCH_LIBS([socket], [socket],
492 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
493 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
495 AC_SUBST([SOCKET_LIBS])
499 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
500 AS_IF([test x"$have_dirfd" = xno], [
501 AC_CHECK_DECLS([dirfd],
502 [have_dirfd=yes], [have_dirfd=no],
503 [#include <sys/types.h>
504 #include <dirent.h>])
508 AS_IF([test x"$have_dirfd" = xno], [
509 AC_CHECK_MEMBERS([DIR.dd_fd],
510 [have_ddfd=yes], [have_ddfd=no],
511 [#include <sys/types.h>
512 #include <dirent.h>])
515 AS_CASE([$have_dirfd:$have_ddfd],
517 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
521 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
522 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
525 program_invocation_short_name = "test";
528 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
529 [Define if program_invocation_short_name is defined])
535 AC_MSG_CHECKING([whether __progname is defined])
536 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
537 [if (*__progname == 0) return 1;])],
538 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
539 AC_MSG_RESULT([yes]),
542 dnl Static compilation
543 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
545 AC_ARG_ENABLE([static-programs],
546 [AS_HELP_STRING([--enable-static-programs=LIST],
547 [link static the programs in LIST (comma-separated,
548 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
550 AS_CASE([$enable_static_programs],
552 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
554 [enable_static_programs=]
557 dnl Set all the individual AM_CONDITIONALs
558 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
559 AS_CASE([,$enable_static_programs,],
560 [*,UL_PRG,*], [static_[]UL_PRG=yes]
562 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
563 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
564 [test "x$static_[]UL_PRG" = xyes])
568 AC_ARG_ENABLE([all-programs],
569 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
570 [], [enable_all_programs=undefined]
573 AS_CASE([$enable_all_programs],
574 [yes], [AC_MSG_WARN([force to build all programs by default])
575 ul_default_estate=check],
576 [no], [AC_MSG_WARN([disable all programs by default])
577 ul_default_estate=no]
583 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
591 i = sscanf("x", $1, &s);
592 if (i == 1 && *s == 'x')
598 AC_CACHE_VAL([scanf_cv_alloc_modifier],
599 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
600 [scanf_cv_alloc_modifier=ms],
601 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
602 [scanf_cv_alloc_modifier=as],
603 [scanf_cv_alloc_modifier=no]
607 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
611 #if defined(__GLIBC__) && !defined(__UCLIBC__)
613 #if !(__GLIBC_PREREQ(2, 7))
614 #error %m is not available
617 #elif defined(_POSIX_VERSION)
619 #if _POSIX_VERSION < 200809L
620 #error %m is not available
624 #error Your C-library is not supported.
627 [scanf_cv_alloc_modifier=ms],
628 [scanf_cv_alloc_modifier=no])]
632 AC_MSG_CHECKING([scanf string alloc modifiers])
633 AS_CASE([$scanf_cv_alloc_modifier],
635 [AC_MSG_RESULT([(%ms) yes])
636 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
637 have_scanf_alloc_modifier=yes],
639 [AC_MSG_RESULT([(%as) yes])
640 have_scanf_alloc_modifier=yes
641 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
643 have_scanf_alloc_modifier=no]
647 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
650 AS_IF([test "x$with_util" = xno], [
651 AM_CONDITIONAL([HAVE_UTIL], [false])
654 UL_CHECK_LIB([util], [openpty])
658 AC_CHECK_TYPES([union semun], [], [], [[
661 AC_CHECK_TYPES([loff_t])
664 AC_ARG_ENABLE([widechar],
665 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
666 [], [enable_widechar=check]
668 UL_BUILD_INIT([widechar])
669 UL_REQUIRES_COMPILE([widechar], [[
677 if (w == WEOF) exit(1);
683 AS_IF([test "x$build_widechar" = xyes ], [
684 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
688 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
692 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
694 AC_CHECK_TYPES([sighandler_t], [], [], [[
698 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
702 # on Solaris, you can't mix and match standards, since we use c99
703 # aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
704 # check for crypt.h and use that without XOPEN_SOURCE.
705 AC_CHECK_HEADERS([crypt.h])
706 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
710 #define _XOPEN_SOURCE
714 char *c = crypt("abc","pw");
717 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
721 #define _XOPEN_SOURCE
725 char *c = crypt("abc","pw");
727 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
730 AC_MSG_ERROR([crypt() is not available])
733 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
736 AC_ARG_WITH([selinux],
737 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
738 [], [with_selinux=no]
741 AS_IF([test "x$with_selinux" = xno], [
742 AM_CONDITIONAL([HAVE_SELINUX], [false])
744 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
745 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
746 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
747 AM_CONDITIONAL([HAVE_SELINUX], [true])
751 AS_CASE([$with_selinux:$have_selinux],
752 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
755 AS_IF([test "x$have_selinux" = xyes], [
756 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
757 # This function is missing in old libselinux 1.xx versions
758 AC_CHECK_FUNCS([security_get_initial_context])
762 AC_SUBST([SELINUX_LIBS])
763 AC_SUBST([SELINUX_LIBS_STATIC])
767 AS_HELP_STRING([--with-audit], [compile with audit support]),
771 AS_IF([test "x$with_audit" = xno], [
772 AM_CONDITIONAL([HAVE_AUDIT], [false])
774 UL_CHECK_LIB([audit], [audit_log_user_message])
775 AS_CASE([$with_audit:$have_audit],
777 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
781 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
785 AS_IF([test "x$with_udev" = xno], [
786 AM_CONDITIONAL([HAVE_UDEV], [false])
788 UL_CHECK_LIB([udev], [udev_new])
789 AS_CASE([$with_udev:$have_udev],
791 [AC_MSG_ERROR([udev selected but libudev not found])]
796 dnl wide-char ncurses
797 AC_ARG_WITH([ncursesw],
798 AS_HELP_STRING([--with-ncursesw], [build with wide-char ncurses, enabled by default]),
799 [], [with_ncursesw=auto]
802 have_ncursesw_header=no
803 AS_IF([test "x$with_ncursesw" != xno], [
804 UL_NCURSES_CHECK([ncursesw])
805 AS_IF([test "x$have_ncursesw" = xyes], [
806 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
807 AC_CHECK_HEADERS([ncursesw/term.h])
808 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
810 AS_IF([test "x$have_ncursesw" = xyes], [
811 CURSES_LIB_NAME="ncursesw"
812 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
815 AS_CASE([$with_ncursesw:$have_ncursesw],
816 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
820 AC_ARG_WITH([ncurses],
821 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, disabled by default]),
822 [], [with_ncurses=auto]
825 have_ncurses_header=no
826 AS_CASE([$with_ncurses:$build_widechar],
827 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
829 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
830 UL_NCURSES_CHECK([ncurses])
831 AS_IF([test "x$have_ncurses" = xyes], [
832 AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h], [have_ncurses_header=yes])
833 AC_CHECK_HEADERS([ncurses/term.h term.h])
834 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
836 AS_IF([test "x$have_ncurses" = xyes], [
837 CURSES_LIB_NAME="ncurses"
838 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
841 AS_CASE([$with_ncurses:$have_ncurses],
842 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
844 AC_SUBST([NCURSES_CFLAGS])
845 AC_SUBST([NCURSES_LIBS])
846 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
850 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
854 AS_IF([test "x$with_slang" = xyes], [
855 AC_CHECK_HEADERS([slang.h slang/slang.h])
856 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
857 [have_slang=yes], [], [
860 #elif defined(HAVE_SLANG_SLANG_H)
861 #include <slang/slang.h>
864 AS_IF([test "x$have_slang" = xno], [
865 AC_MSG_ERROR([slang selected but slcurses.h not found])],
866 [CURSES_LIB_NAME=slang
869 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
872 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
873 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
874 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
875 [Define if curses library has the use_default_colors().])
877 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
878 AC_DEFINE(HAVE_RESIZETERM, 1,
879 [Define if curses library has the resizeterm().])
884 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
885 [], [with_tinfo=auto]
888 AS_IF([test "x$with_tinfo" != xno], [
889 dnl Try pkg-config for libtinfo
890 PKG_CHECK_MODULES(TINFO, [tinfo], [
891 dnl pkg-config success
893 UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [
895 dnl If pkg-config failed, fall back to classic searching.
896 AC_CHECK_LIB([tinfo], [tgetent], [
899 TINFO_LIBS_STATIC="-ltinfo"
903 AC_SUBST([TINFO_LIBS])
904 AC_SUBST([TINFO_LIBS_STATIC])
905 AC_SUBST([TINFO_CFLAGS])
906 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
907 AS_IF([test "x$have_tinfo" = xyes], [
908 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
912 AC_ARG_WITH([readline],
913 AS_HELP_STRING([--with-readline], [compile with GNU Readline support]),
914 [], [with_readline=auto]
917 AS_IF([test "x$with_readline" = xno], [
918 AM_CONDITIONAL([HAVE_READLINE], [false])
920 UL_CHECK_LIB([readline], [readline])
921 AS_CASE([$with_readline:$have_readline],
923 [AC_MSG_ERROR([readline selected but libreadline not found ])],
925 [READLINE_LIBS="-lreadline"
926 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
929 AC_SUBST([READLINE_LIBS])
930 AC_SUBST([READLINE_LIBS_STATIC])
933 AC_ARG_WITH([utempter],
934 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
935 [], [with_utempter=no]
938 AS_IF([test "x$with_utempter" = xyes], [
939 UL_CHECK_LIB([utempter], [utempter_add_record])
940 AS_IF([test "x$have_utempter" = xno], [
941 AC_MSG_ERROR([utempter selected but libutempter not found])
944 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
951 AC_ARG_ENABLE([libuuid],
952 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
953 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
955 UL_BUILD_INIT([libuuid])
956 AC_SUBST([LIBUUID_VERSION])
957 AC_SUBST([LIBUUID_VERSION_INFO])
958 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
960 AC_ARG_ENABLE([libuuid-force-uuidd],
961 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
962 [], [enable_libuuid_force_uuidd=no]
965 AS_IF([test "x$build_libuuid" = xyes], [
966 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
972 AC_ARG_ENABLE([libblkid],
973 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
974 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
976 UL_BUILD_INIT([libblkid])
977 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
978 AC_SUBST([LIBBLKID_DATE])
979 AC_SUBST([LIBBLKID_VERSION])
980 AC_SUBST([LIBBLKID_VERSION_INFO])
981 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
982 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
983 AS_IF([test "x$build_libblkid" = xyes], [
984 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
986 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
987 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
992 AC_ARG_ENABLE([libmount],
993 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
994 [], [UL_DEFAULT_ENABLE([libmount], [check])]
996 UL_BUILD_INIT([libmount])
997 UL_REQUIRES_BUILD([libmount], [libblkid])
998 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
999 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1000 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
1001 AS_IF([test "x$build_libmount" = xyes], [
1002 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1005 AC_SUBST([LIBMOUNT_VERSION])
1006 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1007 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1008 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1009 AC_SUBST([LIBMOUNT_VERSION_INFO])
1010 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1012 AC_ARG_ENABLE([libmount-support-mtab],
1013 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1014 [], [enable_libmount_support_mtab=no]
1017 AS_IF([test "x$enable_libmount_support_mtab" == xyes], [
1018 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1025 AC_ARG_ENABLE([libsmartcols],
1026 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1027 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1029 UL_BUILD_INIT([libsmartcols])
1030 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1032 AC_SUBST([LIBSMARTCOLS_VERSION])
1033 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1034 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1040 AC_ARG_ENABLE([libfdisk],
1041 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1042 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1044 UL_BUILD_INIT([libfdisk])
1045 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1046 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1047 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1049 AS_IF([test "x$build_libblkid" = xyes],
1050 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1051 AC_SUBST([LIBFDISK_PC_REQUIRES])
1053 AC_SUBST([LIBFDISK_VERSION])
1054 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1055 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1056 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1057 AC_SUBST([LIBFDISK_VERSION_INFO])
1058 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1061 UL_BUILD_INIT([fdisk], [check])
1062 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1063 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1064 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1065 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1068 UL_BUILD_INIT([sfdisk], [check])
1069 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1070 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1071 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1072 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1075 UL_BUILD_INIT([cfdisk], [check])
1076 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1077 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1078 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1079 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1080 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1083 AC_ARG_ENABLE([mount],
1084 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1085 [], [UL_DEFAULT_ENABLE([mount], [check])]
1087 UL_BUILD_INIT([mount])
1088 UL_REQUIRES_LINUX([mount])
1089 UL_REQUIRES_BUILD([mount], [libmount])
1090 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1093 AC_ARG_ENABLE([losetup],
1094 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1095 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1097 UL_BUILD_INIT([losetup])
1098 UL_REQUIRES_LINUX([losetup])
1099 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1100 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1102 AC_ARG_ENABLE([zramctl],
1103 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1104 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1106 UL_BUILD_INIT([zramctl])
1107 UL_REQUIRES_LINUX([zramctl])
1108 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1109 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1111 AC_ARG_ENABLE([fsck],
1112 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1113 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1115 UL_BUILD_INIT([fsck])
1116 UL_REQUIRES_BUILD([fsck], [libmount])
1117 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1120 AC_ARG_ENABLE([partx],
1121 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1122 [], [UL_DEFAULT_ENABLE([partx], [check])]
1124 UL_BUILD_INIT([partx])
1125 UL_REQUIRES_LINUX([partx])
1126 UL_REQUIRES_BUILD([partx], [libblkid])
1127 UL_REQUIRES_BUILD([partx], [libsmartcols])
1128 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1131 AC_ARG_ENABLE([uuidd],
1132 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1133 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1135 UL_BUILD_INIT([uuidd])
1136 UL_REQUIRES_BUILD([uuidd], [libuuid])
1137 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1138 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1139 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" == xyes ], [
1140 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1142 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1145 UL_BUILD_INIT([uuidgen], [check])
1146 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1147 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1149 UL_BUILD_INIT([blkid], [check])
1150 UL_REQUIRES_BUILD([blkid], [libblkid])
1151 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1153 UL_BUILD_INIT([findfs], [check])
1154 UL_REQUIRES_BUILD([findfs], [libblkid])
1155 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1157 UL_BUILD_INIT([wipefs], [check])
1158 UL_REQUIRES_BUILD([wipefs], [libblkid])
1159 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1161 UL_BUILD_INIT([findmnt], [check])
1162 UL_REQUIRES_BUILD([findmnt], [libmount])
1163 UL_REQUIRES_BUILD([findmnt], [libblkid])
1164 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1165 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1168 AC_ARG_ENABLE([mountpoint],
1169 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1170 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1172 UL_BUILD_INIT([mountpoint])
1173 UL_REQUIRES_BUILD([mountpoint], [libmount])
1174 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1177 AC_ARG_ENABLE([fallocate],
1178 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1179 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1181 UL_BUILD_INIT([fallocate])
1182 UL_REQUIRES_LINUX([fallocate])
1183 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1184 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1186 AS_IF([test "x$build_fallocate" = xyes], [
1187 dnl check for valid fallocate() function
1188 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1189 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1190 dnl and program can't be linked.
1191 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1192 dnl function prototype.
1193 AC_MSG_CHECKING([for valid fallocate() function])
1194 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1195 #ifdef HAVE_UNISTD_H
1196 # include <unistd.h>
1198 #ifdef HAVE_SYS_TYPES_H
1199 # include <sys/types.h>
1201 #ifdef HAVE_LINUX_FALLOC_H
1202 # include <linux/falloc.h>
1209 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1214 AC_MSG_RESULT([yes])
1215 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1216 AC_MSG_RESULT([no])])
1219 AS_IF([test "x$build_fallocate" = xyes], [
1220 dnl check for valid posix_fallocate() function
1221 AC_MSG_CHECKING([for valid posix_fallocate() function])
1222 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1223 #ifdef HAVE_UNISTD_H
1224 # include <unistd.h>
1226 #ifdef HAVE_SYS_TYPES_H
1227 # include <sys/types.h>
1229 #ifdef HAVE_LINUX_FALLOC_H
1230 # include <linux/falloc.h>
1237 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1242 AC_MSG_RESULT([yes])
1243 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1244 AC_MSG_RESULT([no])])
1248 AC_ARG_ENABLE([unshare],
1249 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1250 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1252 UL_BUILD_INIT([unshare])
1253 UL_REQUIRES_LINUX([unshare])
1254 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1255 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1256 AC_CHECK_FUNCS([unshare])
1258 AC_ARG_ENABLE([nsenter],
1259 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1260 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1262 UL_BUILD_INIT([nsenter])
1263 UL_REQUIRES_LINUX([nsenter])
1264 UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
1265 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1266 AC_CHECK_FUNCS([setns])
1269 AC_ARG_WITH([cap_ng],
1270 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1271 [], [with_cap_ng=auto]
1273 AS_IF([test "x$with_cap_ng" = xno], [
1274 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1277 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1281 AC_ARG_ENABLE([setpriv],
1282 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1283 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1285 UL_BUILD_INIT([setpriv])
1286 UL_REQUIRES_LINUX([setpriv])
1287 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
1288 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1289 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1292 AC_ARG_ENABLE([eject],
1293 AS_HELP_STRING([--disable-eject], [do not build eject]),
1294 [], [UL_DEFAULT_ENABLE([eject], [check])]
1296 UL_BUILD_INIT([eject])
1297 UL_REQUIRES_LINUX([eject])
1298 UL_REQUIRES_BUILD([eject], [libmount])
1299 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1302 AC_ARG_ENABLE([agetty],
1303 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1304 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1306 UL_BUILD_INIT([agetty])
1307 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1308 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx fucntions])
1309 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1310 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1311 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1313 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1317 AC_ARG_ENABLE([plymouth_support],
1318 AS_HELP_STRING([--disable-plymouth_support], [don not care about plymouth in sylogin(8) and agetty(8)]),
1319 [], [enable_plymouth_support=check]
1321 UL_BUILD_INIT([plymouth_support])
1322 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1323 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1324 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1325 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1326 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1327 AS_IF([test "x$build_plymouth_support" = xyes ], [
1328 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1333 AS_HELP_STRING([--without-libz], [compile without libz]),
1334 [], [with_libz=auto]
1336 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1337 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1341 AC_ARG_ENABLE([cramfs],
1342 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1343 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1345 UL_BUILD_INIT([cramfs])
1346 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1347 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1350 AC_ARG_ENABLE([bfs],
1351 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1352 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1354 UL_BUILD_INIT([bfs])
1355 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1358 AC_ARG_ENABLE([minix],
1359 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1360 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1362 UL_BUILD_INIT([minix])
1363 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1366 AC_ARG_ENABLE([fdformat],
1367 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1368 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1370 UL_BUILD_INIT([fdformat])
1371 UL_REQUIRES_LINUX([fdformat])
1372 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1375 AC_ARG_ENABLE([hwclock],
1376 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1377 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1379 have_linuxdummy=$linux_os
1381 UL_BUILD_INIT([hwclock])
1382 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1383 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1386 UL_BUILD_INIT([mkfs], [yes])
1387 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1389 UL_BUILD_INIT([isosize], [yes])
1390 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1393 UL_BUILD_INIT([fstrim], [check])
1394 UL_REQUIRES_LINUX([fstrim])
1395 UL_REQUIRES_BUILD([fstrim], [libmount])
1396 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1399 UL_BUILD_INIT([swapon], [check])
1400 UL_REQUIRES_LINUX([swapon])
1401 UL_REQUIRES_BUILD([swapon], [libblkid])
1402 UL_REQUIRES_BUILD([swapon], [libmount])
1403 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1404 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1407 UL_BUILD_INIT([lsblk], [check])
1408 UL_REQUIRES_LINUX([lsblk])
1409 UL_REQUIRES_BUILD([lsblk], [libblkid])
1410 UL_REQUIRES_BUILD([lsblk], [libmount])
1411 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1412 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1415 UL_BUILD_INIT([lscpu], [check])
1416 UL_REQUIRES_LINUX([lscpu])
1417 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1418 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1419 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1422 AC_ARG_ENABLE([lslogins],
1423 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1424 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1426 UL_BUILD_INIT([lslogins])
1427 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1428 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1429 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1430 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx fucntions])
1431 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1434 UL_BUILD_INIT([chcpu], [check])
1435 UL_REQUIRES_LINUX([chcpu])
1436 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1437 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1440 AC_ARG_ENABLE([wdctl],
1441 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1442 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1444 UL_BUILD_INIT([wdctl])
1445 UL_REQUIRES_LINUX([wdctl])
1446 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1447 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1448 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1451 UL_BUILD_INIT([swaplabel], [check])
1452 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1453 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1456 UL_BUILD_INIT([mkswap], [yes])
1457 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1458 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1459 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1463 AC_ARG_ENABLE([cal],
1464 AS_HELP_STRING([--disable-cal], [do not build cal]),
1465 [], [UL_DEFAULT_ENABLE([cal], [check])]
1467 UL_BUILD_INIT([cal])
1468 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1470 AC_ARG_ENABLE([logger],
1471 AS_HELP_STRING([--disable-logger], [do not build logger]),
1472 [], [UL_DEFAULT_ENABLE([logger], [check])]
1474 UL_BUILD_INIT([logger])
1475 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1477 UL_BUILD_INIT([look], [yes])
1478 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1480 UL_BUILD_INIT([mcookie], [yes])
1481 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1483 UL_BUILD_INIT([namei], [yes])
1484 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1486 UL_BUILD_INIT([whereis], [yes])
1487 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1489 UL_BUILD_INIT([getopt], [yes])
1490 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1493 UL_BUILD_INIT([blockdev], [check])
1494 UL_REQUIRES_LINUX([blockdev])
1495 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1498 UL_BUILD_INIT([prlimit], [check])
1499 UL_REQUIRES_LINUX([prlimit])
1500 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1501 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1502 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1503 AS_IF([test "x$build_prlimit" = xyes], [
1504 AC_CHECK_FUNCS([prlimit])
1508 UL_BUILD_INIT([lslocks], [check])
1509 UL_REQUIRES_LINUX([lslocks])
1510 UL_REQUIRES_BUILD([lslocks], [libmount])
1511 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1512 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1515 AC_ARG_ENABLE([switch_root],
1516 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1517 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1519 UL_BUILD_INIT([switch_root])
1520 UL_REQUIRES_LINUX([switch_root])
1521 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1522 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1525 AC_ARG_ENABLE([pivot_root],
1526 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1527 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1529 UL_BUILD_INIT([pivot_root])
1530 UL_REQUIRES_LINUX([pivot_root])
1531 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1532 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1535 UL_BUILD_INIT([flock], [check])
1536 UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
1537 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1540 AC_ARG_ENABLE([lsmem],
1541 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1542 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1544 UL_BUILD_INIT([lsmem])
1545 UL_REQUIRES_LINUX([lsmem])
1546 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1547 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1550 AC_ARG_ENABLE([chmem],
1551 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1552 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1554 UL_BUILD_INIT([chmem])
1555 UL_REQUIRES_LINUX([chmem])
1556 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1558 UL_BUILD_INIT([ipcmk], [yes])
1559 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1562 AC_ARG_ENABLE([ipcrm],
1563 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1564 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1566 UL_BUILD_INIT([ipcrm])
1567 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1569 AC_ARG_ENABLE([ipcs],
1570 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1571 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1573 UL_BUILD_INIT([ipcs])
1574 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1576 UL_BUILD_INIT([lsipc], [check])
1577 UL_REQUIRES_LINUX([lsipc])
1578 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1579 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1581 UL_BUILD_INIT([lsns], [check])
1582 UL_REQUIRES_LINUX([lsns])
1583 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1584 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1586 UL_BUILD_INIT([renice], [yes])
1587 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1589 UL_BUILD_INIT([setsid], [yes])
1590 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1592 UL_BUILD_INIT([readprofile], [check])
1593 UL_REQUIRES_LINUX([readprofile])
1594 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1596 UL_BUILD_INIT([dmesg], [check])
1597 UL_REQUIRES_LINUX([dmesg])
1598 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1600 UL_BUILD_INIT([ctrlaltdel], [check])
1601 UL_REQUIRES_LINUX([ctrlaltdel])
1602 dnl we assume reboot() to be the 1-argument variant, because even considering
1603 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1604 dnl reboot() with multiple arguments is yet only found in glibc versions
1605 dnl earlier than 2.x.
1606 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1607 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1609 UL_BUILD_INIT([fincore], [check])
1610 UL_REQUIRES_LINUX([fincore])
1611 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1612 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1614 UL_BUILD_INIT([fsfreeze], [check])
1615 UL_REQUIRES_LINUX([fsfreeze])
1616 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1618 UL_BUILD_INIT([blkdiscard], [check])
1619 UL_REQUIRES_LINUX([blkdiscard])
1620 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1622 UL_BUILD_INIT([blkzone], [check])
1623 UL_REQUIRES_LINUX([blkzone])
1624 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1625 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1627 UL_BUILD_INIT([ldattach], [check])
1628 UL_REQUIRES_LINUX([ldattach])
1629 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1631 UL_BUILD_INIT([rtcwake], [check])
1632 UL_REQUIRES_LINUX([rtcwake])
1633 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1635 UL_BUILD_INIT([setarch], [check])
1636 UL_REQUIRES_LINUX([setarch])
1637 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1639 UL_BUILD_INIT([script], [check])
1640 UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header])
1641 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1643 UL_BUILD_INIT([scriptreplay], [yes])
1644 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1646 UL_BUILD_INIT([col], [yes])
1647 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1649 UL_BUILD_INIT([colcrt], [yes])
1650 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1652 UL_BUILD_INIT([colrm], [yes])
1653 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1655 UL_BUILD_INIT([column], [check])
1656 UL_REQUIRES_BUILD([column], [libsmartcols])
1657 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1659 UL_BUILD_INIT([hexdump], [yes])
1660 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1662 UL_BUILD_INIT([rev], [yes])
1663 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1666 AC_ARG_ENABLE([tunelp],
1667 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1668 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1670 UL_BUILD_INIT([tunelp])
1671 UL_REQUIRES_LINUX([tunelp])
1672 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1675 AC_ARG_ENABLE([kill],
1676 AS_HELP_STRING([--disable-kill], [do not build kill]),
1677 [], [UL_DEFAULT_ENABLE([kill], [check])]
1679 UL_BUILD_INIT([kill])
1680 UL_REQUIRES_LINUX([kill])
1681 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1684 AC_ARG_ENABLE([last],
1685 AS_HELP_STRING([--disable-last], [do not build last]),
1686 [], [UL_DEFAULT_ENABLE([last], [check])]
1688 UL_BUILD_INIT([last])
1689 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1690 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx fucntions])
1691 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1694 AC_ARG_ENABLE([utmpdump],
1695 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1696 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1698 UL_BUILD_INIT([utmpdump])
1699 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1700 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx fucntions])
1701 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1704 AC_ARG_ENABLE([line],
1705 AS_HELP_STRING([--enable-line], [build line]),
1706 [], [UL_DEFAULT_ENABLE([line], [no])]
1708 UL_BUILD_INIT([line])
1709 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1712 AC_ARG_ENABLE([mesg],
1713 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1714 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1716 UL_BUILD_INIT([mesg])
1717 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1720 AC_ARG_ENABLE([raw],
1721 AS_HELP_STRING([--disable-raw], [do not build raw]),
1722 [], [UL_DEFAULT_ENABLE([raw], [check])]
1724 UL_BUILD_INIT([raw])
1725 UL_REQUIRES_LINUX([raw])
1726 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1727 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1730 AC_ARG_ENABLE([rename],
1731 AS_HELP_STRING([--disable-rename], [do not build rename]),
1732 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1734 UL_BUILD_INIT([rename])
1735 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1738 AC_ARG_ENABLE([reset],
1739 AS_HELP_STRING([--enable-reset], [build reset]),
1740 [], [UL_DEFAULT_ENABLE([reset], [no])]
1742 UL_BUILD_INIT([reset])
1743 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
1746 AC_ARG_ENABLE([vipw],
1747 AS_HELP_STRING([--enable-vipw], [build vipw]),
1748 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1750 UL_BUILD_INIT([vipw])
1751 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1752 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1755 AC_ARG_ENABLE([newgrp],
1756 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1757 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1759 UL_BUILD_INIT([newgrp])
1760 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1763 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1764 [], [with_user=check]
1767 AS_IF([test "x$with_user" != xno], [
1768 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1769 AS_CASE([$with_user:$have_user],
1771 [AC_MSG_ERROR([user selected but libuser not found])],
1773 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1775 # temporary solution, libuser has stupid .pc where are exported all
1776 # private dependencies to Requires: instead of Requires.private:
1777 AS_IF([test "x$have_user" = xyes], [
1781 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1783 AC_ARG_ENABLE([chfn-chsh-password],
1784 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1785 [], [enable_chfn_chsh_password=yes]
1788 AC_ARG_ENABLE([chfn-chsh],
1789 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1790 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1792 UL_BUILD_INIT([chfn_chsh])
1793 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1795 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1796 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1797 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1799 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1800 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1802 AC_ARG_ENABLE([chsh-only-listed],
1803 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1804 [], enable_chsh_only_listed=yes
1807 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1808 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1812 AC_ARG_ENABLE([login],
1813 AS_HELP_STRING([--disable-login], [do not build login]),
1814 [], [UL_DEFAULT_ENABLE([login], [check])]
1816 UL_BUILD_INIT([login])
1817 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1818 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
1819 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
1820 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx fucntions])
1821 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1823 AC_ARG_ENABLE([login-chown-vcs],
1824 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1825 [], [enable_login_chown_vcs=no]
1828 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1829 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1832 AC_ARG_ENABLE([login-stat-mail],
1833 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1834 [], [enable_login_stat_mail=no]
1837 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1838 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1842 AC_ARG_ENABLE([nologin],
1843 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1844 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
1846 UL_BUILD_INIT([nologin])
1847 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1850 AC_ARG_ENABLE([sulogin],
1851 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1852 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
1854 UL_BUILD_INIT([sulogin])
1855 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
1856 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1860 AS_HELP_STRING([--disable-su], [do not build su]),
1861 [], [UL_DEFAULT_ENABLE([su], [check])]
1864 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
1865 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
1866 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx fucntions])
1867 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1870 AC_ARG_ENABLE([runuser],
1871 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1872 [], [UL_DEFAULT_ENABLE([runuser], [check])]
1874 UL_BUILD_INIT([runuser])
1875 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
1876 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
1877 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx fucntions])
1878 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1882 AS_HELP_STRING([--disable-ul], [do not build ul]),
1883 [], [UL_DEFAULT_ENABLE([ul], [check])]
1886 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
1887 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1890 AC_ARG_ENABLE([more],
1891 AS_HELP_STRING([--disable-more], [do not build more]),
1892 [], [UL_DEFAULT_ENABLE([more], [check])]
1894 UL_BUILD_INIT([more])
1895 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
1896 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1900 AS_HELP_STRING([--enable-pg], [build pg]),
1901 [], [UL_DEFAULT_ENABLE([pg], [no])]
1904 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
1905 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1908 AC_ARG_ENABLE([setterm],
1909 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1910 [], [UL_DEFAULT_ENABLE([setterm], [check])]
1912 UL_BUILD_INIT([setterm])
1913 UL_REQUIRES_LINUX([setterm])
1914 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
1915 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1917 # build_schedutils= is just configure-only variable to control
1918 # ionice, taskset and chrt
1919 AC_ARG_ENABLE([schedutils],
1920 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1921 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
1925 UL_ENABLE_ALIAS([ionice], [schedutils])
1926 UL_BUILD_INIT([ionice])
1927 UL_REQUIRES_SYSCALL_CHECK([ionice],
1928 [UL_CHECK_SYSCALL([ioprio_set],
1939 UL_REQUIRES_SYSCALL_CHECK([ionice],
1940 [UL_CHECK_SYSCALL([ioprio_get],
1951 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1954 UL_ENABLE_ALIAS([taskset], [schedutils])
1955 UL_BUILD_INIT([taskset])
1956 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1957 UL_REQUIRES_SYSCALL_CHECK([taskset],
1958 [UL_CHECK_SYSCALL([sched_getaffinity])],
1959 [sched_getaffinity])
1960 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1964 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
1965 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
1967 UL_ENABLE_ALIAS([chrt], [schedutils])
1968 UL_BUILD_INIT([chrt])
1969 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
1970 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1972 AS_IF([test "x$build_chrt" = xyes], [
1973 UL_CHECK_SYSCALL([sched_setattr])
1977 AC_ARG_ENABLE([wall],
1978 AS_HELP_STRING([--disable-wall], [do not build wall]),
1979 [], [UL_DEFAULT_ENABLE([wall], [check])]
1981 UL_BUILD_INIT([wall])
1982 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
1983 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1986 AC_ARG_ENABLE([write],
1987 AS_HELP_STRING([--enable-write], [build write]),
1988 [], [UL_DEFAULT_ENABLE([write], [no])]
1990 UL_BUILD_INIT([write])
1991 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
1992 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx fucntions])
1993 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1996 AC_ARG_WITH([btrfs],
1997 AS_HELP_STRING([--with-btrfs], [build with support for btrfs]),
1998 [], [with_btrfs=check]
2001 AS_IF([test "x$with_btrfs" != xno], [
2002 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2004 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2006 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2009 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2012 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2015 AC_ARG_WITH([systemd],
2016 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
2017 [], [with_systemd=check]
2021 AS_IF([test "x$with_systemd" != xno], [
2022 # new version -- all libsystemd-* libs merged into libsystemd
2023 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2025 AS_IF([test "x$have_systemd" != "xyes"], [
2026 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2027 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2028 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2029 [have_systemd_journal=yes], [have_systemd_journal=no])
2030 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2033 AS_CASE([$with_systemd:$have_systemd],
2035 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2037 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2040 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2043 AC_ARG_WITH([systemdsystemunitdir],
2044 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
2045 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
2047 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2048 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2052 AC_ARG_WITH([smack],
2053 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2056 AS_IF([test "x$with_smack" = xyes], [
2057 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2061 AC_ARG_WITH([bashcompletiondir],
2062 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2064 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2065 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2067 with_bashcompletiondir=${datadir}/bash-completion/completions
2070 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2072 AC_ARG_ENABLE([bash-completion],
2073 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2074 [], [enable_bash_completion=yes]
2077 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2080 AC_ARG_WITH([python],
2081 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2082 [], [with_python=check withval=check]
2087 AS_IF([test "x$with_python" != xno], [
2088 # We follow distributions default and look for PKG module name "python"
2089 # (minimal version is 2) but if major version is explicitly specified by
2090 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2092 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2093 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2095 # check for python interpreter
2096 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2097 AS_CASE([$with_python:$have_python],
2099 [AC_MSG_ERROR([python selected but python interpreter not found])],
2101 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2103 # check for python development stuff
2104 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2105 [have_libpython=yes], [have_libpython=no])]
2110 AC_ARG_ENABLE([pylibmount],
2111 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2112 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2114 UL_BUILD_INIT([pylibmount])
2115 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2116 UL_REQUIRES_BUILD([pylibmount], [libmount])
2117 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2119 # We need to introduce a verbatim dependency into the Makefile, without automake
2120 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2121 verbatim_pylibmount_dependency='
2123 # pylibmountexec module must be installed after usrlib_exec libraries,
2124 # otherwise the libtool relink step will fail to find libmount.la and
2125 # will try -lmount which is possibly not available.
2126 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2129 AC_SUBST([verbatim_pylibmount_dependency])
2130 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2132 AC_ARG_ENABLE([pg-bell],
2133 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2134 [], [enable_pg_bell=yes]
2137 AS_IF([test "x$enable_pg_bell" = xyes], [
2138 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2142 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2143 AC_ARG_ENABLE([fs-paths-default],
2144 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2145 [AS_CASE([$enableval],
2146 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2147 [no], [fs_paths_defaults=""],
2148 [fs_paths_defaults="$enableval"]
2150 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2152 AC_ARG_ENABLE([fs-paths-extra],
2153 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2154 [AS_CASE([$enableval],
2155 [yes|no], [fs_paths_extra=""],
2156 [fs_paths_extra="$enableval"]
2160 fs_paths="$fs_paths_defaults"
2161 AS_IF([test "x$fs_paths_extra" != "x"], [
2162 AS_IF([test "x$fs_paths" != "x"], [
2163 fs_paths="${fs_paths}:"
2165 fs_paths="${fs_paths}${fs_paths_extra}"
2167 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2170 AC_ARG_ENABLE([use-tty-group],
2171 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2172 [], [enable_use_tty_group=yes]
2174 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2176 AS_IF([test "x$enable_use_tty_group" = xyes], [
2177 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2181 AC_ARG_ENABLE([sulogin-emergency-mount],
2182 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2183 [use emergency mount of /dev and /proc for sulogin]),
2184 [], [enable_sulogin_emergency_mount=no]
2187 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2188 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2189 [Should sulogin use a emergency mount of /dev and /proc?])
2193 AC_ARG_ENABLE([usrdir-path],
2194 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2195 [], [enable_usrdir_path=no]
2198 AS_IF([test "x$enable_usrdir_path" == xyes], [
2199 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2203 AC_ARG_ENABLE([makeinstall-chown],
2204 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2205 [], [enable_makeinstall_chown=yes]
2207 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2210 AC_ARG_ENABLE([makeinstall-setuid],
2211 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2212 [], [enable_makeinstall_setuid=yes]
2214 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2217 AC_ARG_ENABLE([colors-default],
2218 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2219 [], [enable_colors_default=yes]
2221 AS_IF([test "x$enable_colors_default" = xyes], [
2222 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2226 AC_ARG_VAR([SUID_CFLAGS],
2227 [CFLAGS used for binaries which are usually with the suid bit])
2228 AC_ARG_VAR([SUID_LDFLAGS],
2229 [LDFLAGS used for binaries which are usually with the suid bit])
2231 AC_ARG_VAR([DAEMON_CFLAGS],
2232 [CFLAGS used for binaries which are usually executed as daemons])
2233 AC_ARG_VAR([DAEMON_LDFLAGS],
2234 [LDFLAGS used for binaries which are usually executed as daemons])
2236 AC_ARG_VAR([SOLIB_CFLAGS],
2237 [CFLAGS used for shared libraries])
2238 AC_ARG_VAR([SOLIB_LDFLAGS],
2239 [LDFLAGS used for shared libraries])
2241 AC_ARG_VAR([ADJTIME_PATH],
2242 [Path to hwclock adjtime file, default /etc/adjtime])
2243 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2244 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2250 AC_CONFIG_HEADERS([config.h])
2253 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2258 libblkid/docs/Makefile
2259 libblkid/docs/version.xml
2260 libblkid/src/blkid.h
2261 libfdisk/docs/Makefile
2262 libfdisk/docs/version.xml
2263 libfdisk/src/libfdisk.h
2264 libmount/docs/Makefile
2265 libmount/docs/version.xml
2266 libmount/src/libmount.h
2267 libsmartcols/docs/Makefile
2268 libsmartcols/docs/version.xml
2269 libsmartcols/src/libsmartcols.h
2276 ${PACKAGE} ${VERSION}
2279 exec prefix: ${exec_prefix}
2281 localstatedir: ${localstatedir}
2285 includedir: ${includedir}
2286 usrbin_execdir: ${usrbin_execdir}
2287 usrsbin_execdir: ${usrsbin_execdir}
2288 usrlib_execdir: ${usrlib_execdir}
2292 suid cflags: ${SUID_CFLAGS}
2294 suid ldflags: ${SUID_LDFLAGS}
2297 Python version: ${PYTHON_VERSION}
2298 Python libs: ${pyexecdir}
2300 Bash completions: ${with_bashcompletiondir}
2301 Systemd support: ${have_systemd}
2302 Btrfs support: ${have_btrfs}
2303 Wide-char support: ${build_widechar}
2309 Type 'make' or 'make <utilname>' to compile.