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