]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
scriptlive: add new command to re-execute script(1) typescript
[thirdparty/util-linux.git] / configure.ac
CommitLineData
034d378b 1AC_INIT([util-linux],
38c75b59 2 m4_esyscmd([tools/git-version-gen .tarball-version]),
5564a8c7
SK
3 [kzak@redhat.com],,
4 [http://www.kernel.org/pub/linux/utils/util-linux/])
baf39af1 5
b0e6b25e 6
034d378b 7AC_PREREQ([2.60])
48d7b13a 8
034d378b 9AC_CONFIG_AUX_DIR([config])
b12991dd 10AC_CONFIG_MACRO_DIR([m4])
eaf70198
SK
11dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
12dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors.
13AC_USE_SYSTEM_EXTENSIONS
316795fc 14AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax no-dist-gzip dist-xz subdir-objects])
48d7b13a 15
eb35c251 16m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
f06b4328 17 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
316795fc 18m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
eb35c251 19
034d378b 20AC_CONFIG_SRCDIR([sys-utils/mount.c])
15a9b48c
SK
21AC_PREFIX_DEFAULT([/usr])
22
33b0be6d
KZ
23dnl version details from <major>.<minor>[-<suffix>]
24PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
0f0972ac
RM
25PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{
26 sub("-.*","",$2); print $2}')
c42a6d4d 27PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{
a341a5e2 28 sub("-.*","",$3); print $3 ~ /^@<:@0-9@:>@+$/ ? $3 : 0}')
a0948ffe 29
33b0be6d
KZ
30dnl libblkid version
31LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
d4319b91 32LIBBLKID_DATE="14-Jun-2019"
dc2b8d87
KZ
33LIBBLKID_LT_MAJOR=1
34LIBBLKID_LT_MINOR=1
35LIBBLKID_LT_MICRO=0
36LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
a0948ffe 37
f6076f55
KZ
38dnl libuuid version
39LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
dc2b8d87
KZ
40LIBUUID_LT_MAJOR=1
41LIBUUID_LT_MINOR=3
42LIBUUID_LT_MICRO=0
43LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
f6076f55 44
f1cde479
KZ
45dnl libmount version
46LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
47LIBMOUNT_LT_MAJOR=1
48LIBMOUNT_LT_MINOR=1
49LIBMOUNT_LT_MICRO=0
50LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
51
1a4d989e
OO
52dnl libsmartcols version
53LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
54LIBSMARTCOLS_LT_MAJOR=1
55LIBSMARTCOLS_LT_MINOR=1
56LIBSMARTCOLS_LT_MICRO=0
57LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
58
0bb4c979
KZ
59dnl libfdisk version
60LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
61LIBFDISK_LT_MAJOR=1
62LIBFDISK_LT_MINOR=1
63LIBFDISK_LT_MICRO=0
64LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
65
15a9b48c 66# Check whether exec_prefix=/usr:
9f57e6e8
SK
67AS_CASE([$exec_prefix:$prefix],
68[NONE:NONE | NONE:/usr | /usr:*],
69 [AC_MSG_NOTICE([Default --exec-prefix detected.])
17794746
KZ
70 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
71 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
72 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
f40e316f 73 AS_CASE([$libdir], ['${exec_prefix}/lib64'],[libdir=/lib64; AC_MSG_NOTICE([ --libdir defaults to /lib64]) ])
9f57e6e8
SK
74 ]
75)
76
8df54559
AH
77
78# default for old versions without $runstatedir
79AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
80
81# our default if $localstatedir unchanged
82AS_CASE([$localstatedir:$runstatedir],
83 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
84 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
9f57e6e8 85)
8df54559
AH
86
87AC_SUBST([runstatedir])
07a16b9d 88
b0a0d7d5 89
996fb358 90# The original default values of {bin,sbin,lib}dir
aaf3e8f5 91usrbin_execdir='${exec_prefix}/bin'
30688dde 92AC_SUBST([usrbin_execdir])
996fb358 93
aaf3e8f5 94usrsbin_execdir='${exec_prefix}/sbin'
30688dde 95AC_SUBST([usrsbin_execdir])
996fb358 96
9f57e6e8 97AS_CASE([$libdir],
b2b61efc 98 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
9f57e6e8
SK
99 [usrlib_execdir=$libdir],
100 [usrlib_execdir='${exec_prefix}'$libdir]
101)
30688dde 102AC_SUBST([usrlib_execdir])
996fb358 103
bdf5f542 104
31c9c1c4 105AM_PROG_CC_C_O
18336d16 106AC_PROG_MKDIR_P
48d7b13a 107AC_PROG_CC_STDC
30d7f61f 108AC_PROG_YACC
a6996860 109AC_CANONICAL_HOST
85b4c147 110AC_C_CONST
e79829db 111AC_C_VOLATILE
fbaec83b 112AC_C_BIGENDIAN
b12991dd 113
0e60bc9b 114dnl Compiler warnings
b1b54edf 115UL_WARN_ADD([-fno-common])
9dc72d0b 116UL_WARN_ADD([-Wall])
b1b54edf 117UL_WARN_ADD([-Werror=sequence-point])
0e60bc9b 118UL_WARN_ADD([-Wextra])
4230d576
KZ
119UL_WARN_ADD([-Wextra-semi])
120UL_WARN_ADD([-Wembedded-directive])
b1b54edf
KZ
121UL_WARN_ADD([-Wmissing-declarations])
122UL_WARN_ADD([-Wmissing-parameter-type])
123UL_WARN_ADD([-Wmissing-prototypes])
0e60bc9b 124UL_WARN_ADD([-Wno-missing-field-initializers])
b1b54edf 125UL_WARN_ADD([-Wredundant-decls])
0e60bc9b
KZ
126UL_WARN_ADD([-Wsign-compare])
127UL_WARN_ADD([-Wtype-limits])
128UL_WARN_ADD([-Wuninitialized])
b1b54edf
KZ
129UL_WARN_ADD([-Wunused-but-set-parameter])
130UL_WARN_ADD([-Wunused-but-set-variable])
0e60bc9b 131UL_WARN_ADD([-Wunused-parameter])
0e60bc9b 132UL_WARN_ADD([-Wunused-result])
bec5c9db 133UL_WARN_ADD([-Wunused-variable])
dcd33c3e
KZ
134UL_WARN_ADD([-Wnested-externs])
135UL_WARN_ADD([-Wpointer-arith])
136UL_WARN_ADD([-Wstrict-prototypes])
137UL_WARN_ADD([-Wformat-security])
d79654f4 138UL_WARN_ADD([-Wimplicit-function-declaration])
17666c87 139UL_WARN_ADD([-Wdiscarded-qualifiers])
0e60bc9b
KZ
140AC_SUBST([WARN_CFLAGS])
141
034d378b 142UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
7697771d 143AC_SUBST([BSD_WARN_CFLAGS])
4f9d999a
KZ
144
145UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
146AC_SUBST([PYTHON_WARN_CFLAGS])
147
2013b33f
RM
148UL_WARN_ADD([-Wno-unused-parameter], [NO_UNUSED_WARN_CFLAGS])
149AC_SUBST([NO_UNUSED_WARN_CFLAGS])
7697771d 150
b97cc9a8
KZ
151
152AC_ARG_ENABLE([asan],
153 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
154 [], [enable_asan=no]
155)
2afbcec5 156AS_IF([test "x$enable_asan" = xyes], [
b97cc9a8 157 UL_WARN_ADD([-fsanitize=address])
ef61c093 158 ASAN_LDFLAGS="-fsanitize=address"
b97cc9a8 159])
ef61c093 160AC_SUBST([ASAN_LDFLAGS])
b97cc9a8 161
b12991dd
KZ
162dnl libtool-2
163LT_INIT
48d7b13a 164
3719bf8d
RM
165dnl check supported linker flags
166AX_CHECK_VSCRIPT
167
fd0f4132
SK
168m4_ifndef([PKG_PROG_PKG_CONFIG],
169 [m4_fatal([Could not locate the pkg-config autoconf
170 macros. These are usually located in /usr/share/aclocal/pkg.m4.
171 If your macros are in a different location, try setting the
172 environment variable AL_OPTS="-I/other/macro/dir" before running
bf2603c7 173 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
d06d028a 174PKG_PROG_PKG_CONFIG
99f95a1e 175PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
d06d028a 176
22aa5166
KZ
177GTK_DOC_CHECK([1.10])
178AC_PATH_PROG([XSLTPROC], [xsltproc])
179
8c182554 180linux_os=no
8026fa9b
KZ
181bsd_os=no
182AS_CASE([${host_os}],
183 [*linux*],
184 [linux_os=yes],
40733239
RM
185 [*darwin*],
186 [darwin_os=yes],
8026fa9b
KZ
187 [*bsd*],
188 [bsd_os=yes])
034d378b 189AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
40733239 190AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
8026fa9b
KZ
191AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
192
40733239
RM
193AS_IF([test "x$darwin_os" = xyes], [
194 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
195])
8c182554 196
3c6e292c 197dnl define ARCH_<NAME> conditionals
034d378b
SK
198UL_SET_ARCH([I86], [i?86-*])
199UL_SET_ARCH([86_64], [x86_64*])
200UL_SET_ARCH([IA64], [ia64*])
201UL_SET_ARCH([S390], [s390*])
202UL_SET_ARCH([SPARC], [sparc*])
203UL_SET_ARCH([PPC], [ppc*|powerpc*])
204UL_SET_ARCH([M68K], [m68*])
205UL_SET_ARCH([MIPS], [mips*])
f319e301 206UL_SET_ARCH([HPPA], [hppa*|parisc*])
3c6e292c 207
48d7b13a 208AC_SYS_LARGEFILE
2c656779 209AC_HEADER_ASSERT
f69eba17 210AC_STRUCT_TIMEZONE
48d7b13a 211
f8d75a66 212dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
91c520bc 213AM_GNU_GETTEXT_VERSION([0.18.3])
09734b00 214AM_GNU_GETTEXT([external])
3013eb9d
SK
215
216AS_IF([test -d "$srcdir/po"], [
217 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
218], [
219 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"
220])
09734b00 221
e460a5bf 222AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
48d7b13a
KZ
223#ifdef HAVE_LINUX_COMPILER_H
224#include <linux/compiler.h>
225#endif
226])
f06b4328
SK
227AC_CHECK_HEADERS([ \
228 asm/io.h \
229 err.h \
a0948ffe 230 errno.h \
f06b4328 231 fcntl.h \
a0948ffe 232 getopt.h \
f06b4328 233 inttypes.h \
6578ced7 234 lastlog.h \
77835be2 235 libutil.h \
5a971329 236 linux/btrfs.h \
f06b4328
SK
237 linux/cdrom.h \
238 linux/falloc.h \
5b0289b9 239 linux/watchdog.h \
a0948ffe 240 linux/fd.h \
f06b4328 241 linux/raw.h \
a0948ffe
KZ
242 linux/tiocl.h \
243 linux/version.h \
48469f90 244 linux/securebits.h \
4195756e 245 linux/net_namespace.h \
2c2ff2ed 246 linux/capability.h \
8b7f16fc 247 locale.h \
607c2a72 248 mntent.h \
f06b4328 249 net/if.h \
754fed0c 250 net/if_dl.h \
f06b4328
SK
251 netinet/in.h \
252 paths.h \
253 pty.h \
fe2c9909 254 security/pam_appl.h \
f06b4328 255 stdint.h \
78288764 256 stdio_ext.h \
a0948ffe 257 stdlib.h \
1a1eb4e1
KZ
258 endian.h \
259 byteswap.h \
260 sys/endian.h \
a0948ffe
KZ
261 sys/disk.h \
262 sys/disklabel.h \
f06b4328 263 sys/file.h \
bf962c0a 264 sys/io.h \
f06b4328
SK
265 sys/ioccom.h \
266 sys/ioctl.h \
a0948ffe 267 sys/mkdev.h \
ac1c53e4 268 sys/mount.h \
4ebac79f 269 sys/param.h \
a0948ffe 270 sys/prctl.h \
f06b4328 271 sys/resource.h \
651b25cd 272 sys/signalfd.h \
2a7c1f70 273 sys/socket.h \
f06b4328 274 sys/sockio.h \
a0948ffe 275 sys/stat.h \
66daee07 276 sys/sysmacros.h \
f06b4328
SK
277 sys/swap.h \
278 sys/syscall.h \
279 sys/time.h \
87ee2658 280 sys/timex.h \
00c505d9 281 sys/ttydefaults.h \
a0948ffe 282 sys/types.h \
ac1c53e4 283 sys/ucred.h \
754fed0c 284 sys/un.h \
f06b4328 285 unistd.h \
d00c10ed 286 shadow.h \
77835be2 287 utmp.h \
b4b919fe 288 utmpx.h \
f06b4328 289])
dc61d398 290
a0357292
KZ
291# There is a collision in old kernel-headers. The both files mount.h and fs.h
292# define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
293#
294AC_CHECK_HEADERS([linux/fs.h ], [], [],
295 [#ifdef HAVE_SYS_MOUNT_H
296 # include <linux/fs.h>
297 # include <sys/mount.h>
298 #endif
299])
300
db4e2645
KZ
301AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
302 [#ifdef LINUX_GSMMUX_H
303 # include <linux/gsmmux.h>
304 #endif
305])
306
fe2c9909
WJ
307AC_CHECK_HEADERS([security/pam_misc.h],
308 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
309 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
310#ifdef HAVE_SECURITY_PAM_APPL_H
311#include <security/pam_appl.h>
312#endif
313])
314
70bb5345
ST
315AC_CHECK_HEADERS([linux/blkzoned.h])
316
fe2c9909
WJ
317AC_CHECK_HEADERS([security/openpam.h], [], [], [
318#ifdef HAVE_SECURITY_PAM_APPL_H
319#include <security/pam_appl.h>
320#endif
321])
322
a67387b7
KZ
323AC_CHECK_HEADERS([langinfo.h],
324 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
325 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
326
4e12a62e
RL
327AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
328AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
329 #include <langinfo.h>
330]], [[
331 char *str;
332 str = nl_langinfo (ALTMON_1);
333 str = nl_langinfo (ALTMON_2);
334 str = nl_langinfo (ALTMON_3);
335 str = nl_langinfo (ALTMON_4);
336 str = nl_langinfo (ALTMON_5);
337 str = nl_langinfo (ALTMON_6);
338 str = nl_langinfo (ALTMON_7);
339 str = nl_langinfo (ALTMON_8);
340 str = nl_langinfo (ALTMON_9);
341 str = nl_langinfo (ALTMON_10);
342 str = nl_langinfo (ALTMON_11);
343 str = nl_langinfo (ALTMON_12);
344]])], [
345 AC_MSG_RESULT([yes])
346 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
347 [Define if langinfo.h defines ALTMON_x constants])
348], [
349 AC_MSG_RESULT([no])
350])
351
352
353AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
354AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
355 #include <langinfo.h>
356]], [[
357 char *str;
358 str = nl_langinfo (_NL_ABALTMON_1);
359 str = nl_langinfo (_NL_ABALTMON_2);
360 str = nl_langinfo (_NL_ABALTMON_3);
361 str = nl_langinfo (_NL_ABALTMON_4);
362 str = nl_langinfo (_NL_ABALTMON_5);
363 str = nl_langinfo (_NL_ABALTMON_6);
364 str = nl_langinfo (_NL_ABALTMON_7);
365 str = nl_langinfo (_NL_ABALTMON_8);
366 str = nl_langinfo (_NL_ABALTMON_9);
367 str = nl_langinfo (_NL_ABALTMON_10);
368 str = nl_langinfo (_NL_ABALTMON_11);
369 str = nl_langinfo (_NL_ABALTMON_12);
370]])], [
371 AC_MSG_RESULT([yes])
372 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
373 [Define if langinfo.h defines _NL_ABALTMON_x constants])
374], [
375 AC_MSG_RESULT([no])
376])
377
378
16ba8d58
KZ
379dnl Convert some ac_cv_header_* variables to have_*
380dnl
8a931412 381have_linux_version_h=$ac_cv_header_linux_version_h
70bb5345 382have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
5a971329 383have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
16ba8d58 384have_linux_raw_h=$ac_cv_header_linux_raw_h
48469f90 385have_linux_securebits_h=$ac_cv_header_linux_securebits_h
2c2ff2ed 386have_linux_capability_h=$ac_cv_header_linux_capability_h
5b0289b9 387have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
fe2c9909 388have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
ff0cb84d 389have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
fe2c9909 390have_security_openpam_h=$ac_cv_header_security_openpam_h
d00c10ed 391have_shadow_h=$ac_cv_header_shadow_h
651b25cd 392have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
b4b919fe 393have_utmpx_h=$ac_cv_header_utmpx_h
a67387b7 394
8a931412
KZ
395AS_CASE([$linux_os:$have_linux_version_h],
396 [yes:no],
397 [AC_MSG_ERROR([kernel headers required on Linux])]
398)
399
a67387b7
KZ
400AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
401#include <time.h>
402#include <unistd.h>
403]], [[
404 int a = 0;
405 struct tm *tm = localtime(0);
406 if (a == -1) /* false */
f06b4328 407 sleep(tm->tm_gmtoff);
a67387b7 408]])],
034d378b 409[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
a67387b7
KZ
410])
411
412AC_CHECK_MEMBERS([struct termios.c_line],,,
413 [[#include <termios.h>]])
414
415AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
416 [#include <sys/stat.h>])
417
a88057d9
TP
418AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
419
2a7c1f70 420AC_CHECK_DECL([llseek],
034d378b 421 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
2a7c1f70
KZ
422 [Define to 1 if have llseek prototype])],
423 [],
424 [#include <unistd.h>])
425
426AC_CHECK_DECL([lseek64],
034d378b 427 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
2a7c1f70
KZ
428 [Define to 1 if have lseek64 prototype])],
429 [],
430 [#define _LARGEFILE_SOURCE
431 #define _LARGEFILE64_SOURCE
432 #include <unistd.h>])
433
0e9b73d3 434AC_CHECK_DECL([environ],
034d378b 435 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
0e9b73d3
SK
436 [Define to 1 if have **environ prototype])],
437)
438
439AC_CHECK_DECL([strsignal],
034d378b 440 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
0e9b73d3
SK
441 [Define to 1 if have strsignal function prototype])],
442)
443
1eb16fd7
KZ
444AC_CHECK_DECL([TIOCGLCKTRMIOS],
445 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
446 [#include <sys/ioctl.h>])
447AC_CHECK_DECL([SOCK_CLOEXEC],
448 [have_sock_cloexec=yes], [have_sock_cloexec=no],
449 [#include <sys/types.h>
450 #include <sys/socket.h>])
451AC_CHECK_DECL([SOCK_NONBLOCK],
452 [have_sock_nonblock=yes], [have_sock_nonblock=no],
453 [#include <sys/types.h>
454 #include <sys/socket.h>])
455AC_CHECK_DECL([SO_PASSCRED],
456 [have_so_passcred=yes], [have_so_passcred=no],
457 [#include <sys/types.h>
458 #include <sys/socket.h>])
459
f06b4328 460AC_CHECK_FUNCS([ \
75efef98 461 clearenv \
0dba6b6f
M
462 __fpurge \
463 fpurge \
78288764 464 __fpending \
075f4bfd 465 secure_getenv \
f06b4328 466 __secure_getenv \
c08396c7 467 eaccess \
eb76ca98
FG
468 err \
469 errx \
87583438 470 explicit_bzero \
e4925f59 471 fmemopen \
bf962c0a 472 fsync \
473c5fb8 473 utimensat \
bf962c0a 474 getdomainname \
f06b4328
SK
475 getdtablesize \
476 getexecname \
477 getmntinfo \
cc01c2dc 478 getrandom \
f06b4328 479 getrlimit \
c829aebc 480 getsgnam \
f06b4328 481 inotify_init \
3ac22f7a 482 jrand48 \
bf962c0a 483 lchown \
a0948ffe
KZ
484 llseek \
485 lseek64 \
02887b73 486 mempcpy \
4d751c00 487 mkostemp \
f06b4328 488 nanosleep \
7d3a07d8 489 ntp_gettime \
f06b4328
SK
490 personality \
491 posix_fadvise \
492 prctl \
9c7955da 493 qsort_r \
f06b4328 494 rpmatch \
485a8bfa 495 scandirat \
30fbf2f6 496 setprogname \
69045d3d
KZ
497 setresgid \
498 setresuid \
15167589 499 sched_setattr \
ee20c303 500 sched_setscheduler \
f06b4328
SK
501 sigqueue \
502 srandom \
503 strnchr \
69b7e41e
KZ
504 strndup \
505 strnlen \
f06b4328 506 sysconf \
88e0f3df 507 sysinfo \
b72a75e9 508 timegm \
f06b4328 509 usleep \
31f85fce 510 vwarnx \
eb76ca98
FG
511 warn \
512 warnx \
f06b4328 513])
48d7b13a 514AC_FUNC_FSEEKO
48d7b13a 515
940fd28c 516AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
465e9973 517AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
90d5285d
KZ
518AC_CHECK_FUNCS([futimens], [have_futimens=yes])
519AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
f9c4d138 520AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
e52b58e6 521AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
227ebea7 522AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
49a3d609 523AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
465e9973 524
dc049516
RM
525AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
526
7a3b35b9
KZ
527have_setns_syscall="yes"
528UL_CHECK_SYSCALL([setns])
529AS_IF([test "x$ul_cv_syscall_setns" = xno], [
530 have_setns_syscall="no"
531])
feda4342
KZ
532
533AC_CHECK_FUNCS([isnan], [],
534 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
4953018e 535 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
feda4342
KZ
536)
537AC_SUBST([MATH_LIBS])
538
539
378543e1 540dnl lib/mononotic.c may require -lrt
254743e4
KZ
541AC_CHECK_FUNCS([clock_gettime], [],
542 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
543)
bd9b94d1 544
254743e4 545have_timer="no"
f07a82c9 546AC_CHECK_FUNCS([timer_create],
7944a03c 547 [have_timer="yes"],
254743e4
KZ
548 [AC_CHECK_LIB([rt], [timer_create], [
549 have_timer="yes"
550 REALTIME_LIBS="-lrt"
9a558f9c 551 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
bf6be9f5
LT
552 ],[
553 AC_SEARCH_LIBS([timer_create], [rt], [
554 AC_MSG_RESULT(yes)
555 have_timer="yes"
556 REALTIME_LIBS="-lrt -lpthread"
9a558f9c 557 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
bf6be9f5
LT
558 ],[], [-lpthread]
559 )
9a558f9c 560 ])]
254743e4 561)
8fc4a886 562
f07a82c9
KZ
563AC_SUBST([REALTIME_LIBS])
564
6df5acf9
KZ
565AS_IF([test x"$have_timer" = xno], [
566 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
567])
568
f07a82c9
KZ
569
570AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
571 RTAS_LIBS="-lrtas"
572 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
573])
574AC_SUBST([RTAS_LIBS])
575
8fc4a886 576
034d378b
SK
577AC_CHECK_MEMBER([struct sockaddr.sa_len],
578 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
754fed0c
KZ
579 [#include <sys/types.h>
580 #include <sys/socket.h>])
581
60cc9f94 582SOCKET_LIBS=
60cc9f94 583AC_SEARCH_LIBS([socket], [socket],
3013eb9d
SK
584 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
585 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
586])
60cc9f94
FG
587AC_SUBST([SOCKET_LIBS])
588
d58c47d9
FG
589
590have_dirfd=no
591AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
3013eb9d 592AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
593 AC_CHECK_DECLS([dirfd],
594 [have_dirfd=yes], [have_dirfd=no],
595 [#include <sys/types.h>
596 #include <dirent.h>])
3013eb9d 597])
d58c47d9
FG
598
599have_ddfd=no
3013eb9d 600AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
601 AC_CHECK_MEMBERS([DIR.dd_fd],
602 [have_ddfd=yes], [have_ddfd=no],
603 [#include <sys/types.h>
604 #include <dirent.h>])
3013eb9d 605])
d58c47d9 606
a68ed87f 607AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes])
d58c47d9
FG
608
609
d6abf168
SK
610AC_MSG_CHECKING([whether program_invocation_short_name is defined])
611AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
37edac9a 612 #include <errno.h>
d6abf168
SK
613]], [[
614 program_invocation_short_name = "test";
615]])], [
616 AC_MSG_RESULT([yes])
617 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
618 [Define if program_invocation_short_name is defined])
619], [
620 AC_MSG_RESULT([no])
621])
622
a804f444
FG
623
624AC_MSG_CHECKING([whether __progname is defined])
625AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
cf582a2e 626 [if (*__progname == 0) return 1;])],
034d378b
SK
627 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
628 AC_MSG_RESULT([yes]),
629 AC_MSG_RESULT([no]))
a804f444 630
8569410c 631dnl Static compilation
fddfd4e0 632m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
8569410c
SK
633
634AC_ARG_ENABLE([static-programs],
635 [AS_HELP_STRING([--enable-static-programs=LIST],
636 [link static the programs in LIST (comma-separated,
132ea941 637 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
8569410c 638
9f57e6e8
SK
639AS_CASE([$enable_static_programs],
640 [yes],
d924b10b 641 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
9f57e6e8
SK
642 [no],
643 [enable_static_programs=]
644)
8569410c 645
8569410c 646dnl Set all the individual AM_CONDITIONALs
132ea941 647m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
9f57e6e8
SK
648 AS_CASE([,$enable_static_programs,],
649 [*,UL_PRG,*], [static_[]UL_PRG=yes]
650 )
d924b10b 651 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
132ea941
KZ
652 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
653 [test "x$static_[]UL_PRG" = xyes])
8569410c
SK
654])
655
08b1c219
KZ
656
657AC_ARG_ENABLE([all-programs],
658 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
659 [], [enable_all_programs=undefined]
660)
661
662AS_CASE([$enable_all_programs],
7477f356
KZ
663 [yes], [AC_MSG_WARN([force to build all programs by default])
664 ul_default_estate=check],
08b1c219 665 [no], [AC_MSG_WARN([disable all programs by default])
7477f356 666 ul_default_estate=no]
08b1c219
KZ
667)
668
669
d7a01582 670AX_CHECK_TLS
3ac22f7a 671
13f5473e
KZ
672AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
673# include <stdio.h>
3eeb5808 674# include <stdlib.h>
13f5473e
KZ
675int main()
676{
677 int i;
544d4069 678 int rc = 1;
13f5473e
KZ
679 char *s;
680 i = sscanf("x", $1, &s);
544d4069
RM
681 if (i == 1 && *s == 'x')
682 rc = 0;
4f310fae 683 free(s);
544d4069 684 return rc;
13f5473e
KZ
685}])
686
687AC_CACHE_VAL([scanf_cv_alloc_modifier],
688 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
689 [scanf_cv_alloc_modifier=ms],
690 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
691 [scanf_cv_alloc_modifier=as],
692 [scanf_cv_alloc_modifier=no]
693 )
b420e279 694 ,
d0202f1c
SAS
695
696 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
697 #include <stdio.h>
695e4e1a 698 #include <unistd.h>
d0202f1c 699
bac7fbdb 700 #if defined(__GLIBC__) && !defined(__UCLIBC__)
d0202f1c
SAS
701
702 #if !(__GLIBC_PREREQ(2, 7))
703 #error %m is not available
704 #endif
705
695e4e1a 706 #elif defined(_POSIX_VERSION)
d0202f1c 707
695e4e1a
MF
708 #if _POSIX_VERSION < 200809L
709 #error %m is not available
710 #endif
711
712 #else
d0202f1c
SAS
713 #error Your C-library is not supported.
714 #endif
715 ])],
716 [scanf_cv_alloc_modifier=ms],
717 [scanf_cv_alloc_modifier=no])]
13f5473e
KZ
718 )
719)
720
721AC_MSG_CHECKING([scanf string alloc modifiers])
9f57e6e8
SK
722AS_CASE([$scanf_cv_alloc_modifier],
723 [ms],
724 [AC_MSG_RESULT([(%ms) yes])
725 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
726 have_scanf_alloc_modifier=yes],
727 [as],
728 [AC_MSG_RESULT([(%as) yes])
729 have_scanf_alloc_modifier=yes
730 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
731 [AC_MSG_RESULT([no])
732 have_scanf_alloc_modifier=no]
733)
13f5473e 734
17d71034
KZ
735
736AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
737 [], [with_util=auto]
738)
739AS_IF([test "x$with_util" = xno], [
740 AM_CONDITIONAL([HAVE_UTIL], [false])
741 have_util=no
742], [
743 UL_CHECK_LIB([util], [openpty])
744])
745
746
3aecf79d
KZ
747AC_CHECK_TYPES([union semun], [], [], [[
748#include <sys/sem.h>
749]])
034d378b 750AC_CHECK_TYPES([loff_t])
3aecf79d 751
4cb6fea5
KZ
752
753AC_ARG_ENABLE([widechar],
754 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
755 [], [enable_widechar=check]
756)
757UL_BUILD_INIT([widechar])
758UL_REQUIRES_COMPILE([widechar], [[
759 #include <wchar.h>
760 #include <wctype.h>
761 #include <stdio.h>
1632856e 762 #include <stdlib.h>
4cb6fea5
KZ
763 ]], [[
764 wchar_t wc;
765 wint_t w;
766 w = fgetwc(stdin);
767 if (w == WEOF) exit(1);
768 wc = w;
769 fputwc(wc,stdout);
770 ]],
771 [wchar_t support])
772
773AS_IF([test "x$build_widechar" = xyes ], [
774 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
3aecf79d
KZ
775])
776
4cb6fea5 777
3aecf79d
KZ
778AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
779#include <sched.h>
780]])
781
034d378b 782AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
3aecf79d 783
b09bc508
MF
784AC_CHECK_TYPES([sighandler_t], [], [], [[
785#include <signal.h>
786]])
787
3aecf79d
KZ
788AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
789#include <sched.h>
790]])
791
8d35bdc9 792# on Solaris, you can't mix and match standards, since we use c99
218b1dd6 793# apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
8d35bdc9 794# check for crypt.h and use that without XOPEN_SOURCE.
8229ed2f 795have_crypt=no
8d35bdc9
KZ
796AC_CHECK_HEADERS([crypt.h])
797AC_LINK_IFELSE([AC_LANG_PROGRAM([[
798#ifdef HAVE_CRYPT_H
799#include <crypt.h>
800#else
801#define _XOPEN_SOURCE
802#include <unistd.h>
803#endif
804]], [[
805char *c = crypt("abc","pw");
70c364b4
JN
806]])],[
807 have_libcrypt=no
808 have_crypt=yes
809],[
8d35bdc9
KZ
810 LIBS="$LIBS -lcrypt"
811 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
812 #ifdef HAVE_CRYPT_H
813 #include <crypt.h>
814 #else
815 #define _XOPEN_SOURCE
816 #include <unistd.h>
817 #endif
818 ]], [[
819 char *c = crypt("abc","pw");
820 ]])],[
034d378b 821 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
8d35bdc9 822 have_libcrypt=yes
8229ed2f 823 have_crypt=yes
8d35bdc9 824 ],[
8229ed2f 825 AC_MSG_WARN([crypt() is not available])
8d35bdc9
KZ
826 ])
827])
034d378b 828AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
8d35bdc9 829
13f5473e 830
75ad4910
KZ
831AC_ARG_WITH([selinux],
832 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
034d378b 833 [], [with_selinux=no]
75ad4910
KZ
834)
835
3013eb9d 836AS_IF([test "x$with_selinux" = xno], [
034d378b 837 AM_CONDITIONAL([HAVE_SELINUX], [false])
3013eb9d 838], [
7e34c79f 839 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
034d378b 840 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
7e34c79f 841 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
034d378b 842 AM_CONDITIONAL([HAVE_SELINUX], [true])
7e34c79f
KZ
843 have_selinux=yes],
844 [have_selinux=no])
845
9f57e6e8
SK
846 AS_CASE([$with_selinux:$have_selinux],
847 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
848 )
312f04f4 849
3013eb9d 850 AS_IF([test "x$have_selinux" = xyes], [
312f04f4
KZ
851 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
852 # This function is missing in old libselinux 1.xx versions
853 AC_CHECK_FUNCS([security_get_initial_context])
854 UL_RESTORE_FLAGS
3013eb9d
SK
855 ])
856])
75ad4910
KZ
857AC_SUBST([SELINUX_LIBS])
858AC_SUBST([SELINUX_LIBS_STATIC])
859
0273afda 860
75ad4910
KZ
861AC_ARG_WITH([audit],
862 AS_HELP_STRING([--with-audit], [compile with audit support]),
034d378b 863 [], [with_audit=no]
75ad4910
KZ
864)
865
3013eb9d 866AS_IF([test "x$with_audit" = xno], [
034d378b 867 AM_CONDITIONAL([HAVE_AUDIT], [false])
3013eb9d 868], [
034d378b 869 UL_CHECK_LIB([audit], [audit_log_user_message])
9f57e6e8
SK
870 AS_CASE([$with_audit:$have_audit],
871 [yes:no],
872 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
873 )
3013eb9d 874])
75ad4910
KZ
875
876AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
034d378b 877 [], [with_udev=auto]
75ad4910
KZ
878)
879
3013eb9d 880AS_IF([test "x$with_udev" = xno], [
034d378b 881 AM_CONDITIONAL([HAVE_UDEV], [false])
3013eb9d 882], [
034d378b 883 UL_CHECK_LIB([udev], [udev_new])
9f57e6e8
SK
884 AS_CASE([$with_udev:$have_udev],
885 [yes:no],
886 [AC_MSG_ERROR([udev selected but libudev not found])]
887 )
3013eb9d 888])
75ad4910 889
2b8f22bd 890
4ffcc7a9
KZ
891dnl wide-char ncurses
892AC_ARG_WITH([ncursesw],
95a89bd3 893 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
4ffcc7a9
KZ
894 [], [with_ncursesw=auto]
895)
896have_ncursesw=no
3cc8a9f4 897have_ncursesw_header=no
4ffcc7a9 898AS_IF([test "x$with_ncursesw" != xno], [
e5cc93b5
KZ
899 UL_NCURSES_CHECK([ncursesw])
900 AS_IF([test "x$have_ncursesw" = xyes], [
3947ca4c
KZ
901 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
902 AC_CHECK_HEADERS([ncursesw/term.h])
87c26ce5
KZ
903
904 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
905 # unsuccessful to avoid too many *_H permitations in config.h
906 AS_IF([test "x$have_ncursesw_header" = xno], [
907 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
908 AC_CHECK_HEADERS([term.h])
909 ])
3cc8a9f4
KZ
910 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
911 ])
912 AS_IF([test "x$have_ncursesw" = xyes], [
f1512be8 913 CURSES_LIB_NAME="ncursesw"
3cc8a9f4 914 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
e5cc93b5 915 ])
4ffcc7a9
KZ
916])
917AS_CASE([$with_ncursesw:$have_ncursesw],
918 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
2b8f22bd 919
43cc76e2 920
4ffcc7a9
KZ
921dnl non-wide ncurses
922AC_ARG_WITH([ncurses],
95a89bd3 923 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
4ffcc7a9
KZ
924 [], [with_ncurses=auto]
925)
926have_ncurses=no
3cc8a9f4 927have_ncurses_header=no
18dae5d8
KZ
928AS_CASE([$with_ncurses:$build_widechar],
929 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
930
4ffcc7a9 931AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
e5cc93b5
KZ
932 UL_NCURSES_CHECK([ncurses])
933 AS_IF([test "x$have_ncurses" = xyes], [
87c26ce5
KZ
934 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
935 AC_CHECK_HEADERS([ncurses/term.h])
936
937 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
938 # unsuccessful to avoid too many *_H permitations in config.h
939 AS_IF([test "x$have_ncurses_header" = xno], [
940 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
941 AC_CHECK_HEADERS([term.h])
942 ])
3cc8a9f4
KZ
943 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
944 ])
945 AS_IF([test "x$have_ncurses" = xyes], [
4ffcc7a9 946 CURSES_LIB_NAME="ncurses"
3cc8a9f4 947 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
e5cc93b5 948 ])
3013eb9d 949])
4ffcc7a9
KZ
950AS_CASE([$with_ncurses:$have_ncurses],
951 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
952
2b8f22bd 953AC_SUBST([NCURSES_CFLAGS])
75ad4910 954AC_SUBST([NCURSES_LIBS])
4ffcc7a9 955AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
75ad4910
KZ
956
957
958AC_ARG_WITH([slang],
4ffcc7a9 959 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
034d378b 960 [], [with_slang=no]
75ad4910 961)
50ea6795 962have_slang=no
3013eb9d 963AS_IF([test "x$with_slang" = xyes], [
75ad4910
KZ
964 AC_CHECK_HEADERS([slang.h slang/slang.h])
965 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 966 [have_slang=yes], [], [
75ad4910
KZ
967#ifdef HAVE_SLANG_H
968#include <slang.h>
969#elif defined(HAVE_SLANG_SLANG_H)
970#include <slang/slang.h>
971#endif
972])
3013eb9d 973 AS_IF([test "x$have_slang" = xno], [
f1512be8
KZ
974 AC_MSG_ERROR([slang selected but slcurses.h not found])],
975 [CURSES_LIB_NAME=slang
3013eb9d
SK
976 ])
977])
034d378b 978AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
50ea6795 979
50ea6795 980
4ffcc7a9 981AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
f1512be8
KZ
982 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
983 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
7556c944
KZ
984 [Define if curses library has the use_default_colors().])
985 ])
986 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
987 AC_DEFINE(HAVE_RESIZETERM, 1,
988 [Define if curses library has the resizeterm().])
f1512be8
KZ
989 ])
990])
991
50ea6795 992
17d71034
KZ
993AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
994 [], [with_tinfo=auto]
995)
996have_tinfo=no
ad442a81 997have_tinfow=no
17d71034 998AS_IF([test "x$with_tinfo" != xno], [
ad442a81
KZ
999 AS_IF([test "x$have_ncursesw" = xyes], [
1000 UL_TINFO_CHECK([tinfow])
1001 ])
1002 AS_IF([test "x$have_tinfow" = xno], [
1003 UL_TINFO_CHECK([tinfo])
17d71034 1004 ])
2b8f22bd
MF
1005])
1006AC_SUBST([TINFO_LIBS])
0b28c2ec 1007AC_SUBST([TINFO_LIBS_STATIC])
ccf92e6d 1008AC_SUBST([TINFO_CFLAGS])
ad442a81
KZ
1009AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes])
1010AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [
1011 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
4310faf9 1012])
75ad4910
KZ
1013
1014
0b28c2ec 1015AC_ARG_WITH([readline],
95a89bd3 1016 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
0b28c2ec
KZ
1017 [], [with_readline=auto]
1018)
1019
1020AS_IF([test "x$with_readline" = xno], [
1021 AM_CONDITIONAL([HAVE_READLINE], [false])
1022], [
1023 UL_CHECK_LIB([readline], [readline])
1024 AS_CASE([$with_readline:$have_readline],
1025 [yes:no],
1026 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1027 [*:yes],
1028 [READLINE_LIBS="-lreadline"
1029 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1030 )
1031])
1032AC_SUBST([READLINE_LIBS])
1033AC_SUBST([READLINE_LIBS_STATIC])
1034
1035
75ad4910
KZ
1036AC_ARG_WITH([utempter],
1037 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
034d378b 1038 [], [with_utempter=no]
75ad4910
KZ
1039)
1040
3013eb9d 1041AS_IF([test "x$with_utempter" = xyes], [
034d378b 1042 UL_CHECK_LIB([utempter], [utempter_add_record])
3013eb9d 1043 AS_IF([test "x$have_utempter" = xno], [
75ad4910 1044 AC_MSG_ERROR([utempter selected but libutempter not found])
3013eb9d
SK
1045 ])
1046], [
034d378b 1047 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
3013eb9d 1048])
75ad4910
KZ
1049
1050
1dbbde66
KZ
1051dnl
1052dnl libuuid
1053dnl
17afb032
KZ
1054AC_ARG_ENABLE([libuuid],
1055 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
08b1c219 1056 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
17afb032 1057)
fa7be20e 1058UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
1059AC_SUBST([LIBUUID_VERSION])
1060AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 1061AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 1062
3e584e85
RM
1063AC_ARG_ENABLE([libuuid-force-uuidd],
1064 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1065 [], [enable_libuuid_force_uuidd=no]
1066)
1067
13985252 1068AS_IF([test "x$build_libuuid" = xyes], [
17afb032 1069 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
3013eb9d 1070])
48d7b13a 1071
1dbbde66
KZ
1072dnl
1073dnl libblkid
1074dnl
f910b559 1075AC_ARG_ENABLE([libblkid],
1d12ed57 1076 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
dc049516 1077 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
40f07ff7 1078)
61a074f7 1079UL_BUILD_INIT([libblkid])
dc049516 1080UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
a68ed87f 1081UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
033cf439 1082AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
1083AC_SUBST([LIBBLKID_VERSION])
1084AC_SUBST([LIBBLKID_VERSION_INFO])
034d378b
SK
1085AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1086AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
3013eb9d 1087AS_IF([test "x$build_libblkid" = xyes], [
034d378b 1088 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
3013eb9d 1089])
034d378b
SK
1090AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1091AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
f910b559 1092
1dbbde66
KZ
1093dnl
1094dnl libmount
1095dnl
f1cde479
KZ
1096AC_ARG_ENABLE([libmount],
1097 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
08b1c219 1098 [], [UL_DEFAULT_ENABLE([libmount], [check])]
f1cde479 1099)
61a074f7 1100UL_BUILD_INIT([libmount])
13f5473e
KZ
1101UL_REQUIRES_BUILD([libmount], [libblkid])
1102UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
a68ed87f 1103UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
034d378b
SK
1104AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1105AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
30c34afb 1106AS_IF([test "x$build_libmount" = xyes], [
7a3b35b9
KZ
1107 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1108 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1109 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1110 ],[
1111 AC_MSG_WARN([libmount will be compiled without namespaces support])
1112 ])
30c34afb 1113])
8e368761 1114
f1cde479 1115AC_SUBST([LIBMOUNT_VERSION])
10e1d2e5
SH
1116AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1117AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1118AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
f1cde479 1119AC_SUBST([LIBMOUNT_VERSION_INFO])
034d378b 1120AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
13f5473e 1121
e778642a
KZ
1122AC_ARG_ENABLE([libmount-support-mtab],
1123 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1124 [], [enable_libmount_support_mtab=no]
e3f72275
KZ
1125)
1126
2afbcec5 1127AS_IF([test "x$enable_libmount_support_mtab" = xyes], [
e778642a 1128 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
e3f72275
KZ
1129])
1130
1a4d989e
OO
1131dnl
1132dnl libsmartcols
1133dnl
1134AC_ARG_ENABLE([libsmartcols],
1135 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
08b1c219 1136 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1a4d989e
OO
1137)
1138UL_BUILD_INIT([libsmartcols])
1a4d989e 1139AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1a4d989e
OO
1140
1141AC_SUBST([LIBSMARTCOLS_VERSION])
1142AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1143AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1144
1145
eb6a03f3 1146dnl
0bb4c979 1147dnl libfdisk
eb6a03f3 1148dnl
0bb4c979
KZ
1149AC_ARG_ENABLE([libfdisk],
1150 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1151 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1152)
1153UL_BUILD_INIT([libfdisk])
eb6a03f3 1154UL_REQUIRES_BUILD([libfdisk], [libuuid])
034d378b 1155AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
0bb4c979
KZ
1156AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1157
ed79557e
KZ
1158AS_IF([test "x$build_libblkid" = xyes],
1159 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1160AC_SUBST([LIBFDISK_PC_REQUIRES])
1161
0bb4c979 1162AC_SUBST([LIBFDISK_VERSION])
791da22d
KZ
1163AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1164AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1165AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
0bb4c979
KZ
1166AC_SUBST([LIBFDISK_VERSION_INFO])
1167AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1168
eb6a03f3 1169
9c7431fd
CS
1170AC_ARG_ENABLE([fdisks],
1171 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1172 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1173)
1174enable_fdisk=$enable_fdisks
1175enable_sfdisk=$enable_fdisks
1176enable_cfdisk=$enable_fdisks
1177
1178UL_BUILD_INIT([fdisk])
dc049516 1179UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
a68ed87f 1180UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
eb6a03f3 1181UL_REQUIRES_BUILD([fdisk], [libfdisk])
d44115f3 1182UL_REQUIRES_BUILD([fdisk], [libsmartcols])
034d378b 1183AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
eb6a03f3
KZ
1184
1185
9c7431fd 1186UL_BUILD_INIT([sfdisk])
dc049516 1187UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
a68ed87f 1188UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
9c1f9dd3
KZ
1189UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1190UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
ecc6047e
KZ
1191AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1192
1193
9c7431fd 1194UL_BUILD_INIT([cfdisk])
08b1c219
KZ
1195UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1196UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
9dd55a04 1197UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
4ffcc7a9 1198UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
08b1c219
KZ
1199AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1200
1201
434b07a0
KZ
1202AC_ARG_ENABLE([mount],
1203 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
08b1c219 1204 [], [UL_DEFAULT_ENABLE([mount], [check])]
ecdba5dd 1205)
434b07a0 1206UL_BUILD_INIT([mount])
53e8c16e 1207UL_REQUIRES_LINUX([mount])
434b07a0 1208UL_REQUIRES_BUILD([mount], [libmount])
034d378b 1209AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
ecdba5dd
KZ
1210
1211
bafe1a75
KZ
1212AC_ARG_ENABLE([losetup],
1213 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
08b1c219 1214 [], [UL_DEFAULT_ENABLE([losetup], [check])]
bafe1a75
KZ
1215)
1216UL_BUILD_INIT([losetup])
1217UL_REQUIRES_LINUX([losetup])
7477f356 1218UL_REQUIRES_BUILD([losetup], [libsmartcols])
034d378b 1219AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
bafe1a75 1220
0624d840
KZ
1221AC_ARG_ENABLE([zramctl],
1222 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1223 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1224)
1225UL_BUILD_INIT([zramctl])
1226UL_REQUIRES_LINUX([zramctl])
1227UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1228AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
bafe1a75 1229
1dbbde66
KZ
1230AC_ARG_ENABLE([fsck],
1231 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
08b1c219 1232 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1dbbde66 1233)
61a074f7 1234UL_BUILD_INIT([fsck])
a7b585ea 1235UL_REQUIRES_BUILD([fsck], [libmount])
034d378b 1236AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1dbbde66
KZ
1237
1238
1239AC_ARG_ENABLE([partx],
1240 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
08b1c219 1241 [], [UL_DEFAULT_ENABLE([partx], [check])]
1dbbde66 1242)
61a074f7 1243UL_BUILD_INIT([partx])
ecde2536
KZ
1244UL_REQUIRES_LINUX([partx])
1245UL_REQUIRES_BUILD([partx], [libblkid])
08b1c219 1246UL_REQUIRES_BUILD([partx], [libsmartcols])
034d378b 1247AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1dbbde66
KZ
1248
1249
1dbbde66
KZ
1250AC_ARG_ENABLE([uuidd],
1251 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
08b1c219 1252 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1dbbde66 1253)
61a074f7 1254UL_BUILD_INIT([uuidd])
bcdab497 1255UL_REQUIRES_BUILD([uuidd], [libuuid])
651b25cd
RM
1256UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1257UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
2afbcec5 1258AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
034d378b 1259 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
3013eb9d 1260])
034d378b 1261AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1dbbde66
KZ
1262
1263
1b15cbd1
KZ
1264UL_BUILD_INIT([uuidgen], [check])
1265UL_REQUIRES_BUILD([uuidgen], [libuuid])
1266AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1267
83893f26
SK
1268UL_BUILD_INIT([uuidparse], [check])
1269UL_REQUIRES_BUILD([uuidparse], [libuuid])
1270UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1271AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1272
15a2c741
KZ
1273UL_BUILD_INIT([blkid], [check])
1274UL_REQUIRES_BUILD([blkid], [libblkid])
1275AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1276
1277UL_BUILD_INIT([findfs], [check])
1278UL_REQUIRES_BUILD([findfs], [libblkid])
1279AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1280
1281UL_BUILD_INIT([wipefs], [check])
1282UL_REQUIRES_BUILD([wipefs], [libblkid])
d9921b2a 1283UL_REQUIRES_BUILD([wipefs], [libsmartcols])
15a2c741
KZ
1284AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1285
1286UL_BUILD_INIT([findmnt], [check])
1287UL_REQUIRES_BUILD([findmnt], [libmount])
169b4a8c 1288UL_REQUIRES_BUILD([findmnt], [libblkid])
15a2c741
KZ
1289UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1290AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1291
1b15cbd1 1292
0164c245 1293AC_ARG_ENABLE([mountpoint],
2023ccc4 1294 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
08b1c219 1295 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
0164c245 1296)
61a074f7 1297UL_BUILD_INIT([mountpoint])
a9127bc1 1298UL_REQUIRES_BUILD([mountpoint], [libmount])
034d378b 1299AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
0164c245
KZ
1300
1301
10e56b49
KZ
1302AC_ARG_ENABLE([fallocate],
1303 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
08b1c219 1304 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
10e56b49 1305)
61a074f7 1306UL_BUILD_INIT([fallocate])
10e56b49
KZ
1307UL_REQUIRES_LINUX([fallocate])
1308UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
034d378b 1309AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
10e56b49 1310
3013eb9d 1311AS_IF([test "x$build_fallocate" = xyes], [
10e56b49
KZ
1312 dnl check for valid fallocate() function
1313 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1314 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1315 dnl and program can't be linked.
1316 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1317 dnl function prototype.
1318 AC_MSG_CHECKING([for valid fallocate() function])
1319 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
1320#ifdef HAVE_UNISTD_H
1321# include <unistd.h>
1322#endif
1323#ifdef HAVE_SYS_TYPES_H
1324# include <sys/types.h>
1325#endif
1326#ifdef HAVE_LINUX_FALLOC_H
1327# include <linux/falloc.h>
1328#endif
1329#ifdef HAVE_FCNTL_H
1330# include <fcntl.h>
1331#endif
1332]],[[
1333 long ret;
b832c2fe 1334 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
1335 if (ret != 0) {
1336 return 1;
1337 }
1338 ]])],[
10e56b49 1339 AC_MSG_RESULT([yes])
034d378b 1340 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
10e56b49 1341 AC_MSG_RESULT([no])])
3013eb9d 1342])
10e56b49 1343
833f9a7a
DC
1344AS_IF([test "x$build_fallocate" = xyes], [
1345 dnl check for valid posix_fallocate() function
1346 AC_MSG_CHECKING([for valid posix_fallocate() function])
1347 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1348#ifdef HAVE_UNISTD_H
1349# include <unistd.h>
1350#endif
1351#ifdef HAVE_SYS_TYPES_H
1352# include <sys/types.h>
1353#endif
1354#ifdef HAVE_LINUX_FALLOC_H
1355# include <linux/falloc.h>
1356#endif
1357#ifdef HAVE_FCNTL_H
1358# include <fcntl.h>
1359#endif
1360]],[[
1361 long ret;
1362 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1363 if (ret != 0) {
1364 return 1;
1365 }
1366 ]])],[
1367 AC_MSG_RESULT([yes])
1368 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1369 AC_MSG_RESULT([no])])
1370])
1371
19a224ad 1372
a2ea6670
KZ
1373AC_ARG_ENABLE([unshare],
1374 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
08b1c219 1375 [], [UL_DEFAULT_ENABLE([unshare], [check])]
a2ea6670 1376)
61a074f7 1377UL_BUILD_INIT([unshare])
a2ea6670
KZ
1378UL_REQUIRES_LINUX([unshare])
1379UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
2c2ff2ed 1380UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
034d378b 1381AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
bdd384d1 1382AC_CHECK_FUNCS([unshare])
b3425806 1383
f8aa8e94
EB
1384AC_ARG_ENABLE([nsenter],
1385 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
08b1c219 1386 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
f8aa8e94
EB
1387)
1388UL_BUILD_INIT([nsenter])
1389UL_REQUIRES_LINUX([nsenter])
7a3b35b9 1390UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
034d378b 1391AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
bdd384d1 1392AC_CHECK_FUNCS([setns])
b3425806 1393
17d71034
KZ
1394
1395AC_ARG_WITH([cap_ng],
801afcb0 1396 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
17d71034
KZ
1397 [], [with_cap_ng=auto]
1398)
801afcb0
MF
1399AS_IF([test "x$with_cap_ng" = xno], [
1400 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1401 have_cap_ng=no
1402],[
17d71034
KZ
1403 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1404])
1405
1406
5600c405
AL
1407AC_ARG_ENABLE([setpriv],
1408 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
08b1c219 1409 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
5600c405
AL
1410)
1411UL_BUILD_INIT([setpriv])
1412UL_REQUIRES_LINUX([setpriv])
2c2ff2ed
KZ
1413UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1414UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
e1b8ba20 1415UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
034d378b 1416AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
5600c405 1417
04ae85a7
RM
1418PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no])
1419AS_IF([test "x$have_pcre" = xyes ], [
1420 AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available])
1421])
1422AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes])
1423
1424AC_ARG_ENABLE([hardlink],
1425 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1426 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1427)
1428UL_BUILD_INIT([hardlink])
1429AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
5600c405 1430
539feec1
ML
1431AC_ARG_ENABLE([eject],
1432 AS_HELP_STRING([--disable-eject], [do not build eject]),
08b1c219 1433 [], [UL_DEFAULT_ENABLE([eject], [check])]
539feec1
ML
1434)
1435UL_BUILD_INIT([eject])
1436UL_REQUIRES_LINUX([eject])
7770e7df 1437UL_REQUIRES_BUILD([eject], [libmount])
034d378b 1438AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
539feec1
ML
1439
1440
48d7b13a 1441AC_ARG_ENABLE([agetty],
7fa4f112 1442 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
d00c10ed 1443 [], [UL_DEFAULT_ENABLE([agetty], [check])]
48d7b13a 1444)
61a074f7 1445UL_BUILD_INIT([agetty])
b4b919fe 1446UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
73afd3f8 1447UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
034d378b 1448AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
90d5285d
KZ
1449AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1450 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1451],[
1452 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1453])
0fc74be1 1454
48d7b13a 1455
1eb16fd7 1456AC_ARG_ENABLE([plymouth_support],
41f58b60 1457 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]),
d67f61c0 1458 [], [enable_plymouth_support=check]
1eb16fd7
KZ
1459)
1460UL_BUILD_INIT([plymouth_support])
1461UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1462UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1463UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1464UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1465AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1466AS_IF([test "x$build_plymouth_support" = xyes ], [
1467 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1468])
1469
1470
17d71034
KZ
1471AC_ARG_WITH([libz],
1472 AS_HELP_STRING([--without-libz], [compile without libz]),
1473 [], [with_libz=auto]
1474)
1475AS_IF([test "x$with_libz" = xno], [have_z=no], [
1476 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1477])
1478
1479
9cb68977 1480AC_ARG_ENABLE([cramfs],
7fa4f112 1481 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
08b1c219 1482 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
9cb68977 1483)
61a074f7 1484UL_BUILD_INIT([cramfs])
d81b5a52 1485UL_REQUIRES_HAVE([cramfs], [z], [z library])
034d378b 1486AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
9cb68977 1487
a13cdb7a 1488
8d6f0bae 1489AC_ARG_ENABLE([bfs],
834fc88c 1490 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
08b1c219 1491 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
834fc88c
KZ
1492)
1493UL_BUILD_INIT([bfs])
034d378b 1494AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
834fc88c
KZ
1495
1496
3d9fdac5
KZ
1497AC_ARG_ENABLE([minix],
1498 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
08b1c219 1499 [], [UL_DEFAULT_ENABLE([minix], [yes])]
3d9fdac5
KZ
1500)
1501UL_BUILD_INIT([minix])
1502AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1503
1504
8d6f0bae
KZ
1505AC_ARG_ENABLE([fdformat],
1506 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
08b1c219 1507 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
8d6f0bae
KZ
1508)
1509UL_BUILD_INIT([fdformat])
1510UL_REQUIRES_LINUX([fdformat])
034d378b 1511AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
8d6f0bae
KZ
1512
1513
6acf31ac
KZ
1514AC_ARG_ENABLE([hwclock],
1515 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
08b1c219 1516 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
6acf31ac
KZ
1517)
1518have_linuxdummy=$linux_os
1519
1520UL_BUILD_INIT([hwclock])
1521UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
034d378b 1522AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
e09ebf22 1523
b1062292 1524AC_ARG_ENABLE([hwclock_cmos],
88bc304b 1525 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
b1062292 1526 [], [enable_hwclock_cmos=check]
88bc304b 1527)
b1062292
KZ
1528UL_BUILD_INIT([hwclock_cmos])
1529UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1530UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1531AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1532AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1533 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
88bc304b
CS
1534])
1535
1536
ecc6047e
KZ
1537UL_BUILD_INIT([mkfs], [yes])
1538AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1539
1540UL_BUILD_INIT([isosize], [yes])
1541AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1542
3d9fdac5 1543
7b040214
KZ
1544UL_BUILD_INIT([fstrim], [check])
1545UL_REQUIRES_LINUX([fstrim])
1546UL_REQUIRES_BUILD([fstrim], [libmount])
1547AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1548
1549
143635c9
KZ
1550UL_BUILD_INIT([swapon], [check])
1551UL_REQUIRES_LINUX([swapon])
cf9b16f1
KZ
1552UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1553UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
143635c9 1554UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 1555UL_REQUIRES_BUILD([swapon], [libmount])
7477f356 1556UL_REQUIRES_BUILD([swapon], [libsmartcols])
034d378b 1557AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
cf9b16f1
KZ
1558AC_CHECK_FUNCS([swapon])
1559AC_CHECK_FUNCS([swapoff])
143635c9
KZ
1560
1561
61a074f7 1562UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
1563UL_REQUIRES_LINUX([lsblk])
1564UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 1565UL_REQUIRES_BUILD([lsblk], [libmount])
7477f356 1566UL_REQUIRES_BUILD([lsblk], [libsmartcols])
034d378b 1567AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
9cb68977 1568
a3d3b770 1569
61a074f7 1570UL_BUILD_INIT([lscpu], [check])
da396d88 1571UL_REQUIRES_LINUX([lscpu])
7477f356 1572UL_REQUIRES_BUILD([lscpu], [libsmartcols])
da396d88 1573UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
034d378b 1574AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
da396d88 1575
a3d3b770 1576
50e6f15b
RM
1577AC_ARG_ENABLE([lslogins],
1578 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1579 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1580)
1581UL_BUILD_INIT([lslogins])
ab1cfad5 1582UL_REQUIRES_BUILD([lslogins], [libsmartcols])
d00c10ed 1583UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
b4b919fe 1584UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
73afd3f8 1585UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
ab1cfad5
OO
1586AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1587
1588
61a074f7 1589UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
1590UL_REQUIRES_LINUX([chcpu])
1591UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
034d378b 1592AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
da396d88 1593
a13cdb7a 1594
7fcccbdf
KZ
1595AC_ARG_ENABLE([wdctl],
1596 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
08b1c219 1597 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
7fcccbdf
KZ
1598)
1599UL_BUILD_INIT([wdctl])
5b0289b9 1600UL_REQUIRES_LINUX([wdctl])
7477f356 1601UL_REQUIRES_BUILD([wdctl], [libsmartcols])
5b0289b9 1602UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
034d378b 1603AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
5b0289b9
KZ
1604
1605
54dbc8cf
KZ
1606UL_BUILD_INIT([swaplabel], [check])
1607UL_REQUIRES_BUILD([swaplabel], [libblkid])
034d378b 1608AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
54dbc8cf
KZ
1609
1610
ecc6047e
KZ
1611UL_BUILD_INIT([mkswap], [yes])
1612AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
08b1c219
KZ
1613AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1614 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1615])
ecc6047e 1616
328eb445
KZ
1617
1618AC_ARG_ENABLE([cal],
1619 AS_HELP_STRING([--disable-cal], [do not build cal]),
1620 [], [UL_DEFAULT_ENABLE([cal], [check])]
1621)
1622UL_BUILD_INIT([cal])
1b15cbd1
KZ
1623AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1624
50e6f15b
RM
1625AC_ARG_ENABLE([logger],
1626 AS_HELP_STRING([--disable-logger], [do not build logger]),
1627 [], [UL_DEFAULT_ENABLE([logger], [check])]
1628)
1629UL_BUILD_INIT([logger])
1b15cbd1
KZ
1630AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1631
4c838e6c 1632UL_BUILD_INIT([look], [yes])
1b15cbd1
KZ
1633AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1634
1635UL_BUILD_INIT([mcookie], [yes])
1636AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1637
1638UL_BUILD_INIT([namei], [yes])
1639AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1640
c9ab7387
AH
1641matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1642if test "x$matriplet" != "x"; then
1643 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1644 ["Multi-arch triplet for whereis library search path"])
1645fi
1b15cbd1
KZ
1646UL_BUILD_INIT([whereis], [yes])
1647AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1648
3adaaa15
KZ
1649UL_BUILD_INIT([getopt], [yes])
1650AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1651
ecc6047e
KZ
1652
1653UL_BUILD_INIT([blockdev], [check])
1654UL_REQUIRES_LINUX([blockdev])
1655AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1656
1657
945ac250
KZ
1658UL_BUILD_INIT([prlimit], [check])
1659UL_REQUIRES_LINUX([prlimit])
7477f356 1660UL_REQUIRES_BUILD([prlimit], [libsmartcols])
945ac250 1661UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
034d378b 1662AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
3013eb9d 1663AS_IF([test "x$build_prlimit" = xyes], [
945ac250 1664 AC_CHECK_FUNCS([prlimit])
3013eb9d 1665])
945ac250
KZ
1666
1667
3dc02ef4
DB
1668UL_BUILD_INIT([lslocks], [check])
1669UL_REQUIRES_LINUX([lslocks])
ec1204dc 1670UL_REQUIRES_BUILD([lslocks], [libmount])
7477f356 1671UL_REQUIRES_BUILD([lslocks], [libsmartcols])
034d378b 1672AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
3dc02ef4
DB
1673
1674
bd671347
KZ
1675AC_ARG_ENABLE([switch_root],
1676 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
08b1c219 1677 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
bd671347 1678)
61a074f7 1679UL_BUILD_INIT([switch_root])
a3d3b770
KZ
1680UL_REQUIRES_LINUX([switch_root])
1681UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
a68ed87f 1682UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
034d378b 1683AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
bd671347
KZ
1684
1685
11125e7a
KZ
1686AC_ARG_ENABLE([pivot_root],
1687 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
08b1c219 1688 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
11125e7a 1689)
61a074f7 1690UL_BUILD_INIT([pivot_root])
5cbbdfbf 1691UL_REQUIRES_LINUX([pivot_root])
9f632667 1692UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
034d378b 1693AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
11125e7a
KZ
1694
1695
c12fc5e1 1696UL_BUILD_INIT([flock], [check])
3001923b 1697UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
205dbb7a
KZ
1698AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1699
bdfe4601 1700
cad2d1ac
HC
1701AC_ARG_ENABLE([lsmem],
1702 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
bdfe4601 1703 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
cad2d1ac
HC
1704)
1705UL_BUILD_INIT([lsmem])
bdfe4601 1706UL_REQUIRES_LINUX([lsmem])
8b7f00a8 1707UL_REQUIRES_BUILD([lsmem], [libsmartcols])
cad2d1ac
HC
1708AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1709
bdfe4601 1710
30e1ea8b
HC
1711AC_ARG_ENABLE([chmem],
1712 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
bdfe4601 1713 [], [UL_DEFAULT_ENABLE([chmem], [check])]
30e1ea8b
HC
1714)
1715UL_BUILD_INIT([chmem])
bdfe4601 1716UL_REQUIRES_LINUX([chmem])
30e1ea8b
HC
1717AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1718
205dbb7a
KZ
1719UL_BUILD_INIT([ipcmk], [yes])
1720AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1721
bdfe4601 1722
42a4a152
RM
1723AC_ARG_ENABLE([ipcrm],
1724 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1725 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1726)
1727UL_BUILD_INIT([ipcrm])
205dbb7a
KZ
1728AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1729
42a4a152
RM
1730AC_ARG_ENABLE([ipcs],
1731 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1732 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1733)
1734UL_BUILD_INIT([ipcs])
205dbb7a
KZ
1735AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1736
8fa223da
KZ
1737UL_BUILD_INIT([choom], [check])
1738UL_REQUIRES_LINUX([choom])
1739AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
1740
9d20ffda
KZ
1741UL_BUILD_INIT([lsipc], [check])
1742UL_REQUIRES_LINUX([lsipc])
1743UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1744AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1745
8a204562
KZ
1746UL_BUILD_INIT([lsns], [check])
1747UL_REQUIRES_LINUX([lsns])
1748UL_REQUIRES_BUILD([lsns], [libsmartcols])
4b328279 1749UL_REQUIRES_BUILD([lsns], [libmount])
8a204562
KZ
1750AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1751
205dbb7a
KZ
1752UL_BUILD_INIT([renice], [yes])
1753AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1754
3d47ab05
KZ
1755
1756AC_ARG_ENABLE([rfkill],
1757 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
271552c7 1758 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
3d47ab05
KZ
1759)
1760UL_BUILD_INIT([rfkill])
367f4080 1761UL_REQUIRES_LINUX([rfkill])
b3849c66 1762UL_REQUIRES_BUILD([rfkill], [libsmartcols])
c0d78c90
SK
1763AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
1764
3d47ab05 1765
205dbb7a
KZ
1766UL_BUILD_INIT([setsid], [yes])
1767AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1768
1769UL_BUILD_INIT([readprofile], [check])
1770UL_REQUIRES_LINUX([readprofile])
1771AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1772
1773UL_BUILD_INIT([dmesg], [check])
1774UL_REQUIRES_LINUX([dmesg])
1775AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1776
1777UL_BUILD_INIT([ctrlaltdel], [check])
1778UL_REQUIRES_LINUX([ctrlaltdel])
e52b58e6
CTV
1779dnl we assume reboot() to be the 1-argument variant, because even considering
1780dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1781dnl reboot() with multiple arguments is yet only found in glibc versions
1782dnl earlier than 2.x.
9dd55a04 1783UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
205dbb7a
KZ
1784AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1785
a921a7de
MY
1786UL_BUILD_INIT([fincore], [check])
1787UL_REQUIRES_LINUX([fincore])
3e37d7b7 1788UL_REQUIRES_BUILD([fincore], [libsmartcols])
a921a7de
MY
1789AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1790
205dbb7a
KZ
1791UL_BUILD_INIT([fsfreeze], [check])
1792UL_REQUIRES_LINUX([fsfreeze])
1793AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1794
1795UL_BUILD_INIT([blkdiscard], [check])
1796UL_REQUIRES_LINUX([blkdiscard])
1797AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1798
1ad8ef91
KZ
1799UL_BUILD_INIT([blkzone], [check])
1800UL_REQUIRES_LINUX([blkzone])
1801UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1802AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1803
205dbb7a
KZ
1804UL_BUILD_INIT([ldattach], [check])
1805UL_REQUIRES_LINUX([ldattach])
1806AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1807
1808UL_BUILD_INIT([rtcwake], [check])
1809UL_REQUIRES_LINUX([rtcwake])
1810AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1811
1812UL_BUILD_INIT([setarch], [check])
1813UL_REQUIRES_LINUX([setarch])
1814AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1815
d3a1e3bf 1816UL_BUILD_INIT([script], [check])
651b25cd 1817UL_REQUIRES_HAVE([script], [sys_signalfd_h], [sys/signalfd.h header])
3f91b990
KZ
1818AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1819
1820UL_BUILD_INIT([scriptreplay], [yes])
1821AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1822
33869e5a
KZ
1823UL_BUILD_INIT([scriptlive], [yes])
1824AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
1825
cb45354e
KZ
1826UL_BUILD_INIT([col], [yes])
1827AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1828
1829UL_BUILD_INIT([colcrt], [yes])
1830AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1831
1832UL_BUILD_INIT([colrm], [yes])
1833AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1834
38d69192
KZ
1835UL_BUILD_INIT([column], [check])
1836UL_REQUIRES_BUILD([column], [libsmartcols])
cb45354e
KZ
1837AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1838
1839UL_BUILD_INIT([hexdump], [yes])
1840AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1841
1842UL_BUILD_INIT([rev], [yes])
1843AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1844
3f91b990 1845
1342ffcb
SK
1846AC_ARG_ENABLE([tunelp],
1847 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
08b1c219 1848 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1342ffcb
SK
1849)
1850UL_BUILD_INIT([tunelp])
1851UL_REQUIRES_LINUX([tunelp])
034d378b 1852AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1342ffcb
SK
1853
1854
48d7b13a 1855AC_ARG_ENABLE([kill],
4be753aa 1856 AS_HELP_STRING([--disable-kill], [do not build kill]),
08b1c219 1857 [], [UL_DEFAULT_ENABLE([kill], [check])]
48d7b13a 1858)
61a074f7 1859UL_BUILD_INIT([kill])
4be753aa 1860UL_REQUIRES_LINUX([kill])
034d378b 1861AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
48d7b13a 1862
ce602720 1863
48d7b13a 1864AC_ARG_ENABLE([last],
ce602720 1865 AS_HELP_STRING([--disable-last], [do not build last]),
08b1c219 1866 [], [UL_DEFAULT_ENABLE([last], [check])]
48d7b13a 1867)
61a074f7 1868UL_BUILD_INIT([last])
b4b919fe 1869UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
73afd3f8 1870UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
034d378b 1871AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2dc68529 1872
48d7b13a 1873
78d5ceac 1874AC_ARG_ENABLE([utmpdump],
c9b53461 1875 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
d00c10ed 1876 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
78d5ceac
KZ
1877)
1878UL_BUILD_INIT([utmpdump])
b4b919fe 1879UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
73afd3f8 1880UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
034d378b 1881AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
78d5ceac
KZ
1882
1883
c135a8bd
SK
1884AC_ARG_ENABLE([line],
1885 AS_HELP_STRING([--enable-line], [build line]),
08b1c219 1886 [], [UL_DEFAULT_ENABLE([line], [no])]
c135a8bd 1887)
61a074f7 1888UL_BUILD_INIT([line])
034d378b 1889AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2dc68529 1890
48d7b13a
KZ
1891
1892AC_ARG_ENABLE([mesg],
5c0b406d 1893 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
08b1c219 1894 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
48d7b13a 1895)
61a074f7 1896UL_BUILD_INIT([mesg])
034d378b 1897AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
48d7b13a
KZ
1898
1899
48d7b13a 1900AC_ARG_ENABLE([raw],
5c0b406d 1901 AS_HELP_STRING([--disable-raw], [do not build raw]),
08b1c219 1902 [], [UL_DEFAULT_ENABLE([raw], [check])]
48d7b13a 1903)
61a074f7 1904UL_BUILD_INIT([raw])
16ba8d58
KZ
1905UL_REQUIRES_LINUX([raw])
1906UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
034d378b 1907AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
48d7b13a
KZ
1908
1909
48d7b13a 1910AC_ARG_ENABLE([rename],
7fa4f112 1911 AS_HELP_STRING([--disable-rename], [do not build rename]),
08b1c219 1912 [], [UL_DEFAULT_ENABLE([rename], [yes])]
48d7b13a 1913)
61a074f7 1914UL_BUILD_INIT([rename])
034d378b 1915AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
48d7b13a
KZ
1916
1917
cc76731e
KZ
1918AC_ARG_ENABLE([vipw],
1919 AS_HELP_STRING([--enable-vipw], [build vipw]),
08b1c219 1920 [], [UL_DEFAULT_ENABLE([vipw], [no])]
48d7b13a 1921)
cc76731e 1922UL_BUILD_INIT([vipw])
d00c10ed 1923UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
034d378b 1924AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
9cb68977 1925
c94b3604 1926
aec9ecbd
KZ
1927AC_ARG_ENABLE([newgrp],
1928 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
08b1c219 1929 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
aec9ecbd
KZ
1930)
1931UL_BUILD_INIT([newgrp])
8229ed2f 1932UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
034d378b 1933AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
aec9ecbd
KZ
1934
1935
d86918b6 1936AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
034d378b 1937 [], [with_user=check]
7e4714f2 1938)
6e93c52f 1939have_user=no
3013eb9d 1940AS_IF([test "x$with_user" != xno], [
2771954b 1941 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
9f57e6e8
SK
1942 AS_CASE([$with_user:$have_user],
1943 [yes:no],
1944 [AC_MSG_ERROR([user selected but libuser not found])],
1945 [*:yes],
1946 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1947 )
1f6ec24c
KZ
1948 # temporary solution, libuser has stupid .pc where are exported all
1949 # private dependencies to Requires: instead of Requires.private:
3013eb9d 1950 AS_IF([test "x$have_user" = xyes], [
1f6ec24c 1951 LIBUSER_LIBS=-luser
3013eb9d
SK
1952 ])
1953])
034d378b 1954AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
7e4714f2 1955
d86918b6
KZ
1956AC_ARG_ENABLE([chfn-chsh-password],
1957 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
034d378b 1958 [], [enable_chfn_chsh_password=yes]
d86918b6
KZ
1959)
1960
1961AC_ARG_ENABLE([chfn-chsh],
1962 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
9a4e9c9d 1963 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
d86918b6
KZ
1964)
1965UL_BUILD_INIT([chfn_chsh])
d00c10ed 1966UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
49a3d609 1967UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
d86918b6 1968
3013eb9d 1969AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
fe2c9909 1970 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
034d378b 1971 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
3013eb9d 1972])
034d378b
SK
1973AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1974AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
d86918b6
KZ
1975
1976AC_ARG_ENABLE([chsh-only-listed],
5c0b406d
BS
1977 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1978 [], enable_chsh_only_listed=yes
d86918b6 1979)
7e4714f2 1980
3013eb9d
SK
1981AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1982 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1983])
71681ee5 1984
2c8a3e16 1985
e7614a07
KZ
1986AC_ARG_ENABLE([login],
1987 AS_HELP_STRING([--disable-login], [do not build login]),
08b1c219 1988 [], [UL_DEFAULT_ENABLE([login], [check])]
e7614a07
KZ
1989)
1990UL_BUILD_INIT([login])
fe2c9909
WJ
1991UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1992UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
b4b919fe 1993UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
73afd3f8 1994UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
034d378b 1995AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
e7614a07 1996
71681ee5
KZ
1997AC_ARG_ENABLE([login-chown-vcs],
1998 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
034d378b 1999 [], [enable_login_chown_vcs=no]
71681ee5
KZ
2000)
2001
3013eb9d 2002AS_IF([test "x$enable_login_chown_vcs" = xyes], [
034d378b 2003 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
3013eb9d 2004])
71681ee5
KZ
2005
2006AC_ARG_ENABLE([login-stat-mail],
2007 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
034d378b 2008 [], [enable_login_stat_mail=no]
71681ee5
KZ
2009)
2010
3013eb9d 2011AS_IF([test "x$enable_login_stat_mail" = xyes], [
034d378b 2012 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
3013eb9d 2013])
71681ee5 2014
e7614a07 2015
88407b93
KZ
2016AC_ARG_ENABLE([nologin],
2017 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
08b1c219 2018 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
88407b93
KZ
2019)
2020UL_BUILD_INIT([nologin])
2021AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2022
2023
e7614a07
KZ
2024AC_ARG_ENABLE([sulogin],
2025 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
d00c10ed 2026 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
e7614a07
KZ
2027)
2028UL_BUILD_INIT([sulogin])
8229ed2f 2029UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
d00c10ed 2030UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
034d378b 2031AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
e7614a07 2032
f17f5f48 2033
ff4c5555
KZ
2034AC_ARG_ENABLE([su],
2035 AS_HELP_STRING([--disable-su], [do not build su]),
08b1c219 2036 [], [UL_DEFAULT_ENABLE([su], [check])]
ff4c5555
KZ
2037)
2038UL_BUILD_INIT([su])
fe2c9909 2039UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
b4b919fe 2040UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
73afd3f8 2041UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
034d378b 2042AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
ff4c5555
KZ
2043
2044
7ec6adb1
KZ
2045AC_ARG_ENABLE([runuser],
2046 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
08b1c219 2047 [], [UL_DEFAULT_ENABLE([runuser], [check])]
7ec6adb1
KZ
2048)
2049UL_BUILD_INIT([runuser])
fe2c9909 2050UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
b4b919fe 2051UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
73afd3f8 2052UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
034d378b 2053AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
7ec6adb1
KZ
2054
2055
53b22add
KZ
2056AC_ARG_ENABLE([ul],
2057 AS_HELP_STRING([--disable-ul], [do not build ul]),
08b1c219 2058 [], [UL_DEFAULT_ENABLE([ul], [check])]
53b22add
KZ
2059)
2060UL_BUILD_INIT([ul])
3cc8a9f4 2061UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
034d378b 2062AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
53b22add
KZ
2063
2064
2065AC_ARG_ENABLE([more],
2066 AS_HELP_STRING([--disable-more], [do not build more]),
08b1c219 2067 [], [UL_DEFAULT_ENABLE([more], [check])]
53b22add
KZ
2068)
2069UL_BUILD_INIT([more])
3cc8a9f4 2070UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
034d378b 2071AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
53b22add
KZ
2072
2073
2074AC_ARG_ENABLE([pg],
00971cca
SK
2075 AS_HELP_STRING([--enable-pg], [build pg]),
2076 [], [UL_DEFAULT_ENABLE([pg], [no])]
53b22add
KZ
2077)
2078UL_BUILD_INIT([pg])
4b439e2d 2079UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
034d378b 2080AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
53b22add
KZ
2081
2082
d78d0409
KZ
2083AC_ARG_ENABLE([setterm],
2084 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
08b1c219 2085 [], [UL_DEFAULT_ENABLE([setterm], [check])]
d78d0409
KZ
2086)
2087UL_BUILD_INIT([setterm])
2088UL_REQUIRES_LINUX([setterm])
4b439e2d 2089UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
034d378b 2090AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
d78d0409 2091
d6ace0b8
KZ
2092# build_schedutils= is just configure-only variable to control
2093# ionice, taskset and chrt
48d7b13a 2094AC_ARG_ENABLE([schedutils],
34228e69 2095 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
fc72f51e 2096 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
48d7b13a 2097)
17d5e11b 2098
6f2eb034
KZ
2099
2100UL_ENABLE_ALIAS([ionice], [schedutils])
2101UL_BUILD_INIT([ionice])
17d5e11b
KZ
2102UL_REQUIRES_SYSCALL_CHECK([ionice],
2103 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
2104 [alpha], [442],
2105 [i*86], [289],
2106 [ia64*], [1274],
2107 [powerpc*], [273],
2108 [s390*], [282],
2109 [sparc*], [196],
2110 [sh*], [288],
2111 [x86_64*], [251])],
17d5e11b
KZ
2112 [ioprio_set])
2113
2114UL_REQUIRES_SYSCALL_CHECK([ionice],
2115 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
2116 [alpha], [443],
2117 [i*86], [290],
2118 [ia64*], [1275],
2119 [powerpc*], [274],
2120 [s390*], [283],
2121 [sparc*], [218],
2122 [sh*], [289],
2123 [x86_64*], [252])],
17d5e11b
KZ
2124 [ioprio_get])
2125
034d378b 2126AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
17d5e11b 2127
6f2eb034
KZ
2128
2129UL_ENABLE_ALIAS([taskset], [schedutils])
2130UL_BUILD_INIT([taskset])
e21e6d26 2131UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
2132UL_REQUIRES_SYSCALL_CHECK([taskset],
2133 [UL_CHECK_SYSCALL([sched_getaffinity])],
2134 [sched_getaffinity])
034d378b 2135AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
48d7b13a 2136
ee20c303
RM
2137
2138have_schedsetter=no
2139AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2140 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2141
6f2eb034
KZ
2142UL_ENABLE_ALIAS([chrt], [schedutils])
2143UL_BUILD_INIT([chrt])
ee20c303 2144UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
d6ace0b8
KZ
2145AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2146
15167589
KZ
2147AS_IF([test "x$build_chrt" = xyes], [
2148 UL_CHECK_SYSCALL([sched_setattr])
2149])
2150
48d7b13a
KZ
2151
2152AC_ARG_ENABLE([wall],
7fa4f112 2153 AS_HELP_STRING([--disable-wall], [do not build wall]),
d00c10ed 2154 [], [UL_DEFAULT_ENABLE([wall], [check])]
48d7b13a 2155)
8fc8888b 2156UL_BUILD_INIT([wall])
b4b919fe 2157UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
034d378b 2158AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
48d7b13a
KZ
2159
2160
2161AC_ARG_ENABLE([write],
7fa4f112 2162 AS_HELP_STRING([--enable-write], [build write]),
08b1c219 2163 [], [UL_DEFAULT_ENABLE([write], [no])]
48d7b13a 2164)
61a074f7 2165UL_BUILD_INIT([write])
b4b919fe 2166UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
73afd3f8 2167UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
034d378b 2168AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
48d7b13a
KZ
2169
2170
5a971329 2171AC_ARG_WITH([btrfs],
95a89bd3 2172 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
5a971329
KZ
2173 [], [with_btrfs=check]
2174)
2175have_btrfs=no
2176AS_IF([test "x$with_btrfs" != xno], [
2177 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2178 [yes:no],
2179 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2180 [check:no],
2181 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2182 [*:yes],
2183 [have_btrfs=yes
2184 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2185 )
2186])
2187AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2188
2189
ebff016a 2190AC_ARG_WITH([systemd],
95a89bd3 2191 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
ebff016a
KZ
2192 [], [with_systemd=check]
2193)
2194
2195have_systemd=no
2196AS_IF([test "x$with_systemd" != xno], [
2197 # new version -- all libsystemd-* libs merged into libsystemd
2198 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2199 # old versions
2200 AS_IF([test "x$have_systemd" != "xyes"], [
2201 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2202 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2203 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2204 [have_systemd_journal=yes], [have_systemd_journal=no])
2205 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2206 have_systemd=yes])
ea45d34c 2207 ])
ebff016a
KZ
2208 AS_CASE([$with_systemd:$have_systemd],
2209 [yes:no],
2210 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2211 [*:yes],
2212 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2213 )
3013eb9d 2214])
ebff016a
KZ
2215AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2216
bbe289c4 2217
1b68c379 2218AC_ARG_WITH([systemdsystemunitdir],
95a89bd3 2219 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
7a95313c
KZ
2220 [], [with_systemdsystemunitdir=check]
2221)
2222AS_IF([test "x$with_systemdsystemunitdir" = xcheck], [
2223 AS_IF([test "x$have_systemd" = xyes], [
2224 with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
2225 ],[
2226 with_systemdsystemunitdir=no
2227 ])
2228])
3013eb9d 2229AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1b68c379 2230 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
3013eb9d 2231])
1b68c379 2232
bbe289c4 2233
b8095d25
KZ
2234AC_ARG_WITH([smack],
2235 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2236 [], [with_smack=no]
2237)
2238AS_IF([test "x$with_smack" = xyes], [
2239 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2240])
2241
2242
9cc36e9f
SK
2243AC_ARG_WITH([bashcompletiondir],
2244 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2245 [],
c8498f2f
SK
2246 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2247 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
9cc36e9f
SK
2248 ], [
2249 with_bashcompletiondir=${datadir}/bash-completion/completions
2250 ])
2251])
2252AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2253
ece777e9
KZ
2254AC_ARG_ENABLE([bash-completion],
2255 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
034d378b 2256 [], [enable_bash_completion=yes]
ece777e9
KZ
2257)
2258
034d378b 2259AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
ece777e9 2260
9cc36e9f 2261
d78df0ac 2262AC_ARG_WITH([python],
4c54effb
KZ
2263 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2264 [], [with_python=check withval=check]
d78df0ac 2265)
8e5c4675 2266
d78df0ac 2267have_python=no
b2ae8c57 2268have_libpython=no
8e5c4675
KZ
2269AS_IF([test "x$with_python" != xno], [
2270 # We follow distributions default and look for PKG module name "python"
2271 # (minimal version is 2) but if major version is explicitly specified by
2272 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2273 # "python3".
4c54effb 2274 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
0b567ae5 2275 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
b2ae8c57
KZ
2276
2277 # check for python interpreter
0b567ae5 2278 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
8e5c4675
KZ
2279 AS_CASE([$with_python:$have_python],
2280 [yes:no],
b2ae8c57 2281 [AC_MSG_ERROR([python selected but python interpreter not found])],
4c54effb 2282 [check:no],
b2ae8c57 2283 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
4c54effb 2284 [*:yes],
b2ae8c57
KZ
2285 # check for python development stuff
2286 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2287 [have_libpython=yes], [have_libpython=no])]
8e5c4675 2288 )
d78df0ac
KZ
2289])
2290
da0ec90b
KZ
2291
2292AC_ARG_ENABLE([pylibmount],
2293 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2294 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2295)
2296UL_BUILD_INIT([pylibmount])
b2ae8c57 2297UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
da0ec90b 2298UL_REQUIRES_BUILD([pylibmount], [libmount])
d78df0ac
KZ
2299AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2300
324330ac
FB
2301# We need to introduce a verbatim dependency into the Makefile, without automake
2302# trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2303verbatim_pylibmount_dependency='
2304
2305# pylibmountexec module must be installed after usrlib_exec libraries,
2306# otherwise the libtool relink step will fail to find libmount.la and
2307# will try -lmount which is possibly not available.
2308install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2309
2310'
2311AC_SUBST([verbatim_pylibmount_dependency])
2312AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
d78df0ac 2313
48d7b13a 2314AC_ARG_ENABLE([pg-bell],
7fa4f112 2315 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
034d378b 2316 [], [enable_pg_bell=yes]
48d7b13a
KZ
2317)
2318
3013eb9d 2319AS_IF([test "x$enable_pg_bell" = xyes], [
034d378b 2320 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
3013eb9d 2321])
48d7b13a
KZ
2322
2323
bb4cb69d
MF
2324AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2325AC_ARG_ENABLE([fs-paths-default],
2326 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
9f57e6e8
SK
2327 [AS_CASE([$enableval],
2328 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2329 [no], [fs_paths_defaults=""],
2330 [fs_paths_defaults="$enableval"]
2331 )],
bb4cb69d
MF
2332 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2333)
2334AC_ARG_ENABLE([fs-paths-extra],
2335 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
9f57e6e8
SK
2336 [AS_CASE([$enableval],
2337 [yes|no], [fs_paths_extra=""],
2338 [fs_paths_extra="$enableval"]
2339 )],
bb4cb69d
MF
2340 [fs_paths_extra=""]
2341)
2342fs_paths="$fs_paths_defaults"
3013eb9d
SK
2343AS_IF([test "x$fs_paths_extra" != "x"], [
2344 AS_IF([test "x$fs_paths" != "x"], [
bb4cb69d 2345 fs_paths="${fs_paths}:"
3013eb9d 2346 ])
bb4cb69d 2347 fs_paths="${fs_paths}${fs_paths_extra}"
3013eb9d 2348])
bb4cb69d
MF
2349AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2350
2351
48d7b13a 2352AC_ARG_ENABLE([use-tty-group],
7fa4f112 2353 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
034d378b 2354 [], [enable_use_tty_group=yes]
48d7b13a 2355)
034d378b 2356AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
48d7b13a 2357
3013eb9d 2358AS_IF([test "x$enable_use_tty_group" = xyes], [
034d378b 2359 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
3013eb9d 2360])
48d7b13a 2361
ab6478ef
WF
2362
2363AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
2364 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2365 [use emergency mount of /dev and /proc for sulogin]),
034d378b 2366 [], [enable_sulogin_emergency_mount=no]
ab6478ef
WF
2367)
2368
3013eb9d 2369AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
034d378b 2370 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
ab6478ef 2371 [Should sulogin use a emergency mount of /dev and /proc?])
3013eb9d 2372])
ab6478ef
WF
2373
2374
f71d1104
KZ
2375AC_ARG_ENABLE([usrdir-path],
2376 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2377 [], [enable_usrdir_path=no]
2378)
2379
2afbcec5 2380AS_IF([test "x$enable_usrdir_path" = xyes], [
f71d1104
KZ
2381 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2382])
2383
2384
f3831bbd
KZ
2385AC_ARG_ENABLE([makeinstall-chown],
2386 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
034d378b 2387 [], [enable_makeinstall_chown=yes]
f3831bbd 2388)
034d378b 2389AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
f3831bbd 2390
81f55ab9 2391
4c24a7ae
KZ
2392AC_ARG_ENABLE([makeinstall-setuid],
2393 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
034d378b 2394 [], [enable_makeinstall_setuid=yes]
4c24a7ae 2395)
034d378b 2396AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
4c24a7ae 2397
06bcee19 2398
81f55ab9
KZ
2399AC_ARG_ENABLE([colors-default],
2400 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2401 [], [enable_colors_default=yes]
2402)
2403AS_IF([test "x$enable_colors_default" = xyes], [
2404 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2405])
2406
2407
1f10890f
SK
2408AC_ARG_VAR([SUID_CFLAGS],
2409 [CFLAGS used for binaries which are usually with the suid bit])
2410AC_ARG_VAR([SUID_LDFLAGS],
2411 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 2412
03d00d49
KZ
2413AC_ARG_VAR([DAEMON_CFLAGS],
2414 [CFLAGS used for binaries which are usually executed as daemons])
2415AC_ARG_VAR([DAEMON_LDFLAGS],
2416 [LDFLAGS used for binaries which are usually executed as daemons])
2417
2418AC_ARG_VAR([SOLIB_CFLAGS],
2419 [CFLAGS used for shared libraries])
2420AC_ARG_VAR([SOLIB_LDFLAGS],
2421 [LDFLAGS used for shared libraries])
2422
2ad21963
KZ
2423AC_ARG_VAR([ADJTIME_PATH],
2424 [Path to hwclock adjtime file, default /etc/adjtime])
2425AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2426AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2427
2428
9cb68977 2429LIBS=""
48d7b13a 2430
48d7b13a 2431
034d378b 2432AC_CONFIG_HEADERS([config.h])
48d7b13a 2433
d4baf92e
KZ
2434#
2435# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2436# more details.
2437#
8eeb575c 2438AC_CONFIG_FILES([
f06b4328 2439Makefile
31a938ac 2440libblkid/docs/Makefile
8fb4efae 2441libblkid/docs/version.xml
8fb4efae 2442libblkid/src/blkid.h
705854f3
KZ
2443libfdisk/docs/Makefile
2444libfdisk/docs/version.xml
2445libfdisk/src/libfdisk.h
31a938ac 2446libmount/docs/Makefile
2aefc0a8 2447libmount/docs/version.xml
f06b4328 2448libmount/src/libmount.h
1d90bcb1
OO
2449libsmartcols/docs/Makefile
2450libsmartcols/docs/version.xml
1a4d989e 2451libsmartcols/src/libsmartcols.h
f06b4328 2452po/Makefile.in
8eeb575c 2453])
48d7b13a
KZ
2454
2455AC_OUTPUT
4e1073c2
KZ
2456
2457AC_MSG_RESULT([
2458 ${PACKAGE} ${VERSION}
2459
2460 prefix: ${prefix}
2461 exec prefix: ${exec_prefix}
2462
8df54559 2463 runstatedir: ${runstatedir}
5c0b406d 2464 bindir: ${bindir}
4e1073c2
KZ
2465 sbindir: ${sbindir}
2466 libdir: ${libdir}
2467 includedir: ${includedir}
5c0b406d
BS
2468 usrbin_execdir: ${usrbin_execdir}
2469 usrsbin_execdir: ${usrsbin_execdir}
2470 usrlib_execdir: ${usrlib_execdir}
4e1073c2
KZ
2471
2472 compiler: ${CC}
2473 cflags: ${CFLAGS}
2474 suid cflags: ${SUID_CFLAGS}
2475 ldflags: ${LDFLAGS}
2476 suid ldflags: ${SUID_LDFLAGS}
5348fa7d 2477 ASAN enabled: ${enable_asan}
8e5c4675 2478
0b567ae5
SK
2479 Python: ${PYTHON}
2480 Python version: ${PYTHON_VERSION}
3745d4a9
KZ
2481 Python libs: ${pyexecdir}
2482
8e5c4675 2483 Bash completions: ${with_bashcompletiondir}
ebff016a 2484 Systemd support: ${have_systemd}
7a95313c 2485 Systemd unitdir: ${with_systemdsystemunitdir}
5a971329 2486 Btrfs support: ${have_btrfs}
18dae5d8 2487 Wide-char support: ${build_widechar}
4e1073c2
KZ
2488
2489 warnings:
2490
2491${WARN_CFLAGS}
b4b84389
KZ
2492
2493 Type 'make' or 'make <utilname>' to compile.
4e1073c2 2494])