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