]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - configure.ac
libfdisk: remove dependence on libsmartcols
[thirdparty/util-linux.git] / configure.ac
index 22e00448d218c2b87ce1f1fb6cd8fa6745fac15c..5b558ec11a27e15f562b1eeb2bdd084e425ef4e9 100644 (file)
@@ -26,7 +26,7 @@ PACKAGE_VERSION_RELEASE=0
 
 dnl libblkid version
 LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
-LIBBLKID_DATE="25-Apr-2013"
+LIBBLKID_DATE="22-Jul-2014"
 LIBBLKID_LT_MAJOR=1
 LIBBLKID_LT_MINOR=1
 LIBBLKID_LT_MICRO=0
@@ -46,13 +46,20 @@ LIBMOUNT_LT_MINOR=1
 LIBMOUNT_LT_MICRO=0
 LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
 
+dnl libsmartcols version
+LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
+LIBSMARTCOLS_LT_MAJOR=1
+LIBSMARTCOLS_LT_MINOR=1
+LIBSMARTCOLS_LT_MICRO=0
+LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
+
 # Check whether exec_prefix=/usr:
 AS_CASE([$exec_prefix:$prefix],
 [NONE:NONE | NONE:/usr | /usr:*],
   [AC_MSG_NOTICE([Default --exec-prefix detected.])
-   AS_CASE([$bindir],  ['${exec_prefix}/bin'],  [bindir=/bin;  AC_MSG_NOTICE([  --bindir defaults to /bin])  ])
-   AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [bindir=/sbin; AC_MSG_NOTICE([  --sbindir defaults to /sbin])])
-   AS_CASE([$libdir],  ['${exec_prefix}/lib'],  [bindir=/lib;  AC_MSG_NOTICE([  --libdir defaults to /lib])  ])
+   AS_CASE([$bindir],  ['${exec_prefix}/bin'],  [bindir=/bin;   AC_MSG_NOTICE([  --bindir defaults to /bin])  ])
+   AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([  --sbindir defaults to /sbin])])
+   AS_CASE([$libdir],  ['${exec_prefix}/lib'],  [libdir=/lib;   AC_MSG_NOTICE([  --libdir defaults to /lib])  ])
   ]
 )
 
@@ -73,7 +80,7 @@ usrsbin_execdir='${exec_prefix}/sbin'
 AC_SUBST([usrsbin_execdir])
 
 AS_CASE([$libdir],
- ['${exec_prefix}/'* | '${prefix}/'* | /usr/*],
+ ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
    [usrlib_execdir=$libdir],
  [usrlib_execdir='${exec_prefix}'$libdir]
 )
@@ -109,6 +116,7 @@ UL_WARN_ADD([-Wnested-externs])
 UL_WARN_ADD([-Wpointer-arith])
 UL_WARN_ADD([-Wstrict-prototypes])
 UL_WARN_ADD([-Wformat-security])
+UL_WARN_ADD([-Wimplicit-function-declaration])
 AC_SUBST([WARN_CFLAGS])
 
 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
@@ -145,7 +153,8 @@ UL_SET_ARCH([HPPA], [hppa*])
 
 AC_SYS_LARGEFILE
 
-AM_GNU_GETTEXT_VERSION([0.14.1])
+dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
+AM_GNU_GETTEXT_VERSION([0.18.3])
 AM_GNU_GETTEXT([external])
 
 AS_IF([test -d "$srcdir/po"], [
@@ -204,6 +213,7 @@ AC_CHECK_HEADERS([ \
        sys/swap.h \
        sys/syscall.h \
        sys/time.h \
+       sys/ttydefaults.h \
        sys/types.h \
        sys/un.h \
        unistd.h \
@@ -293,15 +303,18 @@ AC_CHECK_FUNCS([ \
        getmntinfo \
        getrlimit \
        inotify_init \
+       inotify_init1 \
        jrand48 \
        lchown \
        llseek \
        lseek64 \
        mempcpy \
        nanosleep \
+       open_memstream \
        personality \
        posix_fadvise \
        prctl \
+       qsort_r \
        rpmatch \
        scandirat \
        setresgid \
@@ -313,6 +326,7 @@ AC_CHECK_FUNCS([ \
        strnlen \
        strtoull \
        sysconf \
+       sysinfo \
        updwtmp \
        usleep \
        warn \
@@ -390,7 +404,7 @@ AC_ARG_ENABLE([static-programs],
 
 AS_CASE([$enable_static_programs],
   [yes],
-    [enable_static_programs=m4_quote([UL_STATIC_PROGRAMS])],
+    [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
   [no],
     [enable_static_programs=]
 )
@@ -400,10 +414,25 @@ m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
   AS_CASE([,$enable_static_programs,],
    [*,UL_PRG,*], [static_[]UL_PRG=yes]
   )
+  AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
   AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
     [test "x$static_[]UL_PRG" = xyes])
 ])
 
+
+AC_ARG_ENABLE([all-programs],
+  AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
+  [], [enable_all_programs=undefined]
+)
+
+AS_CASE([$enable_all_programs],
+  [yes], [AC_MSG_WARN([force to build all programs by default])
+          ul_default_estate=check],
+  [no],  [AC_MSG_WARN([disable all programs by default])
+          ul_default_estate=no]
+)
+
+
 AX_CHECK_TLS
 
 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
@@ -429,6 +458,7 @@ AC_CACHE_VAL([scanf_cv_alloc_modifier],
 
     [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
      #include <stdio.h>
+     #include <unistd.h>
 
      #ifdef __GLIBC__
 
@@ -436,8 +466,13 @@ AC_CACHE_VAL([scanf_cv_alloc_modifier],
      #error %m is not available
      #endif
 
-     #else
+     #elif defined(_POSIX_VERSION)
+
+     #if _POSIX_VERSION < 200809L
+     #error %m is not available
+     #endif
 
+     #else
      #error Your C-library is not supported.
      #endif
      ])],
@@ -489,6 +524,10 @@ AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
 
 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
 
+AC_CHECK_TYPES([sighandler_t], [], [], [[
+#include <signal.h>
+]])
+
 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
 #include <sched.h>
 ]])
@@ -594,25 +633,54 @@ AM_CONDITIONAL([HAVE_NCURSES], [false])
 
 AS_IF([test "x$with_ncurses" != xno], [
   have_ncurses=no
-  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"
+
+  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_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"
+      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"
+       ])
       ])
     ])
   ])
+
   AS_IF([test "x$have_ncurses" = xno], [
     AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
   ])
 ])
+AC_SUBST([NCURSES_CFLAGS])
 AC_SUBST([NCURSES_LIBS])
 
 
@@ -632,17 +700,35 @@ AS_IF([test "x$with_slang" = xyes], [
 #endif
 ])
   AS_IF([test "x$have_slang" = xno], [
-    AC_MSG_ERROR([slang selected but slcurses.h not found])
+    AC_MSG_ERROR([slang selected but slcurses.h not found])],
+    [CURSES_LIB_NAME=slang
   ])
 ])
 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
 
 
-AM_CONDITIONAL([BUILD_CFDISK], [test "x$have_slang" = xyes -o "x$have_ncurses" = xyes])
+AS_IF([test "x$have_slang" = 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().])
+       ])
+       AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
+                    AC_DEFINE(HAVE_RESIZETERM, 1,
+                              [Define if curses library has the resizeterm().])
+       ])
+])
 
 
-have_tinfo=no
-AC_CHECK_LIB([tinfo], [tgetent], [have_tinfo=yes])
+dnl Try pkg-config for libtinfo
+PKG_CHECK_MODULES(TINFO, [tinfo], [have_tinfo=yes], [
+    dnl If that failed, fall back to classic searching.
+    AC_CHECK_LIB([tinfo], [tgetent], [
+       have_tinfo=yes
+       TINFO_LIBS="-ltinfo"
+       TINFO_CFLAGS=""])
+])
+AC_SUBST([TINFO_LIBS])
+AC_SUBST([TINFO_CFLAGS])
 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
 
 
@@ -661,39 +747,21 @@ AS_IF([test "x$with_utempter" = xyes], [
 ])
 
 
-AC_ARG_ENABLE([most-builds],
-  AS_HELP_STRING([--enable-most-builds], [build everything other than experimental code]),
-  [], [enable_most_builds=no]
-)
-AS_IF([test "x$enable_most_builds" = xyes], [
-  enable_chfn_chsh=yes
-  enable_line=yes
-  enable_mesg=yes
-  enable_newgrp=yes
-  enable_reset=yes
-  enable_socket_activation=yes
-  enable_tunelp=yes
-  enable_vipw=yes
-  enable_write=yes
-  with_python=yes
-])
 
 dnl
 dnl libuuid
 dnl
 AC_ARG_ENABLE([libuuid],
   AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
-  [], [enable_libuuid=yes]
+  [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
 )
 UL_BUILD_INIT([libuuid])
 AC_SUBST([LIBUUID_VERSION])
 AC_SUBST([LIBUUID_VERSION_INFO])
 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
 
-AS_IF([test "x$enable_libuuid" = xyes], [
+AS_IF([test "x$build_libuuid" = xyes], [
   AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
-], [
-  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
 ])
 
 dnl
@@ -701,7 +769,7 @@ dnl libblkid
 dnl
 AC_ARG_ENABLE([libblkid],
   AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
-  [], [enable_libblkid=yes]
+  [], [UL_DEFAULT_ENABLE([libblkid], [yes])]
 )
 UL_BUILD_INIT([libblkid])
 AC_SUBST([LIBBLKID_DATE])
@@ -720,7 +788,7 @@ dnl libmount
 dnl
 AC_ARG_ENABLE([libmount],
   AS_HELP_STRING([--disable-libmount], [do not build libmount]),
-  [], [enable_libmount=check]
+  [], [UL_DEFAULT_ENABLE([libmount], [check])]
 )
 UL_BUILD_INIT([libmount])
 UL_REQUIRES_LINUX([libmount])
@@ -735,7 +803,23 @@ AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version
 
 
 dnl
-dnl libfdisk is enabled all time if possible
+dnl libsmartcols
+dnl
+AC_ARG_ENABLE([libsmartcols],
+  AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
+  [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
+)
+UL_BUILD_INIT([libsmartcols])
+AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
+AM_CONDITIONAL([BUILD_LIBSMARTCOLS_TESTS], [test "x$build_libsmartcols" = xyes -a "x$enable_static" = xyes])
+
+AC_SUBST([LIBSMARTCOLS_VERSION])
+AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
+AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
+
+
+dnl
+dnl libfdisk is enabled at all times if possible
 dnl
 UL_BUILD_INIT([libfdisk], [check])
 UL_REQUIRES_BUILD([libfdisk], [libuuid])
@@ -743,50 +827,52 @@ AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
 
 UL_BUILD_INIT([fdisk], [check])
 UL_REQUIRES_BUILD([fdisk], [libfdisk])
+UL_REQUIRES_BUILD([fdisk], [libsmartcols])
 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
 
 
-AC_ARG_ENABLE([deprecated-mount],
-  AS_HELP_STRING([--enable-deprecated-mount], [build old mount utilities]),
-  [], [enable_deprecated_mount=no]
-)
-UL_BUILD_INIT([deprecated_mount])
-UL_REQUIRES_LINUX([deprecated_mount])
-UL_REQUIRES_BUILD([deprecated_mount], [libblkid])
-AM_CONDITIONAL([BUILD_DEPRECATED_MOUNT], [test "x$build_deprecated_mount" = xyes])
+UL_BUILD_INIT([sfdisk], [check])
+UL_EXCLUDE_ARCH([sfdisk], [sparc*])
+AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
+
+
+UL_BUILD_INIT([cfdisk], [check])
+UL_REQUIRES_BUILD([cfdisk], [libfdisk])
+UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
+UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
+AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
 
 
 AC_ARG_ENABLE([mount],
   AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
-  [], [enable_mount=check]
+  [], [UL_DEFAULT_ENABLE([mount], [check])]
 )
 UL_BUILD_INIT([mount])
 UL_REQUIRES_BUILD([mount], [libmount])
-UL_CONFLICTS_BUILD([mount], [deprecated_mount], [old deprecated mount version])
 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
 
 
 AC_ARG_ENABLE([losetup],
   AS_HELP_STRING([--disable-losetup], [do not build losetup]),
-  [], [enable_losetup=check]
+  [], [UL_DEFAULT_ENABLE([losetup], [check])]
 )
 UL_BUILD_INIT([losetup])
 UL_REQUIRES_LINUX([losetup])
+UL_REQUIRES_BUILD([losetup], [libsmartcols])
 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
 
-
-AC_ARG_ENABLE([cytune],
-  AS_HELP_STRING([--disable-cytune], [do not build cytune]),
-  [], [enable_cytune=check]
+AC_ARG_ENABLE([zramctl],
+  AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
+  [], [UL_DEFAULT_ENABLE([zramctl], [check])]
 )
-UL_BUILD_INIT([cytune])
-UL_REQUIRES_LINUX([cytune])
-AM_CONDITIONAL([BUILD_CYTUNE], [test "x$build_cytune" = xyes])
-
+UL_BUILD_INIT([zramctl])
+UL_REQUIRES_LINUX([zramctl])
+UL_REQUIRES_BUILD([zramctl], [libsmartcols])
+AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
 
 AC_ARG_ENABLE([fsck],
   AS_HELP_STRING([--disable-fsck], [do not build fsck]),
-  [], [enable_fsck=check]
+  [], [UL_DEFAULT_ENABLE([fsck], [check])]
 )
 UL_BUILD_INIT([fsck])
 UL_REQUIRES_BUILD([fsck], [libmount])
@@ -795,17 +881,18 @@ AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
 
 AC_ARG_ENABLE([partx],
   AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
-  [], [enable_partx=check]
+  [], [UL_DEFAULT_ENABLE([partx], [check])]
 )
 UL_BUILD_INIT([partx])
 UL_REQUIRES_LINUX([partx])
 UL_REQUIRES_BUILD([partx], [libblkid])
+UL_REQUIRES_BUILD([partx], [libsmartcols])
 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
 
 
 AC_ARG_ENABLE([uuidd],
   AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
-  [], [enable_uuidd=check]
+  [], [UL_DEFAULT_ENABLE([uuidd], [check])]
 )
 UL_BUILD_INIT([uuidd])
 UL_REQUIRES_BUILD([uuidd], [libuuid])
@@ -815,9 +902,31 @@ AS_IF([test "x$build_uuidd" = xyes], [
 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
 
 
+UL_BUILD_INIT([uuidgen], [check])
+UL_REQUIRES_BUILD([uuidgen], [libuuid])
+AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
+
+UL_BUILD_INIT([blkid], [check])
+UL_REQUIRES_BUILD([blkid], [libblkid])
+AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
+
+UL_BUILD_INIT([findfs], [check])
+UL_REQUIRES_BUILD([findfs], [libblkid])
+AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
+
+UL_BUILD_INIT([wipefs], [check])
+UL_REQUIRES_BUILD([wipefs], [libblkid])
+AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
+
+UL_BUILD_INIT([findmnt], [check])
+UL_REQUIRES_BUILD([findmnt], [libmount])
+UL_REQUIRES_BUILD([findmnt], [libsmartcols])
+AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
+
+
 AC_ARG_ENABLE([mountpoint],
   AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
-  [], [enable_mountpoint=check]
+  [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
 )
 UL_BUILD_INIT([mountpoint])
 UL_REQUIRES_BUILD([mountpoint], [libmount])
@@ -826,7 +935,7 @@ AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
 
 AC_ARG_ENABLE([fallocate],
   AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
-  [], [enable_fallocate=check]
+  [], [UL_DEFAULT_ENABLE([fallocate], [check])]
 )
 UL_BUILD_INIT([fallocate])
 UL_REQUIRES_LINUX([fallocate])
@@ -869,7 +978,7 @@ AS_IF([test "x$build_fallocate" = xyes], [
 
 AC_ARG_ENABLE([unshare],
   AS_HELP_STRING([--disable-unshare], [do not build unshare]),
-  [], [enable_unshare=check]
+  [], [UL_DEFAULT_ENABLE([unshare], [check])]
 )
 UL_BUILD_INIT([unshare])
 UL_REQUIRES_LINUX([unshare])
@@ -879,7 +988,7 @@ AC_CHECK_FUNCS([unshare])
 
 AC_ARG_ENABLE([nsenter],
   AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
-  [], [enable_nsenter=check]
+  [], [UL_DEFAULT_ENABLE([nsenter], [check])]
 )
 UL_BUILD_INIT([nsenter])
 UL_REQUIRES_LINUX([nsenter])
@@ -893,7 +1002,7 @@ dnl but this isn't currently supported.
 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
 AC_ARG_ENABLE([setpriv],
   AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
-  [], [enable_setpriv=check]
+  [], [UL_DEFAULT_ENABLE([setpriv], [check])]
 )
 UL_BUILD_INIT([setpriv])
 UL_REQUIRES_LINUX([setpriv])
@@ -904,7 +1013,7 @@ AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
 
 AC_ARG_ENABLE([eject],
   AS_HELP_STRING([--disable-eject], [do not build eject]),
-  [], [enable_eject=check]
+  [], [UL_DEFAULT_ENABLE([eject], [check])]
 )
 UL_BUILD_INIT([eject])
 UL_REQUIRES_LINUX([eject])
@@ -914,7 +1023,7 @@ AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
 
 AC_ARG_ENABLE([agetty],
   AS_HELP_STRING([--disable-agetty], [do not build agetty]),
-  [], [enable_agetty=yes]
+  [], [UL_DEFAULT_ENABLE([agetty], [yes])]
 )
 UL_BUILD_INIT([agetty])
 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
@@ -922,7 +1031,7 @@ AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
 
 AC_ARG_ENABLE([cramfs],
   AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
-  [], [enable_cramfs=check]
+  [], [UL_DEFAULT_ENABLE([cramfs], [check])]
 )
 UL_BUILD_INIT([cramfs])
 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
@@ -932,15 +1041,23 @@ AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
 
 AC_ARG_ENABLE([bfs],
   AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
-  [], [enable_bfs=yes]
+  [], [UL_DEFAULT_ENABLE([bfs], [yes])]
 )
 UL_BUILD_INIT([bfs])
 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
 
 
+AC_ARG_ENABLE([minix],
+  AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
+  [], [UL_DEFAULT_ENABLE([minix], [yes])]
+)
+UL_BUILD_INIT([minix])
+AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
+
+
 AC_ARG_ENABLE([fdformat],
   AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
-  [], [enable_fdformat=check]
+  [], [UL_DEFAULT_ENABLE([fdformat], [check])]
 )
 UL_BUILD_INIT([fdformat])
 UL_REQUIRES_LINUX([fdformat])
@@ -949,7 +1066,7 @@ AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
 
 AC_ARG_ENABLE([hwclock],
   AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
-  [], [enable_hwclock=check]
+  [], [UL_DEFAULT_ENABLE([hwclock], [check])]
 )
 have_linuxdummy=$linux_os
 
@@ -958,10 +1075,24 @@ UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
 
 
+UL_BUILD_INIT([mkfs], [yes])
+AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
+
+UL_BUILD_INIT([isosize], [yes])
+AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
+
+
+UL_BUILD_INIT([fstrim], [check])
+UL_REQUIRES_LINUX([fstrim])
+UL_REQUIRES_BUILD([fstrim], [libmount])
+AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
+
+
 UL_BUILD_INIT([swapon], [check])
 UL_REQUIRES_LINUX([swapon])
 UL_REQUIRES_BUILD([swapon], [libblkid])
 UL_REQUIRES_BUILD([swapon], [libmount])
+UL_REQUIRES_BUILD([swapon], [libsmartcols])
 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
 
 
@@ -969,15 +1100,22 @@ UL_BUILD_INIT([lsblk], [check])
 UL_REQUIRES_LINUX([lsblk])
 UL_REQUIRES_BUILD([lsblk], [libblkid])
 UL_REQUIRES_BUILD([lsblk], [libmount])
+UL_REQUIRES_BUILD([lsblk], [libsmartcols])
 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
 
 
 UL_BUILD_INIT([lscpu], [check])
 UL_REQUIRES_LINUX([lscpu])
+UL_REQUIRES_BUILD([lscpu], [libsmartcols])
 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
 
 
+UL_BUILD_INIT([lslogins], [check])
+UL_REQUIRES_BUILD([lslogins], [libsmartcols])
+AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
+
+
 UL_BUILD_INIT([chcpu], [check])
 UL_REQUIRES_LINUX([chcpu])
 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
@@ -986,10 +1124,11 @@ AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
 
 AC_ARG_ENABLE([wdctl],
   AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
-  [], [enable_wdctl=check]
+  [], [UL_DEFAULT_ENABLE([wdctl], [check])]
 )
 UL_BUILD_INIT([wdctl])
 UL_REQUIRES_LINUX([wdctl])
+UL_REQUIRES_BUILD([wdctl], [libsmartcols])
 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
 
@@ -999,8 +1138,42 @@ UL_REQUIRES_BUILD([swaplabel], [libblkid])
 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
 
 
+UL_BUILD_INIT([mkswap], [yes])
+AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
+AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
+  AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
+])
+
+UL_BUILD_INIT([cal], [yes])
+AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
+
+UL_BUILD_INIT([logger], [yes])
+AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
+
+UL_BUILD_INIT([look], [yes])
+AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
+
+UL_BUILD_INIT([mcookie], [yes])
+AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
+
+UL_BUILD_INIT([namei], [yes])
+AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
+
+UL_BUILD_INIT([whereis], [yes])
+AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
+
+UL_BUILD_INIT([getopt], [yes])
+AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
+
+
+UL_BUILD_INIT([blockdev], [check])
+UL_REQUIRES_LINUX([blockdev])
+AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
+
+
 UL_BUILD_INIT([prlimit], [check])
 UL_REQUIRES_LINUX([prlimit])
+UL_REQUIRES_BUILD([prlimit], [libsmartcols])
 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
 AS_IF([test "x$build_prlimit" = xyes], [
@@ -1011,12 +1184,13 @@ AS_IF([test "x$build_prlimit" = xyes], [
 UL_BUILD_INIT([lslocks], [check])
 UL_REQUIRES_LINUX([lslocks])
 UL_REQUIRES_BUILD([lslocks], [libmount])
+UL_REQUIRES_BUILD([lslocks], [libsmartcols])
 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
 
 
 AC_ARG_ENABLE([switch_root],
   AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
-  [], [enable_switch_root=check]
+  [], [UL_DEFAULT_ENABLE([switch_root], [check])]
 )
 UL_BUILD_INIT([switch_root])
 UL_REQUIRES_LINUX([switch_root])
@@ -1026,17 +1200,95 @@ AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
 
 AC_ARG_ENABLE([pivot_root],
   AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
-  [], [enable_pivot_root=check]
+  [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
 )
 UL_BUILD_INIT([pivot_root])
-UL_REQUIRES_LINUX([switch_root])
+UL_REQUIRES_LINUX([pivot_root])
 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
 
 
+UL_BUILD_INIT([flock], [yes])
+AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
+
+UL_BUILD_INIT([ipcmk], [yes])
+AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
+
+UL_BUILD_INIT([ipcrm], [yes])
+AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
+
+UL_BUILD_INIT([ipcs], [yes])
+AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
+
+UL_BUILD_INIT([renice], [yes])
+AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
+
+UL_BUILD_INIT([setsid], [yes])
+AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
+
+UL_BUILD_INIT([readprofile], [check])
+UL_REQUIRES_LINUX([readprofile])
+AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
+
+UL_BUILD_INIT([dmesg], [check])
+UL_REQUIRES_LINUX([dmesg])
+AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
+
+UL_BUILD_INIT([ctrlaltdel], [check])
+UL_REQUIRES_LINUX([ctrlaltdel])
+AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
+
+UL_BUILD_INIT([fsfreeze], [check])
+UL_REQUIRES_LINUX([fsfreeze])
+AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
+
+UL_BUILD_INIT([blkdiscard], [check])
+UL_REQUIRES_LINUX([blkdiscard])
+AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
+
+UL_BUILD_INIT([ldattach], [check])
+UL_REQUIRES_LINUX([ldattach])
+AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
+
+UL_BUILD_INIT([rtcwake], [check])
+UL_REQUIRES_LINUX([rtcwake])
+AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
+
+UL_BUILD_INIT([setarch], [check])
+UL_REQUIRES_LINUX([setarch])
+AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
+
+UL_BUILD_INIT([script], [yes])
+AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
+
+UL_BUILD_INIT([scriptreplay], [yes])
+AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
+
+UL_BUILD_INIT([col], [yes])
+AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
+
+UL_BUILD_INIT([colcrt], [yes])
+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])
+AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
+
+UL_BUILD_INIT([hexdump], [yes])
+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]),
-  [], [enable_tunelp=no]
+  [], [UL_DEFAULT_ENABLE([tunelp], [no])]
 )
 UL_BUILD_INIT([tunelp])
 UL_REQUIRES_LINUX([tunelp])
@@ -1045,13 +1297,14 @@ AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
 
 AC_ARG_ENABLE([kill],
   AS_HELP_STRING([--disable-kill], [do not build kill]),
-  [], [enable_kill=check]
+  [], [UL_DEFAULT_ENABLE([kill], [check])]
 )
 UL_BUILD_INIT([kill])
 UL_REQUIRES_LINUX([kill])
 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
 
-
+dnl Don't use UL_DEFAULT_ENABLE() here, deprecated stuff has to be insensitive
+dnl to --enable-all-programs.
 AC_ARG_ENABLE([deprecated-last],
   AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
   [], [enable_deprecated_last=no]
@@ -1062,7 +1315,7 @@ AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
 
 AC_ARG_ENABLE([last],
   AS_HELP_STRING([--disable-last], [do not build last]),
-  [], [enable_last=check]
+  [], [UL_DEFAULT_ENABLE([last], [check])]
 )
 UL_BUILD_INIT([last])
 UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
@@ -1071,7 +1324,7 @@ AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
 
 AC_ARG_ENABLE([utmpdump],
   AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
-  [], [enable_utmpdump=yes]
+  [], [UL_DEFAULT_ENABLE([utmpdump], [yes])]
 )
 UL_BUILD_INIT([utmpdump])
 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
@@ -1079,23 +1332,23 @@ AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
 
 AC_ARG_ENABLE([line],
   AS_HELP_STRING([--enable-line], [build line]),
-  [], [enable_line=no]
+  [], [UL_DEFAULT_ENABLE([line], [no])]
 )
 UL_BUILD_INIT([line])
 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
 
 
 AC_ARG_ENABLE([mesg],
-             AS_HELP_STRING([--disable-mesg], [do not build mesg]),
-  [], [enable_mesg=yes]
+  AS_HELP_STRING([--disable-mesg], [do not build mesg]),
+  [], [UL_DEFAULT_ENABLE([mesg], [yes])]
 )
 UL_BUILD_INIT([mesg])
 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
 
 
 AC_ARG_ENABLE([raw],
-             AS_HELP_STRING([--disable-raw], [do not build raw]),
-  [], [enable_raw=check]
+  AS_HELP_STRING([--disable-raw], [do not build raw]),
+  [], [UL_DEFAULT_ENABLE([raw], [check])]
 )
 UL_BUILD_INIT([raw])
 UL_REQUIRES_LINUX([raw])
@@ -1105,7 +1358,7 @@ AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
 
 AC_ARG_ENABLE([rename],
   AS_HELP_STRING([--disable-rename], [do not build rename]),
-  [], [enable_rename=yes]
+  [], [UL_DEFAULT_ENABLE([rename], [yes])]
 )
 UL_BUILD_INIT([rename])
 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
@@ -1113,7 +1366,7 @@ AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
 
 AC_ARG_ENABLE([reset],
   AS_HELP_STRING([--enable-reset], [build reset]),
-  [], [enable_reset=no]
+  [], [UL_DEFAULT_ENABLE([reset], [no])]
 )
 UL_BUILD_INIT([reset])
 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
@@ -1121,7 +1374,7 @@ AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
 
 AC_ARG_ENABLE([vipw],
   AS_HELP_STRING([--enable-vipw], [build vipw]),
-  [], [enable_vipw=no]
+  [], [UL_DEFAULT_ENABLE([vipw], [no])]
 )
 UL_BUILD_INIT([vipw])
 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
@@ -1129,7 +1382,7 @@ AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
 
 AC_ARG_ENABLE([newgrp],
   AS_HELP_STRING([--enable-newgrp], [build newgrp]),
-  [], [enable_newgrp=no]
+  [], [UL_DEFAULT_ENABLE([newgrp], [no])]
 )
 UL_BUILD_INIT([newgrp])
 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
@@ -1162,7 +1415,7 @@ AC_ARG_ENABLE([chfn-chsh-password],
 
 AC_ARG_ENABLE([chfn-chsh],
   AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
-  [], [enable_chfn_chsh=no]
+  [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
 )
 UL_BUILD_INIT([chfn_chsh])
 
@@ -1174,8 +1427,8 @@ AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
 
 AC_ARG_ENABLE([chsh-only-listed],
-AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
-[], enable_chsh_only_listed=yes
+  AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
+  [], enable_chsh_only_listed=yes
 )
 
 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
@@ -1185,7 +1438,7 @@ AS_IF([test "x$enable_chsh_only_listed" = xyes], [
 
 AC_ARG_ENABLE([login],
   AS_HELP_STRING([--disable-login], [do not build login]),
-  [], [enable_login=check]
+  [], [UL_DEFAULT_ENABLE([login], [check])]
 )
 UL_BUILD_INIT([login])
 UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
@@ -1210,9 +1463,17 @@ AS_IF([test "x$enable_login_stat_mail" = xyes], [
 ])
 
 
+AC_ARG_ENABLE([nologin],
+  AS_HELP_STRING([--disable-nologin], [do not build nologin]),
+  [], [UL_DEFAULT_ENABLE([nologin], [yes])]
+)
+UL_BUILD_INIT([nologin])
+AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
+
+
 AC_ARG_ENABLE([sulogin],
   AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
-  [], [enable_sulogin=yes]
+  [], [UL_DEFAULT_ENABLE([sulogin], [yes])]
 )
 UL_BUILD_INIT([sulogin])
 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
@@ -1220,7 +1481,7 @@ AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
 
 AC_ARG_ENABLE([su],
   AS_HELP_STRING([--disable-su], [do not build su]),
-  [], [enable_su=check]
+  [], [UL_DEFAULT_ENABLE([su], [check])]
 )
 UL_BUILD_INIT([su])
 UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
@@ -1229,7 +1490,7 @@ AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
 
 AC_ARG_ENABLE([runuser],
   AS_HELP_STRING([--disable-runuser], [do not build runuser]),
-  [], [enable_runuser=check]
+  [], [UL_DEFAULT_ENABLE([runuser], [check])]
 )
 UL_BUILD_INIT([runuser])
 UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
@@ -1238,7 +1499,7 @@ AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
 
 AC_ARG_ENABLE([ul],
   AS_HELP_STRING([--disable-ul], [do not build ul]),
-  [], [enable_ul=check]
+  [], [UL_DEFAULT_ENABLE([ul], [check])]
 )
 UL_BUILD_INIT([ul])
 UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
@@ -1247,7 +1508,7 @@ AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
 
 AC_ARG_ENABLE([more],
   AS_HELP_STRING([--disable-more], [do not build more]),
-  [], [enable_more=check]
+  [], [UL_DEFAULT_ENABLE([more], [check])]
 )
 UL_BUILD_INIT([more])
 UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
@@ -1256,7 +1517,7 @@ AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
 
 AC_ARG_ENABLE([pg],
   AS_HELP_STRING([--disable-pg], [do not build pg]),
-  [], [enable_pg=check]
+  [], [UL_DEFAULT_ENABLE([pg], [check])]
 )
 UL_BUILD_INIT([pg])
 UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
@@ -1265,20 +1526,20 @@ AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
 
 AC_ARG_ENABLE([setterm],
   AS_HELP_STRING([--disable-setterm], [do not build setterm]),
-  [], [enable_setterm=check]
+  [], [UL_DEFAULT_ENABLE([setterm], [check])]
 )
 UL_BUILD_INIT([setterm])
 UL_REQUIRES_LINUX([setterm])
 UL_REQUIRES_HAVE([setterm], [ncurses], [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]),
-  [], [enable_schedutils=yes]
+  [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
 )
 UL_BUILD_INIT([schedutils])
-AM_CONDITIONAL([BUILD_SCHEDUTILS], [test "x$build_schedutils" = xyes])
 
 UL_BUILD_INIT([ionice], [check])
 UL_REQUIRES_BUILD([ionice], [schedutils])
@@ -1316,10 +1577,14 @@ UL_REQUIRES_SYSCALL_CHECK([taskset],
        [sched_getaffinity])
 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
 
+UL_BUILD_INIT([chrt], [check])
+UL_REQUIRES_BUILD([chrt], [schedutils])
+AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
+
 
 AC_ARG_ENABLE([wall],
   AS_HELP_STRING([--disable-wall], [do not build wall]),
-  [], [enable_wall=yes]
+  [], [UL_DEFAULT_ENABLE([wall], [yes])]
 )
 UL_BUILD_INIT([wall])
 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
@@ -1327,22 +1592,39 @@ AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
 
 AC_ARG_ENABLE([write],
   AS_HELP_STRING([--enable-write], [build write]),
-  [], [enable_write=no]
+  [], [UL_DEFAULT_ENABLE([write], [no])]
 )
 UL_BUILD_INIT([write])
 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
 
 
-AC_ARG_ENABLE([socket-activation],
-  AS_HELP_STRING([--enable-socket-activation], [build uuidd with support for systemd socket activation]),
-  [], [enable_socket_activation=no]
+AC_ARG_WITH([systemd],
+  AS_HELP_STRING([--with-systemd], [build with support for systemd]),
+  [], [with_systemd=check]
 )
 
-AM_CONDITIONAL([USE_SOCKET_ACTIVATION], [test "x$enable_socket_activation" = xyes])
-
-AS_IF([test "x$enable_socket_activation" = xyes], [
-  AC_DEFINE([USE_SOCKET_ACTIVATION], [1], [Should uuidd support socket activation?])
+have_systemd=no
+AS_IF([test "x$with_systemd" != xno], [
+  # new version -- all libsystemd-* libs merged into libsystemd
+  PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
+  # old versions
+  AS_IF([test "x$have_systemd" != "xyes"], [
+    PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
+                     [have_systemd_daemon=yes], [have_systemd_daemon=no])
+    PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
+                     [have_systemd_journal=yes], [have_systemd_journal=no])
+    AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
+          have_systemd=yes])
+  ])
+  AS_CASE([$with_systemd:$have_systemd],
+    [yes:no],
+      [AC_MSG_ERROR([systemd expected but libsystemd not found])],
+    [*:yes],
+       AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
+  )
 ])
+AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
+
 
 AC_ARG_WITH([systemdsystemunitdir],
   AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
@@ -1352,7 +1634,14 @@ AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
   AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
 ])
 
-AM_CONDITIONAL([HAVE_SYSTEMD], [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != "xno" ])
+
+AC_ARG_WITH([smack],
+  AS_HELP_STRING([--with-smack], [build with SMACK support]),
+  [], [with_smack=no]
+)
+AS_IF([test "x$with_smack" = xyes], [
+  AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
+])
 
 
 AC_ARG_WITH([bashcompletiondir],
@@ -1375,8 +1664,8 @@ AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes]
 
 
 AC_ARG_WITH([python],
-  AS_HELP_STRING([--with-python], [generate python bindings, use --with-python={2,3} to force version]),
-  [], [with_python=no]
+  AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
+  [], [with_python=check withval=check]
 )
 
 have_python=no
@@ -1385,24 +1674,26 @@ AS_IF([test "x$with_python" != xno], [
   # (minimal version is 2) but if major version is explicitly specified by
   # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
   # "python3".
-  pymajor="2"
-  modname="python"
-  AS_IF([test "x$withval" != xno -a "x$withval" != xyes], [
-    pymajor="$withval"
-    modname="python${pymajor}"
-  ])
-  PKG_CHECK_MODULES(PYTHON,[${modname} >= $pymajor],
-                          [have_python=yes
-                           AM_PATH_PYTHON([$pymajor])],
-                          [have_python=no])
+  AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
+       [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
+  AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
   AS_CASE([$with_python:$have_python],
     [yes:no],
       [AC_MSG_ERROR([python selected but libpython not found])],
+    [check:no],
+       [AC_MSG_WARN([libpython not found, do not build python bindings])],
+    [*:yes],
+       [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])]
   )
 ])
 
-UL_BUILD_INIT([pylibmount], [check])
-UL_REQUIRES_HAVE([pylibmount], [python])
+
+AC_ARG_ENABLE([pylibmount],
+  AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
+  [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
+)
+UL_BUILD_INIT([pylibmount])
+UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
 UL_REQUIRES_BUILD([pylibmount], [libmount])
 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
 
@@ -1496,6 +1787,12 @@ AC_ARG_VAR([SOLIB_CFLAGS],
 AC_ARG_VAR([SOLIB_LDFLAGS],
           [LDFLAGS used for shared libraries])
 
+AC_ARG_VAR([ADJTIME_PATH],
+          [Path to hwclock adjtime file, default /etc/adjtime])
+AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
+AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
+
+
 LIBS=""
 
 
@@ -1513,6 +1810,9 @@ libblkid/src/blkid.h
 libmount/docs/Makefile
 libmount/docs/version.xml
 libmount/src/libmount.h
+libsmartcols/docs/Makefile
+libsmartcols/docs/version.xml
+libsmartcols/src/libsmartcols.h
 po/Makefile.in
 ])
 
@@ -1524,14 +1824,14 @@ AC_MSG_RESULT([
        prefix:            ${prefix}
        exec prefix:       ${exec_prefix}
 
-        localstatedir:     ${localstatedir}
-       bindir:            ${bindir}
+       localstatedir:     ${localstatedir}
+       bindir:            ${bindir}
        sbindir:           ${sbindir}
        libdir:            ${libdir}
        includedir:        ${includedir}
-        usrbin_execdir:    ${usrbin_execdir}
-        usrsbin_execdir:   ${usrsbin_execdir}
-        usrlib_execdir:    ${usrlib_execdir}
+       usrbin_execdir:    ${usrbin_execdir}
+       usrsbin_execdir:   ${usrsbin_execdir}
+       usrlib_execdir:    ${usrlib_execdir}
 
        compiler:          ${CC}
        cflags:            ${CFLAGS}
@@ -1539,11 +1839,12 @@ AC_MSG_RESULT([
        ldflags:           ${LDFLAGS}
        suid ldflags:      ${SUID_LDFLAGS}
 
-       Python:            ${PYTHON_VERSION}
-       Python scripts:    ${pythondir}
+       Python:            ${PYTHON}
+       Python version:    ${PYTHON_VERSION}
        Python libs:       ${pyexecdir}
 
        Bash completions:  ${with_bashcompletiondir}
+       Systemd support:   ${have_systemd}
 
        warnings: