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