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