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