]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - configure.ac
fdformat: clear progress message before printing "done"
[thirdparty/util-linux.git] / configure.ac
index 48e994b10ae79f063081913089ac7b79daa1eb70..53d25b8ab35decb61710187348cc66a4063884a2 100644 (file)
@@ -21,16 +21,14 @@ AC_PREFIX_DEFAULT([/usr])
 
 dnl version details from <major>.<minor>[-<suffix>]
 PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
-PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{print $2}' \
-                                             | awk -F- '{print $1}')
-
-PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{print $3}' \
-                                               | sed 's/.*@<:@^@<:@:digit:@:>@@:>@.*/0/')
-
+PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{
+                                                   sub("-.*","",$2); print $2}')
+PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{
+                     sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0}')
 
 dnl libblkid version
 LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
-LIBBLKID_DATE="12-Apr-2016"
+LIBBLKID_DATE="02-Jun-2017"
 LIBBLKID_LT_MAJOR=1
 LIBBLKID_LT_MINOR=1
 LIBBLKID_LT_MICRO=0
@@ -101,6 +99,7 @@ AC_SUBST([usrlib_execdir])
 AM_PROG_CC_C_O
 AC_PROG_MKDIR_P
 AC_PROG_CC_STDC
+AC_PROG_YACC
 AC_CANONICAL_HOST
 AC_C_CONST
 AC_C_VOLATILE
@@ -155,7 +154,6 @@ PKG_PROG_PKG_CONFIG
 GTK_DOC_CHECK([1.10])
 AC_PATH_PROG([XSLTPROC], [xsltproc])
 
-
 linux_os=no
 bsd_os=no
 AS_CASE([${host_os}],
@@ -182,10 +180,11 @@ UL_SET_ARCH([SPARC], [sparc*])
 UL_SET_ARCH([PPC], [ppc*|powerpc*])
 UL_SET_ARCH([M68K], [m68*])
 UL_SET_ARCH([MIPS], [mips*])
-UL_SET_ARCH([HPPA], [hppa*])
+UL_SET_ARCH([HPPA], [hppa*|parisc*])
 
 AC_SYS_LARGEFILE
 AC_HEADER_ASSERT
+AC_STRUCT_TIMEZONE
 
 dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
 AM_GNU_GETTEXT_VERSION([0.18.3])
@@ -209,6 +208,8 @@ AC_CHECK_HEADERS([ \
        fcntl.h \
        getopt.h \
        inttypes.h \
+       lastlog.h \
+       libutil.h \
        linux/btrfs.h \
        linux/cdrom.h \
        linux/falloc.h \
@@ -216,7 +217,6 @@ AC_CHECK_HEADERS([ \
        linux/fd.h \
        linux/raw.h \
        linux/tiocl.h \
-       linux/gsmmux.h \
        linux/version.h \
        linux/securebits.h \
        locale.h \
@@ -260,6 +260,13 @@ AC_CHECK_HEADERS([ \
        unistd.h \
        shadow.h \
        utmp.h \
+       utmpx.h \
+])
+
+AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
+ [#ifdef LINUX_GSMMUX_H
+   # include <linux/gsmmux.h>
+   #endif
 ])
 
 AC_CHECK_HEADERS([security/pam_misc.h],
@@ -270,6 +277,8 @@ AC_CHECK_HEADERS([security/pam_misc.h],
 #endif
 ])
 
+AC_CHECK_HEADERS([linux/blkzoned.h])
+
 AC_CHECK_HEADERS([security/openpam.h], [], [], [
 #ifdef HAVE_SECURITY_PAM_APPL_H
 #include <security/pam_appl.h>
@@ -282,6 +291,8 @@ AC_CHECK_HEADERS([langinfo.h],
 
 dnl Convert some ac_cv_header_* variables to have_*
 dnl
+have_linux_version_h=$ac_cv_header_linux_version_h
+have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
 have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
 have_linux_raw_h=$ac_cv_header_linux_raw_h
 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
@@ -291,7 +302,12 @@ have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
 have_security_openpam_h=$ac_cv_header_security_openpam_h
 have_shadow_h=$ac_cv_header_shadow_h
 have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
-have_utmp_h=$ac_cv_header_utmp_h
+have_utmpx_h=$ac_cv_header_utmpx_h
+
+AS_CASE([$linux_os:$have_linux_version_h],
+  [yes:no],
+    [AC_MSG_ERROR([kernel headers required on Linux])]
+)
 
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <time.h>
@@ -351,18 +367,36 @@ AC_CHECK_DECL([strsignal],
                [Define to 1 if have strsignal function prototype])],
 )
 
+AC_CHECK_DECL([TIOCGLCKTRMIOS],
+             [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
+              [#include <sys/ioctl.h>])
+AC_CHECK_DECL([SOCK_CLOEXEC],
+             [have_sock_cloexec=yes], [have_sock_cloexec=no],
+             [#include <sys/types.h>
+               #include <sys/socket.h>])
+AC_CHECK_DECL([SOCK_NONBLOCK],
+             [have_sock_nonblock=yes], [have_sock_nonblock=no],
+             [#include <sys/types.h>
+               #include <sys/socket.h>])
+AC_CHECK_DECL([SO_PASSCRED],
+             [have_so_passcred=yes], [have_so_passcred=no],
+             [#include <sys/types.h>
+               #include <sys/socket.h>])
+
 AC_CHECK_FUNCS([ \
        __fpending \
        secure_getenv \
        __secure_getenv \
        err \
        errx \
+       explicit_bzero \
        fsync \
        utimensat \
        getdomainname \
        getdtablesize \
        getexecname \
        getmntinfo \
+       getrandom \
        getrlimit \
        getsgnam \
        inotify_init \
@@ -392,7 +426,7 @@ AC_CHECK_FUNCS([ \
        strnlen \
        sysconf \
        sysinfo \
-       updwtmp \
+       timegm \
        usleep \
        warn \
        warnx \
@@ -405,9 +439,18 @@ AC_CHECK_FUNCS([futimens], [have_futimens=yes])
 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
+AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
 
 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
 
+
+AC_CHECK_FUNCS([isnan], [],
+       [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
+       [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
+)
+AC_SUBST([MATH_LIBS])
+
+
 dnl lib/mononotic.c may require -lrt
 AC_CHECK_FUNCS([clock_gettime], [],
        [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
@@ -491,7 +534,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 
 AC_MSG_CHECKING([whether __progname is defined])
 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
-          [if (*__progname == 0) return;])],
+          [if (*__progname == 0) return 1;])],
           AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
           AC_MSG_RESULT([yes]),
           AC_MSG_RESULT([no]))
@@ -565,7 +608,7 @@ AC_CACHE_VAL([scanf_cv_alloc_modifier],
      #include <stdio.h>
      #include <unistd.h>
 
-     #ifdef __GLIBC__
+     #if defined(__GLIBC__) && !defined(__UCLIBC__)
 
      #if !(__GLIBC_PREREQ(2, 7))
      #error %m is not available
@@ -617,21 +660,31 @@ AC_CHECK_TYPES([union semun], [], [], [[
 ]])
 AC_CHECK_TYPES([loff_t])
 
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
-#include <wchar.h>
-#include <wctype.h>
-#include <stdio.h>
-]], [[
-  wchar_t wc;
-  wint_t w;
-  w = fgetwc(stdin);
-  if (w == WEOF) exit(1);
-  wc = w;
-  fputwc(wc,stdout);
-]])],
-[AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
+
+AC_ARG_ENABLE([widechar],
+  AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
+  [], [enable_widechar=check]
+)
+UL_BUILD_INIT([widechar])
+UL_REQUIRES_COMPILE([widechar], [[
+  #include <wchar.h>
+  #include <wctype.h>
+  #include <stdio.h>
+  ]], [[
+    wchar_t wc;
+    wint_t w;
+    w = fgetwc(stdin);
+    if (w == WEOF) exit(1);
+    wc = w;
+    fputwc(wc,stdout);
+  ]],
+  [wchar_t support])
+
+AS_IF([test "x$build_widechar" = xyes ], [
+  AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
 ])
 
+
 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
 #include <sched.h>
 ]])
@@ -739,68 +792,62 @@ AS_IF([test "x$with_udev" = xno], [
   )
 ])
 
+
+dnl wide-char ncurses
+AC_ARG_WITH([ncursesw],
+  AS_HELP_STRING([--with-ncursesw], [build with wide-char ncurses, enabled by default]),
+  [], [with_ncursesw=auto]
+)
+have_ncursesw=no
+have_ncursesw_header=no
+AS_IF([test "x$with_ncursesw" != xno], [
+  UL_NCURSES_CHECK([ncursesw])
+  AS_IF([test "x$have_ncursesw" = xyes], [
+    AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
+    AC_CHECK_HEADERS([ncursesw/term.h])
+    AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
+  ])
+  AS_IF([test "x$have_ncursesw" = xyes], [
+    CURSES_LIB_NAME="ncursesw"
+    AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
+  ])
+])
+AS_CASE([$with_ncursesw:$have_ncursesw],
+  [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
+
+
+dnl non-wide ncurses
 AC_ARG_WITH([ncurses],
-  AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
-                                   (--without-ncurses disables all ncurses(w) support)]),
+  AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, disabled by default]),
   [], [with_ncurses=auto]
 )
-AM_CONDITIONAL([HAVE_NCURSES], [false])
-AS_IF([test "x$with_ncurses" != xno], [
-  have_ncurses=no
+have_ncurses=no
+have_ncurses_header=no
+AS_CASE([$with_ncurses:$build_widechar],
+  [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
 
-  dnl First try to find the pkg-config module.
-  PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
-    have_ncurses=yes
-    NCURSES_LIBS=${NCURSESW_LIBS}
-    NCURSES_CFLAGS=${NCURSESW_CFLAGS}
-    AC_DEFINE([HAVE_LIBNCURSESW])
-    CURSES_LIB_NAME="ncursesw"
-  ], [
-    PKG_CHECK_MODULES(NCURSES, [ncurses], [
-      have_ncurses=yes
-      AC_DEFINE([HAVE_LIBNCURSES])
-      CURSES_LIB_NAME="ncursesw"
-    ], [:])
+AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
+  UL_NCURSES_CHECK([ncurses])
+  AS_IF([test "x$have_ncurses" = xyes], [
+    AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h], [have_ncurses_header=yes])
+    AC_CHECK_HEADERS([ncurses/term.h term.h])
+    AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
   ])
-
   AS_IF([test "x$have_ncurses" = xyes], [
-    dnl If that worked, setup the defines that the code expects.
-    save_CPPFLAGS="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
-    AC_CHECK_HEADERS([ncurses.h])
-    CPPFLAGS="$save_CPPFLAGS"
-  ], [
-    dnl If that failed, fall back to classic searching.
-    AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
-      AS_IF([test "x$with_ncurses" = xauto], [
-       UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
-       AS_IF([test "x$have_ncurses" = xyes], [
-         AC_CHECK_HEADERS([ncursesw/ncurses.h])
-         NCURSES_LIBS="-lncursesw"
-         CURSES_LIB_NAME="ncursesw"
-       ])
-      ])
-      AS_IF([test "x$have_ncurses" = xno], [
-       UL_CHECK_LIB(ncurses, initscr)
-       AS_IF([test "x$have_ncurses" = xyes], [
-         NCURSES_LIBS="-lncurses"
-         CURSES_LIB_NAME="ncurses"
-       ])
-      ])
-    ])
+    CURSES_LIB_NAME="ncurses"
+    AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
   ])
-
-  AS_CASE([$with_ncurses:$have_ncurses],
-    [yes:no], [AC_MSG_ERROR([ncurses or ncursesw selected, but library not found])]
-  )
-
 ])
+AS_CASE([$with_ncurses:$have_ncurses],
+  [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
+
 AC_SUBST([NCURSES_CFLAGS])
 AC_SUBST([NCURSES_LIBS])
+AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o  "x$have_ncurses" = xyes])
 
 
 AC_ARG_WITH([slang],
-  AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
+  AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
   [], [with_slang=no]
 )
 have_slang=no
@@ -822,7 +869,7 @@ AS_IF([test "x$with_slang" = xyes], [
 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
 
 
-AS_IF([test "x$have_slang" = xyes -o "x$have_ncurses" = xyes], [
+AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
        AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
                     AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
                               [Define if curses library has the use_default_colors().])
@@ -962,13 +1009,13 @@ AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
 AC_SUBST([LIBMOUNT_VERSION_INFO])
 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
 
-AC_ARG_ENABLE([libmount-force-mountinfo],
-  AS_HELP_STRING([--enable-libmount-force-mountinfo], [ignore /etc/mtab in all situations (recommended for systemd)]),
-  [], [enable_libmount_force_mountinfo=no]
+AC_ARG_ENABLE([libmount-support-mtab],
+  AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
+  [], [enable_libmount_support_mtab=no]
 )
 
-AS_IF([test "x$enable_libmount_force_mountinfo" == xyes], [
-  AC_DEFINE([USE_LIBMOUNT_FORCE_MOUNTINFO], [1], [Define to 1 if want to ignore mtab in all situations.])
+AS_IF([test "x$enable_libmount_support_mtab" == xyes], [
+  AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
 ])
 
 
@@ -1029,7 +1076,7 @@ UL_BUILD_INIT([cfdisk], [check])
 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
-UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
+UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
 
 
@@ -1113,6 +1160,7 @@ AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
 
 UL_BUILD_INIT([findmnt], [check])
 UL_REQUIRES_BUILD([findmnt], [libmount])
+UL_REQUIRES_BUILD([findmnt], [libblkid])
 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
 
@@ -1168,6 +1216,34 @@ AS_IF([test "x$build_fallocate" = xyes], [
   AC_MSG_RESULT([no])])
 ])
 
+AS_IF([test "x$build_fallocate" = xyes], [
+  dnl check for valid posix_fallocate() function
+  AC_MSG_CHECKING([for valid posix_fallocate() function])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_LINUX_FALLOC_H
+# include <linux/falloc.h>
+#endif
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
+]],[[
+   long ret;
+   ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
+   if (ret != 0) {
+      return 1;
+   }
+   ]])],[
+  AC_MSG_RESULT([yes])
+  AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
+  AC_MSG_RESULT([no])])
+])
+
 
 AC_ARG_ENABLE([unshare],
   AS_HELP_STRING([--disable-unshare], [do not build unshare]),
@@ -1228,7 +1304,8 @@ AC_ARG_ENABLE([agetty],
   [], [UL_DEFAULT_ENABLE([agetty], [check])]
 )
 UL_BUILD_INIT([agetty])
-UL_REQUIRES_HAVE([agetty], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
   AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
@@ -1237,6 +1314,21 @@ AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
 ])
 
 
+AC_ARG_ENABLE([plymouth_support],
+  AS_HELP_STRING([--disable-plymouth_support], [don not care about plymouth in sylogin(8) and agetty(8)]),
+  [], [enable_plymouth_support=check]
+)
+UL_BUILD_INIT([plymouth_support])
+UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
+UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
+UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
+UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
+AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
+AS_IF([test "x$build_plymouth_support" = xyes ], [
+    AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
+])
+
+
 AC_ARG_WITH([libz],
   AS_HELP_STRING([--without-libz], [compile without libz]),
   [], [with_libz=auto]
@@ -1334,7 +1426,8 @@ AC_ARG_ENABLE([lslogins],
 UL_BUILD_INIT([lslogins])
 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
-UL_REQUIRES_HAVE([lslogins], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
 
 
@@ -1443,9 +1536,29 @@ UL_BUILD_INIT([flock], [check])
 UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
 
+
+AC_ARG_ENABLE([lsmem],
+  AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
+  [], [UL_DEFAULT_ENABLE([lsmem], [check])]
+)
+UL_BUILD_INIT([lsmem])
+UL_REQUIRES_LINUX([lsmem])
+UL_REQUIRES_BUILD([lsmem], [libsmartcols])
+AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
+
+
+AC_ARG_ENABLE([chmem],
+  AS_HELP_STRING([--disable-chmem], [do not build chmem]),
+  [], [UL_DEFAULT_ENABLE([chmem], [check])]
+)
+UL_BUILD_INIT([chmem])
+UL_REQUIRES_LINUX([chmem])
+AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
+
 UL_BUILD_INIT([ipcmk], [yes])
 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
 
+
 AC_ARG_ENABLE([ipcrm],
   AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
   [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
@@ -1493,6 +1606,11 @@ dnl earlier than 2.x.
 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
 
+UL_BUILD_INIT([fincore], [check])
+UL_REQUIRES_LINUX([fincore])
+UL_REQUIRES_BUILD([fincore], [libsmartcols])
+AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
+
 UL_BUILD_INIT([fsfreeze], [check])
 UL_REQUIRES_LINUX([fsfreeze])
 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
@@ -1501,6 +1619,11 @@ UL_BUILD_INIT([blkdiscard], [check])
 UL_REQUIRES_LINUX([blkdiscard])
 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
 
+UL_BUILD_INIT([blkzone], [check])
+UL_REQUIRES_LINUX([blkzone])
+UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
+AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
+
 UL_BUILD_INIT([ldattach], [check])
 UL_REQUIRES_LINUX([ldattach])
 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
@@ -1529,7 +1652,8 @@ AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
 UL_BUILD_INIT([colrm], [yes])
 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
 
-UL_BUILD_INIT([column], [yes])
+UL_BUILD_INIT([column], [check])
+UL_REQUIRES_BUILD([column], [libsmartcols])
 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
 
 UL_BUILD_INIT([hexdump], [yes])
@@ -1538,9 +1662,6 @@ AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
 UL_BUILD_INIT([rev], [yes])
 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
 
-UL_BUILD_INIT([tailf], [yes])
-AM_CONDITIONAL([BUILD_TAILF], [test "x$build_tailf" = xyes])
-
 
 AC_ARG_ENABLE([tunelp],
   AS_HELP_STRING([--enable-tunelp], [build tunelp]),
@@ -1565,7 +1686,8 @@ AC_ARG_ENABLE([last],
   [], [UL_DEFAULT_ENABLE([last], [check])]
 )
 UL_BUILD_INIT([last])
-UL_REQUIRES_HAVE([last], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
 
 
@@ -1574,7 +1696,8 @@ AC_ARG_ENABLE([utmpdump],
   [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
 )
 UL_BUILD_INIT([utmpdump])
-UL_REQUIRES_HAVE([utmpdump], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
 
 
@@ -1693,7 +1816,8 @@ AC_ARG_ENABLE([login],
 UL_BUILD_INIT([login])
 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
-UL_REQUIRES_HAVE([login], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
 
 AC_ARG_ENABLE([login-chown-vcs],
@@ -1738,7 +1862,8 @@ AC_ARG_ENABLE([su],
 )
 UL_BUILD_INIT([su])
 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
-UL_REQUIRES_HAVE([su], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
 
 
@@ -1748,7 +1873,8 @@ AC_ARG_ENABLE([runuser],
 )
 UL_BUILD_INIT([runuser])
 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
-UL_REQUIRES_HAVE([runuser], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
 
 
@@ -1757,7 +1883,7 @@ AC_ARG_ENABLE([ul],
   [], [UL_DEFAULT_ENABLE([ul], [check])]
 )
 UL_BUILD_INIT([ul])
-UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
+UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
 
 
@@ -1766,16 +1892,16 @@ AC_ARG_ENABLE([more],
   [], [UL_DEFAULT_ENABLE([more], [check])]
 )
 UL_BUILD_INIT([more])
-UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
+UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
 
 
 AC_ARG_ENABLE([pg],
-  AS_HELP_STRING([--disable-pg], [do not build pg]),
-  [], [UL_DEFAULT_ENABLE([pg], [check])]
+  AS_HELP_STRING([--enable-pg], [build pg]),
+  [], [UL_DEFAULT_ENABLE([pg], [no])]
 )
 UL_BUILD_INIT([pg])
-UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
+UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
 
 
@@ -1785,19 +1911,19 @@ AC_ARG_ENABLE([setterm],
 )
 UL_BUILD_INIT([setterm])
 UL_REQUIRES_LINUX([setterm])
-UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
+UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
 
 # build_schedutils= is just configure-only variable to control
 # ionice, taskset and chrt
 AC_ARG_ENABLE([schedutils],
   AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
-  [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
+  [], [UL_DEFAULT_ENABLE([schedutils], [check])]
 )
-UL_BUILD_INIT([schedutils])
 
-UL_BUILD_INIT([ionice], [check])
-UL_REQUIRES_BUILD([ionice], [schedutils])
+
+UL_ENABLE_ALIAS([ionice], [schedutils])
+UL_BUILD_INIT([ionice])
 UL_REQUIRES_SYSCALL_CHECK([ionice],
        [UL_CHECK_SYSCALL([ioprio_set],
          [alpha],      [442],
@@ -1824,8 +1950,9 @@ UL_REQUIRES_SYSCALL_CHECK([ionice],
 
 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
 
-UL_BUILD_INIT([taskset], [check])
-UL_REQUIRES_BUILD([taskset], [schedutils])
+
+UL_ENABLE_ALIAS([taskset], [schedutils])
+UL_BUILD_INIT([taskset])
 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
 UL_REQUIRES_SYSCALL_CHECK([taskset],
        [UL_CHECK_SYSCALL([sched_getaffinity])],
@@ -1837,8 +1964,8 @@ have_schedsetter=no
 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
       [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
 
-UL_BUILD_INIT([chrt], [check])
-UL_REQUIRES_BUILD([chrt], [schedutils])
+UL_ENABLE_ALIAS([chrt], [schedutils])
+UL_BUILD_INIT([chrt])
 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
 
@@ -1852,7 +1979,7 @@ AC_ARG_ENABLE([wall],
   [], [UL_DEFAULT_ENABLE([wall], [check])]
 )
 UL_BUILD_INIT([wall])
-UL_REQUIRES_HAVE([wall], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
 
 
@@ -1861,7 +1988,8 @@ AC_ARG_ENABLE([write],
   [], [UL_DEFAULT_ENABLE([write], [no])]
 )
 UL_BUILD_INIT([write])
-UL_REQUIRES_HAVE([write], [utmp_h], [utmp.h header])
+UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
+UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx fucntions])
 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
 
 
@@ -2172,6 +2300,7 @@ AC_MSG_RESULT([
        Bash completions:  ${with_bashcompletiondir}
        Systemd support:   ${have_systemd}
        Btrfs support:     ${have_btrfs}
+       Wide-char support: ${build_widechar}
 
        warnings: