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