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