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. '{print $2}' \
25 | awk -F- '{print $1}')
27 PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{print $3}' \
28 | sed 's/.*@<:@^@<:@:digit:@:>@@:>@.*/0/')
32 LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
33 LIBBLKID_DATE="12-Apr-2016"
37 LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
40 LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
44 LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
47 LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
51 LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
53 dnl libsmartcols version
54 LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
55 LIBSMARTCOLS_LT_MAJOR=1
56 LIBSMARTCOLS_LT_MINOR=1
57 LIBSMARTCOLS_LT_MICRO=0
58 LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
61 LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
65 LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
67 # Check whether exec_prefix=/usr:
68 AS_CASE([$exec_prefix:$prefix],
69 [NONE:NONE | NONE:/usr | /usr:*],
70 [AC_MSG_NOTICE([Default --exec-prefix detected.])
71 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
72 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
73 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
77 AS_CASE([$prefix:$localstatedir],
78 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
80 AC_MSG_NOTICE([ --localstatedir defaults to /run])
83 AC_SUBST([localstatedir])
86 # The original default values of {bin,sbin,lib}dir
87 usrbin_execdir='${exec_prefix}/bin'
88 AC_SUBST([usrbin_execdir])
90 usrsbin_execdir='${exec_prefix}/sbin'
91 AC_SUBST([usrsbin_execdir])
94 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
95 [usrlib_execdir=$libdir],
96 [usrlib_execdir='${exec_prefix}'$libdir]
98 AC_SUBST([usrlib_execdir])
109 dnl Compiler warnings
110 UL_WARN_ADD([-fno-common])
112 UL_WARN_ADD([-Werror=sequence-point])
113 UL_WARN_ADD([-Wextra])
114 UL_WARN_ADD([-Wextra-semi])
115 UL_WARN_ADD([-Wembedded-directive])
116 UL_WARN_ADD([-Wmissing-declarations])
117 UL_WARN_ADD([-Wmissing-parameter-type])
118 UL_WARN_ADD([-Wmissing-prototypes])
119 UL_WARN_ADD([-Wno-missing-field-initializers])
120 UL_WARN_ADD([-Wredundant-decls])
121 UL_WARN_ADD([-Wsign-compare])
122 UL_WARN_ADD([-Wtype-limits])
123 UL_WARN_ADD([-Wuninitialized])
124 UL_WARN_ADD([-Wunused-but-set-parameter])
125 UL_WARN_ADD([-Wunused-but-set-variable])
126 UL_WARN_ADD([-Wunused-parameter])
127 UL_WARN_ADD([-Wunused-result])
128 UL_WARN_ADD([-Wunused-variable])
129 UL_WARN_ADD([-Wnested-externs])
130 UL_WARN_ADD([-Wpointer-arith])
131 UL_WARN_ADD([-Wstrict-prototypes])
132 UL_WARN_ADD([-Wformat-security])
133 UL_WARN_ADD([-Wimplicit-function-declaration])
134 AC_SUBST([WARN_CFLAGS])
136 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
137 AC_SUBST([BSD_WARN_CFLAGS])
138 UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
139 AC_SUBST([NO_UNUSED_WARN_CFLAGS])
144 dnl check supported linker flags
147 m4_ifndef([PKG_PROG_PKG_CONFIG],
148 [m4_fatal([Could not locate the pkg-config autoconf
149 macros. These are usually located in /usr/share/aclocal/pkg.m4.
150 If your macros are in a different location, try setting the
151 environment variable AL_OPTS="-I/other/macro/dir" before running
152 ./autogen.sh or autoreconf again.])])
155 GTK_DOC_CHECK([1.10])
156 AC_PATH_PROG([XSLTPROC], [xsltproc])
161 AS_CASE([${host_os}],
168 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
169 AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
170 AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
172 AS_IF([test "x$darwin_os" = xyes], [
173 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
176 dnl define ARCH_<NAME> conditionals
177 UL_SET_ARCH([I86], [i?86-*])
178 UL_SET_ARCH([86_64], [x86_64*])
179 UL_SET_ARCH([IA64], [ia64*])
180 UL_SET_ARCH([S390], [s390*])
181 UL_SET_ARCH([SPARC], [sparc*])
182 UL_SET_ARCH([PPC], [ppc*|powerpc*])
183 UL_SET_ARCH([M68K], [m68*])
184 UL_SET_ARCH([MIPS], [mips*])
185 UL_SET_ARCH([HPPA], [hppa*])
190 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
191 AM_GNU_GETTEXT_VERSION([0.18.3])
192 AM_GNU_GETTEXT([external])
194 AS_IF([test -d "$srcdir/po"], [
195 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
197 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"
200 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
201 #ifdef HAVE_LINUX_COMPILER_H
202 #include <linux/compiler.h>
229 security/pam_appl.h \
265 AC_CHECK_HEADERS([security/pam_misc.h],
266 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
267 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
268 #ifdef HAVE_SECURITY_PAM_APPL_H
269 #include <security/pam_appl.h>
273 AC_CHECK_HEADERS([security/openpam.h], [], [], [
274 #ifdef HAVE_SECURITY_PAM_APPL_H
275 #include <security/pam_appl.h>
279 AC_CHECK_HEADERS([langinfo.h],
280 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
281 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
283 dnl Convert some ac_cv_header_* variables to have_*
285 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
286 have_linux_raw_h=$ac_cv_header_linux_raw_h
287 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
288 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
289 have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
290 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
291 have_security_openpam_h=$ac_cv_header_security_openpam_h
292 have_shadow_h=$ac_cv_header_shadow_h
293 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
294 have_utmp_h=$ac_cv_header_utmp_h
296 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
301 struct tm *tm = localtime(0);
302 if (a == -1) /* false */
303 sleep(tm->tm_gmtoff);
305 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
308 AC_CHECK_MEMBERS([struct termios.c_line],,,
309 [[#include <termios.h>]])
311 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
312 [#include <sys/stat.h>])
314 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
316 #ifdef HAVE_SYS_SWAP_H
317 # include <sys/swap.h>
321 [[swapon("/dev/null", 0);]])],
322 [AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
324 [AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
328 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
330 AC_CHECK_DECL([llseek],
331 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
332 [Define to 1 if have llseek prototype])],
334 [#include <unistd.h>])
336 AC_CHECK_DECL([lseek64],
337 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
338 [Define to 1 if have lseek64 prototype])],
340 [#define _LARGEFILE_SOURCE
341 #define _LARGEFILE64_SOURCE
342 #include <unistd.h>])
344 AC_CHECK_DECL([environ],
345 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
346 [Define to 1 if have **environ prototype])],
349 AC_CHECK_DECL([strsignal],
350 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
351 [Define to 1 if have strsignal function prototype])],
402 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
403 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
404 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
405 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
406 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
407 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
409 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
411 dnl lib/mononotic.c may require -lrt
412 AC_CHECK_FUNCS([clock_gettime], [],
413 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
417 AC_CHECK_FUNCS([timer_create],
419 [AC_CHECK_LIB([rt], [timer_create], [
423 AC_SEARCH_LIBS([timer_create], [rt], [
426 REALTIME_LIBS="-lrt -lpthread"
432 AC_SUBST([REALTIME_LIBS])
435 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
437 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
439 AC_SUBST([RTAS_LIBS])
442 AC_CHECK_MEMBER([struct sockaddr.sa_len],
443 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
444 [#include <sys/types.h>
445 #include <sys/socket.h>])
448 AC_SEARCH_LIBS([socket], [socket],
449 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
450 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
452 AC_SUBST([SOCKET_LIBS])
456 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
457 AS_IF([test x"$have_dirfd" = xno], [
458 AC_CHECK_DECLS([dirfd],
459 [have_dirfd=yes], [have_dirfd=no],
460 [#include <sys/types.h>
461 #include <dirent.h>])
465 AS_IF([test x"$have_dirfd" = xno], [
466 AC_CHECK_MEMBERS([DIR.dd_fd],
467 [have_ddfd=yes], [have_ddfd=no],
468 [#include <sys/types.h>
469 #include <dirent.h>])
472 AS_CASE([$have_dirfd:$have_ddfd],
474 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
478 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
479 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
482 program_invocation_short_name = "test";
485 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
486 [Define if program_invocation_short_name is defined])
492 AC_MSG_CHECKING([whether __progname is defined])
493 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
494 [if (*__progname == 0) return 1;])],
495 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
496 AC_MSG_RESULT([yes]),
499 dnl Static compilation
500 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
502 AC_ARG_ENABLE([static-programs],
503 [AS_HELP_STRING([--enable-static-programs=LIST],
504 [link static the programs in LIST (comma-separated,
505 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
507 AS_CASE([$enable_static_programs],
509 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
511 [enable_static_programs=]
514 dnl Set all the individual AM_CONDITIONALs
515 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
516 AS_CASE([,$enable_static_programs,],
517 [*,UL_PRG,*], [static_[]UL_PRG=yes]
519 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
520 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
521 [test "x$static_[]UL_PRG" = xyes])
525 AC_ARG_ENABLE([all-programs],
526 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
527 [], [enable_all_programs=undefined]
530 AS_CASE([$enable_all_programs],
531 [yes], [AC_MSG_WARN([force to build all programs by default])
532 ul_default_estate=check],
533 [no], [AC_MSG_WARN([disable all programs by default])
534 ul_default_estate=no]
540 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
548 i = sscanf("x", $1, &s);
549 if (i == 1 && *s == 'x')
555 AC_CACHE_VAL([scanf_cv_alloc_modifier],
556 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
557 [scanf_cv_alloc_modifier=ms],
558 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
559 [scanf_cv_alloc_modifier=as],
560 [scanf_cv_alloc_modifier=no]
564 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
570 #if !(__GLIBC_PREREQ(2, 7))
571 #error %m is not available
574 #elif defined(_POSIX_VERSION)
576 #if _POSIX_VERSION < 200809L
577 #error %m is not available
581 #error Your C-library is not supported.
584 [scanf_cv_alloc_modifier=ms],
585 [scanf_cv_alloc_modifier=no])]
589 AC_MSG_CHECKING([scanf string alloc modifiers])
590 AS_CASE([$scanf_cv_alloc_modifier],
592 [AC_MSG_RESULT([(%ms) yes])
593 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
594 have_scanf_alloc_modifier=yes],
596 [AC_MSG_RESULT([(%as) yes])
597 have_scanf_alloc_modifier=yes
598 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
600 have_scanf_alloc_modifier=no]
604 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
607 AS_IF([test "x$with_util" = xno], [
608 AM_CONDITIONAL([HAVE_UTIL], [false])
611 UL_CHECK_LIB([util], [openpty])
615 AC_CHECK_TYPES([union semun], [], [], [[
618 AC_CHECK_TYPES([loff_t])
620 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
628 if (w == WEOF) exit(1);
632 [AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
635 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
639 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
641 AC_CHECK_TYPES([sighandler_t], [], [], [[
645 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
649 # on Solaris, you can't mix and match standards, since we use c99
650 # aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
651 # check for crypt.h and use that without XOPEN_SOURCE.
652 AC_CHECK_HEADERS([crypt.h])
653 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
657 #define _XOPEN_SOURCE
661 char *c = crypt("abc","pw");
664 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
668 #define _XOPEN_SOURCE
672 char *c = crypt("abc","pw");
674 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
677 AC_MSG_ERROR([crypt() is not available])
680 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
683 AC_ARG_WITH([selinux],
684 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
685 [], [with_selinux=no]
688 AS_IF([test "x$with_selinux" = xno], [
689 AM_CONDITIONAL([HAVE_SELINUX], [false])
691 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
692 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
693 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
694 AM_CONDITIONAL([HAVE_SELINUX], [true])
698 AS_CASE([$with_selinux:$have_selinux],
699 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
702 AS_IF([test "x$have_selinux" = xyes], [
703 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
704 # This function is missing in old libselinux 1.xx versions
705 AC_CHECK_FUNCS([security_get_initial_context])
709 AC_SUBST([SELINUX_LIBS])
710 AC_SUBST([SELINUX_LIBS_STATIC])
714 AS_HELP_STRING([--with-audit], [compile with audit support]),
718 AS_IF([test "x$with_audit" = xno], [
719 AM_CONDITIONAL([HAVE_AUDIT], [false])
721 UL_CHECK_LIB([audit], [audit_log_user_message])
722 AS_CASE([$with_audit:$have_audit],
724 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
728 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
732 AS_IF([test "x$with_udev" = xno], [
733 AM_CONDITIONAL([HAVE_UDEV], [false])
735 UL_CHECK_LIB([udev], [udev_new])
736 AS_CASE([$with_udev:$have_udev],
738 [AC_MSG_ERROR([udev selected but libudev not found])]
742 AC_ARG_WITH([ncurses],
743 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
744 (--without-ncurses disables all ncurses(w) support)]),
745 [], [with_ncurses=auto]
747 AM_CONDITIONAL([HAVE_NCURSES], [false])
748 AS_IF([test "x$with_ncurses" != xno], [
751 dnl First try to find the pkg-config module.
752 PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
754 NCURSES_LIBS=${NCURSESW_LIBS}
755 NCURSES_CFLAGS=${NCURSESW_CFLAGS}
756 AC_DEFINE([HAVE_LIBNCURSESW])
757 CURSES_LIB_NAME="ncursesw"
759 PKG_CHECK_MODULES(NCURSES, [ncurses], [
761 AC_DEFINE([HAVE_LIBNCURSES])
762 CURSES_LIB_NAME="ncursesw"
766 AS_IF([test "x$have_ncurses" = xyes], [
767 dnl If that worked, setup the defines that the code expects.
768 save_CPPFLAGS="$CPPFLAGS"
769 CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
770 AC_CHECK_HEADERS([ncurses.h])
771 CPPFLAGS="$save_CPPFLAGS"
773 dnl If that failed, fall back to classic searching.
774 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
775 AS_IF([test "x$with_ncurses" = xauto], [
776 UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
777 AS_IF([test "x$have_ncurses" = xyes], [
778 AC_CHECK_HEADERS([ncursesw/ncurses.h])
779 NCURSES_LIBS="-lncursesw"
780 CURSES_LIB_NAME="ncursesw"
783 AS_IF([test "x$have_ncurses" = xno], [
784 UL_CHECK_LIB(ncurses, initscr)
785 AS_IF([test "x$have_ncurses" = xyes], [
786 NCURSES_LIBS="-lncurses"
787 CURSES_LIB_NAME="ncurses"
793 AS_CASE([$with_ncurses:$have_ncurses],
794 [yes:no], [AC_MSG_ERROR([ncurses or ncursesw selected, but library not found])]
798 AC_SUBST([NCURSES_CFLAGS])
799 AC_SUBST([NCURSES_LIBS])
803 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
807 AS_IF([test "x$with_slang" = xyes], [
808 AC_CHECK_HEADERS([slang.h slang/slang.h])
809 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
810 [have_slang=yes], [], [
813 #elif defined(HAVE_SLANG_SLANG_H)
814 #include <slang/slang.h>
817 AS_IF([test "x$have_slang" = xno], [
818 AC_MSG_ERROR([slang selected but slcurses.h not found])],
819 [CURSES_LIB_NAME=slang
822 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
825 AS_IF([test "x$have_slang" = xyes -o "x$have_ncurses" = xyes], [
826 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
827 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
828 [Define if curses library has the use_default_colors().])
830 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
831 AC_DEFINE(HAVE_RESIZETERM, 1,
832 [Define if curses library has the resizeterm().])
837 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
838 [], [with_tinfo=auto]
841 AS_IF([test "x$with_tinfo" != xno], [
842 dnl Try pkg-config for libtinfo
843 PKG_CHECK_MODULES(TINFO, [tinfo], [
844 dnl pkg-config success
846 UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [
848 dnl If pkg-config failed, fall back to classic searching.
849 AC_CHECK_LIB([tinfo], [tgetent], [
852 TINFO_LIBS_STATIC="-ltinfo"
856 AC_SUBST([TINFO_LIBS])
857 AC_SUBST([TINFO_LIBS_STATIC])
858 AC_SUBST([TINFO_CFLAGS])
859 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
860 AS_IF([test "x$have_tinfo" = xyes], [
861 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
865 AC_ARG_WITH([readline],
866 AS_HELP_STRING([--with-readline], [compile with GNU Readline support]),
867 [], [with_readline=auto]
870 AS_IF([test "x$with_readline" = xno], [
871 AM_CONDITIONAL([HAVE_READLINE], [false])
873 UL_CHECK_LIB([readline], [readline])
874 AS_CASE([$with_readline:$have_readline],
876 [AC_MSG_ERROR([readline selected but libreadline not found ])],
878 [READLINE_LIBS="-lreadline"
879 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
882 AC_SUBST([READLINE_LIBS])
883 AC_SUBST([READLINE_LIBS_STATIC])
886 AC_ARG_WITH([utempter],
887 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
888 [], [with_utempter=no]
891 AS_IF([test "x$with_utempter" = xyes], [
892 UL_CHECK_LIB([utempter], [utempter_add_record])
893 AS_IF([test "x$have_utempter" = xno], [
894 AC_MSG_ERROR([utempter selected but libutempter not found])
897 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
904 AC_ARG_ENABLE([libuuid],
905 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
906 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
908 UL_BUILD_INIT([libuuid])
909 AC_SUBST([LIBUUID_VERSION])
910 AC_SUBST([LIBUUID_VERSION_INFO])
911 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
913 AC_ARG_ENABLE([libuuid-force-uuidd],
914 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
915 [], [enable_libuuid_force_uuidd=no]
918 AS_IF([test "x$build_libuuid" = xyes], [
919 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
925 AC_ARG_ENABLE([libblkid],
926 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
927 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
929 UL_BUILD_INIT([libblkid])
930 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
931 AC_SUBST([LIBBLKID_DATE])
932 AC_SUBST([LIBBLKID_VERSION])
933 AC_SUBST([LIBBLKID_VERSION_INFO])
934 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
935 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
936 AS_IF([test "x$build_libblkid" = xyes], [
937 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
939 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
940 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
945 AC_ARG_ENABLE([libmount],
946 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
947 [], [UL_DEFAULT_ENABLE([libmount], [check])]
949 UL_BUILD_INIT([libmount])
950 UL_REQUIRES_BUILD([libmount], [libblkid])
951 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
952 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
953 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
954 AS_IF([test "x$build_libmount" = xyes], [
955 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
958 AC_SUBST([LIBMOUNT_VERSION])
959 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
960 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
961 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
962 AC_SUBST([LIBMOUNT_VERSION_INFO])
963 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
965 AC_ARG_ENABLE([libmount-support-mtab],
966 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
967 [], [enable_libmount_support_mtab=no]
970 AS_IF([test "x$enable_libmount_support_mtab" == xyes], [
971 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
978 AC_ARG_ENABLE([libsmartcols],
979 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
980 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
982 UL_BUILD_INIT([libsmartcols])
983 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
985 AC_SUBST([LIBSMARTCOLS_VERSION])
986 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
987 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
993 AC_ARG_ENABLE([libfdisk],
994 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
995 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
997 UL_BUILD_INIT([libfdisk])
998 UL_REQUIRES_BUILD([libfdisk], [libuuid])
999 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1000 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1002 AS_IF([test "x$build_libblkid" = xyes],
1003 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1004 AC_SUBST([LIBFDISK_PC_REQUIRES])
1006 AC_SUBST([LIBFDISK_VERSION])
1007 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1008 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1009 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1010 AC_SUBST([LIBFDISK_VERSION_INFO])
1011 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1014 UL_BUILD_INIT([fdisk], [check])
1015 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1016 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1017 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1018 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1021 UL_BUILD_INIT([sfdisk], [check])
1022 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1023 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1024 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1025 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1028 UL_BUILD_INIT([cfdisk], [check])
1029 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1030 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1031 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1032 UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
1033 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1036 AC_ARG_ENABLE([mount],
1037 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1038 [], [UL_DEFAULT_ENABLE([mount], [check])]
1040 UL_BUILD_INIT([mount])
1041 UL_REQUIRES_LINUX([mount])
1042 UL_REQUIRES_BUILD([mount], [libmount])
1043 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1046 AC_ARG_ENABLE([losetup],
1047 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1048 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1050 UL_BUILD_INIT([losetup])
1051 UL_REQUIRES_LINUX([losetup])
1052 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1053 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1055 AC_ARG_ENABLE([zramctl],
1056 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1057 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1059 UL_BUILD_INIT([zramctl])
1060 UL_REQUIRES_LINUX([zramctl])
1061 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1062 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1064 AC_ARG_ENABLE([fsck],
1065 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1066 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1068 UL_BUILD_INIT([fsck])
1069 UL_REQUIRES_BUILD([fsck], [libmount])
1070 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1073 AC_ARG_ENABLE([partx],
1074 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1075 [], [UL_DEFAULT_ENABLE([partx], [check])]
1077 UL_BUILD_INIT([partx])
1078 UL_REQUIRES_LINUX([partx])
1079 UL_REQUIRES_BUILD([partx], [libblkid])
1080 UL_REQUIRES_BUILD([partx], [libsmartcols])
1081 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1084 AC_ARG_ENABLE([uuidd],
1085 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1086 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1088 UL_BUILD_INIT([uuidd])
1089 UL_REQUIRES_BUILD([uuidd], [libuuid])
1090 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1091 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1092 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" == xyes ], [
1093 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1095 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1098 UL_BUILD_INIT([uuidgen], [check])
1099 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1100 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1102 UL_BUILD_INIT([blkid], [check])
1103 UL_REQUIRES_BUILD([blkid], [libblkid])
1104 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1106 UL_BUILD_INIT([findfs], [check])
1107 UL_REQUIRES_BUILD([findfs], [libblkid])
1108 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1110 UL_BUILD_INIT([wipefs], [check])
1111 UL_REQUIRES_BUILD([wipefs], [libblkid])
1112 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1114 UL_BUILD_INIT([findmnt], [check])
1115 UL_REQUIRES_BUILD([findmnt], [libmount])
1116 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1117 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1120 AC_ARG_ENABLE([mountpoint],
1121 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1122 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1124 UL_BUILD_INIT([mountpoint])
1125 UL_REQUIRES_BUILD([mountpoint], [libmount])
1126 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1129 AC_ARG_ENABLE([fallocate],
1130 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1131 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1133 UL_BUILD_INIT([fallocate])
1134 UL_REQUIRES_LINUX([fallocate])
1135 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1136 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1138 AS_IF([test "x$build_fallocate" = xyes], [
1139 dnl check for valid fallocate() function
1140 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1141 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1142 dnl and program can't be linked.
1143 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1144 dnl function prototype.
1145 AC_MSG_CHECKING([for valid fallocate() function])
1146 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1147 #ifdef HAVE_UNISTD_H
1148 # include <unistd.h>
1150 #ifdef HAVE_SYS_TYPES_H
1151 # include <sys/types.h>
1153 #ifdef HAVE_LINUX_FALLOC_H
1154 # include <linux/falloc.h>
1161 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1166 AC_MSG_RESULT([yes])
1167 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1168 AC_MSG_RESULT([no])])
1172 AC_ARG_ENABLE([unshare],
1173 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1174 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1176 UL_BUILD_INIT([unshare])
1177 UL_REQUIRES_LINUX([unshare])
1178 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1179 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1180 AC_CHECK_FUNCS([unshare])
1182 AC_ARG_ENABLE([nsenter],
1183 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1184 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1186 UL_BUILD_INIT([nsenter])
1187 UL_REQUIRES_LINUX([nsenter])
1188 UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
1189 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1190 AC_CHECK_FUNCS([setns])
1193 AC_ARG_WITH([cap_ng],
1194 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1195 [], [with_cap_ng=auto]
1197 AS_IF([test "x$with_cap_ng" = xno], [
1198 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1201 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1205 AC_ARG_ENABLE([setpriv],
1206 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1207 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1209 UL_BUILD_INIT([setpriv])
1210 UL_REQUIRES_LINUX([setpriv])
1211 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
1212 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1213 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1216 AC_ARG_ENABLE([eject],
1217 AS_HELP_STRING([--disable-eject], [do not build eject]),
1218 [], [UL_DEFAULT_ENABLE([eject], [check])]
1220 UL_BUILD_INIT([eject])
1221 UL_REQUIRES_LINUX([eject])
1222 UL_REQUIRES_BUILD([eject], [libmount])
1223 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1226 AC_ARG_ENABLE([agetty],
1227 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1228 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1230 UL_BUILD_INIT([agetty])
1231 UL_REQUIRES_HAVE([agetty], [utmp_h], [utmp.h header])
1232 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1233 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1234 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1236 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1241 AS_HELP_STRING([--without-libz], [compile without libz]),
1242 [], [with_libz=auto]
1244 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1245 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1249 AC_ARG_ENABLE([cramfs],
1250 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1251 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1253 UL_BUILD_INIT([cramfs])
1254 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1255 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1258 AC_ARG_ENABLE([bfs],
1259 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1260 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1262 UL_BUILD_INIT([bfs])
1263 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1266 AC_ARG_ENABLE([minix],
1267 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1268 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1270 UL_BUILD_INIT([minix])
1271 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1274 AC_ARG_ENABLE([fdformat],
1275 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1276 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1278 UL_BUILD_INIT([fdformat])
1279 UL_REQUIRES_LINUX([fdformat])
1280 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1283 AC_ARG_ENABLE([hwclock],
1284 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1285 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1287 have_linuxdummy=$linux_os
1289 UL_BUILD_INIT([hwclock])
1290 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1291 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1294 UL_BUILD_INIT([mkfs], [yes])
1295 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1297 UL_BUILD_INIT([isosize], [yes])
1298 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1301 UL_BUILD_INIT([fstrim], [check])
1302 UL_REQUIRES_LINUX([fstrim])
1303 UL_REQUIRES_BUILD([fstrim], [libmount])
1304 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1307 UL_BUILD_INIT([swapon], [check])
1308 UL_REQUIRES_LINUX([swapon])
1309 UL_REQUIRES_BUILD([swapon], [libblkid])
1310 UL_REQUIRES_BUILD([swapon], [libmount])
1311 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1312 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1315 UL_BUILD_INIT([lsblk], [check])
1316 UL_REQUIRES_LINUX([lsblk])
1317 UL_REQUIRES_BUILD([lsblk], [libblkid])
1318 UL_REQUIRES_BUILD([lsblk], [libmount])
1319 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1320 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1323 UL_BUILD_INIT([lscpu], [check])
1324 UL_REQUIRES_LINUX([lscpu])
1325 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1326 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1327 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1330 AC_ARG_ENABLE([lslogins],
1331 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1332 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1334 UL_BUILD_INIT([lslogins])
1335 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1336 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1337 UL_REQUIRES_HAVE([lslogins], [utmp_h], [utmp.h header])
1338 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1341 UL_BUILD_INIT([chcpu], [check])
1342 UL_REQUIRES_LINUX([chcpu])
1343 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1344 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1347 AC_ARG_ENABLE([wdctl],
1348 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1349 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1351 UL_BUILD_INIT([wdctl])
1352 UL_REQUIRES_LINUX([wdctl])
1353 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1354 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1355 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1358 UL_BUILD_INIT([swaplabel], [check])
1359 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1360 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1363 UL_BUILD_INIT([mkswap], [yes])
1364 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1365 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1366 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1370 AC_ARG_ENABLE([cal],
1371 AS_HELP_STRING([--disable-cal], [do not build cal]),
1372 [], [UL_DEFAULT_ENABLE([cal], [check])]
1374 UL_BUILD_INIT([cal])
1375 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1377 AC_ARG_ENABLE([logger],
1378 AS_HELP_STRING([--disable-logger], [do not build logger]),
1379 [], [UL_DEFAULT_ENABLE([logger], [check])]
1381 UL_BUILD_INIT([logger])
1382 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1384 UL_BUILD_INIT([look], [yes])
1385 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1387 UL_BUILD_INIT([mcookie], [yes])
1388 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1390 UL_BUILD_INIT([namei], [yes])
1391 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1393 UL_BUILD_INIT([whereis], [yes])
1394 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1396 UL_BUILD_INIT([getopt], [yes])
1397 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1400 UL_BUILD_INIT([blockdev], [check])
1401 UL_REQUIRES_LINUX([blockdev])
1402 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1405 UL_BUILD_INIT([prlimit], [check])
1406 UL_REQUIRES_LINUX([prlimit])
1407 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1408 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1409 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1410 AS_IF([test "x$build_prlimit" = xyes], [
1411 AC_CHECK_FUNCS([prlimit])
1415 UL_BUILD_INIT([lslocks], [check])
1416 UL_REQUIRES_LINUX([lslocks])
1417 UL_REQUIRES_BUILD([lslocks], [libmount])
1418 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1419 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1422 AC_ARG_ENABLE([switch_root],
1423 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1424 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1426 UL_BUILD_INIT([switch_root])
1427 UL_REQUIRES_LINUX([switch_root])
1428 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1429 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1432 AC_ARG_ENABLE([pivot_root],
1433 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1434 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1436 UL_BUILD_INIT([pivot_root])
1437 UL_REQUIRES_LINUX([pivot_root])
1438 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1439 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1442 UL_BUILD_INIT([flock], [check])
1443 UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
1444 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1446 UL_BUILD_INIT([ipcmk], [yes])
1447 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1449 AC_ARG_ENABLE([ipcrm],
1450 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1451 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1453 UL_BUILD_INIT([ipcrm])
1454 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1456 AC_ARG_ENABLE([ipcs],
1457 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1458 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1460 UL_BUILD_INIT([ipcs])
1461 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1463 UL_BUILD_INIT([lsipc], [check])
1464 UL_REQUIRES_LINUX([lsipc])
1465 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1466 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1468 UL_BUILD_INIT([lsns], [check])
1469 UL_REQUIRES_LINUX([lsns])
1470 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1471 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1473 UL_BUILD_INIT([renice], [yes])
1474 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1476 UL_BUILD_INIT([setsid], [yes])
1477 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1479 UL_BUILD_INIT([readprofile], [check])
1480 UL_REQUIRES_LINUX([readprofile])
1481 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1483 UL_BUILD_INIT([dmesg], [check])
1484 UL_REQUIRES_LINUX([dmesg])
1485 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1487 UL_BUILD_INIT([ctrlaltdel], [check])
1488 UL_REQUIRES_LINUX([ctrlaltdel])
1489 dnl we assume reboot() to be the 1-argument variant, because even considering
1490 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1491 dnl reboot() with multiple arguments is yet only found in glibc versions
1492 dnl earlier than 2.x.
1493 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1494 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1496 UL_BUILD_INIT([fsfreeze], [check])
1497 UL_REQUIRES_LINUX([fsfreeze])
1498 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1500 UL_BUILD_INIT([blkdiscard], [check])
1501 UL_REQUIRES_LINUX([blkdiscard])
1502 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1504 UL_BUILD_INIT([ldattach], [check])
1505 UL_REQUIRES_LINUX([ldattach])
1506 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1508 UL_BUILD_INIT([rtcwake], [check])
1509 UL_REQUIRES_LINUX([rtcwake])
1510 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1512 UL_BUILD_INIT([setarch], [check])
1513 UL_REQUIRES_LINUX([setarch])
1514 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1516 UL_BUILD_INIT([script], [check])
1517 UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header])
1518 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1520 UL_BUILD_INIT([scriptreplay], [yes])
1521 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1523 UL_BUILD_INIT([col], [yes])
1524 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1526 UL_BUILD_INIT([colcrt], [yes])
1527 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1529 UL_BUILD_INIT([colrm], [yes])
1530 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1532 UL_BUILD_INIT([column], [yes])
1533 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1535 UL_BUILD_INIT([hexdump], [yes])
1536 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1538 UL_BUILD_INIT([rev], [yes])
1539 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1541 UL_BUILD_INIT([tailf], [yes])
1542 AM_CONDITIONAL([BUILD_TAILF], [test "x$build_tailf" = xyes])
1545 AC_ARG_ENABLE([tunelp],
1546 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1547 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1549 UL_BUILD_INIT([tunelp])
1550 UL_REQUIRES_LINUX([tunelp])
1551 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1554 AC_ARG_ENABLE([kill],
1555 AS_HELP_STRING([--disable-kill], [do not build kill]),
1556 [], [UL_DEFAULT_ENABLE([kill], [check])]
1558 UL_BUILD_INIT([kill])
1559 UL_REQUIRES_LINUX([kill])
1560 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1563 AC_ARG_ENABLE([last],
1564 AS_HELP_STRING([--disable-last], [do not build last]),
1565 [], [UL_DEFAULT_ENABLE([last], [check])]
1567 UL_BUILD_INIT([last])
1568 UL_REQUIRES_HAVE([last], [utmp_h], [utmp.h header])
1569 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1572 AC_ARG_ENABLE([utmpdump],
1573 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1574 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1576 UL_BUILD_INIT([utmpdump])
1577 UL_REQUIRES_HAVE([utmpdump], [utmp_h], [utmp.h header])
1578 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1581 AC_ARG_ENABLE([line],
1582 AS_HELP_STRING([--enable-line], [build line]),
1583 [], [UL_DEFAULT_ENABLE([line], [no])]
1585 UL_BUILD_INIT([line])
1586 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1589 AC_ARG_ENABLE([mesg],
1590 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1591 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1593 UL_BUILD_INIT([mesg])
1594 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1597 AC_ARG_ENABLE([raw],
1598 AS_HELP_STRING([--disable-raw], [do not build raw]),
1599 [], [UL_DEFAULT_ENABLE([raw], [check])]
1601 UL_BUILD_INIT([raw])
1602 UL_REQUIRES_LINUX([raw])
1603 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1604 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1607 AC_ARG_ENABLE([rename],
1608 AS_HELP_STRING([--disable-rename], [do not build rename]),
1609 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1611 UL_BUILD_INIT([rename])
1612 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1615 AC_ARG_ENABLE([reset],
1616 AS_HELP_STRING([--enable-reset], [build reset]),
1617 [], [UL_DEFAULT_ENABLE([reset], [no])]
1619 UL_BUILD_INIT([reset])
1620 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
1623 AC_ARG_ENABLE([vipw],
1624 AS_HELP_STRING([--enable-vipw], [build vipw]),
1625 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1627 UL_BUILD_INIT([vipw])
1628 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1629 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1632 AC_ARG_ENABLE([newgrp],
1633 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1634 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1636 UL_BUILD_INIT([newgrp])
1637 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1640 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1641 [], [with_user=check]
1644 AS_IF([test "x$with_user" != xno], [
1645 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1646 AS_CASE([$with_user:$have_user],
1648 [AC_MSG_ERROR([user selected but libuser not found])],
1650 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1652 # temporary solution, libuser has stupid .pc where are exported all
1653 # private dependencies to Requires: instead of Requires.private:
1654 AS_IF([test "x$have_user" = xyes], [
1658 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1660 AC_ARG_ENABLE([chfn-chsh-password],
1661 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1662 [], [enable_chfn_chsh_password=yes]
1665 AC_ARG_ENABLE([chfn-chsh],
1666 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1667 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1669 UL_BUILD_INIT([chfn_chsh])
1670 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1672 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1673 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1674 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1676 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1677 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1679 AC_ARG_ENABLE([chsh-only-listed],
1680 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1681 [], enable_chsh_only_listed=yes
1684 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1685 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1689 AC_ARG_ENABLE([login],
1690 AS_HELP_STRING([--disable-login], [do not build login]),
1691 [], [UL_DEFAULT_ENABLE([login], [check])]
1693 UL_BUILD_INIT([login])
1694 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1695 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
1696 UL_REQUIRES_HAVE([login], [utmp_h], [utmp.h header])
1697 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1699 AC_ARG_ENABLE([login-chown-vcs],
1700 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1701 [], [enable_login_chown_vcs=no]
1704 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1705 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1708 AC_ARG_ENABLE([login-stat-mail],
1709 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1710 [], [enable_login_stat_mail=no]
1713 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1714 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1718 AC_ARG_ENABLE([nologin],
1719 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1720 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
1722 UL_BUILD_INIT([nologin])
1723 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1726 AC_ARG_ENABLE([sulogin],
1727 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1728 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
1730 UL_BUILD_INIT([sulogin])
1731 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
1732 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1736 AS_HELP_STRING([--disable-su], [do not build su]),
1737 [], [UL_DEFAULT_ENABLE([su], [check])]
1740 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
1741 UL_REQUIRES_HAVE([su], [utmp_h], [utmp.h header])
1742 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1745 AC_ARG_ENABLE([runuser],
1746 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1747 [], [UL_DEFAULT_ENABLE([runuser], [check])]
1749 UL_BUILD_INIT([runuser])
1750 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
1751 UL_REQUIRES_HAVE([runuser], [utmp_h], [utmp.h header])
1752 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1756 AS_HELP_STRING([--disable-ul], [do not build ul]),
1757 [], [UL_DEFAULT_ENABLE([ul], [check])]
1760 UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
1761 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1764 AC_ARG_ENABLE([more],
1765 AS_HELP_STRING([--disable-more], [do not build more]),
1766 [], [UL_DEFAULT_ENABLE([more], [check])]
1768 UL_BUILD_INIT([more])
1769 UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
1770 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1774 AS_HELP_STRING([--disable-pg], [do not build pg]),
1775 [], [UL_DEFAULT_ENABLE([pg], [check])]
1778 UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
1779 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1782 AC_ARG_ENABLE([setterm],
1783 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1784 [], [UL_DEFAULT_ENABLE([setterm], [check])]
1786 UL_BUILD_INIT([setterm])
1787 UL_REQUIRES_LINUX([setterm])
1788 UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
1789 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1791 # build_schedutils= is just configure-only variable to control
1792 # ionice, taskset and chrt
1793 AC_ARG_ENABLE([schedutils],
1794 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1795 [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
1797 UL_BUILD_INIT([schedutils])
1799 UL_BUILD_INIT([ionice], [check])
1800 UL_REQUIRES_BUILD([ionice], [schedutils])
1801 UL_REQUIRES_SYSCALL_CHECK([ionice],
1802 [UL_CHECK_SYSCALL([ioprio_set],
1813 UL_REQUIRES_SYSCALL_CHECK([ionice],
1814 [UL_CHECK_SYSCALL([ioprio_get],
1825 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1827 UL_BUILD_INIT([taskset], [check])
1828 UL_REQUIRES_BUILD([taskset], [schedutils])
1829 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1830 UL_REQUIRES_SYSCALL_CHECK([taskset],
1831 [UL_CHECK_SYSCALL([sched_getaffinity])],
1832 [sched_getaffinity])
1833 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1837 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
1838 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
1840 UL_BUILD_INIT([chrt], [check])
1841 UL_REQUIRES_BUILD([chrt], [schedutils])
1842 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
1843 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1845 AS_IF([test "x$build_chrt" = xyes], [
1846 UL_CHECK_SYSCALL([sched_setattr])
1850 AC_ARG_ENABLE([wall],
1851 AS_HELP_STRING([--disable-wall], [do not build wall]),
1852 [], [UL_DEFAULT_ENABLE([wall], [check])]
1854 UL_BUILD_INIT([wall])
1855 UL_REQUIRES_HAVE([wall], [utmp_h], [utmp.h header])
1856 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1859 AC_ARG_ENABLE([write],
1860 AS_HELP_STRING([--enable-write], [build write]),
1861 [], [UL_DEFAULT_ENABLE([write], [no])]
1863 UL_BUILD_INIT([write])
1864 UL_REQUIRES_HAVE([write], [utmp_h], [utmp.h header])
1865 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1868 AC_ARG_WITH([btrfs],
1869 AS_HELP_STRING([--with-btrfs], [build with support for btrfs]),
1870 [], [with_btrfs=check]
1873 AS_IF([test "x$with_btrfs" != xno], [
1874 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
1876 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
1878 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
1881 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
1884 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
1887 AC_ARG_WITH([systemd],
1888 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
1889 [], [with_systemd=check]
1893 AS_IF([test "x$with_systemd" != xno], [
1894 # new version -- all libsystemd-* libs merged into libsystemd
1895 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
1897 AS_IF([test "x$have_systemd" != "xyes"], [
1898 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
1899 [have_systemd_daemon=yes], [have_systemd_daemon=no])
1900 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
1901 [have_systemd_journal=yes], [have_systemd_journal=no])
1902 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
1905 AS_CASE([$with_systemd:$have_systemd],
1907 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
1909 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
1912 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
1915 AC_ARG_WITH([systemdsystemunitdir],
1916 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
1917 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1919 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1920 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1924 AC_ARG_WITH([smack],
1925 AS_HELP_STRING([--with-smack], [build with SMACK support]),
1928 AS_IF([test "x$with_smack" = xyes], [
1929 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
1933 AC_ARG_WITH([bashcompletiondir],
1934 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1936 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1937 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
1939 with_bashcompletiondir=${datadir}/bash-completion/completions
1942 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1944 AC_ARG_ENABLE([bash-completion],
1945 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
1946 [], [enable_bash_completion=yes]
1949 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
1952 AC_ARG_WITH([python],
1953 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
1954 [], [with_python=check withval=check]
1959 AS_IF([test "x$with_python" != xno], [
1960 # We follow distributions default and look for PKG module name "python"
1961 # (minimal version is 2) but if major version is explicitly specified by
1962 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1964 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
1965 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
1967 # check for python interpreter
1968 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
1969 AS_CASE([$with_python:$have_python],
1971 [AC_MSG_ERROR([python selected but python interpreter not found])],
1973 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
1975 # check for python development stuff
1976 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
1977 [have_libpython=yes], [have_libpython=no])]
1982 AC_ARG_ENABLE([pylibmount],
1983 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
1984 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
1986 UL_BUILD_INIT([pylibmount])
1987 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
1988 UL_REQUIRES_BUILD([pylibmount], [libmount])
1989 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1991 # We need to introduce a verbatim dependency into the Makefile, without automake
1992 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
1993 verbatim_pylibmount_dependency='
1995 # pylibmountexec module must be installed after usrlib_exec libraries,
1996 # otherwise the libtool relink step will fail to find libmount.la and
1997 # will try -lmount which is possibly not available.
1998 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2001 AC_SUBST([verbatim_pylibmount_dependency])
2002 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2004 AC_ARG_ENABLE([pg-bell],
2005 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2006 [], [enable_pg_bell=yes]
2009 AS_IF([test "x$enable_pg_bell" = xyes], [
2010 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2014 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2015 AC_ARG_ENABLE([fs-paths-default],
2016 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2017 [AS_CASE([$enableval],
2018 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2019 [no], [fs_paths_defaults=""],
2020 [fs_paths_defaults="$enableval"]
2022 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2024 AC_ARG_ENABLE([fs-paths-extra],
2025 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2026 [AS_CASE([$enableval],
2027 [yes|no], [fs_paths_extra=""],
2028 [fs_paths_extra="$enableval"]
2032 fs_paths="$fs_paths_defaults"
2033 AS_IF([test "x$fs_paths_extra" != "x"], [
2034 AS_IF([test "x$fs_paths" != "x"], [
2035 fs_paths="${fs_paths}:"
2037 fs_paths="${fs_paths}${fs_paths_extra}"
2039 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2042 AC_ARG_ENABLE([use-tty-group],
2043 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2044 [], [enable_use_tty_group=yes]
2046 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2048 AS_IF([test "x$enable_use_tty_group" = xyes], [
2049 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2053 AC_ARG_ENABLE([sulogin-emergency-mount],
2054 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2055 [use emergency mount of /dev and /proc for sulogin]),
2056 [], [enable_sulogin_emergency_mount=no]
2059 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2060 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2061 [Should sulogin use a emergency mount of /dev and /proc?])
2065 AC_ARG_ENABLE([usrdir-path],
2066 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2067 [], [enable_usrdir_path=no]
2070 AS_IF([test "x$enable_usrdir_path" == xyes], [
2071 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2075 AC_ARG_ENABLE([makeinstall-chown],
2076 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2077 [], [enable_makeinstall_chown=yes]
2079 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2082 AC_ARG_ENABLE([makeinstall-setuid],
2083 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2084 [], [enable_makeinstall_setuid=yes]
2086 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2089 AC_ARG_ENABLE([colors-default],
2090 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2091 [], [enable_colors_default=yes]
2093 AS_IF([test "x$enable_colors_default" = xyes], [
2094 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2098 AC_ARG_VAR([SUID_CFLAGS],
2099 [CFLAGS used for binaries which are usually with the suid bit])
2100 AC_ARG_VAR([SUID_LDFLAGS],
2101 [LDFLAGS used for binaries which are usually with the suid bit])
2103 AC_ARG_VAR([DAEMON_CFLAGS],
2104 [CFLAGS used for binaries which are usually executed as daemons])
2105 AC_ARG_VAR([DAEMON_LDFLAGS],
2106 [LDFLAGS used for binaries which are usually executed as daemons])
2108 AC_ARG_VAR([SOLIB_CFLAGS],
2109 [CFLAGS used for shared libraries])
2110 AC_ARG_VAR([SOLIB_LDFLAGS],
2111 [LDFLAGS used for shared libraries])
2113 AC_ARG_VAR([ADJTIME_PATH],
2114 [Path to hwclock adjtime file, default /etc/adjtime])
2115 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2116 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2122 AC_CONFIG_HEADERS([config.h])
2125 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2130 libblkid/docs/Makefile
2131 libblkid/docs/version.xml
2132 libblkid/src/blkid.h
2133 libfdisk/docs/Makefile
2134 libfdisk/docs/version.xml
2135 libfdisk/src/libfdisk.h
2136 libmount/docs/Makefile
2137 libmount/docs/version.xml
2138 libmount/src/libmount.h
2139 libsmartcols/docs/Makefile
2140 libsmartcols/docs/version.xml
2141 libsmartcols/src/libsmartcols.h
2148 ${PACKAGE} ${VERSION}
2151 exec prefix: ${exec_prefix}
2153 localstatedir: ${localstatedir}
2157 includedir: ${includedir}
2158 usrbin_execdir: ${usrbin_execdir}
2159 usrsbin_execdir: ${usrsbin_execdir}
2160 usrlib_execdir: ${usrlib_execdir}
2164 suid cflags: ${SUID_CFLAGS}
2166 suid ldflags: ${SUID_LDFLAGS}
2169 Python version: ${PYTHON_VERSION}
2170 Python libs: ${pyexecdir}
2172 Bash completions: ${with_bashcompletiondir}
2173 Systemd support: ${have_systemd}
2174 Btrfs support: ${have_btrfs}
2180 Type 'make' or 'make <utilname>' to compile.