]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
flock: initialize timevals [-Werror=maybe-uninitialized]
[thirdparty/util-linux.git] / configure.ac
CommitLineData
034d378b 1AC_INIT([util-linux],
38c75b59 2 m4_esyscmd([tools/git-version-gen .tarball-version]),
4230b2d4 3 [kzak@redhat.com], [],
033b5a52 4 [https://www.kernel.org/pub/linux/utils/util-linux/])
baf39af1 5
b0e6b25e 6
4230b2d4 7AC_PREREQ([2.64])
48d7b13a 8
034d378b 9AC_CONFIG_AUX_DIR([config])
b12991dd 10AC_CONFIG_MACRO_DIR([m4])
eaf70198 11dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
4230b2d4 12dnl the compiler (like LT_INIT) to avoid autoconf errors.
eaf70198 13AC_USE_SYSTEM_EXTENSIONS
a527a360 14AM_INIT_AUTOMAKE([-Wall -Wno-portability 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 25PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{
c25b7d8a 26 sub("-.*","",$2); print $2}')
c42a6d4d 27PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{
c25b7d8a 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"
2dccaae4 32LIBBLKID_DATE="17-May-2023"
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
3d289965
KZ
77# Check whether prefix=/usr
78AS_CASE([$prefix],
79[NONE | /usr],
80 [AC_MSG_NOTICE([Default --prefix detected.])
81 AS_CASE([$localstatedir], [NONE | '${prefix}/var' | "${prefix}"/var ],
82 [localstatedir=/var; AC_MSG_NOTICE([ --localstatedir defaults to /var])])
83 AS_CASE([$sysconfdir], [NONE | '${prefix}/etc' | "${prefix}"/etc ],
84 [sysconfdir=/etc; AC_MSG_NOTICE([ --sysconfdir defaults to /etc])])
85
86 ]
87)
8df54559
AH
88
89# default for old versions without $runstatedir
90AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run'])
91
92# our default if $localstatedir unchanged
93AS_CASE([$localstatedir:$runstatedir],
94 [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ],
95 [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])]
9f57e6e8 96)
8df54559
AH
97
98AC_SUBST([runstatedir])
07a16b9d 99
b0a0d7d5 100
996fb358 101# The original default values of {bin,sbin,lib}dir
aaf3e8f5 102usrbin_execdir='${exec_prefix}/bin'
30688dde 103AC_SUBST([usrbin_execdir])
996fb358 104
aaf3e8f5 105usrsbin_execdir='${exec_prefix}/sbin'
30688dde 106AC_SUBST([usrsbin_execdir])
996fb358 107
9f57e6e8 108AS_CASE([$libdir],
b2b61efc 109 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
9f57e6e8
SK
110 [usrlib_execdir=$libdir],
111 [usrlib_execdir='${exec_prefix}'$libdir]
112)
30688dde 113AC_SUBST([usrlib_execdir])
996fb358 114
c2409b55
KZ
115# static configuration maintaned by packages (e.g. /usr/lib)
116AC_ARG_VAR([SYSCONFSTATICDIR],
117 [Path to static system configuration, default ${prefix}/lib])
118AS_IF([test "x$SYSCONFSTATICDIR" = x],
119 [sysconfstaticdir='${prefix}/lib'],
120 [sysconfstaticdir=$SYSCONFSTATICDIR])
121AC_SUBST([sysconfstaticdir])
122
4230b2d4 123AC_PROG_CC
31c9c1c4 124AM_PROG_CC_C_O
18336d16 125AC_PROG_MKDIR_P
30d7f61f 126AC_PROG_YACC
cf4f9ec8
KZ
127
128# Don't use autotools integrated LEX/YACC support for libsmartcols
129AC_PATH_PROG([FLEX], [flex])
130AC_PATH_PROG([BISON], [bison])
131
a6996860 132AC_CANONICAL_HOST
85b4c147 133AC_C_CONST
e79829db 134AC_C_VOLATILE
b12991dd 135
0e60bc9b 136dnl Compiler warnings
b1b54edf 137UL_WARN_ADD([-fno-common])
9dc72d0b 138UL_WARN_ADD([-Wall])
0e60bc9b 139UL_WARN_ADD([-Wextra])
c25b7d8a
SK
140
141UL_WARN_ADD([-Waddress-of-packed-member])
142UL_WARN_ADD([-Wdiscarded-qualifiers])
4230d576 143UL_WARN_ADD([-Wembedded-directive])
c25b7d8a
SK
144UL_WARN_ADD([-Wextra-semi])
145UL_WARN_ADD([-Wformat-security])
146UL_WARN_ADD([-Wimplicit-function-declaration])
b1b54edf
KZ
147UL_WARN_ADD([-Wmissing-declarations])
148UL_WARN_ADD([-Wmissing-parameter-type])
149UL_WARN_ADD([-Wmissing-prototypes])
c25b7d8a 150UL_WARN_ADD([-Wnested-externs])
0e60bc9b 151UL_WARN_ADD([-Wno-missing-field-initializers])
9df5ac34 152UL_WARN_ADD([-Wold-style-definition])
c25b7d8a 153UL_WARN_ADD([-Wpointer-arith])
b1b54edf 154UL_WARN_ADD([-Wredundant-decls])
0e60bc9b 155UL_WARN_ADD([-Wsign-compare])
c25b7d8a 156UL_WARN_ADD([-Wstrict-prototypes])
0e60bc9b
KZ
157UL_WARN_ADD([-Wtype-limits])
158UL_WARN_ADD([-Wuninitialized])
b1b54edf
KZ
159UL_WARN_ADD([-Wunused-but-set-parameter])
160UL_WARN_ADD([-Wunused-but-set-variable])
0e60bc9b 161UL_WARN_ADD([-Wunused-parameter])
0e60bc9b 162UL_WARN_ADD([-Wunused-result])
bec5c9db 163UL_WARN_ADD([-Wunused-variable])
a52f9bdd 164UL_WARN_ADD([-Wvla])
2a91b213 165UL_WARN_ADD([-Walloca])
63c80c4c
KZ
166
167AC_ARG_ENABLE([werror],
168 AS_HELP_STRING([--enable-werror], [make all compiler warnings into errors]),
169 [], [enable_werror=no]
170)
171AS_IF([test "x$enable_werror" = xyes], [
172 UL_WARN_ADD([-Werror])
173],[
174 UL_WARN_ADD([-Werror=sequence-point])
175])
176
0e60bc9b
KZ
177AC_SUBST([WARN_CFLAGS])
178
63c80c4c 179
034d378b 180UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
7697771d 181AC_SUBST([BSD_WARN_CFLAGS])
4f9d999a
KZ
182
183UL_WARN_ADD([-Wno-cast-function-type], [PYTHON_WARN_CFLAGS])
184AC_SUBST([PYTHON_WARN_CFLAGS])
185
b97cc9a8
KZ
186
187AC_ARG_ENABLE([asan],
188 AS_HELP_STRING([--enable-asan], [compile with Address Sanitizer]),
189 [], [enable_asan=no]
190)
2afbcec5 191AS_IF([test "x$enable_asan" = xyes], [
b97cc9a8 192 UL_WARN_ADD([-fsanitize=address])
ef61c093 193 ASAN_LDFLAGS="-fsanitize=address"
b97cc9a8 194])
ef61c093 195AC_SUBST([ASAN_LDFLAGS])
b97cc9a8 196
e6a4d8cc
EV
197AC_ARG_ENABLE([ubsan],
198 AS_HELP_STRING([--enable-ubsan], [compile with UBsan]),
199 [], [enable_ubsan=no]
200)
201AS_IF([test "x$enable_ubsan" = xyes], [
202 UL_WARN_ADD([-fsanitize=undefined])
203 UBSAN_LDFLAGS="-fsanitize=undefined"
204])
205AC_SUBST([UBSAN_LDFLAGS])
206
ccdc47b7
EV
207AC_ARG_ENABLE([fuzzing-engine],
208 AS_HELP_STRING([--enable-fuzzing-engine], [compile with fuzzing engine]),
209 [], [enable_fuzzing_engine=no]
210)
948182f4 211AS_IF([test "x$enable_fuzzing_engine" = xyes && test "x$LIB_FUZZING_ENGINE" = x], [
75196cd8
EV
212 UL_WARN_ADD([-fno-omit-frame-pointer])
213 UL_WARN_ADD([-gline-tables-only])
214 UL_WARN_ADD([-fsanitize=fuzzer-no-link])
215 FUZZING_ENGINE_LDFLAGS="-fsanitize=fuzzer-no-link"
216])
217AC_SUBST([FUZZING_ENGINE_LDFLAGS])
ccdc47b7 218AC_PROG_CXX
75196cd8
EV
219AM_CONDITIONAL([FUZZING_ENGINE], [test "x$enable_fuzzing_engine" = xyes])
220AM_CONDITIONAL([OSS_FUZZ], [test "x$LIB_FUZZING_ENGINE" != x])
ccdc47b7 221
b4b8f8c2
FS
222AC_ARG_ENABLE([coverage],
223 AS_HELP_STRING([--enable-coverage], [compile with gcov]),
224 [], [enable_coverage=no]
225)
226AS_IF([test "x$enable_coverage" = xyes], [
227 UL_WARN_ADD([--coverage])
228 COVERAGE_LDFLAGS="--coverage"
229])
230AC_SUBST([COVERAGE_LDFLAGS])
231AM_CONDITIONAL([WITH_COVERAGE], [test "x$enable_coverage" = xyes])
232
b12991dd
KZ
233dnl libtool-2
234LT_INIT
48d7b13a 235
3719bf8d
RM
236dnl check supported linker flags
237AX_CHECK_VSCRIPT
238
fd0f4132
SK
239m4_ifndef([PKG_PROG_PKG_CONFIG],
240 [m4_fatal([Could not locate the pkg-config autoconf
241 macros. These are usually located in /usr/share/aclocal/pkg.m4.
242 If your macros are in a different location, try setting the
243 environment variable AL_OPTS="-I/other/macro/dir" before running
bf2603c7 244 ./autogen.sh or autoreconf again. Make sure pkg-config is installed.])])
d06d028a 245PKG_PROG_PKG_CONFIG
99f95a1e 246PKG_INSTALLDIR(['${usrlib_execdir}/pkgconfig'])
d06d028a 247
22aa5166
KZ
248GTK_DOC_CHECK([1.10])
249AC_PATH_PROG([XSLTPROC], [xsltproc])
236421a4
KZ
250
251
8c182554 252linux_os=no
8026fa9b
KZ
253bsd_os=no
254AS_CASE([${host_os}],
255 [*linux*],
256 [linux_os=yes],
40733239
RM
257 [*darwin*],
258 [darwin_os=yes],
8026fa9b
KZ
259 [*bsd*],
260 [bsd_os=yes])
034d378b 261AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
40733239 262AM_CONDITIONAL([DARWIN], [test "x$darwin_os" = xyes])
8026fa9b
KZ
263AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
264
40733239
RM
265AS_IF([test "x$darwin_os" = xyes], [
266 AC_DEFINE([_DARWIN_C_SOURCE], [1], [Enable MAP_ANON in sys/mman.h on Mac OS X])
267])
8c182554 268
3c6e292c 269dnl define ARCH_<NAME> conditionals
034d378b
SK
270UL_SET_ARCH([I86], [i?86-*])
271UL_SET_ARCH([86_64], [x86_64*])
272UL_SET_ARCH([IA64], [ia64*])
273UL_SET_ARCH([S390], [s390*])
274UL_SET_ARCH([SPARC], [sparc*])
275UL_SET_ARCH([PPC], [ppc*|powerpc*])
276UL_SET_ARCH([M68K], [m68*])
277UL_SET_ARCH([MIPS], [mips*])
f319e301 278UL_SET_ARCH([HPPA], [hppa*|parisc*])
3c6e292c 279
48d7b13a 280AC_SYS_LARGEFILE
2c656779 281AC_HEADER_ASSERT
f69eba17 282AC_STRUCT_TIMEZONE
f6e7a21c
TW
283UL_YEAR2038_INIT
284AC_SYS_YEAR2038_RECOMMENDED
48d7b13a 285
f8d75a66 286dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
91c520bc 287AM_GNU_GETTEXT_VERSION([0.18.3])
09734b00 288AM_GNU_GETTEXT([external])
3013eb9d
SK
289
290AS_IF([test -d "$srcdir/po"], [
291 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
c25b7d8a
SK
292], [dnl echo $ALL_LINGUAS | sed 's/ /\n/g' | sort -u | column -xc 72 -o ' ' | sed 's/^/\t/'
293 ALL_LINGUAS="
294 af am ar as be bg bn bn_IN ca
295 cs cy da de el en_GB es et eu_ES
296 fa fi fr gl gu he hi hr hu
297 hy id is it ja ka kn ko ku
298 lo lt lv mk ml mr ms my nb
299 nl nn no nso or pa pl pt pt_BR
300 ro ru si sk sl sq sr sr@Latn sv
301 ta te th tr uk ur vi zh_CN zh_TW
302 zu
303"])
09734b00 304
e460a5bf 305AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
48d7b13a
KZ
306#ifdef HAVE_LINUX_COMPILER_H
307#include <linux/compiler.h>
308#endif
309])
f06b4328 310AC_CHECK_HEADERS([ \
908ac36f
MY
311 asm-generic/fcntl.h \
312 asm/fcntl.h \
f06b4328 313 asm/io.h \
c25b7d8a
SK
314 byteswap.h \
315 endian.h \
f06b4328 316 err.h \
a0948ffe 317 errno.h \
f06b4328 318 fcntl.h \
a0948ffe 319 getopt.h \
f06b4328 320 inttypes.h \
6578ced7 321 lastlog.h \
77835be2 322 libutil.h \
647f80e4 323 linux/blkzoned.h \
5a971329 324 linux/btrfs.h \
c25b7d8a 325 linux/capability.h \
f06b4328
SK
326 linux/cdrom.h \
327 linux/falloc.h \
a0948ffe 328 linux/fd.h \
c25b7d8a 329 linux/fiemap.h \
ae015d71 330 linux/landlock.h \
f4d700d7 331 linux/kcmp.h \
c25b7d8a 332 linux/net_namespace.h \
d652d4c6 333 linux/nsfs.h \
627428a9 334 linux/pr.h \
f06b4328 335 linux/raw.h \
c25b7d8a 336 linux/securebits.h \
a0948ffe
KZ
337 linux/tiocl.h \
338 linux/version.h \
c25b7d8a 339 linux/watchdog.h \
259bed15 340 linux/if_alg.h \
8b7f16fc 341 locale.h \
607c2a72 342 mntent.h \
754fed0c 343 net/if_dl.h \
c25b7d8a 344 net/if.h \
f06b4328
SK
345 netinet/in.h \
346 paths.h \
347 pty.h \
fe2c9909 348 security/pam_appl.h \
c25b7d8a 349 shadow.h \
f06b4328 350 stdint.h \
78288764 351 stdio_ext.h \
a0948ffe
KZ
352 stdlib.h \
353 sys/disk.h \
354 sys/disklabel.h \
c25b7d8a 355 sys/endian.h \
f06b4328 356 sys/file.h \
f06b4328
SK
357 sys/ioccom.h \
358 sys/ioctl.h \
c25b7d8a 359 sys/io.h \
a0948ffe 360 sys/mkdev.h \
ac1c53e4 361 sys/mount.h \
4ebac79f 362 sys/param.h \
84732a88 363 sys/pidfd.h \
a0948ffe 364 sys/prctl.h \
f06b4328 365 sys/resource.h \
c25b7d8a 366 sys/sendfile.h \
651b25cd 367 sys/signalfd.h \
2a7c1f70 368 sys/socket.h \
f06b4328 369 sys/sockio.h \
a0948ffe 370 sys/stat.h \
3671d4a8 371 sys/statfs.h \
f06b4328
SK
372 sys/swap.h \
373 sys/syscall.h \
c25b7d8a 374 sys/sysmacros.h \
f06b4328 375 sys/time.h \
87ee2658 376 sys/timex.h \
00c505d9 377 sys/ttydefaults.h \
a0948ffe 378 sys/types.h \
ac1c53e4 379 sys/ucred.h \
754fed0c 380 sys/un.h \
3671d4a8 381 sys/vfs.h \
40b119b9 382 sys/xattr.h \
f06b4328 383 unistd.h \
77835be2 384 utmp.h \
b4b919fe 385 utmpx.h \
f06b4328 386])
dc61d398 387
a0357292
KZ
388# There is a collision in old kernel-headers. The both files mount.h and fs.h
389# define MS_* macros. Fixed by kernel commit e462ec50cb5fad19f6003a3d8087f4a0945dd2b1.
390#
391AC_CHECK_HEADERS([linux/fs.h ], [], [],
392 [#ifdef HAVE_SYS_MOUNT_H
393 # include <linux/fs.h>
394 # include <sys/mount.h>
395 #endif
396])
397
5502e73d
MM
398AC_CHECK_HEADERS([linux/mount.h ], [], [],
399 [#ifdef HAVE_LINUX_MOUNT_H
400 # include <linux/mount.h>
401 #endif
402])
403
db4e2645
KZ
404AC_CHECK_HEADERS([linux/gsmmux.h ], [], [],
405 [#ifdef LINUX_GSMMUX_H
406 # include <linux/gsmmux.h>
407 #endif
408])
409
fe2c9909
WJ
410AC_CHECK_HEADERS([security/pam_misc.h],
411 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
412 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
413#ifdef HAVE_SECURITY_PAM_APPL_H
414#include <security/pam_appl.h>
415#endif
416])
417
e5ad3a6a
SK
418AC_CHECK_DECLS([BLK_ZONE_REP_CAPACITY], [], [], [
419 #include <linux/blkzoned.h>
420])
421
627428a9 422AC_CHECK_DECLS([PR_REP_CAPACITY], [], [], [
423 #include <linux/pr.h>
424])
425
fe2c9909
WJ
426AC_CHECK_HEADERS([security/openpam.h], [], [], [
427#ifdef HAVE_SECURITY_PAM_APPL_H
428#include <security/pam_appl.h>
429#endif
430])
431
a67387b7 432AC_CHECK_HEADERS([langinfo.h],
ac660b80
ZJS
433 [AM_CONDITIONAL([HAVE_LANGINFO_H], [true])],
434 [AM_CONDITIONAL([HAVE_LANGINFO_H], [false])])
a67387b7 435
4e12a62e
RL
436AC_MSG_CHECKING([whether langinfo.h defines ALTMON_x constants])
437AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
438 #include <langinfo.h>
439]], [[
440 char *str;
441 str = nl_langinfo (ALTMON_1);
442 str = nl_langinfo (ALTMON_2);
443 str = nl_langinfo (ALTMON_3);
444 str = nl_langinfo (ALTMON_4);
445 str = nl_langinfo (ALTMON_5);
446 str = nl_langinfo (ALTMON_6);
447 str = nl_langinfo (ALTMON_7);
448 str = nl_langinfo (ALTMON_8);
449 str = nl_langinfo (ALTMON_9);
450 str = nl_langinfo (ALTMON_10);
451 str = nl_langinfo (ALTMON_11);
452 str = nl_langinfo (ALTMON_12);
453]])], [
454 AC_MSG_RESULT([yes])
455 AC_DEFINE([HAVE_LANGINFO_ALTMON], [1],
456 [Define if langinfo.h defines ALTMON_x constants])
457], [
458 AC_MSG_RESULT([no])
459])
460
461
462AC_MSG_CHECKING([whether langinfo.h defines _NL_ABALTMON_x constants])
463AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
464 #include <langinfo.h>
465]], [[
466 char *str;
467 str = nl_langinfo (_NL_ABALTMON_1);
468 str = nl_langinfo (_NL_ABALTMON_2);
469 str = nl_langinfo (_NL_ABALTMON_3);
470 str = nl_langinfo (_NL_ABALTMON_4);
471 str = nl_langinfo (_NL_ABALTMON_5);
472 str = nl_langinfo (_NL_ABALTMON_6);
473 str = nl_langinfo (_NL_ABALTMON_7);
474 str = nl_langinfo (_NL_ABALTMON_8);
475 str = nl_langinfo (_NL_ABALTMON_9);
476 str = nl_langinfo (_NL_ABALTMON_10);
477 str = nl_langinfo (_NL_ABALTMON_11);
478 str = nl_langinfo (_NL_ABALTMON_12);
479]])], [
480 AC_MSG_RESULT([yes])
481 AC_DEFINE([HAVE_LANGINFO_NL_ABALTMON], [1],
482 [Define if langinfo.h defines _NL_ABALTMON_x constants])
483], [
484 AC_MSG_RESULT([no])
485])
486
487
16ba8d58
KZ
488dnl Convert some ac_cv_header_* variables to have_*
489dnl
70bb5345 490have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h
5a971329 491have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h
c25b7d8a 492have_linux_capability_h=$ac_cv_header_linux_capability_h
f4d700d7 493have_linux_kcmp_h=$ac_cv_header_linux_kcmp_h
5502e73d 494have_linux_mount_h=$ac_cv_header_linux_mount_h
627428a9 495have_linux_pr_h=$ac_cv_header_linux_pr_h
16ba8d58 496have_linux_raw_h=$ac_cv_header_linux_raw_h
48469f90 497have_linux_securebits_h=$ac_cv_header_linux_securebits_h
c25b7d8a 498have_linux_version_h=$ac_cv_header_linux_version_h
5b0289b9 499have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
c25b7d8a
SK
500have_pty_h=$ac_cv_header_pty_h
501have_security_openpam_h=$ac_cv_header_security_openpam_h
fe2c9909 502have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
ff0cb84d 503have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
d00c10ed 504have_shadow_h=$ac_cv_header_shadow_h
651b25cd 505have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h
b4b919fe 506have_utmpx_h=$ac_cv_header_utmpx_h
94c8821b 507have_mntent_h=$ac_cv_header_mntent_h
a67387b7 508
8a931412
KZ
509AS_CASE([$linux_os:$have_linux_version_h],
510 [yes:no],
511 [AC_MSG_ERROR([kernel headers required on Linux])]
512)
513
a67387b7
KZ
514AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
515#include <time.h>
516#include <unistd.h>
517]], [[
518 int a = 0;
519 struct tm *tm = localtime(0);
520 if (a == -1) /* false */
f06b4328 521 sleep(tm->tm_gmtoff);
a67387b7 522]])],
034d378b 523[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
a67387b7
KZ
524])
525
10efb9ea 526AC_CHECK_TYPES([struct mount_attr], [], [], [[#include <linux/mount.h>]])
0120be6f 527AC_CHECK_TYPES([enum fsconfig_command], [], [], [[#include <linux/mount.h>]])
013e0db4 528
a67387b7
KZ
529AC_CHECK_MEMBERS([struct termios.c_line],,,
530 [[#include <termios.h>]])
531
532AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
c0136ac0
KZ
533 [[#include <sys/stat.h>]])
534
7d679f29 535AC_CHECK_TYPES([struct statx], [], [], [[#include <sys/stat.h>]])
c0136ac0 536AC_CHECK_MEMBERS([struct statx.stx_mnt_id],,,
7d679f29 537 [[#include <sys/stat.h>]])
a67387b7 538
a88057d9
TP
539AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
540
0e9b73d3 541AC_CHECK_DECL([environ],
034d378b 542 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
0e9b73d3
SK
543 [Define to 1 if have **environ prototype])],
544)
545
546AC_CHECK_DECL([strsignal],
034d378b 547 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
0e9b73d3
SK
548 [Define to 1 if have strsignal function prototype])],
549)
550
1eb16fd7
KZ
551AC_CHECK_DECL([TIOCGLCKTRMIOS],
552 [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no],
c25b7d8a 553 [#include <sys/ioctl.h>])
1eb16fd7
KZ
554AC_CHECK_DECL([SOCK_CLOEXEC],
555 [have_sock_cloexec=yes], [have_sock_cloexec=no],
556 [#include <sys/types.h>
c25b7d8a 557 #include <sys/socket.h>])
1eb16fd7
KZ
558AC_CHECK_DECL([SOCK_NONBLOCK],
559 [have_sock_nonblock=yes], [have_sock_nonblock=no],
560 [#include <sys/types.h>
c25b7d8a 561 #include <sys/socket.h>])
1eb16fd7
KZ
562AC_CHECK_DECL([SO_PASSCRED],
563 [have_so_passcred=yes], [have_so_passcred=no],
564 [#include <sys/types.h>
c25b7d8a 565 #include <sys/socket.h>])
1eb16fd7 566
f06b4328 567AC_CHECK_FUNCS([ \
c214cbeb 568 cachestat \
75efef98 569 clearenv \
f0649c0d 570 close_range \
c08396c7 571 eaccess \
eb76ca98
FG
572 err \
573 errx \
87583438 574 explicit_bzero \
c25b7d8a
SK
575 __fpending \
576 __fpurge \
577 fpurge \
d9b022bd 578 fnmatch \
0120be6f
KZ
579 fsconfig \
580 fsmount \
581 fsopen \
582 fspick \
bf962c0a
SK
583 fsync \
584 getdomainname \
f06b4328
SK
585 getdtablesize \
586 getexecname \
587 getmntinfo \
cc01c2dc 588 getrandom \
f06b4328 589 getrlimit \
c829aebc 590 getsgnam \
1cf6e936 591 getttynam \
f06b4328 592 inotify_init \
3ac22f7a 593 jrand48 \
ae015d71
TW
594 landlock_create_ruleset \
595 landlock_add_rule \
596 landlock_restrict_self \
bf962c0a 597 lchown \
3854515c
KZ
598 lgetxattr \
599 llistxattr \
a0948ffe 600 llseek \
670b10ae 601 newlocale \
02887b73 602 mempcpy \
4d751c00 603 mkostemp \
013e0db4
CB
604 move_mount \
605 mount_setattr \
f06b4328 606 nanosleep \
7d3a07d8 607 ntp_gettime \
013e0db4 608 open_tree \
f06b4328 609 personality \
6e6b9a1d
SK
610 pidfd_open \
611 pidfd_send_signal \
f06b4328
SK
612 posix_fadvise \
613 prctl \
9c7955da 614 qsort_r \
0322c9cd 615 reallocarray \
cd094a05 616 renameat2 \
f06b4328 617 rpmatch \
485a8bfa 618 scandirat \
c25b7d8a
SK
619 sched_setattr \
620 sched_setscheduler \
621 __secure_getenv \
622 secure_getenv \
360cdaa6 623 sendfile \
30fbf2f6 624 setprogname \
69045d3d
KZ
625 setresgid \
626 setresuid \
f06b4328
SK
627 sigqueue \
628 srandom \
30c59d67 629 statx \
f06b4328 630 strnchr \
69b7e41e
KZ
631 strndup \
632 strnlen \
670b10ae 633 strtod_l \
f06b4328 634 sysconf \
88e0f3df 635 sysinfo \
b72a75e9 636 timegm \
f06b4328 637 usleep \
670b10ae 638 uselocale \
c25b7d8a 639 utimensat \
31f85fce 640 vwarnx \
eb76ca98
FG
641 warn \
642 warnx \
f06b4328 643])
48d7b13a 644AC_FUNC_FSEEKO
48d7b13a 645
90d5285d 646AC_CHECK_FUNCS([futimens], [have_futimens=yes])
c25b7d8a 647AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
90d5285d 648AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
c25b7d8a
SK
649AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
650AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
f9c4d138 651AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
e52b58e6 652AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
227ebea7 653AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
465e9973 654
dc049516 655AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
ae015d71 656AM_CONDITIONAL([HAVE_LINUX_LANDLOCK_H], [test "x$ac_cv_header_linux_landlock_h" = xyes])
dc049516 657
7a3b35b9
KZ
658have_setns_syscall="yes"
659UL_CHECK_SYSCALL([setns])
660AS_IF([test "x$ul_cv_syscall_setns" = xno], [
661 have_setns_syscall="no"
662])
feda4342 663
6e6b9a1d
SK
664UL_CHECK_SYSCALL([pidfd_open])
665UL_CHECK_SYSCALL([pidfd_send_signal])
f0649c0d 666UL_CHECK_SYSCALL([close_range])
0120be6f
KZ
667UL_CHECK_SYSCALL([fsconfig])
668UL_CHECK_SYSCALL([fsmount])
669UL_CHECK_SYSCALL([fsopen])
670UL_CHECK_SYSCALL([fspick])
e087a188 671UL_CHECK_SYSCALL([mount_setattr])
0120be6f
KZ
672UL_CHECK_SYSCALL([move_mount])
673UL_CHECK_SYSCALL([open_tree])
674
9040c090
KZ
675AS_IF([test "x$ul_cv_syscall_fsconfig" = xno ||
676 test "x$ul_cv_syscall_fsmount" = xno ||
677 test "x$ul_cv_syscall_fsopen" = xno ||
678 test "x$ul_cv_syscall_fspick" = xno ||
679 test "x$ul_cv_syscall_mount_setattr" = xno ||
680 test "x$ul_cv_syscall_move_mount" = xno ||
681 test "x$ul_cv_syscall_open_tree" = xno],
682 [
683 have_mountfd_api="no"
684 ],[
685 have_mountfd_api="yes"
686 AC_DEFINE([HAVE_MOUNTFD_API], [1], [Define to 1 if you want mount API based on FDs.])
687 ])
688
e087a188 689
feda4342
KZ
690AC_CHECK_FUNCS([isnan], [],
691 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
4953018e 692 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
feda4342
KZ
693)
694AC_SUBST([MATH_LIBS])
695
696
378543e1 697dnl lib/mononotic.c may require -lrt
254743e4
KZ
698AC_CHECK_FUNCS([clock_gettime], [],
699 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
700)
bd9b94d1 701
254743e4 702have_timer="no"
f07a82c9 703AC_CHECK_FUNCS([timer_create],
7944a03c 704 [have_timer="yes"],
254743e4
KZ
705 [AC_CHECK_LIB([rt], [timer_create], [
706 have_timer="yes"
707 REALTIME_LIBS="-lrt"
f2458cf9 708 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
bf6be9f5
LT
709 ],[
710 AC_SEARCH_LIBS([timer_create], [rt], [
711 AC_MSG_RESULT(yes)
712 have_timer="yes"
713 REALTIME_LIBS="-lrt -lpthread"
f2458cf9 714 AC_DEFINE([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
bf6be9f5
LT
715 ],[], [-lpthread]
716 )
9a558f9c 717 ])]
254743e4 718)
8fc4a886 719
f07a82c9
KZ
720AC_SUBST([REALTIME_LIBS])
721
6df5acf9
KZ
722AS_IF([test x"$have_timer" = xno], [
723 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
724])
725
f07a82c9
KZ
726
727AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
728 RTAS_LIBS="-lrtas"
f2458cf9 729 AC_DEFINE([HAVE_LIBRTAS], [1], [Define if librtas exists])
f07a82c9
KZ
730])
731AC_SUBST([RTAS_LIBS])
732
8fc4a886 733
034d378b 734AC_CHECK_MEMBER([struct sockaddr.sa_len],
f2458cf9 735 AC_DEFINE([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
754fed0c
KZ
736 [#include <sys/types.h>
737 #include <sys/socket.h>])
738
60cc9f94 739SOCKET_LIBS=
60cc9f94 740AC_SEARCH_LIBS([socket], [socket],
3013eb9d
SK
741 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
742 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
743])
60cc9f94
FG
744AC_SUBST([SOCKET_LIBS])
745
d58c47d9
FG
746
747have_dirfd=no
748AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
3013eb9d 749AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
750 AC_CHECK_DECLS([dirfd],
751 [have_dirfd=yes], [have_dirfd=no],
752 [#include <sys/types.h>
753 #include <dirent.h>])
3013eb9d 754])
d58c47d9
FG
755
756have_ddfd=no
3013eb9d 757AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
758 AC_CHECK_MEMBERS([DIR.dd_fd],
759 [have_ddfd=yes], [have_ddfd=no],
760 [#include <sys/types.h>
761 #include <dirent.h>])
3013eb9d 762])
d58c47d9 763
948182f4 764AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes || test "x$have_ddfd" = xyes])
d58c47d9 765
330555c4
MY
766MQ_LIBS=
767AC_CHECK_LIB([rt], [mq_open], [MQ_LIBS="-lrt"])
768AC_SUBST([MQ_LIBS])
d58c47d9 769
d6abf168
SK
770AC_MSG_CHECKING([whether program_invocation_short_name is defined])
771AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
37edac9a 772 #include <errno.h>
d6abf168
SK
773]], [[
774 program_invocation_short_name = "test";
775]])], [
776 AC_MSG_RESULT([yes])
777 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
778 [Define if program_invocation_short_name is defined])
779], [
780 AC_MSG_RESULT([no])
781])
782
a804f444
FG
783
784AC_MSG_CHECKING([whether __progname is defined])
785AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
cf582a2e 786 [if (*__progname == 0) return 1;])],
034d378b
SK
787 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
788 AC_MSG_RESULT([yes]),
789 AC_MSG_RESULT([no]))
a804f444 790
a0cf9105
LB
791AC_CHECK_DECL([IOC_OPAL_GET_STATUS],
792 [AC_DEFINE([HAVE_OPAL_GET_STATUS], [1],
793 [Define to 1 if OPAL status ioctl is defined])],,
794 [#include <linux/sed-opal.h>])
795
8569410c 796dnl Static compilation
c25b7d8a 797m4_define([UL_STATIC_PROGRAMS], [blkid, fdisk, losetup, mount, nsenter, sfdisk, umount, unshare])
8569410c
SK
798
799AC_ARG_ENABLE([static-programs],
800 [AS_HELP_STRING([--enable-static-programs=LIST],
801 [link static the programs in LIST (comma-separated,
132ea941 802 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
8569410c 803
9f57e6e8
SK
804AS_CASE([$enable_static_programs],
805 [yes],
d924b10b 806 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
9f57e6e8
SK
807 [no],
808 [enable_static_programs=]
809)
8569410c 810
8569410c 811dnl Set all the individual AM_CONDITIONALs
132ea941 812m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
9f57e6e8
SK
813 AS_CASE([,$enable_static_programs,],
814 [*,UL_PRG,*], [static_[]UL_PRG=yes]
815 )
d924b10b 816 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
132ea941
KZ
817 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
818 [test "x$static_[]UL_PRG" = xyes])
8569410c
SK
819])
820
08b1c219
KZ
821
822AC_ARG_ENABLE([all-programs],
823 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
824 [], [enable_all_programs=undefined]
825)
826
827AS_CASE([$enable_all_programs],
7477f356 828 [yes], [AC_MSG_WARN([force to build all programs by default])
c25b7d8a 829 ul_default_estate=check],
22a900a9 830 [no], [AC_MSG_WARN([disable all programs and man pages by default])
c25b7d8a 831 ul_default_estate=no]
08b1c219
KZ
832)
833
834
22a900a9
KZ
835AC_ARG_ENABLE([asciidoc],
836 AS_HELP_STRING([--disable-asciidoc], [do not generate man pages from asciidoc]),
837 [], [UL_DEFAULT_ENABLE([asciidoc], [check])]
838)
839UL_BUILD_INIT([asciidoc])
840UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages])
841AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes])
a5b09369 842have_asciidoctor_failure_level=no
25a70dcb
TW
843AS_IF([test "x$build_asciidoc" = xyes], [
844 AC_MSG_CHECKING([whether ${ASCIIDOCTOR} supports --failure-level])
845 AS_IF([${ASCIIDOCTOR} --help | grep failure-level >/dev/null 2>&1 ], [
846 AC_MSG_RESULT([yes])
a5b09369 847 have_asciidoctor_failure_level=yes
25a70dcb
TW
848 ], [
849 AC_MSG_RESULT([no])
25a70dcb
TW
850 ])
851])
a5b09369 852AM_CONDITIONAL([HAVE_ASCIIDOCTOR_FAILURE_LEVEL], [test "x$have_asciidoctor_failure_level" = xyes])
22a900a9 853
1a30b2bd
KZ
854have_manpages=no
855AS_IF([test -f "$srcdir/sys-utils/mount.8"], [
856 AC_MSG_NOTICE([re-use already generated man-pages.])
857 have_manpages=yes]
858)
859AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes])
860
22a900a9 861
8f5fff53 862AC_ARG_ENABLE([poman],
9acfc349
KZ
863 AS_HELP_STRING([--disable-poman], [generate translated man pages]),
864 [], [UL_DEFAULT_ENABLE([poman], [check])]
8f5fff53
KZ
865)
866UL_BUILD_INIT([poman])
867UL_REQUIRES_PROGRAM([poman], [PO4A], [po4a], [translated man pages])
5e42ec32 868AM_CONDITIONAL([ENABLE_POMAN], [test "x$build_poman" = xyes])
8f5fff53
KZ
869
870
d7a01582 871AX_CHECK_TLS
3ac22f7a 872
37a11e1a 873have_pty=no
17d71034
KZ
874AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
875 [], [with_util=auto]
876)
877AS_IF([test "x$with_util" = xno], [
878 AM_CONDITIONAL([HAVE_UTIL], [false])
879 have_util=no
880], [
881 UL_CHECK_LIB([util], [openpty])
882])
883
948182f4 884AS_IF([test "x$have_pty_h" = xyes && test "x$have_sys_signalfd_h" = xyes && test "x$have_util" = xyes], [
6954895c
KZ
885 AM_CONDITIONAL([HAVE_PTY], [true])
886 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
37a11e1a 887 have_pty=yes
6954895c
KZ
888], [
889 AM_CONDITIONAL([HAVE_PTY], [false])
890])
17d71034 891
3aecf79d
KZ
892AC_CHECK_TYPES([union semun], [], [], [[
893#include <sys/sem.h>
894]])
034d378b 895AC_CHECK_TYPES([loff_t])
3aecf79d 896
4cb6fea5
KZ
897
898AC_ARG_ENABLE([widechar],
899 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
900 [], [enable_widechar=check]
901)
902UL_BUILD_INIT([widechar])
903UL_REQUIRES_COMPILE([widechar], [[
904 #include <wchar.h>
905 #include <wctype.h>
906 #include <stdio.h>
1632856e 907 #include <stdlib.h>
4cb6fea5
KZ
908 ]], [[
909 wchar_t wc;
910 wint_t w;
911 w = fgetwc(stdin);
912 if (w == WEOF) exit(1);
913 wc = w;
914 fputwc(wc,stdout);
915 ]],
916 [wchar_t support])
917
918AS_IF([test "x$build_widechar" = xyes ], [
919 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
3aecf79d
KZ
920])
921
4cb6fea5 922
3aecf79d
KZ
923AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
924#include <sched.h>
925]])
926
034d378b 927AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
3aecf79d 928
b09bc508
MF
929AC_CHECK_TYPES([sighandler_t], [], [], [[
930#include <signal.h>
931]])
932
3aecf79d
KZ
933AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
934#include <sched.h>
935]])
936
8d35bdc9 937# on Solaris, you can't mix and match standards, since we use c99
218b1dd6 938# apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
8d35bdc9 939# check for crypt.h and use that without XOPEN_SOURCE.
8229ed2f 940have_crypt=no
8d35bdc9
KZ
941AC_CHECK_HEADERS([crypt.h])
942AC_LINK_IFELSE([AC_LANG_PROGRAM([[
943#ifdef HAVE_CRYPT_H
944#include <crypt.h>
945#else
946#define _XOPEN_SOURCE
947#include <unistd.h>
948#endif
949]], [[
950char *c = crypt("abc","pw");
70c364b4
JN
951]])],[
952 have_libcrypt=no
953 have_crypt=yes
954],[
75cba8d5 955 UL_SET_LIBS([-lcrypt])
637cc045 956 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
8d35bdc9
KZ
957 #ifdef HAVE_CRYPT_H
958 #include <crypt.h>
959 #else
960 #define _XOPEN_SOURCE
961 #include <unistd.h>
962 #endif
963 ]], [[
964 char *c = crypt("abc","pw");
965 ]])],[
8d35bdc9 966 have_libcrypt=yes
8229ed2f 967 have_crypt=yes
8d35bdc9 968 ],[
8229ed2f 969 AC_MSG_WARN([crypt() is not available])
8d35bdc9 970 ])
75cba8d5 971 UL_RESTORE_LIBS
8d35bdc9 972])
034d378b 973AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
8d35bdc9 974
13f5473e 975
75ad4910
KZ
976AC_ARG_WITH([selinux],
977 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
034d378b 978 [], [with_selinux=no]
75ad4910
KZ
979)
980
3013eb9d 981AS_IF([test "x$with_selinux" = xno], [
034d378b 982 AM_CONDITIONAL([HAVE_SELINUX], [false])
3013eb9d 983], [
ca27216a 984 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.5], [have_selinux=yes], [have_selinux=no])
9f57e6e8
SK
985 AS_CASE([$with_selinux:$have_selinux],
986 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
987 )
3013eb9d 988 AS_IF([test "x$have_selinux" = xyes], [
1468eda6
KZ
989 AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
990 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
991 AM_CONDITIONAL([HAVE_SELINUX], [true])
992
75cba8d5 993 UL_SET_LIBS([$SELINUX_LIBS])
312f04f4
KZ
994 # This function is missing in old libselinux 1.xx versions
995 AC_CHECK_FUNCS([security_get_initial_context])
75cba8d5 996 UL_RESTORE_LIBS
3013eb9d
SK
997 ])
998])
75ad4910
KZ
999AC_SUBST([SELINUX_LIBS])
1000AC_SUBST([SELINUX_LIBS_STATIC])
1001
0273afda 1002
75ad4910
KZ
1003AC_ARG_WITH([audit],
1004 AS_HELP_STRING([--with-audit], [compile with audit support]),
034d378b 1005 [], [with_audit=no]
75ad4910
KZ
1006)
1007
3013eb9d 1008AS_IF([test "x$with_audit" = xno], [
034d378b 1009 AM_CONDITIONAL([HAVE_AUDIT], [false])
3013eb9d 1010], [
034d378b 1011 UL_CHECK_LIB([audit], [audit_log_user_message])
9f57e6e8
SK
1012 AS_CASE([$with_audit:$have_audit],
1013 [yes:no],
1014 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
1015 )
3013eb9d 1016])
75ad4910
KZ
1017
1018AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
034d378b 1019 [], [with_udev=auto]
75ad4910
KZ
1020)
1021
3013eb9d 1022AS_IF([test "x$with_udev" = xno], [
034d378b 1023 AM_CONDITIONAL([HAVE_UDEV], [false])
3013eb9d 1024], [
034d378b 1025 UL_CHECK_LIB([udev], [udev_new])
9f57e6e8
SK
1026 AS_CASE([$with_udev:$have_udev],
1027 [yes:no],
1028 [AC_MSG_ERROR([udev selected but libudev not found])]
1029 )
3013eb9d 1030])
75ad4910 1031
2b8f22bd 1032
4ffcc7a9
KZ
1033dnl wide-char ncurses
1034AC_ARG_WITH([ncursesw],
95a89bd3 1035 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
4ffcc7a9
KZ
1036 [], [with_ncursesw=auto]
1037)
1038have_ncursesw=no
3cc8a9f4 1039have_ncursesw_header=no
4ffcc7a9 1040AS_IF([test "x$with_ncursesw" != xno], [
e5cc93b5
KZ
1041 UL_NCURSES_CHECK([ncursesw])
1042 AS_IF([test "x$have_ncursesw" = xyes], [
3947ca4c
KZ
1043 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
1044 AC_CHECK_HEADERS([ncursesw/term.h])
87c26ce5
KZ
1045
1046 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
1047 # unsuccessful to avoid too many *_H permitations in config.h
1048 AS_IF([test "x$have_ncursesw_header" = xno], [
1049 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
1050 AC_CHECK_HEADERS([term.h])
1051 ])
3cc8a9f4
KZ
1052 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
1053 ])
1054 AS_IF([test "x$have_ncursesw" = xyes], [
f1512be8 1055 CURSES_LIB_NAME="ncursesw"
3cc8a9f4 1056 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
e5cc93b5 1057 ])
4ffcc7a9
KZ
1058])
1059AS_CASE([$with_ncursesw:$have_ncursesw],
1060 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
2b8f22bd 1061
43cc76e2 1062
4ffcc7a9
KZ
1063dnl non-wide ncurses
1064AC_ARG_WITH([ncurses],
95a89bd3 1065 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
4ffcc7a9
KZ
1066 [], [with_ncurses=auto]
1067)
1068have_ncurses=no
3cc8a9f4 1069have_ncurses_header=no
18dae5d8
KZ
1070AS_CASE([$with_ncurses:$build_widechar],
1071 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
1072
948182f4 1073AS_IF([test "x$have_ncursesw" = xno && test "x$with_ncurses" != xno ], [
e5cc93b5
KZ
1074 UL_NCURSES_CHECK([ncurses])
1075 AS_IF([test "x$have_ncurses" = xyes], [
87c26ce5
KZ
1076 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
1077 AC_CHECK_HEADERS([ncurses/term.h])
1078
1079 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
1080 # unsuccessful to avoid too many *_H permitations in config.h
1081 AS_IF([test "x$have_ncurses_header" = xno], [
1082 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
1083 AC_CHECK_HEADERS([term.h])
1084 ])
3cc8a9f4
KZ
1085 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
1086 ])
1087 AS_IF([test "x$have_ncurses" = xyes], [
4ffcc7a9 1088 CURSES_LIB_NAME="ncurses"
3cc8a9f4 1089 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
e5cc93b5 1090 ])
3013eb9d 1091])
4ffcc7a9
KZ
1092AS_CASE([$with_ncurses:$have_ncurses],
1093 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
1094
2b8f22bd 1095AC_SUBST([NCURSES_CFLAGS])
75ad4910 1096AC_SUBST([NCURSES_LIBS])
948182f4 1097AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes])
75ad4910
KZ
1098
1099
1100AC_ARG_WITH([slang],
4ffcc7a9 1101 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
034d378b 1102 [], [with_slang=no]
75ad4910 1103)
50ea6795 1104have_slang=no
3013eb9d 1105AS_IF([test "x$with_slang" = xyes], [
75ad4910
KZ
1106 AC_CHECK_HEADERS([slang.h slang/slang.h])
1107 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 1108 [have_slang=yes], [], [
75ad4910
KZ
1109#ifdef HAVE_SLANG_H
1110#include <slang.h>
1111#elif defined(HAVE_SLANG_SLANG_H)
1112#include <slang/slang.h>
1113#endif
1114])
3013eb9d 1115 AS_IF([test "x$have_slang" = xno], [
f1512be8
KZ
1116 AC_MSG_ERROR([slang selected but slcurses.h not found])],
1117 [CURSES_LIB_NAME=slang
3013eb9d
SK
1118 ])
1119])
034d378b 1120AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
50ea6795 1121
50ea6795 1122
948182f4 1123AS_IF([test "x$have_slang" = xyes || test "x$have_ncursesw" = xyes || test "x$have_ncurses" = xyes], [
f1512be8
KZ
1124 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
1125 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
7556c944
KZ
1126 [Define if curses library has the use_default_colors().])
1127 ])
1128 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1129 AC_DEFINE(HAVE_RESIZETERM, 1,
1130 [Define if curses library has the resizeterm().])
f1512be8
KZ
1131 ])
1132])
1133
50ea6795 1134
17d71034
KZ
1135AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1136 [], [with_tinfo=auto]
1137)
1138have_tinfo=no
ad442a81 1139have_tinfow=no
17d71034 1140AS_IF([test "x$with_tinfo" != xno], [
ad442a81
KZ
1141 AS_IF([test "x$have_ncursesw" = xyes], [
1142 UL_TINFO_CHECK([tinfow])
1143 ])
1144 AS_IF([test "x$have_tinfow" = xno], [
1145 UL_TINFO_CHECK([tinfo])
17d71034 1146 ])
2b8f22bd
MF
1147])
1148AC_SUBST([TINFO_LIBS])
0b28c2ec 1149AC_SUBST([TINFO_LIBS_STATIC])
ccf92e6d 1150AC_SUBST([TINFO_CFLAGS])
948182f4
IM
1151AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes])
1152AS_IF([test "x$have_tinfo" = xyes || test "x$have_tinfow" = xyes], [
ad442a81 1153 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
4310faf9 1154])
75ad4910
KZ
1155
1156
0b28c2ec 1157AC_ARG_WITH([readline],
95a89bd3 1158 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
0b28c2ec
KZ
1159 [], [with_readline=auto]
1160)
1161
1162AS_IF([test "x$with_readline" = xno], [
1163 AM_CONDITIONAL([HAVE_READLINE], [false])
1164], [
1165 UL_CHECK_LIB([readline], [readline])
1166 AS_CASE([$with_readline:$have_readline],
1167 [yes:no],
1168 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1169 [*:yes],
1170 [READLINE_LIBS="-lreadline"
1171 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1172 )
1173])
1174AC_SUBST([READLINE_LIBS])
1175AC_SUBST([READLINE_LIBS_STATIC])
1176
1177
75ad4910
KZ
1178AC_ARG_WITH([utempter],
1179 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
034d378b 1180 [], [with_utempter=no]
75ad4910
KZ
1181)
1182
3013eb9d 1183AS_IF([test "x$with_utempter" = xyes], [
034d378b 1184 UL_CHECK_LIB([utempter], [utempter_add_record])
3013eb9d 1185 AS_IF([test "x$have_utempter" = xno], [
75ad4910 1186 AC_MSG_ERROR([utempter selected but libutempter not found])
3013eb9d
SK
1187 ])
1188], [
034d378b 1189 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
3013eb9d 1190])
75ad4910
KZ
1191
1192
1dbbde66
KZ
1193dnl
1194dnl libuuid
1195dnl
17afb032
KZ
1196AC_ARG_ENABLE([libuuid],
1197 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
08b1c219 1198 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
17afb032 1199)
fa7be20e 1200UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
1201AC_SUBST([LIBUUID_VERSION])
1202AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 1203AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 1204
3e584e85
RM
1205AC_ARG_ENABLE([libuuid-force-uuidd],
1206 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1207 [], [enable_libuuid_force_uuidd=no]
1208)
1209
13985252 1210AS_IF([test "x$build_libuuid" = xyes], [
17afb032 1211 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
3013eb9d 1212])
48d7b13a 1213
1dbbde66
KZ
1214dnl
1215dnl libblkid
1216dnl
f910b559 1217AC_ARG_ENABLE([libblkid],
1d12ed57 1218 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
dc049516 1219 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
40f07ff7 1220)
61a074f7 1221UL_BUILD_INIT([libblkid])
dc049516 1222UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
a68ed87f 1223UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
033cf439 1224AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
1225AC_SUBST([LIBBLKID_VERSION])
1226AC_SUBST([LIBBLKID_VERSION_INFO])
034d378b
SK
1227AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1228AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
3013eb9d 1229AS_IF([test "x$build_libblkid" = xyes], [
034d378b 1230 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
3013eb9d 1231])
034d378b 1232AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
948182f4 1233AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes && test "x$enable_static" = xyes])
f910b559 1234
1dbbde66
KZ
1235dnl
1236dnl libmount
1237dnl
f1cde479
KZ
1238AC_ARG_ENABLE([libmount],
1239 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
08b1c219 1240 [], [UL_DEFAULT_ENABLE([libmount], [check])]
f1cde479 1241)
61a074f7 1242UL_BUILD_INIT([libmount])
13f5473e 1243UL_REQUIRES_BUILD([libmount], [libblkid])
a68ed87f 1244UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
94c8821b 1245UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file])
034d378b 1246AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
948182f4 1247AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes])
30c34afb 1248AS_IF([test "x$build_libmount" = xyes], [
7a3b35b9
KZ
1249 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1250 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1251 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1252 ],[
1253 AC_MSG_WARN([libmount will be compiled without namespaces support])
1254 ])
30c34afb 1255])
8e368761 1256
f1cde479 1257AC_SUBST([LIBMOUNT_VERSION])
10e1d2e5
SH
1258AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1259AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1260AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
f1cde479 1261AC_SUBST([LIBMOUNT_VERSION_INFO])
034d378b 1262AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
13f5473e 1263
9040c090
KZ
1264AC_ARG_ENABLE([libmount-mountfd-support],
1265 AS_HELP_STRING([--disable-libmount-mountfd-support], [do not use new mount API based on FDs]),
1266 [], [enable_libmount_mountfd_support=check]
1267)
1268UL_BUILD_INIT([libmount_mountfd_support])
1269UL_REQUIRES_BUILD([libmount_mountfd_support], [libmount])
1270UL_REQUIRES_LINUX([libmount_mountfd_support])
1271UL_REQUIRES_HAVE([libmount_mountfd_support], [mountfd_api], [mount FDs based API])
5502e73d 1272UL_REQUIRES_HAVE([libmount_mountfd_support], [linux_mount_h], [linux/mount.h])
9040c090
KZ
1273AS_IF([test "x$build_libmount_mountfd_support" = xyes ], [
1274 AC_DEFINE([USE_LIBMOUNT_MOUNTFD_SUPPORT], [1], [Enable support for new mount FD based kernel API])
1275])
1276
1277
1a4d989e
OO
1278dnl
1279dnl libsmartcols
1280dnl
1281AC_ARG_ENABLE([libsmartcols],
1282 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
08b1c219 1283 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1a4d989e
OO
1284)
1285UL_BUILD_INIT([libsmartcols])
1a4d989e 1286AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1a4d989e
OO
1287
1288AC_SUBST([LIBSMARTCOLS_VERSION])
1289AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1290AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1291
1292
eb6a03f3 1293dnl
0bb4c979 1294dnl libfdisk
eb6a03f3 1295dnl
0bb4c979
KZ
1296AC_ARG_ENABLE([libfdisk],
1297 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1298 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1299)
1300UL_BUILD_INIT([libfdisk])
eb6a03f3 1301UL_REQUIRES_BUILD([libfdisk], [libuuid])
034d378b 1302AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
948182f4 1303AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes && test "x$enable_static" = xyes])
0bb4c979 1304
ed79557e
KZ
1305AS_IF([test "x$build_libblkid" = xyes],
1306 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1307AC_SUBST([LIBFDISK_PC_REQUIRES])
1308
0bb4c979 1309AC_SUBST([LIBFDISK_VERSION])
791da22d
KZ
1310AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1311AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1312AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
0bb4c979
KZ
1313AC_SUBST([LIBFDISK_VERSION_INFO])
1314AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1315
eb6a03f3 1316
9c7431fd
CS
1317AC_ARG_ENABLE([fdisks],
1318 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1319 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1320)
1321enable_fdisk=$enable_fdisks
1322enable_sfdisk=$enable_fdisks
1323enable_cfdisk=$enable_fdisks
1324
1325UL_BUILD_INIT([fdisk])
dc049516 1326UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
a68ed87f 1327UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
eb6a03f3 1328UL_REQUIRES_BUILD([fdisk], [libfdisk])
d44115f3 1329UL_REQUIRES_BUILD([fdisk], [libsmartcols])
034d378b 1330AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
eb6a03f3
KZ
1331
1332
9c7431fd 1333UL_BUILD_INIT([sfdisk])
dc049516 1334UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
a68ed87f 1335UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
9c1f9dd3
KZ
1336UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1337UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
ecc6047e
KZ
1338AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1339
1340
9c7431fd 1341UL_BUILD_INIT([cfdisk])
08b1c219
KZ
1342UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1343UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
9dd55a04 1344UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
4ffcc7a9 1345UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
08b1c219
KZ
1346AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1347
1348
434b07a0
KZ
1349AC_ARG_ENABLE([mount],
1350 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
08b1c219 1351 [], [UL_DEFAULT_ENABLE([mount], [check])]
ecdba5dd 1352)
434b07a0 1353UL_BUILD_INIT([mount])
53e8c16e 1354UL_REQUIRES_LINUX([mount])
434b07a0 1355UL_REQUIRES_BUILD([mount], [libmount])
034d378b 1356AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
ecdba5dd
KZ
1357
1358
bafe1a75
KZ
1359AC_ARG_ENABLE([losetup],
1360 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
08b1c219 1361 [], [UL_DEFAULT_ENABLE([losetup], [check])]
bafe1a75
KZ
1362)
1363UL_BUILD_INIT([losetup])
1364UL_REQUIRES_LINUX([losetup])
7477f356 1365UL_REQUIRES_BUILD([losetup], [libsmartcols])
034d378b 1366AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
bafe1a75 1367
0624d840
KZ
1368AC_ARG_ENABLE([zramctl],
1369 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1370 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1371)
1372UL_BUILD_INIT([zramctl])
1373UL_REQUIRES_LINUX([zramctl])
1374UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1375AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
bafe1a75 1376
1dbbde66
KZ
1377AC_ARG_ENABLE([fsck],
1378 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
08b1c219 1379 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1dbbde66 1380)
61a074f7 1381UL_BUILD_INIT([fsck])
a7b585ea 1382UL_REQUIRES_BUILD([fsck], [libmount])
034d378b 1383AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1dbbde66
KZ
1384
1385
1386AC_ARG_ENABLE([partx],
1387 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
08b1c219 1388 [], [UL_DEFAULT_ENABLE([partx], [check])]
1dbbde66 1389)
61a074f7 1390UL_BUILD_INIT([partx])
ecde2536
KZ
1391UL_REQUIRES_LINUX([partx])
1392UL_REQUIRES_BUILD([partx], [libblkid])
08b1c219 1393UL_REQUIRES_BUILD([partx], [libsmartcols])
034d378b 1394AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1dbbde66
KZ
1395
1396
1dbbde66
KZ
1397AC_ARG_ENABLE([uuidd],
1398 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
08b1c219 1399 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1dbbde66 1400)
61a074f7 1401UL_BUILD_INIT([uuidd])
bcdab497 1402UL_REQUIRES_BUILD([uuidd], [libuuid])
651b25cd
RM
1403UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1404UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
2afbcec5 1405AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
034d378b 1406 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
3013eb9d 1407])
034d378b 1408AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1dbbde66
KZ
1409
1410
5ec1108c 1411AC_ARG_ENABLE([uuidgen],
1412 AS_HELP_STRING([--disable-uuidgen], [do not build uuidgen]),
1413 [], [UL_DEFAULT_ENABLE([uuidgen], [check])]
1414)
1415UL_BUILD_INIT([uuidgen])
1b15cbd1
KZ
1416UL_REQUIRES_BUILD([uuidgen], [libuuid])
1417AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1418
83893f26
SK
1419UL_BUILD_INIT([uuidparse], [check])
1420UL_REQUIRES_BUILD([uuidparse], [libuuid])
1421UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1422AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1423
5ec1108c 1424AC_ARG_ENABLE([blkid],
1425 AS_HELP_STRING([--disable-blkid], [do not build blkid(8)]),
1426 [], [UL_DEFAULT_ENABLE([blkid], [check])]
1427)
1428UL_BUILD_INIT([blkid])
15a2c741
KZ
1429UL_REQUIRES_BUILD([blkid], [libblkid])
1430AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1431
1432UL_BUILD_INIT([findfs], [check])
1433UL_REQUIRES_BUILD([findfs], [libblkid])
1434AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1435
a76cd5f6
SV
1436AC_ARG_ENABLE([wipefs],
1437 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1438 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1439)
1440UL_BUILD_INIT([wipefs])
15a2c741 1441UL_REQUIRES_BUILD([wipefs], [libblkid])
d9921b2a 1442UL_REQUIRES_BUILD([wipefs], [libsmartcols])
15a2c741
KZ
1443AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1444
1445UL_BUILD_INIT([findmnt], [check])
1446UL_REQUIRES_BUILD([findmnt], [libmount])
169b4a8c 1447UL_REQUIRES_BUILD([findmnt], [libblkid])
15a2c741
KZ
1448UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1449AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1450
1b15cbd1 1451
0164c245 1452AC_ARG_ENABLE([mountpoint],
2023ccc4 1453 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
08b1c219 1454 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
0164c245 1455)
61a074f7 1456UL_BUILD_INIT([mountpoint])
a9127bc1 1457UL_REQUIRES_BUILD([mountpoint], [libmount])
034d378b 1458AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
0164c245
KZ
1459
1460
10e56b49
KZ
1461AC_ARG_ENABLE([fallocate],
1462 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
08b1c219 1463 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
10e56b49 1464)
61a074f7 1465UL_BUILD_INIT([fallocate])
10e56b49
KZ
1466UL_REQUIRES_LINUX([fallocate])
1467UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
034d378b 1468AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
10e56b49 1469
3013eb9d 1470AS_IF([test "x$build_fallocate" = xyes], [
10e56b49
KZ
1471 dnl check for valid fallocate() function
1472 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1473 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1474 dnl and program can't be linked.
1475 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1476 dnl function prototype.
1477 AC_MSG_CHECKING([for valid fallocate() function])
1478 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
1479#ifdef HAVE_UNISTD_H
1480# include <unistd.h>
1481#endif
1482#ifdef HAVE_SYS_TYPES_H
1483# include <sys/types.h>
1484#endif
1485#ifdef HAVE_LINUX_FALLOC_H
1486# include <linux/falloc.h>
1487#endif
1488#ifdef HAVE_FCNTL_H
1489# include <fcntl.h>
1490#endif
1491]],[[
1492 long ret;
b832c2fe 1493 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
1494 if (ret != 0) {
1495 return 1;
1496 }
1497 ]])],[
10e56b49 1498 AC_MSG_RESULT([yes])
034d378b 1499 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
10e56b49 1500 AC_MSG_RESULT([no])])
3013eb9d 1501])
10e56b49 1502
833f9a7a
DC
1503AS_IF([test "x$build_fallocate" = xyes], [
1504 dnl check for valid posix_fallocate() function
1505 AC_MSG_CHECKING([for valid posix_fallocate() function])
1506 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1507#ifdef HAVE_UNISTD_H
1508# include <unistd.h>
1509#endif
1510#ifdef HAVE_SYS_TYPES_H
1511# include <sys/types.h>
1512#endif
1513#ifdef HAVE_LINUX_FALLOC_H
1514# include <linux/falloc.h>
1515#endif
1516#ifdef HAVE_FCNTL_H
1517# include <fcntl.h>
1518#endif
1519]],[[
1520 long ret;
1521 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1522 if (ret != 0) {
1523 return 1;
1524 }
1525 ]])],[
1526 AC_MSG_RESULT([yes])
1527 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1528 AC_MSG_RESULT([no])])
1529])
1530
19a224ad 1531
a2ea6670
KZ
1532AC_ARG_ENABLE([unshare],
1533 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
08b1c219 1534 [], [UL_DEFAULT_ENABLE([unshare], [check])]
a2ea6670 1535)
61a074f7 1536UL_BUILD_INIT([unshare])
a2ea6670
KZ
1537UL_REQUIRES_LINUX([unshare])
1538UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
2c2ff2ed 1539UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
034d378b 1540AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
01e94325
KZ
1541
1542AC_MSG_CHECKING([for valid unshare() function])
1543AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1544#include <sched.h>
1545]],[[
1546 int ret;
1547 ret = unshare(0);
1548 if (ret != 0) {
1549 return 1;
1550 }
1551 ]])],[
1552 AC_MSG_RESULT([yes])
1553 AC_DEFINE([HAVE_UNSHARE], [1], [Have valid unshare() function])],
1554[
1555 AC_MSG_RESULT([no])
1556])
1557
b3425806 1558
f8aa8e94
EB
1559AC_ARG_ENABLE([nsenter],
1560 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
08b1c219 1561 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
f8aa8e94
EB
1562)
1563UL_BUILD_INIT([nsenter])
1564UL_REQUIRES_LINUX([nsenter])
7a3b35b9 1565UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
034d378b 1566AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
01e94325
KZ
1567
1568AC_MSG_CHECKING([for valid setns() function])
1569AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1570#include <sched.h>
1571#include <errno.h>
1572]],[[
1573 int ret;
1574 ret = setns(0, 0);
1575 if (ret != EINVAL && ret != EBADF && ret != EPERM) {
1576 return 1;
1577 }
1578 ]])],[
1579 AC_MSG_RESULT([yes])
1580 AC_DEFINE([HAVE_SETNS], [1], [Have valid setns() function])],
1581[
1582 AC_MSG_RESULT([no])
1583])
b3425806 1584
17d71034
KZ
1585
1586AC_ARG_WITH([cap_ng],
801afcb0 1587 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
17d71034
KZ
1588 [], [with_cap_ng=auto]
1589)
801afcb0
MF
1590AS_IF([test "x$with_cap_ng" = xno], [
1591 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1592 have_cap_ng=no
1593],[
17d71034
KZ
1594 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1595])
1596
1597
5600c405
AL
1598AC_ARG_ENABLE([setpriv],
1599 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
08b1c219 1600 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
5600c405
AL
1601)
1602UL_BUILD_INIT([setpriv])
1603UL_REQUIRES_LINUX([setpriv])
2c2ff2ed
KZ
1604UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1605UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
e1b8ba20 1606UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
034d378b 1607AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
5600c405 1608
04ae85a7
RM
1609AC_ARG_ENABLE([hardlink],
1610 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1611 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1612)
1613UL_BUILD_INIT([hardlink])
1614AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
5600c405 1615
43989bad 1616
539feec1
ML
1617AC_ARG_ENABLE([eject],
1618 AS_HELP_STRING([--disable-eject], [do not build eject]),
08b1c219 1619 [], [UL_DEFAULT_ENABLE([eject], [check])]
539feec1
ML
1620)
1621UL_BUILD_INIT([eject])
1622UL_REQUIRES_LINUX([eject])
7770e7df 1623UL_REQUIRES_BUILD([eject], [libmount])
034d378b 1624AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
539feec1
ML
1625
1626
48d7b13a 1627AC_ARG_ENABLE([agetty],
7fa4f112 1628 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
d00c10ed 1629 [], [UL_DEFAULT_ENABLE([agetty], [check])]
48d7b13a 1630)
61a074f7 1631UL_BUILD_INIT([agetty])
b4b919fe 1632UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
73afd3f8 1633UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
034d378b 1634AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
948182f4 1635AS_IF([test "x$have_futimens" = xyes && test "x$have_inotify_init1" = xyes ], [
90d5285d
KZ
1636 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1637],[
1638 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1639])
0fc74be1 1640
48d7b13a 1641
1eb16fd7 1642AC_ARG_ENABLE([plymouth_support],
c89edac5 1643 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sulogin(8) and agetty(8)]),
d67f61c0 1644 [], [enable_plymouth_support=check]
1eb16fd7
KZ
1645)
1646UL_BUILD_INIT([plymouth_support])
1647UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1648UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1649UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1650UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1651AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1652AS_IF([test "x$build_plymouth_support" = xyes ], [
c89edac5 1653 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and agetty])
1eb16fd7
KZ
1654])
1655
1656
17d71034
KZ
1657AC_ARG_WITH([libz],
1658 AS_HELP_STRING([--without-libz], [compile without libz]),
1659 [], [with_libz=auto]
1660)
1661AS_IF([test "x$with_libz" = xno], [have_z=no], [
1662 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1663])
1664
09070e1a
SK
1665AC_ARG_WITH([libmagic],
1666 AS_HELP_STRING([--without-libmagic], [compile without libmagic]),
1667 [], [with_libmagic=auto]
1668)
1669AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
1670 AC_CHECK_LIB([magic], [magic_open], [
263381dd
MM
1671 AC_CHECK_HEADER(magic.h, [
1672 AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
1673 MAGIC_LIBS="-lmagic"
1674 ])
09070e1a
SK
1675 ])
1676])
1677AC_SUBST([MAGIC_LIBS])
1678
17d71034 1679
9cb68977 1680AC_ARG_ENABLE([cramfs],
7fa4f112 1681 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
08b1c219 1682 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
9cb68977 1683)
61a074f7 1684UL_BUILD_INIT([cramfs])
d81b5a52 1685UL_REQUIRES_HAVE([cramfs], [z], [z library])
034d378b 1686AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
9cb68977 1687
a13cdb7a 1688
8d6f0bae 1689AC_ARG_ENABLE([bfs],
834fc88c 1690 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
08b1c219 1691 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
834fc88c
KZ
1692)
1693UL_BUILD_INIT([bfs])
034d378b 1694AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
834fc88c
KZ
1695
1696
3d9fdac5
KZ
1697AC_ARG_ENABLE([minix],
1698 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
08b1c219 1699 [], [UL_DEFAULT_ENABLE([minix], [yes])]
3d9fdac5
KZ
1700)
1701UL_BUILD_INIT([minix])
1702AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1703
1704
8d6f0bae 1705AC_ARG_ENABLE([fdformat],
13b26e3c
SK
1706 AS_HELP_STRING([--enable-fdformat], [build fdformat]),
1707 [], [UL_DEFAULT_ENABLE([fdformat], [no])]
8d6f0bae
KZ
1708)
1709UL_BUILD_INIT([fdformat])
1710UL_REQUIRES_LINUX([fdformat])
034d378b 1711AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
8d6f0bae
KZ
1712
1713
6acf31ac
KZ
1714AC_ARG_ENABLE([hwclock],
1715 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
08b1c219 1716 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
6acf31ac
KZ
1717)
1718have_linuxdummy=$linux_os
1719
1720UL_BUILD_INIT([hwclock])
1721UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
034d378b 1722AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
e09ebf22 1723
b1062292 1724AC_ARG_ENABLE([hwclock_cmos],
88bc304b 1725 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
b1062292 1726 [], [enable_hwclock_cmos=check]
88bc304b 1727)
b1062292
KZ
1728UL_BUILD_INIT([hwclock_cmos])
1729UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1730UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1731AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1732AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1733 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
88bc304b
CS
1734])
1735
e8c21c89
KZ
1736AC_ARG_ENABLE([hwclock_gplv3],
1737 AS_HELP_STRING([--disable-hwclock-gplv3], [do not use datetime parsing GPLv3 code]),
1738 [], [enable_hwclock_gplv3=yes]
1739)
1740AM_CONDITIONAL([USE_HWCLOCK_GPLv3_DATETIME], [test "x$enable_hwclock_gplv3" = xyes])
1741AS_IF([test "x$enable_hwclock_gplv3" = xyes ], [
1742 AC_DEFINE([USE_HWCLOCK_GPLv3_DATETIME], [1], [use datetime parsing GPLv3 code to hwclock])
1743])
1744
88bc304b 1745
5ec1108c 1746AC_ARG_ENABLE([mkfs],
1747 AS_HELP_STRING([--disable-mkfs], [do not build mkfs(8)]),
1748 [], [UL_DEFAULT_ENABLE([mkfs], [check])]
1749)
1750UL_BUILD_INIT([mkfs])
ecc6047e
KZ
1751AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1752
1753UL_BUILD_INIT([isosize], [yes])
1754AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1755
3d9fdac5 1756
5ec1108c 1757AC_ARG_ENABLE([fstrim],
1758 AS_HELP_STRING([--disable-fstrim], [do not build fstrim(8)]),
1759 [], [UL_DEFAULT_ENABLE([fstrim], [check])]
1760)
1761UL_BUILD_INIT([fstrim])
7b040214
KZ
1762UL_REQUIRES_LINUX([fstrim])
1763UL_REQUIRES_BUILD([fstrim], [libmount])
1764AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1765
1766
5ec1108c 1767AC_ARG_ENABLE([swapon],
1768 AS_HELP_STRING([--disable-swapon], [do not build swapon(8) and swapoff(8)]),
1769 [], [UL_DEFAULT_ENABLE([swapon], [check])]
1770)
1771UL_BUILD_INIT([swapon])
143635c9 1772UL_REQUIRES_LINUX([swapon])
cf9b16f1
KZ
1773UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1774UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
143635c9 1775UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 1776UL_REQUIRES_BUILD([swapon], [libmount])
7477f356 1777UL_REQUIRES_BUILD([swapon], [libsmartcols])
034d378b 1778AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
cf9b16f1
KZ
1779AC_CHECK_FUNCS([swapon])
1780AC_CHECK_FUNCS([swapoff])
143635c9
KZ
1781
1782
61a074f7 1783UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
1784UL_REQUIRES_LINUX([lsblk])
1785UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 1786UL_REQUIRES_BUILD([lsblk], [libmount])
7477f356 1787UL_REQUIRES_BUILD([lsblk], [libsmartcols])
034d378b 1788AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
9cb68977 1789
a3d3b770 1790
5ec1108c 1791AC_ARG_ENABLE([lscpu],
1792 AS_HELP_STRING([--disable-lscpu], [do not build lscpu]),
1793 [], [UL_DEFAULT_ENABLE([lscpu], [check])]
1794)
1795UL_BUILD_INIT([lscpu])
da396d88 1796UL_REQUIRES_LINUX([lscpu])
7477f356 1797UL_REQUIRES_BUILD([lscpu], [libsmartcols])
da396d88 1798UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
034d378b 1799AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
da396d88 1800
f2c3f2c7
AP
1801AC_ARG_ENABLE([lsfd],
1802 AS_HELP_STRING([--disable-lsfd], [do not build lsfd]),
1803 [], [UL_DEFAULT_ENABLE([lsfd], [check])]
1804)
1805UL_BUILD_INIT([lsfd])
128beb71
MY
1806UL_REQUIRES_LINUX([lsfd])
1807UL_REQUIRES_BUILD([lsfd], [libsmartcols])
f4d700d7 1808UL_REQUIRES_HAVE([lsfd], [linux_kcmp_h], [linux/kcmp.h header file])
128beb71 1809AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes])
a3d3b770 1810
50e6f15b
RM
1811AC_ARG_ENABLE([lslogins],
1812 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1813 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1814)
1815UL_BUILD_INIT([lslogins])
ab1cfad5 1816UL_REQUIRES_BUILD([lslogins], [libsmartcols])
d00c10ed 1817UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
b4b919fe 1818UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
73afd3f8 1819UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
ab1cfad5
OO
1820AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1821
1822
61a074f7 1823UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
1824UL_REQUIRES_LINUX([chcpu])
1825UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
034d378b 1826AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
da396d88 1827
a13cdb7a 1828
7fcccbdf
KZ
1829AC_ARG_ENABLE([wdctl],
1830 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
08b1c219 1831 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
7fcccbdf
KZ
1832)
1833UL_BUILD_INIT([wdctl])
5b0289b9 1834UL_REQUIRES_LINUX([wdctl])
7477f356 1835UL_REQUIRES_BUILD([wdctl], [libsmartcols])
5b0289b9 1836UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
034d378b 1837AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
5b0289b9
KZ
1838
1839
54dbc8cf
KZ
1840UL_BUILD_INIT([swaplabel], [check])
1841UL_REQUIRES_BUILD([swaplabel], [libblkid])
034d378b 1842AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
54dbc8cf
KZ
1843
1844
ecc6047e
KZ
1845UL_BUILD_INIT([mkswap], [yes])
1846AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
948182f4 1847AS_IF([test "x$build_mkswap" = xyes && test "x$build_libuuid" != xyes], [
08b1c219
KZ
1848 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1849])
ecc6047e 1850
328eb445
KZ
1851
1852AC_ARG_ENABLE([cal],
1853 AS_HELP_STRING([--disable-cal], [do not build cal]),
1854 [], [UL_DEFAULT_ENABLE([cal], [check])]
1855)
1856UL_BUILD_INIT([cal])
1b15cbd1
KZ
1857AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1858
50e6f15b
RM
1859AC_ARG_ENABLE([logger],
1860 AS_HELP_STRING([--disable-logger], [do not build logger]),
1861 [], [UL_DEFAULT_ENABLE([logger], [check])]
1862)
1863UL_BUILD_INIT([logger])
1b15cbd1
KZ
1864AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1865
4c838e6c 1866UL_BUILD_INIT([look], [yes])
1b15cbd1
KZ
1867AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1868
1869UL_BUILD_INIT([mcookie], [yes])
1870AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1871
1872UL_BUILD_INIT([namei], [yes])
1873AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1874
c9ab7387
AH
1875matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1876if test "x$matriplet" != "x"; then
1877 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1878 ["Multi-arch triplet for whereis library search path"])
1879fi
b7fc158a
SN
1880AC_ARG_ENABLE([whereis],
1881 AS_HELP_STRING([--disable-whereis], [do not build whereis]),
1882 [], [UL_DEFAULT_ENABLE([whereis], [check])]
1883)
1884UL_BUILD_INIT([whereis])
1b15cbd1
KZ
1885AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1886
c221578e
NS
1887AC_ARG_ENABLE([pipesz],
1888 AS_HELP_STRING([--disable-pipesz], [do not build pipesz]),
62604365 1889 [], [UL_DEFAULT_ENABLE([pipesz], [check])]
c221578e
NS
1890)
1891UL_BUILD_INIT([pipesz])
1892UL_REQUIRES_LINUX([pipesz])
1893AM_CONDITIONAL([BUILD_PIPESZ], [test "x$build_pipesz" = xyes])
1894
642e1c69
MY
1895UL_BUILD_INIT([fadvise], [check])
1896UL_REQUIRES_LINUX([fadvise])
1897AM_CONDITIONAL([BUILD_FADVISE], [test "x$build_fadvise" = xyes])
1898
c0d75916
FS
1899AC_ARG_ENABLE([waitpid],
1900 AS_HELP_STRING([--disable-waitpid], [do not build waitpid]),
58c16c84 1901 [], [UL_DEFAULT_ENABLE([waitpid], [check])]
c0d75916
FS
1902)
1903UL_BUILD_INIT([waitpid])
550d32c4 1904UL_REQUIRES_LINUX([waitpid])
ffdd75cc 1905UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open])
550d32c4
TW
1906AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes])
1907
cba52cc1
TW
1908UL_BUILD_INIT([enosys], [check])
1909UL_REQUIRES_LINUX([enosys])
3e0bbb12
TW
1910AS_IF([test "x$build_enosys" = xyes], [
1911 AC_MSG_CHECKING([for valid audit arch])
1912 AC_COMPILE_IFELSE(
1913 [AC_LANG_PROGRAM([[#include "${srcdir}/include/audit-arch.h"]])],
1914 [AC_MSG_RESULT([yes])],
1915 [AC_MSG_RESULT([no])
1916 build_enosys=no
1917 ])
1918])
cba52cc1
TW
1919AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes])
1920
22c41e99
KZ
1921UL_BUILD_INIT([lsclocks], [check])
1922UL_REQUIRES_LINUX([lsclocks])
e9ddea79
TW
1923AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes])
1924
3adaaa15
KZ
1925UL_BUILD_INIT([getopt], [yes])
1926AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1927
ecc6047e
KZ
1928
1929UL_BUILD_INIT([blockdev], [check])
1930UL_REQUIRES_LINUX([blockdev])
1931AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1932
1933
945ac250
KZ
1934UL_BUILD_INIT([prlimit], [check])
1935UL_REQUIRES_LINUX([prlimit])
7477f356 1936UL_REQUIRES_BUILD([prlimit], [libsmartcols])
945ac250 1937UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
034d378b 1938AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
3013eb9d 1939AS_IF([test "x$build_prlimit" = xyes], [
01e94325
KZ
1940 dnl check for valid prlimit() function
1941 AC_MSG_CHECKING([for valid prlimit() function])
1942 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1943#include <sys/types.h>
1944#include <sys/time.h>
1945#include <sys/resource.h>
1946#include <stddef.h>
1947]],[[
1948 int ret;
1949 ret = prlimit(0, RLIMIT_AS, NULL, NULL);
1950 if (ret != 0) {
1951 return 1;
1952 }
1953 ]])],[
1954 AC_MSG_RESULT([yes])
1955 AC_DEFINE([HAVE_PRLIMIT], [1], [Have valid prlimit() function])],[
1956 AC_MSG_RESULT([no])])
3013eb9d 1957])
945ac250
KZ
1958
1959
01e94325 1960
3dc02ef4
DB
1961UL_BUILD_INIT([lslocks], [check])
1962UL_REQUIRES_LINUX([lslocks])
ec1204dc 1963UL_REQUIRES_BUILD([lslocks], [libmount])
7477f356 1964UL_REQUIRES_BUILD([lslocks], [libsmartcols])
034d378b 1965AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
3dc02ef4
DB
1966
1967
bd671347
KZ
1968AC_ARG_ENABLE([switch_root],
1969 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
08b1c219 1970 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
bd671347 1971)
61a074f7 1972UL_BUILD_INIT([switch_root])
a3d3b770
KZ
1973UL_REQUIRES_LINUX([switch_root])
1974UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
a68ed87f 1975UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
034d378b 1976AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
bd671347
KZ
1977
1978
11125e7a
KZ
1979AC_ARG_ENABLE([pivot_root],
1980 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
08b1c219 1981 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
11125e7a 1982)
61a074f7 1983UL_BUILD_INIT([pivot_root])
5cbbdfbf 1984UL_REQUIRES_LINUX([pivot_root])
9f632667 1985UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
034d378b 1986AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
11125e7a
KZ
1987
1988
c12fc5e1 1989UL_BUILD_INIT([flock], [check])
3001923b 1990UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
205dbb7a
KZ
1991AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1992
bdfe4601 1993
cad2d1ac
HC
1994AC_ARG_ENABLE([lsmem],
1995 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
bdfe4601 1996 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
cad2d1ac
HC
1997)
1998UL_BUILD_INIT([lsmem])
bdfe4601 1999UL_REQUIRES_LINUX([lsmem])
8b7f00a8 2000UL_REQUIRES_BUILD([lsmem], [libsmartcols])
cad2d1ac
HC
2001AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
2002
bdfe4601 2003
30e1ea8b
HC
2004AC_ARG_ENABLE([chmem],
2005 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
bdfe4601 2006 [], [UL_DEFAULT_ENABLE([chmem], [check])]
30e1ea8b
HC
2007)
2008UL_BUILD_INIT([chmem])
bdfe4601 2009UL_REQUIRES_LINUX([chmem])
30e1ea8b
HC
2010AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
2011
205dbb7a 2012
45020b67
KZ
2013AC_ARG_ENABLE([ipcmk],
2014 AS_HELP_STRING([--disable-ipcmk], [do not build ipcmk]),
2015 [], [UL_DEFAULT_ENABLE([ipcmk], [check])]
2016)
2017UL_BUILD_INIT([ipcmk])
2018UL_EXCLUDE_ARCH([ipcmk], [*darwin*])
2019AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
bdfe4601 2020
42a4a152
RM
2021AC_ARG_ENABLE([ipcrm],
2022 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
45020b67 2023 [], [UL_DEFAULT_ENABLE([ipcrm], [check])]
42a4a152
RM
2024)
2025UL_BUILD_INIT([ipcrm])
45020b67 2026UL_EXCLUDE_ARCH([ipcrm], [*darwin*])
205dbb7a
KZ
2027AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
2028
42a4a152
RM
2029AC_ARG_ENABLE([ipcs],
2030 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
45020b67 2031 [], [UL_DEFAULT_ENABLE([ipcs], [check])]
42a4a152
RM
2032)
2033UL_BUILD_INIT([ipcs])
45020b67 2034UL_EXCLUDE_ARCH([ipcs], [*darwin*])
205dbb7a
KZ
2035AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
2036
a0f62b0b 2037
4f6610f5
SK
2038AC_ARG_ENABLE([irqtop],
2039 AS_HELP_STRING([--disable-irqtop], [do not build irqtop]),
c61470c7 2040 [], [UL_DEFAULT_ENABLE([irqtop], [check])]
4f6610f5
SK
2041)
2042UL_BUILD_INIT([irqtop])
fa8c5cd5 2043UL_REQUIRES_LINUX([irqtop])
a0f62b0b
KZ
2044UL_REQUIRES_BUILD([irqtop], [libsmartcols])
2045UL_REQUIRES_HAVE([irqtop], [open_memstream], [open_memstream function])
2046UL_REQUIRES_HAVE([irqtop], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
4f6610f5
SK
2047AM_CONDITIONAL([BUILD_IRQTOP], [test "x$build_irqtop" = xyes])
2048
a0f62b0b
KZ
2049AC_ARG_ENABLE([lsirq],
2050 AS_HELP_STRING([--disable-lsirq], [do not build lsirq]),
c61470c7 2051 [], [UL_DEFAULT_ENABLE([lsirq], [check])]
a0f62b0b
KZ
2052)
2053UL_BUILD_INIT([lsirq])
2054UL_REQUIRES_LINUX([lsirq])
2055UL_REQUIRES_BUILD([lsirq], [libsmartcols])
2056AM_CONDITIONAL([BUILD_LSIRQ], [test "x$build_lsirq" = xyes])
2057
2058
8fa223da
KZ
2059UL_BUILD_INIT([choom], [check])
2060UL_REQUIRES_LINUX([choom])
2061AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
2062
9d20ffda
KZ
2063UL_BUILD_INIT([lsipc], [check])
2064UL_REQUIRES_LINUX([lsipc])
2065UL_REQUIRES_BUILD([lsipc], [libsmartcols])
2066AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
2067
dcf8f3b4
FF
2068AC_ARG_ENABLE([lsns],
2069 AS_HELP_STRING([--disable-lsns], [do not build lsns]),
2070 [], [UL_DEFAULT_ENABLE([lsns], [check])]
2071)
2072UL_BUILD_INIT([lsns])
8a204562
KZ
2073UL_REQUIRES_LINUX([lsns])
2074UL_REQUIRES_BUILD([lsns], [libsmartcols])
4b328279 2075UL_REQUIRES_BUILD([lsns], [libmount])
8a204562
KZ
2076AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
2077
205dbb7a
KZ
2078UL_BUILD_INIT([renice], [yes])
2079AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
2080
3d47ab05
KZ
2081
2082AC_ARG_ENABLE([rfkill],
2083 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
271552c7 2084 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
3d47ab05
KZ
2085)
2086UL_BUILD_INIT([rfkill])
367f4080 2087UL_REQUIRES_LINUX([rfkill])
b3849c66 2088UL_REQUIRES_BUILD([rfkill], [libsmartcols])
c0d78c90
SK
2089AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
2090
3d47ab05 2091
f092076f
DDM
2092UL_BUILD_INIT([setpgid], [yes])
2093AM_CONDITIONAL([BUILD_SETPGID], [test "x$build_setpgid" = xyes])
2094
205dbb7a
KZ
2095UL_BUILD_INIT([setsid], [yes])
2096AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
2097
2098UL_BUILD_INIT([readprofile], [check])
2099UL_REQUIRES_LINUX([readprofile])
2100AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
2101
2102UL_BUILD_INIT([dmesg], [check])
2103UL_REQUIRES_LINUX([dmesg])
2104AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
2105
2106UL_BUILD_INIT([ctrlaltdel], [check])
2107UL_REQUIRES_LINUX([ctrlaltdel])
e52b58e6
CTV
2108dnl we assume reboot() to be the 1-argument variant, because even considering
2109dnl widely used alternative C libraries like uclibc, dietlibc and musl,
2110dnl reboot() with multiple arguments is yet only found in glibc versions
2111dnl earlier than 2.x.
9dd55a04 2112UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
205dbb7a
KZ
2113AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
2114
b6252de2
KZ
2115AC_ARG_ENABLE([exch],
2116 AS_HELP_STRING([--disable-exch], [do not build exch]),
2117 [], [UL_DEFAULT_ENABLE([exch], [check])]
2118)
cd094a05
MY
2119UL_BUILD_INIT([exch])
2120UL_REQUIRES_LINUX([exch])
b6252de2 2121UL_REQUIRES_SYSCALL_CHECK([exch], [UL_CHECK_SYSCALL([renameat2])])
cd094a05
MY
2122AM_CONDITIONAL([BUILD_EXCH], [test "x$build_exch" = xyes])
2123
a921a7de
MY
2124UL_BUILD_INIT([fincore], [check])
2125UL_REQUIRES_LINUX([fincore])
3e37d7b7 2126UL_REQUIRES_BUILD([fincore], [libsmartcols])
a921a7de
MY
2127AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
2128
205dbb7a
KZ
2129UL_BUILD_INIT([fsfreeze], [check])
2130UL_REQUIRES_LINUX([fsfreeze])
2131AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
2132
2133UL_BUILD_INIT([blkdiscard], [check])
2134UL_REQUIRES_LINUX([blkdiscard])
2135AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
2136
1ad8ef91
KZ
2137UL_BUILD_INIT([blkzone], [check])
2138UL_REQUIRES_LINUX([blkzone])
2139UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
2140AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
2141
627428a9 2142UL_BUILD_INIT([blkpr], [check])
2143UL_REQUIRES_LINUX([blkpr])
2144UL_REQUIRES_HAVE([blkpr], [linux_pr_h], [linux/pr.h header])
2145AM_CONDITIONAL([BUILD_BLKPR], [test "x$build_blkpr" = xyes])
2146
205dbb7a
KZ
2147UL_BUILD_INIT([ldattach], [check])
2148UL_REQUIRES_LINUX([ldattach])
2149AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
2150
2151UL_BUILD_INIT([rtcwake], [check])
2152UL_REQUIRES_LINUX([rtcwake])
2153AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
2154
2155UL_BUILD_INIT([setarch], [check])
2156UL_REQUIRES_LINUX([setarch])
2157AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
2158
d4b58873
KZ
2159
2160# build_scriptutils= is just configure-only variable to control
2161# script, scriptreplay and scriptlive
2162AC_ARG_ENABLE([scriptutils],
2163 AS_HELP_STRING([--disable-scriptutils], [do not build script, scriptreplay and scriptlive]),
2164 [], [UL_DEFAULT_ENABLE([scriptutils], [check])]
2165)
2166
2167UL_ENABLE_ALIAS([script], [scriptutils])
2168UL_BUILD_INIT([script])
870235d0 2169UL_REQUIRES_HAVE([script], [pty], [openpty function (libutil)])
3f91b990
KZ
2170AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
2171
d4b58873
KZ
2172UL_ENABLE_ALIAS([scriptreplay], [scriptutils])
2173UL_BUILD_INIT([scriptreplay])
3f91b990
KZ
2174AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
2175
d4b58873
KZ
2176UL_ENABLE_ALIAS([scriptlive], [scriptutils])
2177UL_BUILD_INIT([scriptlive])
870235d0 2178UL_REQUIRES_HAVE([scriptlive], [pty], [openpty function (libutil)])
33869e5a
KZ
2179AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
2180
d4b58873 2181
8886d84e
TW
2182UL_BUILD_INIT([col], [check])
2183UL_REQUIRES_COMPILE([col], [#include <limits.h>], [__GLIBC__], [building for glibc])
cb45354e
KZ
2184AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
2185
2186UL_BUILD_INIT([colcrt], [yes])
2187AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
2188
2189UL_BUILD_INIT([colrm], [yes])
2190AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
2191
38d69192
KZ
2192UL_BUILD_INIT([column], [check])
2193UL_REQUIRES_BUILD([column], [libsmartcols])
cb45354e
KZ
2194AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
2195
2196UL_BUILD_INIT([hexdump], [yes])
2197AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
2198
2199UL_BUILD_INIT([rev], [yes])
2200AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
2201
3f91b990 2202
1342ffcb
SK
2203AC_ARG_ENABLE([tunelp],
2204 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
08b1c219 2205 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1342ffcb
SK
2206)
2207UL_BUILD_INIT([tunelp])
2208UL_REQUIRES_LINUX([tunelp])
034d378b 2209AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1342ffcb
SK
2210
2211
48d7b13a 2212AC_ARG_ENABLE([kill],
4be753aa 2213 AS_HELP_STRING([--disable-kill], [do not build kill]),
08b1c219 2214 [], [UL_DEFAULT_ENABLE([kill], [check])]
48d7b13a 2215)
61a074f7 2216UL_BUILD_INIT([kill])
4be753aa 2217UL_REQUIRES_LINUX([kill])
034d378b 2218AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
48d7b13a 2219
ce602720 2220
48d7b13a 2221AC_ARG_ENABLE([last],
ce602720 2222 AS_HELP_STRING([--disable-last], [do not build last]),
08b1c219 2223 [], [UL_DEFAULT_ENABLE([last], [check])]
48d7b13a 2224)
61a074f7 2225UL_BUILD_INIT([last])
b4b919fe 2226UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
73afd3f8 2227UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
034d378b 2228AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2dc68529 2229
48d7b13a 2230
78d5ceac 2231AC_ARG_ENABLE([utmpdump],
c9b53461 2232 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
d00c10ed 2233 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
78d5ceac
KZ
2234)
2235UL_BUILD_INIT([utmpdump])
b4b919fe 2236UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
73afd3f8 2237UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
034d378b 2238AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
78d5ceac
KZ
2239
2240
c135a8bd
SK
2241AC_ARG_ENABLE([line],
2242 AS_HELP_STRING([--enable-line], [build line]),
08b1c219 2243 [], [UL_DEFAULT_ENABLE([line], [no])]
c135a8bd 2244)
61a074f7 2245UL_BUILD_INIT([line])
034d378b 2246AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2dc68529 2247
48d7b13a
KZ
2248
2249AC_ARG_ENABLE([mesg],
5c0b406d 2250 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
08b1c219 2251 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
48d7b13a 2252)
61a074f7 2253UL_BUILD_INIT([mesg])
034d378b 2254AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
48d7b13a
KZ
2255
2256
48d7b13a 2257AC_ARG_ENABLE([raw],
5c0b406d 2258 AS_HELP_STRING([--disable-raw], [do not build raw]),
08b1c219 2259 [], [UL_DEFAULT_ENABLE([raw], [check])]
48d7b13a 2260)
61a074f7 2261UL_BUILD_INIT([raw])
16ba8d58
KZ
2262UL_REQUIRES_LINUX([raw])
2263UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
034d378b 2264AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
48d7b13a
KZ
2265
2266
48d7b13a 2267AC_ARG_ENABLE([rename],
7fa4f112 2268 AS_HELP_STRING([--disable-rename], [do not build rename]),
08b1c219 2269 [], [UL_DEFAULT_ENABLE([rename], [yes])]
48d7b13a 2270)
61a074f7 2271UL_BUILD_INIT([rename])
034d378b 2272AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
48d7b13a
KZ
2273
2274
cc76731e
KZ
2275AC_ARG_ENABLE([vipw],
2276 AS_HELP_STRING([--enable-vipw], [build vipw]),
08b1c219 2277 [], [UL_DEFAULT_ENABLE([vipw], [no])]
48d7b13a 2278)
cc76731e 2279UL_BUILD_INIT([vipw])
d00c10ed 2280UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
034d378b 2281AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
9cb68977 2282
c94b3604 2283
aec9ecbd
KZ
2284AC_ARG_ENABLE([newgrp],
2285 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
08b1c219 2286 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
aec9ecbd
KZ
2287)
2288UL_BUILD_INIT([newgrp])
8229ed2f 2289UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
034d378b 2290AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
aec9ecbd
KZ
2291
2292
d86918b6 2293AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
034d378b 2294 [], [with_user=check]
7e4714f2 2295)
6e93c52f 2296have_user=no
3013eb9d 2297AS_IF([test "x$with_user" != xno], [
2771954b 2298 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
9f57e6e8
SK
2299 AS_CASE([$with_user:$have_user],
2300 [yes:no],
2301 [AC_MSG_ERROR([user selected but libuser not found])],
2302 [*:yes],
2303 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
2304 )
1f6ec24c
KZ
2305 # temporary solution, libuser has stupid .pc where are exported all
2306 # private dependencies to Requires: instead of Requires.private:
3013eb9d 2307 AS_IF([test "x$have_user" = xyes], [
1f6ec24c 2308 LIBUSER_LIBS=-luser
3013eb9d
SK
2309 ])
2310])
034d378b 2311AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
7e4714f2 2312
d86918b6
KZ
2313AC_ARG_ENABLE([chfn-chsh-password],
2314 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
034d378b 2315 [], [enable_chfn_chsh_password=yes]
d86918b6
KZ
2316)
2317
2318AC_ARG_ENABLE([chfn-chsh],
f205a073 2319 AS_HELP_STRING([--disable-chfn-chsh], [do not build chfn and chsh]),
9a4e9c9d 2320 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
d86918b6
KZ
2321)
2322UL_BUILD_INIT([chfn_chsh])
d00c10ed 2323UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
49a3d609 2324UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
d86918b6 2325
948182f4 2326AS_IF([test "x$enable_chfn_chsh_password" = xyes || test "x$have_user" = xyes], [
fe2c9909 2327 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
034d378b 2328 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
3013eb9d 2329])
034d378b
SK
2330AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
2331AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
d86918b6
KZ
2332
2333AC_ARG_ENABLE([chsh-only-listed],
5c0b406d
BS
2334 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
2335 [], enable_chsh_only_listed=yes
d86918b6 2336)
7e4714f2 2337
3013eb9d
SK
2338AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2339 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2340])
71681ee5 2341
2c8a3e16 2342
e7614a07
KZ
2343AC_ARG_ENABLE([login],
2344 AS_HELP_STRING([--disable-login], [do not build login]),
08b1c219 2345 [], [UL_DEFAULT_ENABLE([login], [check])]
e7614a07
KZ
2346)
2347UL_BUILD_INIT([login])
fe2c9909
WJ
2348UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2349UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
b4b919fe 2350UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
73afd3f8 2351UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
034d378b 2352AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
e7614a07 2353
71681ee5
KZ
2354AC_ARG_ENABLE([login-chown-vcs],
2355 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
034d378b 2356 [], [enable_login_chown_vcs=no]
71681ee5
KZ
2357)
2358
3013eb9d 2359AS_IF([test "x$enable_login_chown_vcs" = xyes], [
034d378b 2360 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
3013eb9d 2361])
71681ee5
KZ
2362
2363AC_ARG_ENABLE([login-stat-mail],
2364 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
034d378b 2365 [], [enable_login_stat_mail=no]
71681ee5
KZ
2366)
2367
3013eb9d 2368AS_IF([test "x$enable_login_stat_mail" = xyes], [
034d378b 2369 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
3013eb9d 2370])
71681ee5 2371
e7614a07 2372
88407b93
KZ
2373AC_ARG_ENABLE([nologin],
2374 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
08b1c219 2375 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
88407b93
KZ
2376)
2377UL_BUILD_INIT([nologin])
2378AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2379
2380
e7614a07
KZ
2381AC_ARG_ENABLE([sulogin],
2382 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
d00c10ed 2383 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
e7614a07
KZ
2384)
2385UL_BUILD_INIT([sulogin])
8229ed2f 2386UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
d00c10ed 2387UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
034d378b 2388AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
e7614a07 2389
f17f5f48 2390
ff4c5555
KZ
2391AC_ARG_ENABLE([su],
2392 AS_HELP_STRING([--disable-su], [do not build su]),
08b1c219 2393 [], [UL_DEFAULT_ENABLE([su], [check])]
ff4c5555
KZ
2394)
2395UL_BUILD_INIT([su])
fe2c9909 2396UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
b4b919fe 2397UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
73afd3f8 2398UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
034d378b 2399AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
ff4c5555
KZ
2400
2401
7ec6adb1
KZ
2402AC_ARG_ENABLE([runuser],
2403 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
08b1c219 2404 [], [UL_DEFAULT_ENABLE([runuser], [check])]
7ec6adb1
KZ
2405)
2406UL_BUILD_INIT([runuser])
fe2c9909 2407UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
b4b919fe 2408UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
73afd3f8 2409UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
034d378b 2410AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
7ec6adb1
KZ
2411
2412
53b22add
KZ
2413AC_ARG_ENABLE([ul],
2414 AS_HELP_STRING([--disable-ul], [do not build ul]),
08b1c219 2415 [], [UL_DEFAULT_ENABLE([ul], [check])]
53b22add
KZ
2416)
2417UL_BUILD_INIT([ul])
3cc8a9f4 2418UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
034d378b 2419AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
53b22add
KZ
2420
2421
2422AC_ARG_ENABLE([more],
2423 AS_HELP_STRING([--disable-more], [do not build more]),
08b1c219 2424 [], [UL_DEFAULT_ENABLE([more], [check])]
53b22add
KZ
2425)
2426UL_BUILD_INIT([more])
3cc8a9f4 2427UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
823ef319 2428UL_REQUIRES_LINUX([more])
034d378b 2429AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
53b22add
KZ
2430
2431
2432AC_ARG_ENABLE([pg],
00971cca
SK
2433 AS_HELP_STRING([--enable-pg], [build pg]),
2434 [], [UL_DEFAULT_ENABLE([pg], [no])]
53b22add
KZ
2435)
2436UL_BUILD_INIT([pg])
4b439e2d 2437UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
034d378b 2438AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
53b22add
KZ
2439
2440
d78d0409
KZ
2441AC_ARG_ENABLE([setterm],
2442 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
08b1c219 2443 [], [UL_DEFAULT_ENABLE([setterm], [check])]
d78d0409
KZ
2444)
2445UL_BUILD_INIT([setterm])
2446UL_REQUIRES_LINUX([setterm])
4b439e2d 2447UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
034d378b 2448AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
d78d0409 2449
d6ace0b8
KZ
2450# build_schedutils= is just configure-only variable to control
2451# ionice, taskset and chrt
48d7b13a 2452AC_ARG_ENABLE([schedutils],
34228e69 2453 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
fc72f51e 2454 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
48d7b13a 2455)
17d5e11b 2456
6f2eb034
KZ
2457
2458UL_ENABLE_ALIAS([ionice], [schedutils])
2459UL_BUILD_INIT([ionice])
17d5e11b
KZ
2460UL_REQUIRES_SYSCALL_CHECK([ionice],
2461 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
2462 [alpha], [442],
2463 [i*86], [289],
2464 [ia64*], [1274],
2465 [powerpc*], [273],
2466 [s390*], [282],
2467 [sparc*], [196],
2468 [sh*], [288],
2469 [x86_64*], [251])],
17d5e11b
KZ
2470 [ioprio_set])
2471
2472UL_REQUIRES_SYSCALL_CHECK([ionice],
2473 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
2474 [alpha], [443],
2475 [i*86], [290],
2476 [ia64*], [1275],
2477 [powerpc*], [274],
2478 [s390*], [283],
2479 [sparc*], [218],
2480 [sh*], [289],
2481 [x86_64*], [252])],
17d5e11b
KZ
2482 [ioprio_get])
2483
034d378b 2484AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
17d5e11b 2485
6f2eb034
KZ
2486
2487UL_ENABLE_ALIAS([taskset], [schedutils])
2488UL_BUILD_INIT([taskset])
e21e6d26 2489UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
2490UL_REQUIRES_SYSCALL_CHECK([taskset],
2491 [UL_CHECK_SYSCALL([sched_getaffinity])],
2492 [sched_getaffinity])
034d378b 2493AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
48d7b13a 2494
ee20c303
RM
2495
2496have_schedsetter=no
2497AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2498 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2499
6f2eb034
KZ
2500UL_ENABLE_ALIAS([chrt], [schedutils])
2501UL_BUILD_INIT([chrt])
ee20c303 2502UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
d6ace0b8
KZ
2503AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2504
15167589
KZ
2505AS_IF([test "x$build_chrt" = xyes], [
2506 UL_CHECK_SYSCALL([sched_setattr])
2507])
2508
f59654bb
QY
2509UL_ENABLE_ALIAS([uclampset], [schedutils])
2510UL_BUILD_INIT([uclampset])
82643a9b
KZ
2511UL_REQUIRES_SYSCALL_CHECK([uclampset],
2512 [UL_CHECK_SYSCALL([sched_setattr])], [sched_setattr])
f59654bb
QY
2513AM_CONDITIONAL([BUILD_UCLAMPSET], [test "x$build_uclampset" = xyes])
2514
48d7b13a
KZ
2515
2516AC_ARG_ENABLE([wall],
7fa4f112 2517 AS_HELP_STRING([--disable-wall], [do not build wall]),
d00c10ed 2518 [], [UL_DEFAULT_ENABLE([wall], [check])]
48d7b13a 2519)
8fc8888b 2520UL_BUILD_INIT([wall])
b4b919fe 2521UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
034d378b 2522AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
48d7b13a
KZ
2523
2524
2525AC_ARG_ENABLE([write],
7fa4f112 2526 AS_HELP_STRING([--enable-write], [build write]),
08b1c219 2527 [], [UL_DEFAULT_ENABLE([write], [no])]
48d7b13a 2528)
61a074f7 2529UL_BUILD_INIT([write])
b4b919fe 2530UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
73afd3f8 2531UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
034d378b 2532AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
48d7b13a
KZ
2533
2534
5a971329 2535AC_ARG_WITH([btrfs],
95a89bd3 2536 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
5a971329
KZ
2537 [], [with_btrfs=check]
2538)
2539have_btrfs=no
2540AS_IF([test "x$with_btrfs" != xno], [
2541 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2542 [yes:no],
2543 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2544 [check:no],
2545 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2546 [*:yes],
2547 [have_btrfs=yes
2548 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2549 )
2550])
2551AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2552
2553
ebff016a 2554AC_ARG_WITH([systemd],
95a89bd3 2555 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
ebff016a
KZ
2556 [], [with_systemd=check]
2557)
2558
2559have_systemd=no
2560AS_IF([test "x$with_systemd" != xno], [
2561 # new version -- all libsystemd-* libs merged into libsystemd
2562 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2563 # old versions
2564 AS_IF([test "x$have_systemd" != "xyes"], [
2565 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2566 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2567 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2568 [have_systemd_journal=yes], [have_systemd_journal=no])
948182f4 2569 AS_IF([test "x$have_systemd_daemon" = "xyes" && test "x$have_systemd_journal" = "xyes" ],[
ebff016a 2570 have_systemd=yes])
ea45d34c 2571 ])
ebff016a
KZ
2572 AS_CASE([$with_systemd:$have_systemd],
2573 [yes:no],
2574 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2575 [*:yes],
2576 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
b66b5b97 2577 AC_DEFINE([USE_SYSTEMD], [1], [Define if systemd support is wanted ])
87fcd95a 2578 AC_CHECK_DECLS([sd_session_get_username], [], [], [#include <systemd/sd-login.h>])
ebff016a 2579 )
3013eb9d 2580])
ebff016a
KZ
2581AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2582
bbe289c4 2583
1b68c379 2584AC_ARG_WITH([systemdsystemunitdir],
95a89bd3 2585 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
f6d3f34a 2586 [], [
7a95313c 2587 AS_IF([test "x$have_systemd" = xyes], [
f6d3f34a
KZ
2588 PKG_CHECK_VAR([with_systemdsystemunitdir], [systemd], [systemdsystemunitdir],
2589 [],
2590 [with_systemdsystemunitdir=no])
7a95313c
KZ
2591 ])
2592])
3013eb9d 2593AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1b68c379 2594 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
3013eb9d 2595])
1b68c379 2596
bbe289c4 2597
b8095d25
KZ
2598AC_ARG_WITH([smack],
2599 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2600 [], [with_smack=no]
2601)
2602AS_IF([test "x$with_smack" = xyes], [
2603 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2604])
2605
9e584ff3
TK
2606AC_ARG_WITH([econf],
2607 AS_HELP_STRING([--without-econf], [do not use libeconf]),
2608 [], [with_econf=check]
2609)
2610
2611have_econf=no
2612AS_IF([test "x$with_econf" != xno], [
9e584ff3
TK
2613 PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
2614 AS_CASE([$with_econf:$have_econf],
2615 [yes:no],
2616 [AC_MSG_ERROR([libeconf expected but libeconf not found])],
2617 [*:yes],
2618 AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
2619 )
2620])
2621AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
2622
fee99106 2623AC_ARG_WITH([vendordir],
cb776288 2624 AS_HELP_STRING([--with-vendordir=DIR], [Directory for distribution provided configuration files]),
fee99106 2625 [], []
9e584ff3 2626)
fee99106
KZ
2627AC_SUBST([vendordir], [$with_vendordir])
2628AM_CONDITIONAL([USE_VENDORDIR], [test "x$with_vendordir" != x])
2629AS_IF([test "x$with_vendordir" != x], [
2630 AC_DEFINE([USE_VENDORDIR], [1], [Define to 1 to use vendordir])
2631])
9e584ff3 2632
b8095d25 2633
ece777e9
KZ
2634AC_ARG_ENABLE([bash-completion],
2635 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
034d378b 2636 [], [enable_bash_completion=yes]
ece777e9
KZ
2637)
2638
034d378b 2639AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
ece777e9 2640
f6d3f34a
KZ
2641AC_ARG_WITH([bashcompletiondir],
2642 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2643 [], [
2644 AS_IF([test "x$enable_bash_completion" = xyes], [
2645 PKG_CHECK_VAR([with_bashcompletiondir], [bash-completion], [completionsdir],
2646 [],
2647 [with_bashcompletiondir=${datadir}/bash-completion/completions])
2648 ])
2649])
140e4c7b
KZ
2650AS_IF([test "x$enable_bash_completion" = xyes], [
2651 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2652])
f6d3f34a 2653
9cc36e9f 2654
d78df0ac 2655AC_ARG_WITH([python],
4c54effb
KZ
2656 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2657 [], [with_python=check withval=check]
d78df0ac 2658)
8e5c4675 2659
d78df0ac 2660have_python=no
b2ae8c57 2661have_libpython=no
8e5c4675
KZ
2662AS_IF([test "x$with_python" != xno], [
2663 # We follow distributions default and look for PKG module name "python"
2664 # (minimal version is 2) but if major version is explicitly specified by
2665 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2666 # "python3".
948182f4 2667 AS_IF([test "x$withval" != xno && test "x$withval" != xyes && test "x$withval" != xcheck],
0b567ae5 2668 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
b2ae8c57
KZ
2669
2670 # check for python interpreter
0b567ae5 2671 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
8e5c4675
KZ
2672 AS_CASE([$with_python:$have_python],
2673 [yes:no],
b2ae8c57 2674 [AC_MSG_ERROR([python selected but python interpreter not found])],
4c54effb 2675 [check:no],
b2ae8c57 2676 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
4c54effb 2677 [*:yes],
b2ae8c57 2678 # check for python development stuff
c6cdefd7
TW
2679 [
2680 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION], [have_libpython=yes], [have_libpython=no])
2681
2682 # https://github.com/util-linux/util-linux/issues/2366
2683 AX_COMPARE_VERSION([$PYTHON_VERSION], [ge], [3.12], [
2684 UL_WARN_ADD([-Wno-error=redundant-decls], [PYTHON_CFLAGS])
2685 ])
2686 ]
8e5c4675 2687 )
d78df0ac
KZ
2688])
2689
da0ec90b
KZ
2690
2691AC_ARG_ENABLE([pylibmount],
2692 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2693 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2694)
2695UL_BUILD_INIT([pylibmount])
b2ae8c57 2696UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
da0ec90b 2697UL_REQUIRES_BUILD([pylibmount], [libmount])
d78df0ac
KZ
2698AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2699
324330ac
FB
2700# We need to introduce a verbatim dependency into the Makefile, without automake
2701# trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2702verbatim_pylibmount_dependency='
2703
2704# pylibmountexec module must be installed after usrlib_exec libraries,
2705# otherwise the libtool relink step will fail to find libmount.la and
2706# will try -lmount which is possibly not available.
2707install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2708
2709'
2710AC_SUBST([verbatim_pylibmount_dependency])
2711AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
d78df0ac 2712
48d7b13a 2713AC_ARG_ENABLE([pg-bell],
7fa4f112 2714 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
034d378b 2715 [], [enable_pg_bell=yes]
48d7b13a
KZ
2716)
2717
3013eb9d 2718AS_IF([test "x$enable_pg_bell" = xyes], [
034d378b 2719 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
3013eb9d 2720])
48d7b13a
KZ
2721
2722
bb4cb69d
MF
2723AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2724AC_ARG_ENABLE([fs-paths-default],
2725 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
9f57e6e8
SK
2726 [AS_CASE([$enableval],
2727 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2728 [no], [fs_paths_defaults=""],
2729 [fs_paths_defaults="$enableval"]
2730 )],
bb4cb69d
MF
2731 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2732)
2733AC_ARG_ENABLE([fs-paths-extra],
2734 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
9f57e6e8
SK
2735 [AS_CASE([$enableval],
2736 [yes|no], [fs_paths_extra=""],
2737 [fs_paths_extra="$enableval"]
2738 )],
bb4cb69d
MF
2739 [fs_paths_extra=""]
2740)
2741fs_paths="$fs_paths_defaults"
3013eb9d
SK
2742AS_IF([test "x$fs_paths_extra" != "x"], [
2743 AS_IF([test "x$fs_paths" != "x"], [
bb4cb69d 2744 fs_paths="${fs_paths}:"
3013eb9d 2745 ])
bb4cb69d 2746 fs_paths="${fs_paths}${fs_paths_extra}"
3013eb9d 2747])
bb4cb69d
MF
2748AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2749
2750
48d7b13a 2751AC_ARG_ENABLE([use-tty-group],
7fa4f112 2752 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
034d378b 2753 [], [enable_use_tty_group=yes]
48d7b13a 2754)
034d378b 2755AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
48d7b13a 2756
3013eb9d 2757AS_IF([test "x$enable_use_tty_group" = xyes], [
034d378b 2758 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
3013eb9d 2759])
48d7b13a 2760
ab6478ef
WF
2761
2762AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
2763 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2764 [use emergency mount of /dev and /proc for sulogin]),
034d378b 2765 [], [enable_sulogin_emergency_mount=no]
ab6478ef
WF
2766)
2767
3013eb9d 2768AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
89c7c6ea
KZ
2769 AS_IF([test "x$linux_os" = xyes], [ ],
2770 [AC_MSG_ERROR([--enable-sulogin-emergency-mount selected for non-linux system])])
034d378b 2771 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
3c560686 2772 [Should sulogin use an emergency mount of /dev and /proc?])
3013eb9d 2773])
ab6478ef
WF
2774
2775
f71d1104
KZ
2776AC_ARG_ENABLE([usrdir-path],
2777 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2778 [], [enable_usrdir_path=no]
2779)
2780
2afbcec5 2781AS_IF([test "x$enable_usrdir_path" = xyes], [
f71d1104
KZ
2782 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2783])
2784
2785
f3831bbd
KZ
2786AC_ARG_ENABLE([makeinstall-chown],
2787 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
034d378b 2788 [], [enable_makeinstall_chown=yes]
f3831bbd 2789)
034d378b 2790AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
f3831bbd 2791
81f55ab9 2792
4c24a7ae
KZ
2793AC_ARG_ENABLE([makeinstall-setuid],
2794 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
034d378b 2795 [], [enable_makeinstall_setuid=yes]
4c24a7ae 2796)
034d378b 2797AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
4c24a7ae 2798
06bcee19 2799
81f55ab9
KZ
2800AC_ARG_ENABLE([colors-default],
2801 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2802 [], [enable_colors_default=yes]
2803)
2804AS_IF([test "x$enable_colors_default" = xyes], [
2805 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2806])
2807
2808
e6a49887
LB
2809AC_ARG_WITH([cryptsetup],
2810 AS_HELP_STRING([--with-cryptsetup], [compile with cryptsetup support]),
2811 [], [with_cryptsetup=no]
2812)
2813
2814AS_IF([test "x$with_cryptsetup" = xno], [
2815 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
488fd4c3 2816 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
e6a49887
LB
2817], [
2818 PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup],
2819 [AC_DEFINE([HAVE_CRYPTSETUP], [1], [Define if cryptsetup is available])
2820 UL_PKG_STATIC([CRYPTSETUP_LIBS_STATIC], [libcryptsetup])
2821 AM_CONDITIONAL([HAVE_CRYPTSETUP], [true])
123b1a67
LB
2822 SAVE_CFLAGS="$CFLAGS"
2823 CFLAGS="$CRYPTSETUP_CFLAGS $CFLAGS"
2824 SAVE_LIBS="$LIBS"
2825 LIBS="$CRYPTSETUP_LIBS $LIBS"
2826 AC_CHECK_LIB([cryptsetup], [crypt_activate_by_signed_key], [
f2458cf9 2827 AC_DEFINE([HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY], [1], [Define if crypt_activate_by_signed_key exist in -lcryptsetup])
123b1a67 2828 ])
488fd4c3
LB
2829 AS_IF([test "x$with_cryptsetup" = xdlopen], [
2830 LIBS="-ldl $LIBS"
2831 AC_CHECK_LIB([dl], [dlsym], [
2832 AC_DEFINE([CRYPTSETUP_VIA_DLOPEN], [1], [Define if cryptsetup is to be loaded via dlopen])
2833 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [true])
2834 ], [AC_MSG_ERROR([libdl required to build with cryptsetup support])])
2835 ], [
2836 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2837 ])
123b1a67
LB
2838 CFLAGS="$SAVE_CFLAGS"
2839 LIBS="$SAVE_LIBS"
e6a49887
LB
2840 have_cryptsetup=yes],
2841 [have_cryptsetup=no
488fd4c3
LB
2842 AM_CONDITIONAL([HAVE_CRYPTSETUP], [false])
2843 AM_CONDITIONAL([CRYPTSETUP_VIA_DLOPEN], [false])
2844 ])
e6a49887
LB
2845
2846 AS_CASE([$with_cryptsetup:$have_cryptsetup],
2847 [yes:no], [AC_MSG_WARN([cryptsetup selected but libcryptsetup not found])]
2848 )
2849])
2850AC_SUBST([CRYPTSETUP_LIBS])
2851AC_SUBST([CRYPTSETUP_LIBS_STATIC])
2852
2853
1f10890f
SK
2854AC_ARG_VAR([SUID_CFLAGS],
2855 [CFLAGS used for binaries which are usually with the suid bit])
2856AC_ARG_VAR([SUID_LDFLAGS],
2857 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 2858
03d00d49
KZ
2859AC_ARG_VAR([DAEMON_CFLAGS],
2860 [CFLAGS used for binaries which are usually executed as daemons])
2861AC_ARG_VAR([DAEMON_LDFLAGS],
2862 [LDFLAGS used for binaries which are usually executed as daemons])
2863
2864AC_ARG_VAR([SOLIB_CFLAGS],
2865 [CFLAGS used for shared libraries])
2866AC_ARG_VAR([SOLIB_LDFLAGS],
2867 [LDFLAGS used for shared libraries])
2868
2ad21963
KZ
2869AC_ARG_VAR([ADJTIME_PATH],
2870 [Path to hwclock adjtime file, default /etc/adjtime])
2871AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2872AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2873
0cc63f0b
TW
2874if test "x${build_alias}" != "x${host_alias}"; then
2875 AC_MSG_NOTICE([setting link_all_deplibs=unknown for libtool])
2876 # work around Debian patch to libtool breaking cross-compiles
2877 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=702737
2878 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=297726
2879 link_all_deplibs=unknown
2880fi
2881
2ad21963 2882
9cb68977 2883LIBS=""
48d7b13a 2884
48d7b13a 2885
034d378b 2886AC_CONFIG_HEADERS([config.h])
48d7b13a 2887
d4baf92e
KZ
2888#
2889# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2890# more details.
2891#
8eeb575c 2892AC_CONFIG_FILES([
f06b4328 2893Makefile
31a938ac 2894libblkid/docs/Makefile
8fb4efae 2895libblkid/docs/version.xml
8fb4efae 2896libblkid/src/blkid.h
705854f3
KZ
2897libfdisk/docs/Makefile
2898libfdisk/docs/version.xml
2899libfdisk/src/libfdisk.h
31a938ac 2900libmount/docs/Makefile
2aefc0a8 2901libmount/docs/version.xml
f06b4328 2902libmount/src/libmount.h
1d90bcb1
OO
2903libsmartcols/docs/Makefile
2904libsmartcols/docs/version.xml
1a4d989e 2905libsmartcols/src/libsmartcols.h
f06b4328 2906po/Makefile.in
8f5fff53 2907po-man/Makefile
8eeb575c 2908])
48d7b13a
KZ
2909
2910AC_OUTPUT
4e1073c2
KZ
2911
2912AC_MSG_RESULT([
a73035dc 2913 ${PACKAGE} ${VERSION}
4e1073c2 2914
a73035dc
KZ
2915 prefix: ${prefix}
2916 exec prefix: ${exec_prefix}
4e1073c2 2917
a73035dc
KZ
2918 bindir: ${bindir}
2919 sbindir: ${sbindir}
2920 libdir: ${libdir}
2921 usrbin_execdir: ${usrbin_execdir}
2922 usrsbin_execdir: ${usrsbin_execdir}
2923 usrlib_execdir: ${usrlib_execdir}
3d289965 2924
a73035dc
KZ
2925 localstatedir: ${localstatedir}
2926 runstatedir: ${runstatedir}
2927 includedir: ${includedir}
2928 sysconfdir: ${sysconfdir}
2929 sysconfstaticdir: ${sysconfstaticdir}
3d289965 2930
a73035dc 2931 vendordir: ${with_vendordir}
4e1073c2 2932
a73035dc
KZ
2933 Python: ${PYTHON}
2934 Python version: ${PYTHON_VERSION}
2935 Python libs: ${pyexecdir}
8e5c4675 2936
a73035dc
KZ
2937 Bash completions: ${with_bashcompletiondir}
2938 Systemd support: ${have_systemd}
2939 Systemd unitdir: ${with_systemdsystemunitdir}
2940 libeconf support: ${have_econf}
2941 Btrfs support: ${have_btrfs}
2942 Wide-char support: ${build_widechar}
034ca748 2943 libcryptsetup support: ${have_cryptsetup}
3745d4a9 2944
a73035dc
KZ
2945 Manual pages: ${build_asciidoc}
2946 Manual pages translated: ${build_poman}
4e1073c2 2947
8519f4dd 2948 compiler: ${CC} / ${CXX}
a73035dc
KZ
2949 suid cflags: ${SUID_CFLAGS}
2950 ldflags: ${LDFLAGS}
2951 suid ldflags: ${SUID_LDFLAGS}
2952 ASAN enabled: ${enable_asan}
b4b8f8c2
FS
2953 Fuzzing enabled: ${enable_fuzzing_engine}
2954 Coverage enabled ${enable_coverage}
22a900a9 2955
a73035dc
KZ
2956 cflags: ${CFLAGS}
2957
2958 warnings:
4e1073c2
KZ
2959
2960${WARN_CFLAGS}
b4b84389 2961
a73035dc 2962 Type 'make' or 'make <utilname>' to compile.
4e1073c2 2963])