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