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="12-May-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_blkzoned_h=$ac_cv_header_linux_blkzoned_h
295 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
296 have_linux_raw_h=$ac_cv_header_linux_raw_h
297 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
298 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
299 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
300 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
301 have_security_openpam_h=$ac_cv_header_security_openpam_h
302 have_shadow_h=$ac_cv_header_shadow_h
303 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
304 have_utmpx_h=$ac_cv_header_utmpx_h
306 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
311 struct tm *tm = localtime(0);
312 if (a == -1) /* false */
313 sleep(tm->tm_gmtoff);
315 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
318 AC_CHECK_MEMBERS([struct termios.c_line],,,
319 [[#include <termios.h>]])
321 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
322 [#include <sys/stat.h>])
324 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
326 #ifdef HAVE_SYS_SWAP_H
327 # include <sys/swap.h>
331 [[swapon("/dev/null", 0);]])],
332 [AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
334 [AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
338 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
340 AC_CHECK_DECL([llseek],
341 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
342 [Define to 1 if have llseek prototype])],
344 [#include <unistd.h>])
346 AC_CHECK_DECL([lseek64],
347 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
348 [Define to 1 if have lseek64 prototype])],
350 [#define _LARGEFILE_SOURCE
351 #define _LARGEFILE64_SOURCE
352 #include <unistd.h>])
354 AC_CHECK_DECL([environ],
355 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
356 [Define to 1 if have **environ prototype])],
359 AC_CHECK_DECL([strsignal],
360 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
361 [Define to 1 if have strsignal function prototype])],
364 AC_CHECK_DECL([TIOCGLCKTRMIOS],
365 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
366 [#include <sys/ioctl.h>])
367 AC_CHECK_DECL([SOCK_CLOEXEC],
368 [have_sock_cloexec=yes], [have_sock_cloexec=no],
369 [#include <sys/types.h>
370 #include <sys/socket.h>])
371 AC_CHECK_DECL([SOCK_NONBLOCK],
372 [have_sock_nonblock=yes], [have_sock_nonblock=no],
373 [#include <sys/types.h>
374 #include <sys/socket.h>])
375 AC_CHECK_DECL([SO_PASSCRED],
376 [have_so_passcred=yes], [have_so_passcred=no],
377 [#include <sys/types.h>
378 #include <sys/socket.h>])
430 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
431 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
432 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
433 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
434 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
435 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
436 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
438 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
441 AC_CHECK_FUNCS([isnan], [],
442 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
443 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
445 AC_SUBST([MATH_LIBS])
448 dnl lib/mononotic.c may require -lrt
449 AC_CHECK_FUNCS([clock_gettime], [],
450 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
454 AC_CHECK_FUNCS([timer_create],
456 [AC_CHECK_LIB([rt], [timer_create], [
460 AC_SEARCH_LIBS([timer_create], [rt], [
463 REALTIME_LIBS="-lrt -lpthread"
469 AC_SUBST([REALTIME_LIBS])
472 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
474 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
476 AC_SUBST([RTAS_LIBS])
479 AC_CHECK_MEMBER([struct sockaddr.sa_len],
480 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
481 [#include <sys/types.h>
482 #include <sys/socket.h>])
485 AC_SEARCH_LIBS([socket], [socket],
486 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
487 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
489 AC_SUBST([SOCKET_LIBS])
493 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
494 AS_IF([test x"$have_dirfd" = xno], [
495 AC_CHECK_DECLS([dirfd],
496 [have_dirfd=yes], [have_dirfd=no],
497 [#include <sys/types.h>
498 #include <dirent.h>])
502 AS_IF([test x"$have_dirfd" = xno], [
503 AC_CHECK_MEMBERS([DIR.dd_fd],
504 [have_ddfd=yes], [have_ddfd=no],
505 [#include <sys/types.h>
506 #include <dirent.h>])
509 AS_CASE([$have_dirfd:$have_ddfd],
511 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
515 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
516 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
519 program_invocation_short_name = "test";
522 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
523 [Define if program_invocation_short_name is defined])
529 AC_MSG_CHECKING([whether __progname is defined])
530 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
531 [if (*__progname == 0) return 1;])],
532 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
533 AC_MSG_RESULT([yes]),
536 dnl Static compilation
537 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
539 AC_ARG_ENABLE([static-programs],
540 [AS_HELP_STRING([--enable-static-programs=LIST],
541 [link static the programs in LIST (comma-separated,
542 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
544 AS_CASE([$enable_static_programs],
546 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
548 [enable_static_programs=]
551 dnl Set all the individual AM_CONDITIONALs
552 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
553 AS_CASE([,$enable_static_programs,],
554 [*,UL_PRG,*], [static_[]UL_PRG=yes]
556 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
557 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
558 [test "x$static_[]UL_PRG" = xyes])
562 AC_ARG_ENABLE([all-programs],
563 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
564 [], [enable_all_programs=undefined]
567 AS_CASE([$enable_all_programs],
568 [yes], [AC_MSG_WARN([force to build all programs by default])
569 ul_default_estate=check],
570 [no], [AC_MSG_WARN([disable all programs by default])
571 ul_default_estate=no]
577 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
585 i = sscanf("x", $1, &s);
586 if (i == 1 && *s == 'x')
592 AC_CACHE_VAL([scanf_cv_alloc_modifier],
593 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
594 [scanf_cv_alloc_modifier=ms],
595 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
596 [scanf_cv_alloc_modifier=as],
597 [scanf_cv_alloc_modifier=no]
601 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
605 #if defined(__GLIBC__) && !defined(__UCLIBC__)
607 #if !(__GLIBC_PREREQ(2, 7))
608 #error %m is not available
611 #elif defined(_POSIX_VERSION)
613 #if _POSIX_VERSION < 200809L
614 #error %m is not available
618 #error Your C-library is not supported.
621 [scanf_cv_alloc_modifier=ms],
622 [scanf_cv_alloc_modifier=no])]
626 AC_MSG_CHECKING([scanf string alloc modifiers])
627 AS_CASE([$scanf_cv_alloc_modifier],
629 [AC_MSG_RESULT([(%ms) yes])
630 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
631 have_scanf_alloc_modifier=yes],
633 [AC_MSG_RESULT([(%as) yes])
634 have_scanf_alloc_modifier=yes
635 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
637 have_scanf_alloc_modifier=no]
641 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
644 AS_IF([test "x$with_util" = xno], [
645 AM_CONDITIONAL([HAVE_UTIL], [false])
648 UL_CHECK_LIB([util], [openpty])
652 AC_CHECK_TYPES([union semun], [], [], [[
655 AC_CHECK_TYPES([loff_t])
658 AC_ARG_ENABLE([widechar],
659 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
660 [], [enable_widechar=check]
662 UL_BUILD_INIT([widechar])
663 UL_REQUIRES_COMPILE([widechar], [[
671 if (w == WEOF) exit(1);
677 AS_IF([test "x$build_widechar" = xyes ], [
678 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
682 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
686 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
688 AC_CHECK_TYPES([sighandler_t], [], [], [[
692 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
696 # on Solaris, you can't mix and match standards, since we use c99
697 # aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
698 # check for crypt.h and use that without XOPEN_SOURCE.
699 AC_CHECK_HEADERS([crypt.h])
700 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
704 #define _XOPEN_SOURCE
708 char *c = crypt("abc","pw");
711 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
715 #define _XOPEN_SOURCE
719 char *c = crypt("abc","pw");
721 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
724 AC_MSG_ERROR([crypt() is not available])
727 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
730 AC_ARG_WITH([selinux],
731 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
732 [], [with_selinux=no]
735 AS_IF([test "x$with_selinux" = xno], [
736 AM_CONDITIONAL([HAVE_SELINUX], [false])
738 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
739 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
740 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
741 AM_CONDITIONAL([HAVE_SELINUX], [true])
745 AS_CASE([$with_selinux:$have_selinux],
746 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
749 AS_IF([test "x$have_selinux" = xyes], [
750 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
751 # This function is missing in old libselinux 1.xx versions
752 AC_CHECK_FUNCS([security_get_initial_context])
756 AC_SUBST([SELINUX_LIBS])
757 AC_SUBST([SELINUX_LIBS_STATIC])
761 AS_HELP_STRING([--with-audit], [compile with audit support]),
765 AS_IF([test "x$with_audit" = xno], [
766 AM_CONDITIONAL([HAVE_AUDIT], [false])
768 UL_CHECK_LIB([audit], [audit_log_user_message])
769 AS_CASE([$with_audit:$have_audit],
771 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
775 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
779 AS_IF([test "x$with_udev" = xno], [
780 AM_CONDITIONAL([HAVE_UDEV], [false])
782 UL_CHECK_LIB([udev], [udev_new])
783 AS_CASE([$with_udev:$have_udev],
785 [AC_MSG_ERROR([udev selected but libudev not found])]
790 dnl wide-char ncurses
791 AC_ARG_WITH([ncursesw],
792 AS_HELP_STRING([--with-ncursesw], [build with wide-char ncurses, enabled by default]),
793 [], [with_ncursesw=auto]
796 AS_IF([test "x$with_ncursesw" != xno], [
797 UL_NCURSES_CHECK([ncursesw])
798 AS_IF([test "x$have_ncursesw" = xyes], [
799 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
800 CURSES_LIB_NAME="ncursesw"
801 AC_CHECK_HEADERS([ncursesw/ncurses.h ncurses.h])
804 AS_CASE([$with_ncursesw:$have_ncursesw],
805 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
809 AC_ARG_WITH([ncurses],
810 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, disabled by default]),
811 [], [with_ncurses=auto]
815 AS_CASE([$with_ncurses:$build_widechar],
816 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
818 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
819 UL_NCURSES_CHECK([ncurses])
820 AS_IF([test "x$have_ncurses" = xyes], [
821 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
822 CURSES_LIB_NAME="ncurses"
823 AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h])
826 AS_CASE([$with_ncurses:$have_ncurses],
827 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
829 AC_SUBST([NCURSES_CFLAGS])
830 AC_SUBST([NCURSES_LIBS])
831 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
835 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
839 AS_IF([test "x$with_slang" = xyes], [
840 AC_CHECK_HEADERS([slang.h slang/slang.h])
841 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
842 [have_slang=yes], [], [
845 #elif defined(HAVE_SLANG_SLANG_H)
846 #include <slang/slang.h>
849 AS_IF([test "x$have_slang" = xno], [
850 AC_MSG_ERROR([slang selected but slcurses.h not found])],
851 [CURSES_LIB_NAME=slang
854 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
857 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
858 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
859 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
860 [Define if curses library has the use_default_colors().])
862 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
863 AC_DEFINE(HAVE_RESIZETERM, 1,
864 [Define if curses library has the resizeterm().])
869 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
870 [], [with_tinfo=auto]
873 AS_IF([test "x$with_tinfo" != xno], [
874 dnl Try pkg-config for libtinfo
875 PKG_CHECK_MODULES(TINFO, [tinfo], [
876 dnl pkg-config success
878 UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [
880 dnl If pkg-config failed, fall back to classic searching.
881 AC_CHECK_LIB([tinfo], [tgetent], [
884 TINFO_LIBS_STATIC="-ltinfo"
888 AC_SUBST([TINFO_LIBS])
889 AC_SUBST([TINFO_LIBS_STATIC])
890 AC_SUBST([TINFO_CFLAGS])
891 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
892 AS_IF([test "x$have_tinfo" = xyes], [
893 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
897 AC_ARG_WITH([readline],
898 AS_HELP_STRING([--with-readline], [compile with GNU Readline support]),
899 [], [with_readline=auto]
902 AS_IF([test "x$with_readline" = xno], [
903 AM_CONDITIONAL([HAVE_READLINE], [false])
905 UL_CHECK_LIB([readline], [readline])
906 AS_CASE([$with_readline:$have_readline],
908 [AC_MSG_ERROR([readline selected but libreadline not found ])],
910 [READLINE_LIBS="-lreadline"
911 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
914 AC_SUBST([READLINE_LIBS])
915 AC_SUBST([READLINE_LIBS_STATIC])
918 AC_ARG_WITH([utempter],
919 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
920 [], [with_utempter=no]
923 AS_IF([test "x$with_utempter" = xyes], [
924 UL_CHECK_LIB([utempter], [utempter_add_record])
925 AS_IF([test "x$have_utempter" = xno], [
926 AC_MSG_ERROR([utempter selected but libutempter not found])
929 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
936 AC_ARG_ENABLE([libuuid],
937 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
938 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
940 UL_BUILD_INIT([libuuid])
941 AC_SUBST([LIBUUID_VERSION])
942 AC_SUBST([LIBUUID_VERSION_INFO])
943 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
945 AC_ARG_ENABLE([libuuid-force-uuidd],
946 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
947 [], [enable_libuuid_force_uuidd=no]
950 AS_IF([test "x$build_libuuid" = xyes], [
951 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
957 AC_ARG_ENABLE([libblkid],
958 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
959 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
961 UL_BUILD_INIT([libblkid])
962 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
963 AC_SUBST([LIBBLKID_DATE])
964 AC_SUBST([LIBBLKID_VERSION])
965 AC_SUBST([LIBBLKID_VERSION_INFO])
966 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
967 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
968 AS_IF([test "x$build_libblkid" = xyes], [
969 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
971 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
972 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
977 AC_ARG_ENABLE([libmount],
978 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
979 [], [UL_DEFAULT_ENABLE([libmount], [check])]
981 UL_BUILD_INIT([libmount])
982 UL_REQUIRES_BUILD([libmount], [libblkid])
983 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
984 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
985 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
986 AS_IF([test "x$build_libmount" = xyes], [
987 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
990 AC_SUBST([LIBMOUNT_VERSION])
991 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
992 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
993 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
994 AC_SUBST([LIBMOUNT_VERSION_INFO])
995 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
997 AC_ARG_ENABLE([libmount-support-mtab],
998 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
999 [], [enable_libmount_support_mtab=no]
1002 AS_IF([test "x$enable_libmount_support_mtab" == xyes], [
1003 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1010 AC_ARG_ENABLE([libsmartcols],
1011 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1012 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1014 UL_BUILD_INIT([libsmartcols])
1015 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1017 AC_SUBST([LIBSMARTCOLS_VERSION])
1018 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1019 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1025 AC_ARG_ENABLE([libfdisk],
1026 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1027 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1029 UL_BUILD_INIT([libfdisk])
1030 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1031 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1032 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1034 AS_IF([test "x$build_libblkid" = xyes],
1035 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1036 AC_SUBST([LIBFDISK_PC_REQUIRES])
1038 AC_SUBST([LIBFDISK_VERSION])
1039 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1040 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1041 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1042 AC_SUBST([LIBFDISK_VERSION_INFO])
1043 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1046 UL_BUILD_INIT([fdisk], [check])
1047 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1048 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1049 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1050 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1053 UL_BUILD_INIT([sfdisk], [check])
1054 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1055 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1056 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1057 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1060 UL_BUILD_INIT([cfdisk], [check])
1061 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1062 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1063 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1064 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1065 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1068 AC_ARG_ENABLE([mount],
1069 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1070 [], [UL_DEFAULT_ENABLE([mount], [check])]
1072 UL_BUILD_INIT([mount])
1073 UL_REQUIRES_LINUX([mount])
1074 UL_REQUIRES_BUILD([mount], [libmount])
1075 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1078 AC_ARG_ENABLE([losetup],
1079 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1080 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1082 UL_BUILD_INIT([losetup])
1083 UL_REQUIRES_LINUX([losetup])
1084 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1085 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1087 AC_ARG_ENABLE([zramctl],
1088 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1089 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1091 UL_BUILD_INIT([zramctl])
1092 UL_REQUIRES_LINUX([zramctl])
1093 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1094 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1096 AC_ARG_ENABLE([fsck],
1097 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1098 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1100 UL_BUILD_INIT([fsck])
1101 UL_REQUIRES_BUILD([fsck], [libmount])
1102 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1105 AC_ARG_ENABLE([partx],
1106 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1107 [], [UL_DEFAULT_ENABLE([partx], [check])]
1109 UL_BUILD_INIT([partx])
1110 UL_REQUIRES_LINUX([partx])
1111 UL_REQUIRES_BUILD([partx], [libblkid])
1112 UL_REQUIRES_BUILD([partx], [libsmartcols])
1113 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1116 AC_ARG_ENABLE([uuidd],
1117 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1118 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1120 UL_BUILD_INIT([uuidd])
1121 UL_REQUIRES_BUILD([uuidd], [libuuid])
1122 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1123 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1124 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" == xyes ], [
1125 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1127 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1130 UL_BUILD_INIT([uuidgen], [check])
1131 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1132 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1134 UL_BUILD_INIT([blkid], [check])
1135 UL_REQUIRES_BUILD([blkid], [libblkid])
1136 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1138 UL_BUILD_INIT([findfs], [check])
1139 UL_REQUIRES_BUILD([findfs], [libblkid])
1140 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1142 UL_BUILD_INIT([wipefs], [check])
1143 UL_REQUIRES_BUILD([wipefs], [libblkid])
1144 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1146 UL_BUILD_INIT([findmnt], [check])
1147 UL_REQUIRES_BUILD([findmnt], [libmount])
1148 UL_REQUIRES_BUILD([findmnt], [libblkid])
1149 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1150 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1153 AC_ARG_ENABLE([mountpoint],
1154 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1155 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1157 UL_BUILD_INIT([mountpoint])
1158 UL_REQUIRES_BUILD([mountpoint], [libmount])
1159 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1162 AC_ARG_ENABLE([fallocate],
1163 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1164 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1166 UL_BUILD_INIT([fallocate])
1167 UL_REQUIRES_LINUX([fallocate])
1168 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1169 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1171 AS_IF([test "x$build_fallocate" = xyes], [
1172 dnl check for valid fallocate() function
1173 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1174 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1175 dnl and program can't be linked.
1176 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1177 dnl function prototype.
1178 AC_MSG_CHECKING([for valid fallocate() function])
1179 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1180 #ifdef HAVE_UNISTD_H
1181 # include <unistd.h>
1183 #ifdef HAVE_SYS_TYPES_H
1184 # include <sys/types.h>
1186 #ifdef HAVE_LINUX_FALLOC_H
1187 # include <linux/falloc.h>
1194 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1199 AC_MSG_RESULT([yes])
1200 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1201 AC_MSG_RESULT([no])])
1204 AS_IF([test "x$build_fallocate" = xyes], [
1205 dnl check for valid posix_fallocate() function
1206 AC_MSG_CHECKING([for valid posix_fallocate() function])
1207 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1208 #ifdef HAVE_UNISTD_H
1209 # include <unistd.h>
1211 #ifdef HAVE_SYS_TYPES_H
1212 # include <sys/types.h>
1214 #ifdef HAVE_LINUX_FALLOC_H
1215 # include <linux/falloc.h>
1222 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1227 AC_MSG_RESULT([yes])
1228 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1229 AC_MSG_RESULT([no])])
1233 AC_ARG_ENABLE([unshare],
1234 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1235 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1237 UL_BUILD_INIT([unshare])
1238 UL_REQUIRES_LINUX([unshare])
1239 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1240 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1241 AC_CHECK_FUNCS([unshare])
1243 AC_ARG_ENABLE([nsenter],
1244 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1245 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1247 UL_BUILD_INIT([nsenter])
1248 UL_REQUIRES_LINUX([nsenter])
1249 UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
1250 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1251 AC_CHECK_FUNCS([setns])
1254 AC_ARG_WITH([cap_ng],
1255 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1256 [], [with_cap_ng=auto]
1258 AS_IF([test "x$with_cap_ng" = xno], [
1259 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1262 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1266 AC_ARG_ENABLE([setpriv],
1267 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1268 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1270 UL_BUILD_INIT([setpriv])
1271 UL_REQUIRES_LINUX([setpriv])
1272 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
1273 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1274 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1277 AC_ARG_ENABLE([eject],
1278 AS_HELP_STRING([--disable-eject], [do not build eject]),
1279 [], [UL_DEFAULT_ENABLE([eject], [check])]
1281 UL_BUILD_INIT([eject])
1282 UL_REQUIRES_LINUX([eject])
1283 UL_REQUIRES_BUILD([eject], [libmount])
1284 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1287 AC_ARG_ENABLE([agetty],
1288 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1289 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1291 UL_BUILD_INIT([agetty])
1292 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1293 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx fucntions])
1294 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1295 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1296 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1298 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1302 AC_ARG_ENABLE([plymouth_support],
1303 AS_HELP_STRING([--disable-plymouth_support], [don not care about plymouth in sylogin(8) and agetty(8)]),
1304 [], [enable_plymouth_support=check]
1306 UL_BUILD_INIT([plymouth_support])
1307 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1308 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1309 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1310 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1311 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1312 AS_IF([test "x$build_plymouth_support" = xyes ], [
1313 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1318 AS_HELP_STRING([--without-libz], [compile without libz]),
1319 [], [with_libz=auto]
1321 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1322 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1326 AC_ARG_ENABLE([cramfs],
1327 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1328 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1330 UL_BUILD_INIT([cramfs])
1331 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1332 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1335 AC_ARG_ENABLE([bfs],
1336 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1337 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1339 UL_BUILD_INIT([bfs])
1340 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1343 AC_ARG_ENABLE([minix],
1344 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1345 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1347 UL_BUILD_INIT([minix])
1348 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1351 AC_ARG_ENABLE([fdformat],
1352 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1353 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1355 UL_BUILD_INIT([fdformat])
1356 UL_REQUIRES_LINUX([fdformat])
1357 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1360 AC_ARG_ENABLE([hwclock],
1361 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1362 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1364 have_linuxdummy=$linux_os
1366 UL_BUILD_INIT([hwclock])
1367 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1368 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1371 UL_BUILD_INIT([mkfs], [yes])
1372 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1374 UL_BUILD_INIT([isosize], [yes])
1375 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1378 UL_BUILD_INIT([fstrim], [check])
1379 UL_REQUIRES_LINUX([fstrim])
1380 UL_REQUIRES_BUILD([fstrim], [libmount])
1381 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1384 UL_BUILD_INIT([swapon], [check])
1385 UL_REQUIRES_LINUX([swapon])
1386 UL_REQUIRES_BUILD([swapon], [libblkid])
1387 UL_REQUIRES_BUILD([swapon], [libmount])
1388 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1389 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1392 UL_BUILD_INIT([lsblk], [check])
1393 UL_REQUIRES_LINUX([lsblk])
1394 UL_REQUIRES_BUILD([lsblk], [libblkid])
1395 UL_REQUIRES_BUILD([lsblk], [libmount])
1396 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1397 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1400 UL_BUILD_INIT([lscpu], [check])
1401 UL_REQUIRES_LINUX([lscpu])
1402 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1403 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1404 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1407 AC_ARG_ENABLE([lslogins],
1408 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1409 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1411 UL_BUILD_INIT([lslogins])
1412 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1413 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1414 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1415 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx fucntions])
1416 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1419 UL_BUILD_INIT([chcpu], [check])
1420 UL_REQUIRES_LINUX([chcpu])
1421 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1422 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1425 AC_ARG_ENABLE([wdctl],
1426 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1427 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1429 UL_BUILD_INIT([wdctl])
1430 UL_REQUIRES_LINUX([wdctl])
1431 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1432 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1433 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1436 UL_BUILD_INIT([swaplabel], [check])
1437 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1438 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1441 UL_BUILD_INIT([mkswap], [yes])
1442 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1443 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1444 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1448 AC_ARG_ENABLE([cal],
1449 AS_HELP_STRING([--disable-cal], [do not build cal]),
1450 [], [UL_DEFAULT_ENABLE([cal], [check])]
1452 UL_BUILD_INIT([cal])
1453 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1455 AC_ARG_ENABLE([logger],
1456 AS_HELP_STRING([--disable-logger], [do not build logger]),
1457 [], [UL_DEFAULT_ENABLE([logger], [check])]
1459 UL_BUILD_INIT([logger])
1460 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1462 UL_BUILD_INIT([look], [yes])
1463 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1465 UL_BUILD_INIT([mcookie], [yes])
1466 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1468 UL_BUILD_INIT([namei], [yes])
1469 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1471 UL_BUILD_INIT([whereis], [yes])
1472 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1474 UL_BUILD_INIT([getopt], [yes])
1475 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1478 UL_BUILD_INIT([blockdev], [check])
1479 UL_REQUIRES_LINUX([blockdev])
1480 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1483 UL_BUILD_INIT([prlimit], [check])
1484 UL_REQUIRES_LINUX([prlimit])
1485 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1486 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1487 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1488 AS_IF([test "x$build_prlimit" = xyes], [
1489 AC_CHECK_FUNCS([prlimit])
1493 UL_BUILD_INIT([lslocks], [check])
1494 UL_REQUIRES_LINUX([lslocks])
1495 UL_REQUIRES_BUILD([lslocks], [libmount])
1496 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1497 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1500 AC_ARG_ENABLE([switch_root],
1501 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1502 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1504 UL_BUILD_INIT([switch_root])
1505 UL_REQUIRES_LINUX([switch_root])
1506 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1507 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1510 AC_ARG_ENABLE([pivot_root],
1511 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1512 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1514 UL_BUILD_INIT([pivot_root])
1515 UL_REQUIRES_LINUX([pivot_root])
1516 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1517 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1520 UL_BUILD_INIT([flock], [check])
1521 UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
1522 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1525 AC_ARG_ENABLE([lsmem],
1526 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1527 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1529 UL_BUILD_INIT([lsmem])
1530 UL_REQUIRES_LINUX([lsmem])
1531 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1532 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1535 AC_ARG_ENABLE([chmem],
1536 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1537 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1539 UL_BUILD_INIT([chmem])
1540 UL_REQUIRES_LINUX([chmem])
1541 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1543 UL_BUILD_INIT([ipcmk], [yes])
1544 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1547 AC_ARG_ENABLE([ipcrm],
1548 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1549 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1551 UL_BUILD_INIT([ipcrm])
1552 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1554 AC_ARG_ENABLE([ipcs],
1555 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1556 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1558 UL_BUILD_INIT([ipcs])
1559 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1561 UL_BUILD_INIT([lsipc], [check])
1562 UL_REQUIRES_LINUX([lsipc])
1563 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1564 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1566 UL_BUILD_INIT([lsns], [check])
1567 UL_REQUIRES_LINUX([lsns])
1568 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1569 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1571 UL_BUILD_INIT([renice], [yes])
1572 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1574 UL_BUILD_INIT([setsid], [yes])
1575 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1577 UL_BUILD_INIT([readprofile], [check])
1578 UL_REQUIRES_LINUX([readprofile])
1579 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1581 UL_BUILD_INIT([dmesg], [check])
1582 UL_REQUIRES_LINUX([dmesg])
1583 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1585 UL_BUILD_INIT([ctrlaltdel], [check])
1586 UL_REQUIRES_LINUX([ctrlaltdel])
1587 dnl we assume reboot() to be the 1-argument variant, because even considering
1588 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1589 dnl reboot() with multiple arguments is yet only found in glibc versions
1590 dnl earlier than 2.x.
1591 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1592 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1594 UL_BUILD_INIT([fincore], [check])
1595 UL_REQUIRES_LINUX([fincore])
1596 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1597 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1599 UL_BUILD_INIT([fsfreeze], [check])
1600 UL_REQUIRES_LINUX([fsfreeze])
1601 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1603 UL_BUILD_INIT([blkdiscard], [check])
1604 UL_REQUIRES_LINUX([blkdiscard])
1605 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1607 UL_BUILD_INIT([blkzone], [check])
1608 UL_REQUIRES_LINUX([blkzone])
1609 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1610 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1612 UL_BUILD_INIT([ldattach], [check])
1613 UL_REQUIRES_LINUX([ldattach])
1614 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1616 UL_BUILD_INIT([rtcwake], [check])
1617 UL_REQUIRES_LINUX([rtcwake])
1618 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1620 UL_BUILD_INIT([setarch], [check])
1621 UL_REQUIRES_LINUX([setarch])
1622 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1624 UL_BUILD_INIT([script], [check])
1625 UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header])
1626 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1628 UL_BUILD_INIT([scriptreplay], [yes])
1629 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1631 UL_BUILD_INIT([col], [yes])
1632 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1634 UL_BUILD_INIT([colcrt], [yes])
1635 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1637 UL_BUILD_INIT([colrm], [yes])
1638 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1640 UL_BUILD_INIT([column], [check])
1641 UL_REQUIRES_BUILD([column], [libsmartcols])
1642 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1644 UL_BUILD_INIT([hexdump], [yes])
1645 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1647 UL_BUILD_INIT([rev], [yes])
1648 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1651 AC_ARG_ENABLE([tunelp],
1652 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1653 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1655 UL_BUILD_INIT([tunelp])
1656 UL_REQUIRES_LINUX([tunelp])
1657 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1660 AC_ARG_ENABLE([kill],
1661 AS_HELP_STRING([--disable-kill], [do not build kill]),
1662 [], [UL_DEFAULT_ENABLE([kill], [check])]
1664 UL_BUILD_INIT([kill])
1665 UL_REQUIRES_LINUX([kill])
1666 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1669 AC_ARG_ENABLE([last],
1670 AS_HELP_STRING([--disable-last], [do not build last]),
1671 [], [UL_DEFAULT_ENABLE([last], [check])]
1673 UL_BUILD_INIT([last])
1674 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1675 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx fucntions])
1676 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1679 AC_ARG_ENABLE([utmpdump],
1680 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1681 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1683 UL_BUILD_INIT([utmpdump])
1684 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1685 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx fucntions])
1686 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1689 AC_ARG_ENABLE([line],
1690 AS_HELP_STRING([--enable-line], [build line]),
1691 [], [UL_DEFAULT_ENABLE([line], [no])]
1693 UL_BUILD_INIT([line])
1694 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1697 AC_ARG_ENABLE([mesg],
1698 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1699 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1701 UL_BUILD_INIT([mesg])
1702 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1705 AC_ARG_ENABLE([raw],
1706 AS_HELP_STRING([--disable-raw], [do not build raw]),
1707 [], [UL_DEFAULT_ENABLE([raw], [check])]
1709 UL_BUILD_INIT([raw])
1710 UL_REQUIRES_LINUX([raw])
1711 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1712 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1715 AC_ARG_ENABLE([rename],
1716 AS_HELP_STRING([--disable-rename], [do not build rename]),
1717 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1719 UL_BUILD_INIT([rename])
1720 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1723 AC_ARG_ENABLE([reset],
1724 AS_HELP_STRING([--enable-reset], [build reset]),
1725 [], [UL_DEFAULT_ENABLE([reset], [no])]
1727 UL_BUILD_INIT([reset])
1728 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
1731 AC_ARG_ENABLE([vipw],
1732 AS_HELP_STRING([--enable-vipw], [build vipw]),
1733 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1735 UL_BUILD_INIT([vipw])
1736 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1737 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1740 AC_ARG_ENABLE([newgrp],
1741 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1742 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1744 UL_BUILD_INIT([newgrp])
1745 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1748 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1749 [], [with_user=check]
1752 AS_IF([test "x$with_user" != xno], [
1753 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1754 AS_CASE([$with_user:$have_user],
1756 [AC_MSG_ERROR([user selected but libuser not found])],
1758 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1760 # temporary solution, libuser has stupid .pc where are exported all
1761 # private dependencies to Requires: instead of Requires.private:
1762 AS_IF([test "x$have_user" = xyes], [
1766 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1768 AC_ARG_ENABLE([chfn-chsh-password],
1769 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1770 [], [enable_chfn_chsh_password=yes]
1773 AC_ARG_ENABLE([chfn-chsh],
1774 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1775 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1777 UL_BUILD_INIT([chfn_chsh])
1778 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1780 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1781 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1782 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1784 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1785 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1787 AC_ARG_ENABLE([chsh-only-listed],
1788 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1789 [], enable_chsh_only_listed=yes
1792 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1793 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1797 AC_ARG_ENABLE([login],
1798 AS_HELP_STRING([--disable-login], [do not build login]),
1799 [], [UL_DEFAULT_ENABLE([login], [check])]
1801 UL_BUILD_INIT([login])
1802 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1803 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
1804 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
1805 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx fucntions])
1806 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1808 AC_ARG_ENABLE([login-chown-vcs],
1809 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1810 [], [enable_login_chown_vcs=no]
1813 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1814 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1817 AC_ARG_ENABLE([login-stat-mail],
1818 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1819 [], [enable_login_stat_mail=no]
1822 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1823 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1827 AC_ARG_ENABLE([nologin],
1828 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1829 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
1831 UL_BUILD_INIT([nologin])
1832 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1835 AC_ARG_ENABLE([sulogin],
1836 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1837 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
1839 UL_BUILD_INIT([sulogin])
1840 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
1841 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1845 AS_HELP_STRING([--disable-su], [do not build su]),
1846 [], [UL_DEFAULT_ENABLE([su], [check])]
1849 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
1850 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
1851 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx fucntions])
1852 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1855 AC_ARG_ENABLE([runuser],
1856 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1857 [], [UL_DEFAULT_ENABLE([runuser], [check])]
1859 UL_BUILD_INIT([runuser])
1860 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
1861 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
1862 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx fucntions])
1863 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1867 AS_HELP_STRING([--disable-ul], [do not build ul]),
1868 [], [UL_DEFAULT_ENABLE([ul], [check])]
1871 UL_REQUIRES_HAVE([ul], [ncursesw, tinfo, ncurses], [ncursesw, ncurses or tinfo libraries])
1872 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1875 AC_ARG_ENABLE([more],
1876 AS_HELP_STRING([--disable-more], [do not build more]),
1877 [], [UL_DEFAULT_ENABLE([more], [check])]
1879 UL_BUILD_INIT([more])
1880 UL_REQUIRES_HAVE([more], [ncursesw, tinfo, ncurses, termcap], [ncursesw, ncurses, tinfo or termcap libraries])
1881 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1885 AS_HELP_STRING([--enable-pg], [build pg]),
1886 [], [UL_DEFAULT_ENABLE([pg], [no])]
1889 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
1890 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1893 AC_ARG_ENABLE([setterm],
1894 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1895 [], [UL_DEFAULT_ENABLE([setterm], [check])]
1897 UL_BUILD_INIT([setterm])
1898 UL_REQUIRES_LINUX([setterm])
1899 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
1900 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1902 # build_schedutils= is just configure-only variable to control
1903 # ionice, taskset and chrt
1904 AC_ARG_ENABLE([schedutils],
1905 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1906 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
1910 UL_ENABLE_ALIAS([ionice], [schedutils])
1911 UL_BUILD_INIT([ionice])
1912 UL_REQUIRES_SYSCALL_CHECK([ionice],
1913 [UL_CHECK_SYSCALL([ioprio_set],
1924 UL_REQUIRES_SYSCALL_CHECK([ionice],
1925 [UL_CHECK_SYSCALL([ioprio_get],
1936 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1939 UL_ENABLE_ALIAS([taskset], [schedutils])
1940 UL_BUILD_INIT([taskset])
1941 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1942 UL_REQUIRES_SYSCALL_CHECK([taskset],
1943 [UL_CHECK_SYSCALL([sched_getaffinity])],
1944 [sched_getaffinity])
1945 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1949 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
1950 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
1952 UL_ENABLE_ALIAS([chrt], [schedutils])
1953 UL_BUILD_INIT([chrt])
1954 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
1955 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1957 AS_IF([test "x$build_chrt" = xyes], [
1958 UL_CHECK_SYSCALL([sched_setattr])
1962 AC_ARG_ENABLE([wall],
1963 AS_HELP_STRING([--disable-wall], [do not build wall]),
1964 [], [UL_DEFAULT_ENABLE([wall], [check])]
1966 UL_BUILD_INIT([wall])
1967 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
1968 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1971 AC_ARG_ENABLE([write],
1972 AS_HELP_STRING([--enable-write], [build write]),
1973 [], [UL_DEFAULT_ENABLE([write], [no])]
1975 UL_BUILD_INIT([write])
1976 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
1977 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx fucntions])
1978 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1981 AC_ARG_WITH([btrfs],
1982 AS_HELP_STRING([--with-btrfs], [build with support for btrfs]),
1983 [], [with_btrfs=check]
1986 AS_IF([test "x$with_btrfs" != xno], [
1987 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
1989 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
1991 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
1994 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
1997 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2000 AC_ARG_WITH([systemd],
2001 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
2002 [], [with_systemd=check]
2006 AS_IF([test "x$with_systemd" != xno], [
2007 # new version -- all libsystemd-* libs merged into libsystemd
2008 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2010 AS_IF([test "x$have_systemd" != "xyes"], [
2011 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2012 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2013 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2014 [have_systemd_journal=yes], [have_systemd_journal=no])
2015 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2018 AS_CASE([$with_systemd:$have_systemd],
2020 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2022 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2025 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2028 AC_ARG_WITH([systemdsystemunitdir],
2029 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
2030 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
2032 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2033 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2037 AC_ARG_WITH([smack],
2038 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2041 AS_IF([test "x$with_smack" = xyes], [
2042 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2046 AC_ARG_WITH([bashcompletiondir],
2047 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2049 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2050 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2052 with_bashcompletiondir=${datadir}/bash-completion/completions
2055 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2057 AC_ARG_ENABLE([bash-completion],
2058 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2059 [], [enable_bash_completion=yes]
2062 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2065 AC_ARG_WITH([python],
2066 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2067 [], [with_python=check withval=check]
2072 AS_IF([test "x$with_python" != xno], [
2073 # We follow distributions default and look for PKG module name "python"
2074 # (minimal version is 2) but if major version is explicitly specified by
2075 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2077 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2078 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2080 # check for python interpreter
2081 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2082 AS_CASE([$with_python:$have_python],
2084 [AC_MSG_ERROR([python selected but python interpreter not found])],
2086 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2088 # check for python development stuff
2089 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2090 [have_libpython=yes], [have_libpython=no])]
2095 AC_ARG_ENABLE([pylibmount],
2096 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2097 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2099 UL_BUILD_INIT([pylibmount])
2100 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2101 UL_REQUIRES_BUILD([pylibmount], [libmount])
2102 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2104 # We need to introduce a verbatim dependency into the Makefile, without automake
2105 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2106 verbatim_pylibmount_dependency='
2108 # pylibmountexec module must be installed after usrlib_exec libraries,
2109 # otherwise the libtool relink step will fail to find libmount.la and
2110 # will try -lmount which is possibly not available.
2111 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2114 AC_SUBST([verbatim_pylibmount_dependency])
2115 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2117 AC_ARG_ENABLE([pg-bell],
2118 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2119 [], [enable_pg_bell=yes]
2122 AS_IF([test "x$enable_pg_bell" = xyes], [
2123 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2127 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2128 AC_ARG_ENABLE([fs-paths-default],
2129 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2130 [AS_CASE([$enableval],
2131 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2132 [no], [fs_paths_defaults=""],
2133 [fs_paths_defaults="$enableval"]
2135 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2137 AC_ARG_ENABLE([fs-paths-extra],
2138 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2139 [AS_CASE([$enableval],
2140 [yes|no], [fs_paths_extra=""],
2141 [fs_paths_extra="$enableval"]
2145 fs_paths="$fs_paths_defaults"
2146 AS_IF([test "x$fs_paths_extra" != "x"], [
2147 AS_IF([test "x$fs_paths" != "x"], [
2148 fs_paths="${fs_paths}:"
2150 fs_paths="${fs_paths}${fs_paths_extra}"
2152 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2155 AC_ARG_ENABLE([use-tty-group],
2156 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2157 [], [enable_use_tty_group=yes]
2159 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2161 AS_IF([test "x$enable_use_tty_group" = xyes], [
2162 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2166 AC_ARG_ENABLE([sulogin-emergency-mount],
2167 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2168 [use emergency mount of /dev and /proc for sulogin]),
2169 [], [enable_sulogin_emergency_mount=no]
2172 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2173 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2174 [Should sulogin use a emergency mount of /dev and /proc?])
2178 AC_ARG_ENABLE([usrdir-path],
2179 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2180 [], [enable_usrdir_path=no]
2183 AS_IF([test "x$enable_usrdir_path" == xyes], [
2184 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2188 AC_ARG_ENABLE([makeinstall-chown],
2189 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2190 [], [enable_makeinstall_chown=yes]
2192 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2195 AC_ARG_ENABLE([makeinstall-setuid],
2196 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2197 [], [enable_makeinstall_setuid=yes]
2199 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2202 AC_ARG_ENABLE([colors-default],
2203 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2204 [], [enable_colors_default=yes]
2206 AS_IF([test "x$enable_colors_default" = xyes], [
2207 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2211 AC_ARG_VAR([SUID_CFLAGS],
2212 [CFLAGS used for binaries which are usually with the suid bit])
2213 AC_ARG_VAR([SUID_LDFLAGS],
2214 [LDFLAGS used for binaries which are usually with the suid bit])
2216 AC_ARG_VAR([DAEMON_CFLAGS],
2217 [CFLAGS used for binaries which are usually executed as daemons])
2218 AC_ARG_VAR([DAEMON_LDFLAGS],
2219 [LDFLAGS used for binaries which are usually executed as daemons])
2221 AC_ARG_VAR([SOLIB_CFLAGS],
2222 [CFLAGS used for shared libraries])
2223 AC_ARG_VAR([SOLIB_LDFLAGS],
2224 [LDFLAGS used for shared libraries])
2226 AC_ARG_VAR([ADJTIME_PATH],
2227 [Path to hwclock adjtime file, default /etc/adjtime])
2228 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2229 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2235 AC_CONFIG_HEADERS([config.h])
2238 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2243 libblkid/docs/Makefile
2244 libblkid/docs/version.xml
2245 libblkid/src/blkid.h
2246 libfdisk/docs/Makefile
2247 libfdisk/docs/version.xml
2248 libfdisk/src/libfdisk.h
2249 libmount/docs/Makefile
2250 libmount/docs/version.xml
2251 libmount/src/libmount.h
2252 libsmartcols/docs/Makefile
2253 libsmartcols/docs/version.xml
2254 libsmartcols/src/libsmartcols.h
2261 ${PACKAGE} ${VERSION}
2264 exec prefix: ${exec_prefix}
2266 localstatedir: ${localstatedir}
2270 includedir: ${includedir}
2271 usrbin_execdir: ${usrbin_execdir}
2272 usrsbin_execdir: ${usrsbin_execdir}
2273 usrlib_execdir: ${usrlib_execdir}
2277 suid cflags: ${SUID_CFLAGS}
2279 suid ldflags: ${SUID_LDFLAGS}
2282 Python version: ${PYTHON_VERSION}
2283 Python libs: ${pyexecdir}
2285 Bash completions: ${with_bashcompletiondir}
2286 Systemd support: ${have_systemd}
2287 Btrfs support: ${have_btrfs}
2288 Wide-char support: ${build_widechar}
2294 Type 'make' or 'make <utilname>' to compile.