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