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