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