]> git.ipfire.org Git - thirdparty/util-linux.git/blob - configure.ac
build-sys: introduce $sysconfstaticdir
[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="14-Jun-2019"
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], [true])],
333 [AM_CONDITIONAL([HAVE_LANGINFO], [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 posix_fadvise \
501 prctl \
502 qsort_r \
503 rpmatch \
504 scandirat \
505 setprogname \
506 setresgid \
507 setresuid \
508 sched_setattr \
509 sched_setscheduler \
510 sigqueue \
511 srandom \
512 strnchr \
513 strndup \
514 strnlen \
515 sysconf \
516 sysinfo \
517 timegm \
518 usleep \
519 vwarnx \
520 warn \
521 warnx \
522 ])
523 AC_FUNC_FSEEKO
524
525 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
526 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
527 AC_CHECK_FUNCS([futimens], [have_futimens=yes])
528 AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
529 AC_CHECK_FUNCS([open_memstream], [have_open_memstream=yes],[have_open_memstream=no])
530 AC_CHECK_FUNCS([reboot], [have_reboot=yes],[have_reboot=no])
531 AC_CHECK_FUNCS([updwtmpx updwtmpx], [have_gnu_utmpx=yes], [have_gnu_utmpx=no])
532 AC_CHECK_FUNCS([getusershell], [have_getusershell=yes],[have_getusershell=no])
533
534 AM_CONDITIONAL([HAVE_OPENAT], [test "x$have_openat" = xyes])
535
536 have_setns_syscall="yes"
537 UL_CHECK_SYSCALL([setns])
538 AS_IF([test "x$ul_cv_syscall_setns" = xno], [
539 have_setns_syscall="no"
540 ])
541
542 AC_CHECK_FUNCS([isnan], [],
543 [AC_CHECK_LIB([m], [isnan], [MATH_LIBS="-lm"])]
544 [AC_CHECK_LIB([m], [__isnan], [MATH_LIBS="-lm"])]
545 )
546 AC_SUBST([MATH_LIBS])
547
548
549 dnl lib/mononotic.c may require -lrt
550 AC_CHECK_FUNCS([clock_gettime], [],
551 [AC_CHECK_LIB([rt], [clock_gettime], [REALTIME_LIBS="-lrt"])]
552 )
553
554 have_timer="no"
555 AC_CHECK_FUNCS([timer_create],
556 [have_timer="yes"],
557 [AC_CHECK_LIB([rt], [timer_create], [
558 have_timer="yes"
559 REALTIME_LIBS="-lrt"
560 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt])
561 ],[
562 AC_SEARCH_LIBS([timer_create], [rt], [
563 AC_MSG_RESULT(yes)
564 have_timer="yes"
565 REALTIME_LIBS="-lrt -lpthread"
566 AC_DEFINE_UNQUOTED([HAVE_TIMER_CREATE], [1], [Define if timer_create exist in -lrt -lpthread])
567 ],[], [-lpthread]
568 )
569 ])]
570 )
571
572 AC_SUBST([REALTIME_LIBS])
573
574 AS_IF([test x"$have_timer" = xno], [
575 AC_CHECK_FUNCS([setitimer], [have_timer="yes"], [have_timer="no"])
576 ])
577
578
579 AC_CHECK_LIB([rtas], [rtas_get_sysparm], [
580 RTAS_LIBS="-lrtas"
581 AC_DEFINE_UNQUOTED([HAVE_LIBRTAS], [1], [Define if librtas exists]), [],
582 ])
583 AC_SUBST([RTAS_LIBS])
584
585
586 AC_CHECK_MEMBER([struct sockaddr.sa_len],
587 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
588 [#include <sys/types.h>
589 #include <sys/socket.h>])
590
591 SOCKET_LIBS=
592 AC_SEARCH_LIBS([socket], [socket],
593 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
594 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
595 ])
596 AC_SUBST([SOCKET_LIBS])
597
598
599 have_dirfd=no
600 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
601 AS_IF([test x"$have_dirfd" = xno], [
602 AC_CHECK_DECLS([dirfd],
603 [have_dirfd=yes], [have_dirfd=no],
604 [#include <sys/types.h>
605 #include <dirent.h>])
606 ])
607
608 have_ddfd=no
609 AS_IF([test x"$have_dirfd" = xno], [
610 AC_CHECK_MEMBERS([DIR.dd_fd],
611 [have_ddfd=yes], [have_ddfd=no],
612 [#include <sys/types.h>
613 #include <dirent.h>])
614 ])
615
616 AM_CONDITIONAL([HAVE_DIRFD], [test "x$have_dirfd" = xyes -o "x$have_ddfd" = xyes])
617
618
619 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
620 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
621 #include <errno.h>
622 ]], [[
623 program_invocation_short_name = "test";
624 ]])], [
625 AC_MSG_RESULT([yes])
626 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
627 [Define if program_invocation_short_name is defined])
628 ], [
629 AC_MSG_RESULT([no])
630 ])
631
632
633 AC_MSG_CHECKING([whether __progname is defined])
634 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
635 [if (*__progname == 0) return 1;])],
636 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
637 AC_MSG_RESULT([yes]),
638 AC_MSG_RESULT([no]))
639
640 dnl Static compilation
641 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter, unshare])
642
643 AC_ARG_ENABLE([static-programs],
644 [AS_HELP_STRING([--enable-static-programs=LIST],
645 [link static the programs in LIST (comma-separated,
646 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
647
648 AS_CASE([$enable_static_programs],
649 [yes],
650 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
651 [no],
652 [enable_static_programs=]
653 )
654
655 dnl Set all the individual AM_CONDITIONALs
656 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
657 AS_CASE([,$enable_static_programs,],
658 [*,UL_PRG,*], [static_[]UL_PRG=yes]
659 )
660 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
661 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
662 [test "x$static_[]UL_PRG" = xyes])
663 ])
664
665
666 AC_ARG_ENABLE([all-programs],
667 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
668 [], [enable_all_programs=undefined]
669 )
670
671 AS_CASE([$enable_all_programs],
672 [yes], [AC_MSG_WARN([force to build all programs by default])
673 ul_default_estate=check],
674 [no], [AC_MSG_WARN([disable all programs by default])
675 ul_default_estate=no]
676 )
677
678
679 AX_CHECK_TLS
680
681 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
682 # include <stdio.h>
683 # include <stdlib.h>
684 int main()
685 {
686 int i;
687 int rc = 1;
688 char *s;
689 i = sscanf("x", $1, &s);
690 if (i == 1 && *s == 'x')
691 rc = 0;
692 free(s);
693 return rc;
694 }])
695
696 AC_CACHE_VAL([scanf_cv_alloc_modifier],
697 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
698 [scanf_cv_alloc_modifier=ms],
699 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
700 [scanf_cv_alloc_modifier=as],
701 [scanf_cv_alloc_modifier=no]
702 )
703 ,
704
705 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
706 #include <stdio.h>
707 #include <unistd.h>
708
709 #if defined(__GLIBC__) && !defined(__UCLIBC__)
710
711 #if !(__GLIBC_PREREQ(2, 7))
712 #error %m is not available
713 #endif
714
715 #elif defined(_POSIX_VERSION)
716
717 #if _POSIX_VERSION < 200809L
718 #error %m is not available
719 #endif
720
721 #else
722 #error Your C-library is not supported.
723 #endif
724 ])],
725 [scanf_cv_alloc_modifier=ms],
726 [scanf_cv_alloc_modifier=no])]
727 )
728 )
729
730 AC_MSG_CHECKING([scanf string alloc modifiers])
731 AS_CASE([$scanf_cv_alloc_modifier],
732 [ms],
733 [AC_MSG_RESULT([(%ms) yes])
734 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
735 have_scanf_alloc_modifier=yes],
736 [as],
737 [AC_MSG_RESULT([(%as) yes])
738 have_scanf_alloc_modifier=yes
739 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
740 [AC_MSG_RESULT([no])
741 have_scanf_alloc_modifier=no]
742 )
743
744 have_pty=no
745 AC_ARG_WITH([util], AS_HELP_STRING([--without-util], [compile without libutil]),
746 [], [with_util=auto]
747 )
748 AS_IF([test "x$with_util" = xno], [
749 AM_CONDITIONAL([HAVE_UTIL], [false])
750 have_util=no
751 ], [
752 UL_CHECK_LIB([util], [openpty])
753 ])
754
755 AS_IF([test "x$have_pty_h" = xyes -a "x$have_sys_signalfd_h" = xyes -a "x$have_util" = xyes], [
756 AM_CONDITIONAL([HAVE_PTY], [true])
757 AC_DEFINE([HAVE_PTY], [1], [have PTY support])
758 have_pty=yes
759 ], [
760 AM_CONDITIONAL([HAVE_PTY], [false])
761 ])
762
763 AC_CHECK_TYPES([union semun], [], [], [[
764 #include <sys/sem.h>
765 ]])
766 AC_CHECK_TYPES([loff_t])
767
768
769 AC_ARG_ENABLE([widechar],
770 AS_HELP_STRING([--disable-widechar], [do not compile wide character support]),
771 [], [enable_widechar=check]
772 )
773 UL_BUILD_INIT([widechar])
774 UL_REQUIRES_COMPILE([widechar], [[
775 #include <wchar.h>
776 #include <wctype.h>
777 #include <stdio.h>
778 #include <stdlib.h>
779 ]], [[
780 wchar_t wc;
781 wint_t w;
782 w = fgetwc(stdin);
783 if (w == WEOF) exit(1);
784 wc = w;
785 fputwc(wc,stdout);
786 ]],
787 [wchar_t support])
788
789 AS_IF([test "x$build_widechar" = xyes ], [
790 AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
791 ])
792
793
794 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
795 #include <sched.h>
796 ]])
797
798 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
799
800 AC_CHECK_TYPES([sighandler_t], [], [], [[
801 #include <signal.h>
802 ]])
803
804 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
805 #include <sched.h>
806 ]])
807
808 # on Solaris, you can't mix and match standards, since we use c99
809 # apparently at this stage, XOPEN_SOURCE will conflict. As workaround,
810 # check for crypt.h and use that without XOPEN_SOURCE.
811 have_crypt=no
812 AC_CHECK_HEADERS([crypt.h])
813 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
814 #ifdef HAVE_CRYPT_H
815 #include <crypt.h>
816 #else
817 #define _XOPEN_SOURCE
818 #include <unistd.h>
819 #endif
820 ]], [[
821 char *c = crypt("abc","pw");
822 ]])],[
823 have_libcrypt=no
824 have_crypt=yes
825 ],[
826 LIBS="$LIBS -lcrypt"
827 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
828 #ifdef HAVE_CRYPT_H
829 #include <crypt.h>
830 #else
831 #define _XOPEN_SOURCE
832 #include <unistd.h>
833 #endif
834 ]], [[
835 char *c = crypt("abc","pw");
836 ]])],[
837 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
838 have_libcrypt=yes
839 have_crypt=yes
840 ],[
841 AC_MSG_WARN([crypt() is not available])
842 ])
843 ])
844 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
845
846
847 AC_ARG_WITH([selinux],
848 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
849 [], [with_selinux=no]
850 )
851
852 AS_IF([test "x$with_selinux" = xno], [
853 AM_CONDITIONAL([HAVE_SELINUX], [false])
854 ], [
855 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
856 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
857 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
858 AM_CONDITIONAL([HAVE_SELINUX], [true])
859 have_selinux=yes],
860 [have_selinux=no])
861
862 AS_CASE([$with_selinux:$have_selinux],
863 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
864 )
865
866 AS_IF([test "x$have_selinux" = xyes], [
867 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
868 # This function is missing in old libselinux 1.xx versions
869 AC_CHECK_FUNCS([security_get_initial_context])
870 UL_RESTORE_FLAGS
871 ])
872 ])
873 AC_SUBST([SELINUX_LIBS])
874 AC_SUBST([SELINUX_LIBS_STATIC])
875
876
877 AC_ARG_WITH([audit],
878 AS_HELP_STRING([--with-audit], [compile with audit support]),
879 [], [with_audit=no]
880 )
881
882 AS_IF([test "x$with_audit" = xno], [
883 AM_CONDITIONAL([HAVE_AUDIT], [false])
884 ], [
885 UL_CHECK_LIB([audit], [audit_log_user_message])
886 AS_CASE([$with_audit:$have_audit],
887 [yes:no],
888 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
889 )
890 ])
891
892 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
893 [], [with_udev=auto]
894 )
895
896 AS_IF([test "x$with_udev" = xno], [
897 AM_CONDITIONAL([HAVE_UDEV], [false])
898 ], [
899 UL_CHECK_LIB([udev], [udev_new])
900 AS_CASE([$with_udev:$have_udev],
901 [yes:no],
902 [AC_MSG_ERROR([udev selected but libudev not found])]
903 )
904 ])
905
906
907 dnl wide-char ncurses
908 AC_ARG_WITH([ncursesw],
909 AS_HELP_STRING([--without-ncursesw], [do not build with wide-char ncurses]),
910 [], [with_ncursesw=auto]
911 )
912 have_ncursesw=no
913 have_ncursesw_header=no
914 AS_IF([test "x$with_ncursesw" != xno], [
915 UL_NCURSES_CHECK([ncursesw])
916 AS_IF([test "x$have_ncursesw" = xyes], [
917 AC_CHECK_HEADERS([ncursesw/ncurses.h], [have_ncursesw_header=yes])
918 AC_CHECK_HEADERS([ncursesw/term.h])
919
920 # Define HAVE_NCURSES_H only if check for HAVE_NCURSESW_NCURSES_H is
921 # unsuccessful to avoid too many *_H permitations in config.h
922 AS_IF([test "x$have_ncursesw_header" = xno], [
923 AC_CHECK_HEADERS([ncurses.h], [have_ncursesw_header=yes])
924 AC_CHECK_HEADERS([term.h])
925 ])
926 AS_IF([test "x$have_ncursesw_header" = xno], [have_ncursesw=no])
927 ])
928 AS_IF([test "x$have_ncursesw" = xyes], [
929 CURSES_LIB_NAME="ncursesw"
930 AC_DEFINE([HAVE_LIBNCURSESW], [1], [Define if ncursesw library available])
931 ])
932 ])
933 AS_CASE([$with_ncursesw:$have_ncursesw],
934 [yes:no], [AC_MSG_ERROR([ncursesw selected, but library not found])])
935
936
937 dnl non-wide ncurses
938 AC_ARG_WITH([ncurses],
939 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses]),
940 [], [with_ncurses=auto]
941 )
942 have_ncurses=no
943 have_ncurses_header=no
944 AS_CASE([$with_ncurses:$build_widechar],
945 [yes:yes], [AC_MSG_ERROR([wide-char support enabled, but non-wide ncurses selects])])
946
947 AS_IF([test "x$have_ncursesw" = xno -a "x$with_ncurses" != xno ], [
948 UL_NCURSES_CHECK([ncurses])
949 AS_IF([test "x$have_ncurses" = xyes], [
950 AC_CHECK_HEADERS([ncurses/ncurses.h], [have_ncurses_header=yes])
951 AC_CHECK_HEADERS([ncurses/term.h])
952
953 # Define HAVE_NCURSES_H only if check for HAVE_NCURSES_NCURSES_H is
954 # unsuccessful to avoid too many *_H permitations in config.h
955 AS_IF([test "x$have_ncurses_header" = xno], [
956 AC_CHECK_HEADERS([ncurses.h], [have_ncurses_header=yes])
957 AC_CHECK_HEADERS([term.h])
958 ])
959 AS_IF([test "x$have_ncurses_header" = xno], [have_ncurses=no])
960 ])
961 AS_IF([test "x$have_ncurses" = xyes], [
962 CURSES_LIB_NAME="ncurses"
963 AC_DEFINE([HAVE_LIBNCURSES], [1], [Define if ncurses library available])
964 ])
965 ])
966 AS_CASE([$with_ncurses:$have_ncurses],
967 [yes:no], [AC_MSG_ERROR([ncurses selected, but library not found])])
968
969 AC_SUBST([NCURSES_CFLAGS])
970 AC_SUBST([NCURSES_LIBS])
971 AM_CONDITIONAL([HAVE_NCURSES], [test "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes])
972
973
974 AC_ARG_WITH([slang],
975 AS_HELP_STRING([--with-slang], [compile cfdisk with slang rather than ncurses]),
976 [], [with_slang=no]
977 )
978 have_slang=no
979 AS_IF([test "x$with_slang" = xyes], [
980 AC_CHECK_HEADERS([slang.h slang/slang.h])
981 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
982 [have_slang=yes], [], [
983 #ifdef HAVE_SLANG_H
984 #include <slang.h>
985 #elif defined(HAVE_SLANG_SLANG_H)
986 #include <slang/slang.h>
987 #endif
988 ])
989 AS_IF([test "x$have_slang" = xno], [
990 AC_MSG_ERROR([slang selected but slcurses.h not found])],
991 [CURSES_LIB_NAME=slang
992 ])
993 ])
994 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
995
996
997 AS_IF([test "x$have_slang" = xyes -o "x$have_ncursesw" = xyes -o "x$have_ncurses" = xyes], [
998 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
999 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
1000 [Define if curses library has the use_default_colors().])
1001 ])
1002 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
1003 AC_DEFINE(HAVE_RESIZETERM, 1,
1004 [Define if curses library has the resizeterm().])
1005 ])
1006 ])
1007
1008
1009 AC_ARG_WITH([tinfo], AS_HELP_STRING([--without-tinfo], [compile without libtinfo]),
1010 [], [with_tinfo=auto]
1011 )
1012 have_tinfo=no
1013 have_tinfow=no
1014 AS_IF([test "x$with_tinfo" != xno], [
1015 AS_IF([test "x$have_ncursesw" = xyes], [
1016 UL_TINFO_CHECK([tinfow])
1017 ])
1018 AS_IF([test "x$have_tinfow" = xno], [
1019 UL_TINFO_CHECK([tinfo])
1020 ])
1021 ])
1022 AC_SUBST([TINFO_LIBS])
1023 AC_SUBST([TINFO_LIBS_STATIC])
1024 AC_SUBST([TINFO_CFLAGS])
1025 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes])
1026 AS_IF([test "x$have_tinfo" = xyes -o "x$have_tinfow" = xyes], [
1027 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo or libtinfow available.])
1028 ])
1029
1030
1031 AC_ARG_WITH([readline],
1032 AS_HELP_STRING([--without-readline], [do not build with GNU Readline support]),
1033 [], [with_readline=auto]
1034 )
1035
1036 AS_IF([test "x$with_readline" = xno], [
1037 AM_CONDITIONAL([HAVE_READLINE], [false])
1038 ], [
1039 UL_CHECK_LIB([readline], [readline])
1040 AS_CASE([$with_readline:$have_readline],
1041 [yes:no],
1042 [AC_MSG_ERROR([readline selected but libreadline not found ])],
1043 [*:yes],
1044 [READLINE_LIBS="-lreadline"
1045 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
1046 )
1047 ])
1048 AC_SUBST([READLINE_LIBS])
1049 AC_SUBST([READLINE_LIBS_STATIC])
1050
1051
1052 AC_ARG_WITH([utempter],
1053 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
1054 [], [with_utempter=no]
1055 )
1056
1057 AS_IF([test "x$with_utempter" = xyes], [
1058 UL_CHECK_LIB([utempter], [utempter_add_record])
1059 AS_IF([test "x$have_utempter" = xno], [
1060 AC_MSG_ERROR([utempter selected but libutempter not found])
1061 ])
1062 ], [
1063 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
1064 ])
1065
1066
1067 dnl
1068 dnl libuuid
1069 dnl
1070 AC_ARG_ENABLE([libuuid],
1071 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
1072 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
1073 )
1074 UL_BUILD_INIT([libuuid])
1075 AC_SUBST([LIBUUID_VERSION])
1076 AC_SUBST([LIBUUID_VERSION_INFO])
1077 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
1078
1079 AC_ARG_ENABLE([libuuid-force-uuidd],
1080 AS_HELP_STRING([--enable-libuuid-force-uuidd], [support uuidd even though the daemon is not built]),
1081 [], [enable_libuuid_force_uuidd=no]
1082 )
1083
1084 AS_IF([test "x$build_libuuid" = xyes], [
1085 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
1086 ])
1087
1088 dnl
1089 dnl libblkid
1090 dnl
1091 AC_ARG_ENABLE([libblkid],
1092 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
1093 [], [UL_DEFAULT_ENABLE([libblkid], [check])]
1094 )
1095 UL_BUILD_INIT([libblkid])
1096 UL_REQUIRES_HAVE([libblkid], [openat], [openat functions])
1097 UL_REQUIRES_HAVE([libblkid], [dirfd,ddfd], [dirfd or ddfd function])
1098 AC_SUBST([LIBBLKID_DATE])
1099 AC_SUBST([LIBBLKID_VERSION])
1100 AC_SUBST([LIBBLKID_VERSION_INFO])
1101 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
1102 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
1103 AS_IF([test "x$build_libblkid" = xyes], [
1104 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
1105 ])
1106 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
1107 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
1108
1109 dnl
1110 dnl libmount
1111 dnl
1112 AC_ARG_ENABLE([libmount],
1113 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
1114 [], [UL_DEFAULT_ENABLE([libmount], [check])]
1115 )
1116 UL_BUILD_INIT([libmount])
1117 UL_REQUIRES_BUILD([libmount], [libblkid])
1118 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
1119 UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function])
1120 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
1121 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
1122 AS_IF([test "x$build_libmount" = xyes], [
1123 AC_DEFINE(HAVE_LIBMOUNT, 1, [Define if libmount available.])
1124 AS_IF([test "x$have_setns_syscall" = "xyes"], [
1125 AC_DEFINE([USE_LIBMOUNT_SUPPORT_NAMESPACES], [1], [Define to 1 if want to support namepaces.])
1126 ],[
1127 AC_MSG_WARN([libmount will be compiled without namespaces support])
1128 ])
1129 ])
1130
1131 AC_SUBST([LIBMOUNT_VERSION])
1132 AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1133 AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1134 AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1135 AC_SUBST([LIBMOUNT_VERSION_INFO])
1136 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
1137
1138 AC_ARG_ENABLE([libmount-support-mtab],
1139 AS_HELP_STRING([--enable-libmount-support-mtab], [support /etc/mtab (default is use /proc/self/mountinfo)]),
1140 [], [enable_libmount_support_mtab=no]
1141 )
1142
1143 AS_IF([test "x$enable_libmount_support_mtab" = xyes], [
1144 AC_DEFINE([USE_LIBMOUNT_SUPPORT_MTAB], [1], [Define to 1 if want to support mtab.])
1145 ])
1146
1147 dnl
1148 dnl libsmartcols
1149 dnl
1150 AC_ARG_ENABLE([libsmartcols],
1151 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
1152 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1153 )
1154 UL_BUILD_INIT([libsmartcols])
1155 AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
1156
1157 AC_SUBST([LIBSMARTCOLS_VERSION])
1158 AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
1159 AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
1160
1161
1162 dnl
1163 dnl libfdisk
1164 dnl
1165 AC_ARG_ENABLE([libfdisk],
1166 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
1167 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
1168 )
1169 UL_BUILD_INIT([libfdisk])
1170 UL_REQUIRES_BUILD([libfdisk], [libuuid])
1171 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
1172 AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
1173
1174 AS_IF([test "x$build_libblkid" = xyes],
1175 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
1176 AC_SUBST([LIBFDISK_PC_REQUIRES])
1177
1178 AC_SUBST([LIBFDISK_VERSION])
1179 AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
1180 AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
1181 AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
1182 AC_SUBST([LIBFDISK_VERSION_INFO])
1183 AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
1184
1185
1186 AC_ARG_ENABLE([fdisks],
1187 AS_HELP_STRING([--disable-fdisks], [do not build fdisk(8), sfdisk(8) and cfdisk(8)]),
1188 [], [UL_DEFAULT_ENABLE([fdisks], [check])]
1189 )
1190 enable_fdisk=$enable_fdisks
1191 enable_sfdisk=$enable_fdisks
1192 enable_cfdisk=$enable_fdisks
1193
1194 UL_BUILD_INIT([fdisk])
1195 UL_REQUIRES_HAVE([fdisk], [openat], [openat functions])
1196 UL_REQUIRES_HAVE([fdisk], [dirfd,ddfd], [dirfd or ddfd function])
1197 UL_REQUIRES_BUILD([fdisk], [libfdisk])
1198 UL_REQUIRES_BUILD([fdisk], [libsmartcols])
1199 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
1200
1201
1202 UL_BUILD_INIT([sfdisk])
1203 UL_REQUIRES_HAVE([sfdisk], [openat], [openat functions])
1204 UL_REQUIRES_HAVE([sfdisk], [dirfd,ddfd], [dirfd or ddfd function])
1205 UL_REQUIRES_BUILD([sfdisk], [libfdisk])
1206 UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
1207 AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
1208
1209
1210 UL_BUILD_INIT([cfdisk])
1211 UL_REQUIRES_BUILD([cfdisk], [libfdisk])
1212 UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
1213 UL_REQUIRES_HAVE([cfdisk], [open_memstream], [open_memstream function])
1214 UL_REQUIRES_HAVE([cfdisk], [ncursesw,slang,ncurses], [ncursesw, ncurses or slang library])
1215 AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
1216
1217
1218 AC_ARG_ENABLE([mount],
1219 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
1220 [], [UL_DEFAULT_ENABLE([mount], [check])]
1221 )
1222 UL_BUILD_INIT([mount])
1223 UL_REQUIRES_LINUX([mount])
1224 UL_REQUIRES_BUILD([mount], [libmount])
1225 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
1226
1227
1228 AC_ARG_ENABLE([losetup],
1229 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
1230 [], [UL_DEFAULT_ENABLE([losetup], [check])]
1231 )
1232 UL_BUILD_INIT([losetup])
1233 UL_REQUIRES_LINUX([losetup])
1234 UL_REQUIRES_BUILD([losetup], [libsmartcols])
1235 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
1236
1237 AC_ARG_ENABLE([zramctl],
1238 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
1239 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
1240 )
1241 UL_BUILD_INIT([zramctl])
1242 UL_REQUIRES_LINUX([zramctl])
1243 UL_REQUIRES_BUILD([zramctl], [libsmartcols])
1244 AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
1245
1246 AC_ARG_ENABLE([fsck],
1247 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1248 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1249 )
1250 UL_BUILD_INIT([fsck])
1251 UL_REQUIRES_BUILD([fsck], [libmount])
1252 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1253
1254
1255 AC_ARG_ENABLE([partx],
1256 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
1257 [], [UL_DEFAULT_ENABLE([partx], [check])]
1258 )
1259 UL_BUILD_INIT([partx])
1260 UL_REQUIRES_LINUX([partx])
1261 UL_REQUIRES_BUILD([partx], [libblkid])
1262 UL_REQUIRES_BUILD([partx], [libsmartcols])
1263 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1264
1265
1266 AC_ARG_ENABLE([uuidd],
1267 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
1268 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1269 )
1270 UL_BUILD_INIT([uuidd])
1271 UL_REQUIRES_BUILD([uuidd], [libuuid])
1272 UL_REQUIRES_HAVE([uuidd], [timer], [timer_create function])
1273 UL_REQUIRES_HAVE([uuidd], [sys_signalfd_h], [sys/signalfd.h header])
1274 AS_IF([test "x$build_uuidd" = xyes || test "x$enable_libuuid_force_uuidd" = xyes], [
1275 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
1276 ])
1277 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1278
1279
1280 UL_BUILD_INIT([uuidgen], [check])
1281 UL_REQUIRES_BUILD([uuidgen], [libuuid])
1282 AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1283
1284 UL_BUILD_INIT([uuidparse], [check])
1285 UL_REQUIRES_BUILD([uuidparse], [libuuid])
1286 UL_REQUIRES_BUILD([uuidparse], [libsmartcols])
1287 AM_CONDITIONAL([BUILD_UUIDPARSE], [test "x$build_uuidparse" = xyes])
1288
1289 UL_BUILD_INIT([blkid], [check])
1290 UL_REQUIRES_BUILD([blkid], [libblkid])
1291 AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1292
1293 UL_BUILD_INIT([findfs], [check])
1294 UL_REQUIRES_BUILD([findfs], [libblkid])
1295 AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1296
1297 AC_ARG_ENABLE([wipefs],
1298 AS_HELP_STRING([--disable-wipefs], [do not build wipefs]),
1299 [], [UL_DEFAULT_ENABLE([wipefs], [check])]
1300 )
1301 UL_BUILD_INIT([wipefs])
1302 UL_REQUIRES_BUILD([wipefs], [libblkid])
1303 UL_REQUIRES_BUILD([wipefs], [libsmartcols])
1304 AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1305
1306 UL_BUILD_INIT([findmnt], [check])
1307 UL_REQUIRES_BUILD([findmnt], [libmount])
1308 UL_REQUIRES_BUILD([findmnt], [libblkid])
1309 UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1310 AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1311
1312
1313 AC_ARG_ENABLE([mountpoint],
1314 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
1315 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
1316 )
1317 UL_BUILD_INIT([mountpoint])
1318 UL_REQUIRES_BUILD([mountpoint], [libmount])
1319 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
1320
1321
1322 AC_ARG_ENABLE([fallocate],
1323 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
1324 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
1325 )
1326 UL_BUILD_INIT([fallocate])
1327 UL_REQUIRES_LINUX([fallocate])
1328 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
1329 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
1330
1331 AS_IF([test "x$build_fallocate" = xyes], [
1332 dnl check for valid fallocate() function
1333 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1334 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1335 dnl and program can't be linked.
1336 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1337 dnl function prototype.
1338 AC_MSG_CHECKING([for valid fallocate() function])
1339 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1340 #ifdef HAVE_UNISTD_H
1341 # include <unistd.h>
1342 #endif
1343 #ifdef HAVE_SYS_TYPES_H
1344 # include <sys/types.h>
1345 #endif
1346 #ifdef HAVE_LINUX_FALLOC_H
1347 # include <linux/falloc.h>
1348 #endif
1349 #ifdef HAVE_FCNTL_H
1350 # include <fcntl.h>
1351 #endif
1352 ]],[[
1353 long ret;
1354 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
1355 if (ret != 0) {
1356 return 1;
1357 }
1358 ]])],[
1359 AC_MSG_RESULT([yes])
1360 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
1361 AC_MSG_RESULT([no])])
1362 ])
1363
1364 AS_IF([test "x$build_fallocate" = xyes], [
1365 dnl check for valid posix_fallocate() function
1366 AC_MSG_CHECKING([for valid posix_fallocate() function])
1367 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1368 #ifdef HAVE_UNISTD_H
1369 # include <unistd.h>
1370 #endif
1371 #ifdef HAVE_SYS_TYPES_H
1372 # include <sys/types.h>
1373 #endif
1374 #ifdef HAVE_LINUX_FALLOC_H
1375 # include <linux/falloc.h>
1376 #endif
1377 #ifdef HAVE_FCNTL_H
1378 # include <fcntl.h>
1379 #endif
1380 ]],[[
1381 long ret;
1382 ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
1383 if (ret != 0) {
1384 return 1;
1385 }
1386 ]])],[
1387 AC_MSG_RESULT([yes])
1388 AC_DEFINE([HAVE_POSIX_FALLOCATE], [1], [Have valid posix_fallocate() function])],[
1389 AC_MSG_RESULT([no])])
1390 ])
1391
1392
1393 AC_ARG_ENABLE([unshare],
1394 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
1395 [], [UL_DEFAULT_ENABLE([unshare], [check])]
1396 )
1397 UL_BUILD_INIT([unshare])
1398 UL_REQUIRES_LINUX([unshare])
1399 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
1400 UL_REQUIRES_HAVE([unshare], [linux_capability_h], [linux/capability.h header file])
1401 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
1402 AC_CHECK_FUNCS([unshare])
1403
1404 AC_ARG_ENABLE([nsenter],
1405 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
1406 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
1407 )
1408 UL_BUILD_INIT([nsenter])
1409 UL_REQUIRES_LINUX([nsenter])
1410 UL_REQUIRES_HAVE([nsenter], [setns_syscall], [setns syscall])
1411 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
1412 AC_CHECK_FUNCS([setns])
1413
1414
1415 AC_ARG_WITH([cap_ng],
1416 AS_HELP_STRING([--without-cap-ng], [compile without libcap-ng]),
1417 [], [with_cap_ng=auto]
1418 )
1419 AS_IF([test "x$with_cap_ng" = xno], [
1420 AM_CONDITIONAL([HAVE_CAP_NG], [false])
1421 have_cap_ng=no
1422 ],[
1423 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1424 ])
1425
1426
1427 AC_ARG_ENABLE([setpriv],
1428 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
1429 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
1430 )
1431 UL_BUILD_INIT([setpriv])
1432 UL_REQUIRES_LINUX([setpriv])
1433 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [linux/securebits.h header file])
1434 UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header file])
1435 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
1436 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
1437
1438 PKG_CHECK_MODULES([PCRE], [libpcre2-8], [have_pcre=yes], [have_pcre=no])
1439 AS_IF([test "x$have_pcre" = xyes ], [
1440 AC_DEFINE([HAVE_PCRE], [1], [Define if libpcre2 is available])
1441 ])
1442 AM_CONDITIONAL([HAVE_PCRE], [test "x$have_pcre" = xyes])
1443
1444 AC_ARG_ENABLE([hardlink],
1445 AS_HELP_STRING([--disable-hardlink], [do not build hardlink]),
1446 [], [UL_DEFAULT_ENABLE([hardlink], [check])]
1447 )
1448 UL_BUILD_INIT([hardlink])
1449 AM_CONDITIONAL([BUILD_HARDLINK], [test "x$build_hardlink" = xyes])
1450
1451 AC_ARG_ENABLE([eject],
1452 AS_HELP_STRING([--disable-eject], [do not build eject]),
1453 [], [UL_DEFAULT_ENABLE([eject], [check])]
1454 )
1455 UL_BUILD_INIT([eject])
1456 UL_REQUIRES_LINUX([eject])
1457 UL_REQUIRES_BUILD([eject], [libmount])
1458 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
1459
1460
1461 AC_ARG_ENABLE([agetty],
1462 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
1463 [], [UL_DEFAULT_ENABLE([agetty], [check])]
1464 )
1465 UL_BUILD_INIT([agetty])
1466 UL_REQUIRES_HAVE([agetty], [utmpx_h], [utmpx.h header])
1467 UL_REQUIRES_HAVE([agetty], [gnu_utmpx], [GNU utmpx functions])
1468 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
1469 AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1470 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1471 ],[
1472 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1473 ])
1474
1475
1476 AC_ARG_ENABLE([plymouth_support],
1477 AS_HELP_STRING([--disable-plymouth_support], [do not care about plymouth in sylogin(8) and agetty(8)]),
1478 [], [enable_plymouth_support=check]
1479 )
1480 UL_BUILD_INIT([plymouth_support])
1481 UL_REQUIRES_HAVE([plymouth_support], [tiocglcktrmios], [TIOCGLCKTRMIOS flag])
1482 UL_REQUIRES_HAVE([plymouth_support], [sock_cloexec], [SOCK_CLOEXEC flag])
1483 UL_REQUIRES_HAVE([plymouth_support], [sock_nonblock], [SOCK_NONBLOCK flag])
1484 UL_REQUIRES_HAVE([plymouth_support], [so_passcred], [SO_PASSCRED flag])
1485 AM_CONDITIONAL([USE_PLYMOUTH_SUPPORT], [test "x$build_plymouth_support" = xyes])
1486 AS_IF([test "x$build_plymouth_support" = xyes ], [
1487 AC_DEFINE([USE_PLYMOUTH_SUPPORT], [1], [Enable plymouth support feature for sulogin and aggety])
1488 ])
1489
1490
1491 AC_ARG_WITH([libz],
1492 AS_HELP_STRING([--without-libz], [compile without libz]),
1493 [], [with_libz=auto]
1494 )
1495 AS_IF([test "x$with_libz" = xno], [have_z=no], [
1496 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
1497 ])
1498
1499
1500 AC_ARG_ENABLE([cramfs],
1501 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
1502 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
1503 )
1504 UL_BUILD_INIT([cramfs])
1505 UL_REQUIRES_HAVE([cramfs], [z], [z library])
1506 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
1507
1508
1509 AC_ARG_ENABLE([bfs],
1510 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
1511 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
1512 )
1513 UL_BUILD_INIT([bfs])
1514 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
1515
1516
1517 AC_ARG_ENABLE([minix],
1518 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
1519 [], [UL_DEFAULT_ENABLE([minix], [yes])]
1520 )
1521 UL_BUILD_INIT([minix])
1522 AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1523
1524
1525 AC_ARG_ENABLE([fdformat],
1526 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
1527 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
1528 )
1529 UL_BUILD_INIT([fdformat])
1530 UL_REQUIRES_LINUX([fdformat])
1531 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
1532
1533
1534 AC_ARG_ENABLE([hwclock],
1535 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
1536 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
1537 )
1538 have_linuxdummy=$linux_os
1539
1540 UL_BUILD_INIT([hwclock])
1541 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1542 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1543
1544 AC_ARG_ENABLE([hwclock_cmos],
1545 AS_HELP_STRING([--disable-hwclock-cmos], [do not use CMOS clock]),
1546 [], [enable_hwclock_cmos=check]
1547 )
1548 UL_BUILD_INIT([hwclock_cmos])
1549 UL_REQUIRES_BUILD([hwclock_cmos], [hwclock])
1550 UL_REQUIRES_ARCH([hwclock_cmos], [i?86-*,x86_64*])
1551 AM_CONDITIONAL([USE_HWCLOCK_CMOS], [test "x$build_hwclock_cmos" = xyes])
1552 AS_IF([test "x$build_hwclock_cmos" = xyes ], [
1553 AC_DEFINE([USE_HWCLOCK_CMOS], [1], [Define to 1 if want to use CMOS clock.])
1554 ])
1555
1556
1557 UL_BUILD_INIT([mkfs], [yes])
1558 AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1559
1560 UL_BUILD_INIT([isosize], [yes])
1561 AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1562
1563
1564 UL_BUILD_INIT([fstrim], [check])
1565 UL_REQUIRES_LINUX([fstrim])
1566 UL_REQUIRES_BUILD([fstrim], [libmount])
1567 AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1568
1569
1570 UL_BUILD_INIT([swapon], [check])
1571 UL_REQUIRES_LINUX([swapon])
1572 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapon])], [swapon])
1573 UL_REQUIRES_SYSCALL_CHECK([swapon], [UL_CHECK_SYSCALL([swapoff])], [swapoff])
1574 UL_REQUIRES_BUILD([swapon], [libblkid])
1575 UL_REQUIRES_BUILD([swapon], [libmount])
1576 UL_REQUIRES_BUILD([swapon], [libsmartcols])
1577 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1578 AC_CHECK_FUNCS([swapon])
1579 AC_CHECK_FUNCS([swapoff])
1580
1581
1582 UL_BUILD_INIT([lsblk], [check])
1583 UL_REQUIRES_LINUX([lsblk])
1584 UL_REQUIRES_BUILD([lsblk], [libblkid])
1585 UL_REQUIRES_BUILD([lsblk], [libmount])
1586 UL_REQUIRES_BUILD([lsblk], [libsmartcols])
1587 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1588
1589
1590 UL_BUILD_INIT([lscpu], [check])
1591 UL_REQUIRES_LINUX([lscpu])
1592 UL_REQUIRES_BUILD([lscpu], [libsmartcols])
1593 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1594 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1595
1596
1597 AC_ARG_ENABLE([lslogins],
1598 AS_HELP_STRING([--disable-lslogins], [do not build lslogins]),
1599 [], [UL_DEFAULT_ENABLE([lslogins], [check])]
1600 )
1601 UL_BUILD_INIT([lslogins])
1602 UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1603 UL_REQUIRES_HAVE([lslogins], [shadow_h], [shadow.h header])
1604 UL_REQUIRES_HAVE([lslogins], [utmpx_h], [utmpx.h header])
1605 UL_REQUIRES_HAVE([lslogins], [gnu_utmpx], [GNU utmpx functions])
1606 AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1607
1608
1609 UL_BUILD_INIT([chcpu], [check])
1610 UL_REQUIRES_LINUX([chcpu])
1611 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1612 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1613
1614
1615 AC_ARG_ENABLE([wdctl],
1616 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1617 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
1618 )
1619 UL_BUILD_INIT([wdctl])
1620 UL_REQUIRES_LINUX([wdctl])
1621 UL_REQUIRES_BUILD([wdctl], [libsmartcols])
1622 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1623 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1624
1625
1626 UL_BUILD_INIT([swaplabel], [check])
1627 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1628 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1629
1630
1631 UL_BUILD_INIT([mkswap], [yes])
1632 AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
1633 AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1634 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1635 ])
1636
1637
1638 AC_ARG_ENABLE([cal],
1639 AS_HELP_STRING([--disable-cal], [do not build cal]),
1640 [], [UL_DEFAULT_ENABLE([cal], [check])]
1641 )
1642 UL_BUILD_INIT([cal])
1643 AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1644
1645 AC_ARG_ENABLE([logger],
1646 AS_HELP_STRING([--disable-logger], [do not build logger]),
1647 [], [UL_DEFAULT_ENABLE([logger], [check])]
1648 )
1649 UL_BUILD_INIT([logger])
1650 AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1651
1652 UL_BUILD_INIT([look], [yes])
1653 AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1654
1655 UL_BUILD_INIT([mcookie], [yes])
1656 AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1657
1658 UL_BUILD_INIT([namei], [yes])
1659 AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1660
1661 matriplet="$($CC -print-multiarch 2>/dev/null || true)"
1662 if test "x$matriplet" != "x"; then
1663 AC_DEFINE_UNQUOTED([MULTIARCHTRIPLET], ["$matriplet"],
1664 ["Multi-arch triplet for whereis library search path"])
1665 fi
1666 UL_BUILD_INIT([whereis], [yes])
1667 AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1668
1669 UL_BUILD_INIT([getopt], [yes])
1670 AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1671
1672
1673 UL_BUILD_INIT([blockdev], [check])
1674 UL_REQUIRES_LINUX([blockdev])
1675 AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1676
1677
1678 UL_BUILD_INIT([prlimit], [check])
1679 UL_REQUIRES_LINUX([prlimit])
1680 UL_REQUIRES_BUILD([prlimit], [libsmartcols])
1681 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1682 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1683 AS_IF([test "x$build_prlimit" = xyes], [
1684 AC_CHECK_FUNCS([prlimit])
1685 ])
1686
1687
1688 UL_BUILD_INIT([lslocks], [check])
1689 UL_REQUIRES_LINUX([lslocks])
1690 UL_REQUIRES_BUILD([lslocks], [libmount])
1691 UL_REQUIRES_BUILD([lslocks], [libsmartcols])
1692 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1693
1694
1695 AC_ARG_ENABLE([switch_root],
1696 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1697 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
1698 )
1699 UL_BUILD_INIT([switch_root])
1700 UL_REQUIRES_LINUX([switch_root])
1701 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1702 UL_REQUIRES_HAVE([switch_root], [dirfd,ddfd], [dirfd or ddfd function])
1703 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1704
1705
1706 AC_ARG_ENABLE([pivot_root],
1707 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1708 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
1709 )
1710 UL_BUILD_INIT([pivot_root])
1711 UL_REQUIRES_LINUX([pivot_root])
1712 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1713 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1714
1715
1716 UL_BUILD_INIT([flock], [check])
1717 UL_REQUIRES_HAVE([flock], [timer], [timer_create/setitimer function])
1718 AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1719
1720
1721 AC_ARG_ENABLE([lsmem],
1722 AS_HELP_STRING([--disable-lsmem], [do not build lsmem]),
1723 [], [UL_DEFAULT_ENABLE([lsmem], [check])]
1724 )
1725 UL_BUILD_INIT([lsmem])
1726 UL_REQUIRES_LINUX([lsmem])
1727 UL_REQUIRES_BUILD([lsmem], [libsmartcols])
1728 AM_CONDITIONAL([BUILD_LSMEM], [test "x$build_lsmem" = xyes])
1729
1730
1731 AC_ARG_ENABLE([chmem],
1732 AS_HELP_STRING([--disable-chmem], [do not build chmem]),
1733 [], [UL_DEFAULT_ENABLE([chmem], [check])]
1734 )
1735 UL_BUILD_INIT([chmem])
1736 UL_REQUIRES_LINUX([chmem])
1737 AM_CONDITIONAL([BUILD_CHMEM], [test "x$build_chmem" = xyes])
1738
1739 UL_BUILD_INIT([ipcmk], [yes])
1740 AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1741
1742
1743 AC_ARG_ENABLE([ipcrm],
1744 AS_HELP_STRING([--disable-ipcrm], [do not build ipcrm]),
1745 [], [UL_DEFAULT_ENABLE([ipcrm], [yes])]
1746 )
1747 UL_BUILD_INIT([ipcrm])
1748 AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1749
1750 AC_ARG_ENABLE([ipcs],
1751 AS_HELP_STRING([--disable-ipcs], [do not build ipcs]),
1752 [], [UL_DEFAULT_ENABLE([ipcs], [yes])]
1753 )
1754 UL_BUILD_INIT([ipcs])
1755 AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1756
1757 UL_BUILD_INIT([choom], [check])
1758 UL_REQUIRES_LINUX([choom])
1759 AM_CONDITIONAL([BUILD_CHOOM], [test "x$build_choom" = xyes])
1760
1761 UL_BUILD_INIT([lsipc], [check])
1762 UL_REQUIRES_LINUX([lsipc])
1763 UL_REQUIRES_BUILD([lsipc], [libsmartcols])
1764 AM_CONDITIONAL([BUILD_LSIPC], [test "x$build_lsipc" = xyes])
1765
1766 UL_BUILD_INIT([lsns], [check])
1767 UL_REQUIRES_LINUX([lsns])
1768 UL_REQUIRES_BUILD([lsns], [libsmartcols])
1769 UL_REQUIRES_BUILD([lsns], [libmount])
1770 AM_CONDITIONAL([BUILD_LSNS], [test "x$build_lsns" = xyes])
1771
1772 UL_BUILD_INIT([renice], [yes])
1773 AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1774
1775
1776 AC_ARG_ENABLE([rfkill],
1777 AS_HELP_STRING([--disable-rfkill], [do not build rfkill]),
1778 [], [UL_DEFAULT_ENABLE([rfkill], [check])]
1779 )
1780 UL_BUILD_INIT([rfkill])
1781 UL_REQUIRES_LINUX([rfkill])
1782 UL_REQUIRES_BUILD([rfkill], [libsmartcols])
1783 AM_CONDITIONAL([BUILD_RFKILL], [test "x$build_rfkill" = xyes])
1784
1785
1786 UL_BUILD_INIT([setsid], [yes])
1787 AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1788
1789 UL_BUILD_INIT([readprofile], [check])
1790 UL_REQUIRES_LINUX([readprofile])
1791 AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1792
1793 UL_BUILD_INIT([dmesg], [check])
1794 UL_REQUIRES_LINUX([dmesg])
1795 AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1796
1797 UL_BUILD_INIT([ctrlaltdel], [check])
1798 UL_REQUIRES_LINUX([ctrlaltdel])
1799 dnl we assume reboot() to be the 1-argument variant, because even considering
1800 dnl widely used alternative C libraries like uclibc, dietlibc and musl,
1801 dnl reboot() with multiple arguments is yet only found in glibc versions
1802 dnl earlier than 2.x.
1803 UL_REQUIRES_HAVE([ctrlaltdel], [reboot], [reboot function])
1804 AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1805
1806 UL_BUILD_INIT([fincore], [check])
1807 UL_REQUIRES_LINUX([fincore])
1808 UL_REQUIRES_BUILD([fincore], [libsmartcols])
1809 AM_CONDITIONAL([BUILD_FINCORE], [test "x$build_fincore" = xyes])
1810
1811 UL_BUILD_INIT([fsfreeze], [check])
1812 UL_REQUIRES_LINUX([fsfreeze])
1813 AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1814
1815 UL_BUILD_INIT([blkdiscard], [check])
1816 UL_REQUIRES_LINUX([blkdiscard])
1817 AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1818
1819 UL_BUILD_INIT([blkzone], [check])
1820 UL_REQUIRES_LINUX([blkzone])
1821 UL_REQUIRES_HAVE([blkzone], [linux_blkzoned_h], [linux/blkzoned.h header])
1822 AM_CONDITIONAL([BUILD_BLKZONE], [test "x$build_blkzone" = xyes])
1823
1824 UL_BUILD_INIT([ldattach], [check])
1825 UL_REQUIRES_LINUX([ldattach])
1826 AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1827
1828 UL_BUILD_INIT([rtcwake], [check])
1829 UL_REQUIRES_LINUX([rtcwake])
1830 AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1831
1832 UL_BUILD_INIT([setarch], [check])
1833 UL_REQUIRES_LINUX([setarch])
1834 AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1835
1836 UL_BUILD_INIT([script], [check])
1837 UL_REQUIRES_HAVE([script], [pty])
1838 AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1839
1840 UL_BUILD_INIT([scriptreplay], [yes])
1841 AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1842
1843 UL_BUILD_INIT([scriptlive], [yes])
1844 UL_REQUIRES_HAVE([scriptlive], [pty])
1845 AM_CONDITIONAL([BUILD_SCRIPTLIVE], [test "x$build_scriptlive" = xyes])
1846
1847 UL_BUILD_INIT([col], [yes])
1848 AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1849
1850 UL_BUILD_INIT([colcrt], [yes])
1851 AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1852
1853 UL_BUILD_INIT([colrm], [yes])
1854 AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1855
1856 UL_BUILD_INIT([column], [check])
1857 UL_REQUIRES_BUILD([column], [libsmartcols])
1858 AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1859
1860 UL_BUILD_INIT([hexdump], [yes])
1861 AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1862
1863 UL_BUILD_INIT([rev], [yes])
1864 AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1865
1866
1867 AC_ARG_ENABLE([tunelp],
1868 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1869 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1870 )
1871 UL_BUILD_INIT([tunelp])
1872 UL_REQUIRES_LINUX([tunelp])
1873 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1874
1875
1876 AC_ARG_ENABLE([kill],
1877 AS_HELP_STRING([--disable-kill], [do not build kill]),
1878 [], [UL_DEFAULT_ENABLE([kill], [check])]
1879 )
1880 UL_BUILD_INIT([kill])
1881 UL_REQUIRES_LINUX([kill])
1882 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1883
1884
1885 AC_ARG_ENABLE([last],
1886 AS_HELP_STRING([--disable-last], [do not build last]),
1887 [], [UL_DEFAULT_ENABLE([last], [check])]
1888 )
1889 UL_BUILD_INIT([last])
1890 UL_REQUIRES_HAVE([last], [utmpx_h], [utmpx.h header])
1891 UL_REQUIRES_HAVE([last], [gnu_utmpx], [GNU utmpx functions])
1892 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1893
1894
1895 AC_ARG_ENABLE([utmpdump],
1896 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1897 [], [UL_DEFAULT_ENABLE([utmpdump], [check])]
1898 )
1899 UL_BUILD_INIT([utmpdump])
1900 UL_REQUIRES_HAVE([utmpdump], [utmpx_h], [utmpx.h header])
1901 UL_REQUIRES_HAVE([utmpdump], [gnu_utmpx], [GNU utmpx functions])
1902 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1903
1904
1905 AC_ARG_ENABLE([line],
1906 AS_HELP_STRING([--enable-line], [build line]),
1907 [], [UL_DEFAULT_ENABLE([line], [no])]
1908 )
1909 UL_BUILD_INIT([line])
1910 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1911
1912
1913 AC_ARG_ENABLE([mesg],
1914 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1915 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1916 )
1917 UL_BUILD_INIT([mesg])
1918 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1919
1920
1921 AC_ARG_ENABLE([raw],
1922 AS_HELP_STRING([--disable-raw], [do not build raw]),
1923 [], [UL_DEFAULT_ENABLE([raw], [check])]
1924 )
1925 UL_BUILD_INIT([raw])
1926 UL_REQUIRES_LINUX([raw])
1927 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1928 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1929
1930
1931 AC_ARG_ENABLE([rename],
1932 AS_HELP_STRING([--disable-rename], [do not build rename]),
1933 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1934 )
1935 UL_BUILD_INIT([rename])
1936 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1937
1938
1939 AC_ARG_ENABLE([vipw],
1940 AS_HELP_STRING([--enable-vipw], [build vipw]),
1941 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1942 )
1943 UL_BUILD_INIT([vipw])
1944 UL_REQUIRES_HAVE([vipw], [shadow_h], [shadow.h header])
1945 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1946
1947
1948 AC_ARG_ENABLE([newgrp],
1949 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1950 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1951 )
1952 UL_BUILD_INIT([newgrp])
1953 UL_REQUIRES_HAVE([newgrp], [crypt], [crypt function])
1954 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1955
1956
1957 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1958 [], [with_user=check]
1959 )
1960 have_user=no
1961 AS_IF([test "x$with_user" != xno], [
1962 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1963 AS_CASE([$with_user:$have_user],
1964 [yes:no],
1965 [AC_MSG_ERROR([user selected but libuser not found])],
1966 [*:yes],
1967 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1968 )
1969 # temporary solution, libuser has stupid .pc where are exported all
1970 # private dependencies to Requires: instead of Requires.private:
1971 AS_IF([test "x$have_user" = xyes], [
1972 LIBUSER_LIBS=-luser
1973 ])
1974 ])
1975 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1976
1977 AC_ARG_ENABLE([chfn-chsh-password],
1978 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1979 [], [enable_chfn_chsh_password=yes]
1980 )
1981
1982 AC_ARG_ENABLE([chfn-chsh],
1983 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1984 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1985 )
1986 UL_BUILD_INIT([chfn_chsh])
1987 UL_REQUIRES_HAVE([chfn_chsh], [shadow_h], [shadow.h header])
1988 UL_REQUIRES_HAVE([chfn_chsh], [getusershell], [getusershell function])
1989
1990 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1991 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
1992 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1993 ])
1994 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1995 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1996
1997 AC_ARG_ENABLE([chsh-only-listed],
1998 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1999 [], enable_chsh_only_listed=yes
2000 )
2001
2002 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
2003 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
2004 ])
2005
2006
2007 AC_ARG_ENABLE([login],
2008 AS_HELP_STRING([--disable-login], [do not build login]),
2009 [], [UL_DEFAULT_ENABLE([login], [check])]
2010 )
2011 UL_BUILD_INIT([login])
2012 UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
2013 UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
2014 UL_REQUIRES_HAVE([login], [utmpx_h], [utmpx.h header])
2015 UL_REQUIRES_HAVE([login], [gnu_utmpx], [GNU utmpx functions])
2016 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
2017
2018 AC_ARG_ENABLE([login-chown-vcs],
2019 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
2020 [], [enable_login_chown_vcs=no]
2021 )
2022
2023 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
2024 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
2025 ])
2026
2027 AC_ARG_ENABLE([login-stat-mail],
2028 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
2029 [], [enable_login_stat_mail=no]
2030 )
2031
2032 AS_IF([test "x$enable_login_stat_mail" = xyes], [
2033 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
2034 ])
2035
2036
2037 AC_ARG_ENABLE([nologin],
2038 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
2039 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
2040 )
2041 UL_BUILD_INIT([nologin])
2042 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
2043
2044
2045 AC_ARG_ENABLE([sulogin],
2046 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
2047 [], [UL_DEFAULT_ENABLE([sulogin], [check])]
2048 )
2049 UL_BUILD_INIT([sulogin])
2050 UL_REQUIRES_HAVE([sulogin], [crypt], [crypt function])
2051 UL_REQUIRES_HAVE([sulogin], [shadow_h], [shadow.h header])
2052 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
2053
2054
2055 AC_ARG_ENABLE([su],
2056 AS_HELP_STRING([--disable-su], [do not build su]),
2057 [], [UL_DEFAULT_ENABLE([su], [check])]
2058 )
2059 UL_BUILD_INIT([su])
2060 UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
2061 UL_REQUIRES_HAVE([su], [utmpx_h], [utmpx.h header])
2062 UL_REQUIRES_HAVE([su], [gnu_utmpx], [GNU utmpx functions])
2063 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
2064
2065
2066 AC_ARG_ENABLE([runuser],
2067 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
2068 [], [UL_DEFAULT_ENABLE([runuser], [check])]
2069 )
2070 UL_BUILD_INIT([runuser])
2071 UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
2072 UL_REQUIRES_HAVE([runuser], [utmpx_h], [utmpx.h header])
2073 UL_REQUIRES_HAVE([runuser], [gnu_utmpx], [GNU utmpx functions])
2074 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
2075
2076
2077 AC_ARG_ENABLE([ul],
2078 AS_HELP_STRING([--disable-ul], [do not build ul]),
2079 [], [UL_DEFAULT_ENABLE([ul], [check])]
2080 )
2081 UL_BUILD_INIT([ul])
2082 UL_REQUIRES_HAVE([ul], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2083 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
2084
2085
2086 AC_ARG_ENABLE([more],
2087 AS_HELP_STRING([--disable-more], [do not build more]),
2088 [], [UL_DEFAULT_ENABLE([more], [check])]
2089 )
2090 UL_BUILD_INIT([more])
2091 UL_REQUIRES_HAVE([more], [ncursesw, ncurses], [ncursesw or ncurses libraries])
2092 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
2093
2094
2095 AC_ARG_ENABLE([pg],
2096 AS_HELP_STRING([--enable-pg], [build pg]),
2097 [], [UL_DEFAULT_ENABLE([pg], [no])]
2098 )
2099 UL_BUILD_INIT([pg])
2100 UL_REQUIRES_HAVE([pg], [ncursesw, ncurses], [ncursesw or ncurses library])
2101 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
2102
2103
2104 AC_ARG_ENABLE([setterm],
2105 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
2106 [], [UL_DEFAULT_ENABLE([setterm], [check])]
2107 )
2108 UL_BUILD_INIT([setterm])
2109 UL_REQUIRES_LINUX([setterm])
2110 UL_REQUIRES_HAVE([setterm], [ncursesw, ncurses], [ncursesw or ncurses library])
2111 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
2112
2113 # build_schedutils= is just configure-only variable to control
2114 # ionice, taskset and chrt
2115 AC_ARG_ENABLE([schedutils],
2116 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
2117 [], [UL_DEFAULT_ENABLE([schedutils], [check])]
2118 )
2119
2120
2121 UL_ENABLE_ALIAS([ionice], [schedutils])
2122 UL_BUILD_INIT([ionice])
2123 UL_REQUIRES_SYSCALL_CHECK([ionice],
2124 [UL_CHECK_SYSCALL([ioprio_set],
2125 [alpha], [442],
2126 [i*86], [289],
2127 [ia64*], [1274],
2128 [powerpc*], [273],
2129 [s390*], [282],
2130 [sparc*], [196],
2131 [sh*], [288],
2132 [x86_64*], [251])],
2133 [ioprio_set])
2134
2135 UL_REQUIRES_SYSCALL_CHECK([ionice],
2136 [UL_CHECK_SYSCALL([ioprio_get],
2137 [alpha], [443],
2138 [i*86], [290],
2139 [ia64*], [1275],
2140 [powerpc*], [274],
2141 [s390*], [283],
2142 [sparc*], [218],
2143 [sh*], [289],
2144 [x86_64*], [252])],
2145 [ioprio_get])
2146
2147 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
2148
2149
2150 UL_ENABLE_ALIAS([taskset], [schedutils])
2151 UL_BUILD_INIT([taskset])
2152 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
2153 UL_REQUIRES_SYSCALL_CHECK([taskset],
2154 [UL_CHECK_SYSCALL([sched_getaffinity])],
2155 [sched_getaffinity])
2156 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
2157
2158
2159 have_schedsetter=no
2160 AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
2161 [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
2162
2163 UL_ENABLE_ALIAS([chrt], [schedutils])
2164 UL_BUILD_INIT([chrt])
2165 UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
2166 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
2167
2168 AS_IF([test "x$build_chrt" = xyes], [
2169 UL_CHECK_SYSCALL([sched_setattr])
2170 ])
2171
2172
2173 AC_ARG_ENABLE([wall],
2174 AS_HELP_STRING([--disable-wall], [do not build wall]),
2175 [], [UL_DEFAULT_ENABLE([wall], [check])]
2176 )
2177 UL_BUILD_INIT([wall])
2178 UL_REQUIRES_HAVE([wall], [utmpx_h], [utmpx.h header])
2179 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
2180
2181
2182 AC_ARG_ENABLE([write],
2183 AS_HELP_STRING([--enable-write], [build write]),
2184 [], [UL_DEFAULT_ENABLE([write], [no])]
2185 )
2186 UL_BUILD_INIT([write])
2187 UL_REQUIRES_HAVE([write], [utmpx_h], [utmpx.h header])
2188 UL_REQUIRES_HAVE([write], [gnu_utmpx], [GNU utmpx functions])
2189 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
2190
2191
2192 AC_ARG_WITH([btrfs],
2193 AS_HELP_STRING([--without-btrfs], [do not build with btrfs support]),
2194 [], [with_btrfs=check]
2195 )
2196 have_btrfs=no
2197 AS_IF([test "x$with_btrfs" != xno], [
2198 AS_CASE([$with_btrfs:$have_linux_btrfs_h],
2199 [yes:no],
2200 [AC_MSG_ERROR([btrfs selected but linux/btrfs.h not found])],
2201 [check:no],
2202 [AC_MSG_WARN([linux/btrfs.h not found, do not build with btrfs support])],
2203 [*:yes],
2204 [have_btrfs=yes
2205 AC_DEFINE([HAVE_BTRFS_SUPPORT], [1], [Define if btrfs stuff is available])]
2206 )
2207 ])
2208 AM_CONDITIONAL([HAVE_BTRFS], [test "x$have_btrfs" = xyes])
2209
2210
2211 AC_ARG_WITH([systemd],
2212 AS_HELP_STRING([--without-systemd], [do not build with systemd support]),
2213 [], [with_systemd=check]
2214 )
2215
2216 have_systemd=no
2217 AS_IF([test "x$with_systemd" != xno], [
2218 # new version -- all libsystemd-* libs merged into libsystemd
2219 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
2220 # old versions
2221 AS_IF([test "x$have_systemd" != "xyes"], [
2222 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
2223 [have_systemd_daemon=yes], [have_systemd_daemon=no])
2224 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
2225 [have_systemd_journal=yes], [have_systemd_journal=no])
2226 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
2227 have_systemd=yes])
2228 ])
2229 AS_CASE([$with_systemd:$have_systemd],
2230 [yes:no],
2231 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
2232 [*:yes],
2233 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
2234 )
2235 ])
2236 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
2237
2238
2239 AC_ARG_WITH([systemdsystemunitdir],
2240 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd unit files (requires systemd support)]),
2241 [], [with_systemdsystemunitdir=check]
2242 )
2243 AS_IF([test "x$with_systemdsystemunitdir" = xcheck], [
2244 AS_IF([test "x$have_systemd" = xyes], [
2245 with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`
2246 ],[
2247 with_systemdsystemunitdir=no
2248 ])
2249 ])
2250 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
2251 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
2252 ])
2253
2254
2255 AC_ARG_WITH([smack],
2256 AS_HELP_STRING([--with-smack], [build with SMACK support]),
2257 [], [with_smack=no]
2258 )
2259 AS_IF([test "x$with_smack" = xyes], [
2260 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
2261 ])
2262
2263
2264 AC_ARG_WITH([bashcompletiondir],
2265 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
2266 [],
2267 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
2268 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
2269 ], [
2270 with_bashcompletiondir=${datadir}/bash-completion/completions
2271 ])
2272 ])
2273 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
2274
2275 AC_ARG_ENABLE([bash-completion],
2276 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
2277 [], [enable_bash_completion=yes]
2278 )
2279
2280 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
2281
2282
2283 AC_ARG_WITH([python],
2284 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
2285 [], [with_python=check withval=check]
2286 )
2287
2288 have_python=no
2289 have_libpython=no
2290 AS_IF([test "x$with_python" != xno], [
2291 # We follow distributions default and look for PKG module name "python"
2292 # (minimal version is 2) but if major version is explicitly specified by
2293 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
2294 # "python3".
2295 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
2296 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
2297
2298 # check for python interpreter
2299 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
2300 AS_CASE([$with_python:$have_python],
2301 [yes:no],
2302 [AC_MSG_ERROR([python selected but python interpreter not found])],
2303 [check:no],
2304 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
2305 [*:yes],
2306 # check for python development stuff
2307 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
2308 [have_libpython=yes], [have_libpython=no])]
2309 )
2310 ])
2311
2312
2313 AC_ARG_ENABLE([pylibmount],
2314 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
2315 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
2316 )
2317 UL_BUILD_INIT([pylibmount])
2318 UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
2319 UL_REQUIRES_BUILD([pylibmount], [libmount])
2320 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
2321
2322 # We need to introduce a verbatim dependency into the Makefile, without automake
2323 # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable.
2324 verbatim_pylibmount_dependency='
2325
2326 # pylibmountexec module must be installed after usrlib_exec libraries,
2327 # otherwise the libtool relink step will fail to find libmount.la and
2328 # will try -lmount which is possibly not available.
2329 install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES
2330
2331 '
2332 AC_SUBST([verbatim_pylibmount_dependency])
2333 AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency])
2334
2335 AC_ARG_ENABLE([pg-bell],
2336 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
2337 [], [enable_pg_bell=yes]
2338 )
2339
2340 AS_IF([test "x$enable_pg_bell" = xyes], [
2341 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
2342 ])
2343
2344
2345 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
2346 AC_ARG_ENABLE([fs-paths-default],
2347 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
2348 [AS_CASE([$enableval],
2349 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
2350 [no], [fs_paths_defaults=""],
2351 [fs_paths_defaults="$enableval"]
2352 )],
2353 [fs_paths_defaults="FS_PATHS_DEFAULT"]
2354 )
2355 AC_ARG_ENABLE([fs-paths-extra],
2356 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
2357 [AS_CASE([$enableval],
2358 [yes|no], [fs_paths_extra=""],
2359 [fs_paths_extra="$enableval"]
2360 )],
2361 [fs_paths_extra=""]
2362 )
2363 fs_paths="$fs_paths_defaults"
2364 AS_IF([test "x$fs_paths_extra" != "x"], [
2365 AS_IF([test "x$fs_paths" != "x"], [
2366 fs_paths="${fs_paths}:"
2367 ])
2368 fs_paths="${fs_paths}${fs_paths_extra}"
2369 ])
2370 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
2371
2372
2373 AC_ARG_ENABLE([use-tty-group],
2374 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
2375 [], [enable_use_tty_group=yes]
2376 )
2377 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
2378
2379 AS_IF([test "x$enable_use_tty_group" = xyes], [
2380 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
2381 ])
2382
2383
2384 AC_ARG_ENABLE([sulogin-emergency-mount],
2385 AS_HELP_STRING([--enable-sulogin-emergency-mount],
2386 [use emergency mount of /dev and /proc for sulogin]),
2387 [], [enable_sulogin_emergency_mount=no]
2388 )
2389
2390 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
2391 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
2392 [Should sulogin use a emergency mount of /dev and /proc?])
2393 ])
2394
2395
2396 AC_ARG_ENABLE([usrdir-path],
2397 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
2398 [], [enable_usrdir_path=no]
2399 )
2400
2401 AS_IF([test "x$enable_usrdir_path" = xyes], [
2402 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
2403 ])
2404
2405
2406 AC_ARG_ENABLE([makeinstall-chown],
2407 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
2408 [], [enable_makeinstall_chown=yes]
2409 )
2410 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
2411
2412
2413 AC_ARG_ENABLE([makeinstall-setuid],
2414 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
2415 [], [enable_makeinstall_setuid=yes]
2416 )
2417 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
2418
2419
2420 AC_ARG_ENABLE([colors-default],
2421 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
2422 [], [enable_colors_default=yes]
2423 )
2424 AS_IF([test "x$enable_colors_default" = xyes], [
2425 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
2426 ])
2427
2428
2429 AC_ARG_VAR([SUID_CFLAGS],
2430 [CFLAGS used for binaries which are usually with the suid bit])
2431 AC_ARG_VAR([SUID_LDFLAGS],
2432 [LDFLAGS used for binaries which are usually with the suid bit])
2433
2434 AC_ARG_VAR([DAEMON_CFLAGS],
2435 [CFLAGS used for binaries which are usually executed as daemons])
2436 AC_ARG_VAR([DAEMON_LDFLAGS],
2437 [LDFLAGS used for binaries which are usually executed as daemons])
2438
2439 AC_ARG_VAR([SOLIB_CFLAGS],
2440 [CFLAGS used for shared libraries])
2441 AC_ARG_VAR([SOLIB_LDFLAGS],
2442 [LDFLAGS used for shared libraries])
2443
2444 AC_ARG_VAR([ADJTIME_PATH],
2445 [Path to hwclock adjtime file, default /etc/adjtime])
2446 AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
2447 AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
2448
2449
2450 LIBS=""
2451
2452
2453 AC_CONFIG_HEADERS([config.h])
2454
2455 #
2456 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
2457 # more details.
2458 #
2459 AC_CONFIG_FILES([
2460 Makefile
2461 libblkid/docs/Makefile
2462 libblkid/docs/version.xml
2463 libblkid/src/blkid.h
2464 libfdisk/docs/Makefile
2465 libfdisk/docs/version.xml
2466 libfdisk/src/libfdisk.h
2467 libmount/docs/Makefile
2468 libmount/docs/version.xml
2469 libmount/src/libmount.h
2470 libsmartcols/docs/Makefile
2471 libsmartcols/docs/version.xml
2472 libsmartcols/src/libsmartcols.h
2473 po/Makefile.in
2474 ])
2475
2476 AC_OUTPUT
2477
2478 AC_MSG_RESULT([
2479 ${PACKAGE} ${VERSION}
2480
2481 prefix: ${prefix}
2482 exec prefix: ${exec_prefix}
2483
2484 runstatedir: ${runstatedir}
2485 bindir: ${bindir}
2486 sbindir: ${sbindir}
2487 libdir: ${libdir}
2488 includedir: ${includedir}
2489 usrbin_execdir: ${usrbin_execdir}
2490 usrsbin_execdir: ${usrsbin_execdir}
2491 usrlib_execdir: ${usrlib_execdir}
2492
2493 compiler: ${CC}
2494 cflags: ${CFLAGS}
2495 suid cflags: ${SUID_CFLAGS}
2496 ldflags: ${LDFLAGS}
2497 suid ldflags: ${SUID_LDFLAGS}
2498 ASAN enabled: ${enable_asan}
2499
2500 Python: ${PYTHON}
2501 Python version: ${PYTHON_VERSION}
2502 Python libs: ${pyexecdir}
2503
2504 Bash completions: ${with_bashcompletiondir}
2505 Systemd support: ${have_systemd}
2506 Systemd unitdir: ${with_systemdsystemunitdir}
2507 Btrfs support: ${have_btrfs}
2508 Wide-char support: ${build_widechar}
2509
2510 warnings:
2511
2512 ${WARN_CFLAGS}
2513
2514 Type 'make' or 'make <utilname>' to compile.
2515 ])