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