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