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