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