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