]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
flock: add --verbose option
[thirdparty/util-linux.git] / configure.ac
CommitLineData
034d378b 1AC_INIT([util-linux],
38c75b59 2 m4_esyscmd([tools/git-version-gen .tarball-version]),
5564a8c7
SK
3 [kzak@redhat.com],,
4 [http://www.kernel.org/pub/linux/utils/util-linux/])
baf39af1 5
034d378b 6AC_PREREQ([2.60])
48d7b13a 7
034d378b 8AC_CONFIG_AUX_DIR([config])
b12991dd 9AC_CONFIG_MACRO_DIR([m4])
eaf70198
SK
10dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
11dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors.
12AC_USE_SYSTEM_EXTENSIONS
333034f6 13AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax dist-bzip2 no-dist-gzip dist-xz -Wno-portability subdir-objects])
48d7b13a 14
eb35c251 15m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
f06b4328 16 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
eb35c251 17
034d378b 18AC_CONFIG_SRCDIR([sys-utils/mount.c])
15a9b48c
SK
19AC_PREFIX_DEFAULT([/usr])
20
33b0be6d
KZ
21dnl version details from <major>.<minor>[-<suffix>]
22PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
23PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{print $2}' \
f06b4328 24 | awk -F- '{print $1}')
33b0be6d 25PACKAGE_VERSION_RELEASE=0
a0948ffe 26
33b0be6d
KZ
27dnl libblkid version
28LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
3c0a983e 29LIBBLKID_DATE="19-Feb-2015"
dc2b8d87
KZ
30LIBBLKID_LT_MAJOR=1
31LIBBLKID_LT_MINOR=1
32LIBBLKID_LT_MICRO=0
33LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
a0948ffe 34
f6076f55
KZ
35dnl libuuid version
36LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
dc2b8d87
KZ
37LIBUUID_LT_MAJOR=1
38LIBUUID_LT_MINOR=3
39LIBUUID_LT_MICRO=0
40LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
f6076f55 41
f1cde479
KZ
42dnl libmount version
43LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
44LIBMOUNT_LT_MAJOR=1
45LIBMOUNT_LT_MINOR=1
46LIBMOUNT_LT_MICRO=0
47LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
48
1a4d989e
OO
49dnl libsmartcols version
50LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
51LIBSMARTCOLS_LT_MAJOR=1
52LIBSMARTCOLS_LT_MINOR=1
53LIBSMARTCOLS_LT_MICRO=0
54LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
55
0bb4c979
KZ
56dnl libfdisk version
57LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
58LIBFDISK_LT_MAJOR=1
59LIBFDISK_LT_MINOR=1
60LIBFDISK_LT_MICRO=0
61LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
62
15a9b48c 63# Check whether exec_prefix=/usr:
9f57e6e8
SK
64AS_CASE([$exec_prefix:$prefix],
65[NONE:NONE | NONE:/usr | /usr:*],
66 [AC_MSG_NOTICE([Default --exec-prefix detected.])
17794746
KZ
67 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
68 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
69 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
9f57e6e8
SK
70 ]
71)
72
73AS_CASE([$prefix:$localstatedir],
3745d4a9 74 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
9f57e6e8
SK
75 [localstatedir=/run
76 AC_MSG_NOTICE([ --localstatedir defaults to /run])
77 ]
78)
11935cd3 79AC_SUBST([localstatedir])
07a16b9d 80
b0a0d7d5 81
996fb358 82# The original default values of {bin,sbin,lib}dir
aaf3e8f5 83usrbin_execdir='${exec_prefix}/bin'
30688dde 84AC_SUBST([usrbin_execdir])
996fb358 85
aaf3e8f5 86usrsbin_execdir='${exec_prefix}/sbin'
30688dde 87AC_SUBST([usrsbin_execdir])
996fb358 88
9f57e6e8 89AS_CASE([$libdir],
b2b61efc 90 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
9f57e6e8
SK
91 [usrlib_execdir=$libdir],
92 [usrlib_execdir='${exec_prefix}'$libdir]
93)
30688dde 94AC_SUBST([usrlib_execdir])
996fb358 95
bdf5f542 96
31c9c1c4 97AM_PROG_CC_C_O
48d7b13a 98AC_PROG_CC_STDC
a6996860 99AC_CANONICAL_HOST
85b4c147 100AC_C_CONST
e79829db 101AC_C_VOLATILE
fbaec83b 102AC_C_BIGENDIAN
b12991dd 103
0e60bc9b 104dnl Compiler warnings
b1b54edf 105UL_WARN_ADD([-fno-common])
9dc72d0b 106UL_WARN_ADD([-Wall])
b1b54edf 107UL_WARN_ADD([-Werror=sequence-point])
0e60bc9b 108UL_WARN_ADD([-Wextra])
b1b54edf
KZ
109UL_WARN_ADD([-Wmissing-declarations])
110UL_WARN_ADD([-Wmissing-parameter-type])
111UL_WARN_ADD([-Wmissing-prototypes])
0e60bc9b 112UL_WARN_ADD([-Wno-missing-field-initializers])
b1b54edf 113UL_WARN_ADD([-Wredundant-decls])
0e60bc9b
KZ
114UL_WARN_ADD([-Wsign-compare])
115UL_WARN_ADD([-Wtype-limits])
116UL_WARN_ADD([-Wuninitialized])
b1b54edf
KZ
117UL_WARN_ADD([-Wunused-but-set-parameter])
118UL_WARN_ADD([-Wunused-but-set-variable])
0e60bc9b 119UL_WARN_ADD([-Wunused-parameter])
0e60bc9b 120UL_WARN_ADD([-Wunused-result])
bec5c9db 121UL_WARN_ADD([-Wunused-variable])
dcd33c3e
KZ
122UL_WARN_ADD([-Wnested-externs])
123UL_WARN_ADD([-Wpointer-arith])
124UL_WARN_ADD([-Wstrict-prototypes])
125UL_WARN_ADD([-Wformat-security])
d79654f4 126UL_WARN_ADD([-Wimplicit-function-declaration])
0e60bc9b
KZ
127AC_SUBST([WARN_CFLAGS])
128
034d378b 129UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
7697771d
KZ
130AC_SUBST([BSD_WARN_CFLAGS])
131
b12991dd
KZ
132dnl libtool-2
133LT_INIT
48d7b13a 134
fd0f4132
SK
135m4_ifndef([PKG_PROG_PKG_CONFIG],
136 [m4_fatal([Could not locate the pkg-config autoconf
137 macros. These are usually located in /usr/share/aclocal/pkg.m4.
138 If your macros are in a different location, try setting the
139 environment variable AL_OPTS="-I/other/macro/dir" before running
140 ./autogen.sh or autoreconf again.])])
d06d028a
KZ
141PKG_PROG_PKG_CONFIG
142
22aa5166
KZ
143GTK_DOC_CHECK([1.10])
144AC_PATH_PROG([XSLTPROC], [xsltproc])
145
8026fa9b 146
8c182554 147linux_os=no
8026fa9b
KZ
148bsd_os=no
149AS_CASE([${host_os}],
150 [*linux*],
151 [linux_os=yes],
152 [*bsd*],
153 [bsd_os=yes])
034d378b 154AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
8026fa9b
KZ
155AM_CONDITIONAL([BSD], [test "x$bsd_os" = xyes])
156
8c182554 157
3c6e292c 158dnl define ARCH_<NAME> conditionals
034d378b
SK
159UL_SET_ARCH([I86], [i?86-*])
160UL_SET_ARCH([86_64], [x86_64*])
161UL_SET_ARCH([IA64], [ia64*])
162UL_SET_ARCH([S390], [s390*])
163UL_SET_ARCH([SPARC], [sparc*])
164UL_SET_ARCH([PPC], [ppc*|powerpc*])
165UL_SET_ARCH([M68K], [m68*])
166UL_SET_ARCH([MIPS], [mips*])
167UL_SET_ARCH([HPPA], [hppa*])
3c6e292c 168
48d7b13a
KZ
169AC_SYS_LARGEFILE
170
f8d75a66 171dnl Don't forget to maintain alternatively allowed versions in autogen.sh!
91c520bc 172AM_GNU_GETTEXT_VERSION([0.18.3])
09734b00 173AM_GNU_GETTEXT([external])
3013eb9d
SK
174
175AS_IF([test -d "$srcdir/po"], [
176 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
177], [
178 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"
179])
09734b00 180
e460a5bf 181AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
48d7b13a
KZ
182#ifdef HAVE_LINUX_COMPILER_H
183#include <linux/compiler.h>
184#endif
185])
f06b4328
SK
186AC_CHECK_HEADERS([ \
187 asm/io.h \
188 err.h \
a0948ffe 189 errno.h \
f06b4328 190 fcntl.h \
a0948ffe 191 getopt.h \
f06b4328
SK
192 inttypes.h \
193 linux/cdrom.h \
194 linux/falloc.h \
5b0289b9 195 linux/watchdog.h \
a0948ffe 196 linux/fd.h \
f06b4328 197 linux/raw.h \
a0948ffe 198 linux/tiocl.h \
8596f639 199 linux/gsmmux.h \
a0948ffe 200 linux/version.h \
48469f90 201 linux/securebits.h \
8b7f16fc 202 locale.h \
607c2a72 203 mntent.h \
f06b4328 204 net/if.h \
754fed0c 205 net/if_dl.h \
f06b4328
SK
206 netinet/in.h \
207 paths.h \
208 pty.h \
fe2c9909 209 security/pam_appl.h \
f06b4328 210 stdint.h \
78288764 211 stdio_ext.h \
a0948ffe 212 stdlib.h \
1a1eb4e1
KZ
213 endian.h \
214 byteswap.h \
215 sys/endian.h \
a0948ffe
KZ
216 sys/disk.h \
217 sys/disklabel.h \
f06b4328 218 sys/file.h \
bf962c0a 219 sys/io.h \
f06b4328
SK
220 sys/ioccom.h \
221 sys/ioctl.h \
a0948ffe 222 sys/mkdev.h \
4ebac79f 223 sys/param.h \
a0948ffe
KZ
224 sys/prctl.h \
225 sys/queue.h \
f06b4328 226 sys/resource.h \
2a7c1f70 227 sys/socket.h \
f06b4328 228 sys/sockio.h \
a0948ffe 229 sys/stat.h \
f06b4328
SK
230 sys/swap.h \
231 sys/syscall.h \
232 sys/time.h \
87ee2658 233 sys/timex.h \
00c505d9 234 sys/ttydefaults.h \
a0948ffe 235 sys/types.h \
754fed0c 236 sys/un.h \
f06b4328
SK
237 unistd.h \
238])
dc61d398 239
fe2c9909
WJ
240AC_CHECK_HEADERS([security/pam_misc.h],
241 [AM_CONDITIONAL([HAVE_LINUXPAM], [true])],
242 [AM_CONDITIONAL([HAVE_LINUXPAM], [false])], [
243#ifdef HAVE_SECURITY_PAM_APPL_H
244#include <security/pam_appl.h>
245#endif
246])
247
248AC_CHECK_HEADERS([security/openpam.h], [], [], [
249#ifdef HAVE_SECURITY_PAM_APPL_H
250#include <security/pam_appl.h>
251#endif
252])
253
a67387b7
KZ
254AC_CHECK_HEADERS([langinfo.h],
255 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
256 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
257
16ba8d58
KZ
258dnl Convert some ac_cv_header_* variables to have_*
259dnl
260have_linux_raw_h=$ac_cv_header_linux_raw_h
48469f90 261have_linux_securebits_h=$ac_cv_header_linux_securebits_h
5b0289b9 262have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
fe2c9909 263have_security_pam_appl_h=$ac_cv_header_security_pam_appl_h
ff0cb84d 264have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
fe2c9909 265have_security_openpam_h=$ac_cv_header_security_openpam_h
a67387b7
KZ
266
267AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
268#include <time.h>
269#include <unistd.h>
270]], [[
271 int a = 0;
272 struct tm *tm = localtime(0);
273 if (a == -1) /* false */
f06b4328 274 sleep(tm->tm_gmtoff);
a67387b7 275]])],
034d378b 276[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
a67387b7
KZ
277])
278
279AC_CHECK_MEMBERS([struct termios.c_line],,,
280 [[#include <termios.h>]])
281
282AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
283 [#include <sys/stat.h>])
284
a67387b7
KZ
285AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
286[[
287#ifdef HAVE_SYS_SWAP_H
288# include <sys/swap.h>
289#endif
290#include <unistd.h>
291]],
292[[swapon("/dev/null", 0);]])],
034d378b 293[AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
a67387b7
KZ
294],
295[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
296])
dc61d398
KZ
297
298
a88057d9
TP
299AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
300
2a7c1f70 301AC_CHECK_DECL([llseek],
034d378b 302 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
2a7c1f70
KZ
303 [Define to 1 if have llseek prototype])],
304 [],
305 [#include <unistd.h>])
306
307AC_CHECK_DECL([lseek64],
034d378b 308 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
2a7c1f70
KZ
309 [Define to 1 if have lseek64 prototype])],
310 [],
311 [#define _LARGEFILE_SOURCE
312 #define _LARGEFILE64_SOURCE
313 #include <unistd.h>])
314
0e9b73d3 315AC_CHECK_DECL([environ],
034d378b 316 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
0e9b73d3
SK
317 [Define to 1 if have **environ prototype])],
318)
319
320AC_CHECK_DECL([strsignal],
034d378b 321 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
0e9b73d3
SK
322 [Define to 1 if have strsignal function prototype])],
323)
324
f06b4328 325AC_CHECK_FUNCS([ \
78288764 326 __fpending \
075f4bfd 327 secure_getenv \
f06b4328 328 __secure_getenv \
eb76ca98
FG
329 err \
330 errx \
bf962c0a 331 fsync \
473c5fb8 332 utimensat \
bf962c0a 333 getdomainname \
f06b4328
SK
334 getdtablesize \
335 getexecname \
336 getmntinfo \
337 getrlimit \
c829aebc 338 getsgnam \
f06b4328 339 inotify_init \
3ac22f7a 340 jrand48 \
bf962c0a 341 lchown \
a0948ffe
KZ
342 llseek \
343 lseek64 \
02887b73 344 mempcpy \
f06b4328 345 nanosleep \
2a965b80 346 open_memstream \
f06b4328
SK
347 personality \
348 posix_fadvise \
349 prctl \
9c7955da 350 qsort_r \
f06b4328 351 rpmatch \
485a8bfa 352 scandirat \
69045d3d
KZ
353 setresgid \
354 setresuid \
f06b4328
SK
355 sigqueue \
356 srandom \
357 strnchr \
69b7e41e
KZ
358 strndup \
359 strnlen \
f06b4328 360 sysconf \
88e0f3df 361 sysinfo \
f06b4328
SK
362 updwtmp \
363 usleep \
eb76ca98
FG
364 warn \
365 warnx \
f06b4328 366])
48d7b13a 367AC_FUNC_FSEEKO
48d7b13a 368
940fd28c 369AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
465e9973 370AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
90d5285d
KZ
371AC_CHECK_FUNCS([futimens], [have_futimens=yes])
372AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
465e9973 373
8fc4a886
KZ
374dnl Old glibc requires -lrt
375AC_CHECK_FUNCS(clock_gettime, [], [
376 AC_CHECK_LIB(rt, clock_gettime, [
377 AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
378 CLOCKGETTIME_LIBS="-lrt"
379 ])
380])
381AC_SUBST([CLOCKGETTIME_LIBS])
382
383
034d378b
SK
384AC_CHECK_MEMBER([struct sockaddr.sa_len],
385 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
754fed0c
KZ
386 [#include <sys/types.h>
387 #include <sys/socket.h>])
388
60cc9f94 389SOCKET_LIBS=
60cc9f94 390AC_SEARCH_LIBS([socket], [socket],
3013eb9d
SK
391 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
392 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
393])
60cc9f94
FG
394AC_SUBST([SOCKET_LIBS])
395
d58c47d9
FG
396
397have_dirfd=no
398AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
3013eb9d 399AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
400 AC_CHECK_DECLS([dirfd],
401 [have_dirfd=yes], [have_dirfd=no],
402 [#include <sys/types.h>
403 #include <dirent.h>])
3013eb9d 404])
d58c47d9
FG
405
406have_ddfd=no
3013eb9d 407AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
408 AC_CHECK_MEMBERS([DIR.dd_fd],
409 [have_ddfd=yes], [have_ddfd=no],
410 [#include <sys/types.h>
411 #include <dirent.h>])
3013eb9d 412])
d58c47d9 413
9f57e6e8
SK
414AS_CASE([$have_dirfd:$have_ddfd],
415 [no:no],
416 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
417)
d58c47d9
FG
418
419
d6abf168
SK
420AC_MSG_CHECKING([whether program_invocation_short_name is defined])
421AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
422 #include <argp.h>
423]], [[
424 program_invocation_short_name = "test";
425]])], [
426 AC_MSG_RESULT([yes])
427 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
428 [Define if program_invocation_short_name is defined])
429], [
430 AC_MSG_RESULT([no])
431])
432
a804f444
FG
433
434AC_MSG_CHECKING([whether __progname is defined])
435AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
f06b4328 436 [if (*__progname == 0) return;])],
034d378b
SK
437 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
438 AC_MSG_RESULT([yes]),
439 AC_MSG_RESULT([no]))
a804f444 440
8569410c 441dnl Static compilation
2fa60c5e 442m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter])
8569410c
SK
443
444AC_ARG_ENABLE([static-programs],
445 [AS_HELP_STRING([--enable-static-programs=LIST],
446 [link static the programs in LIST (comma-separated,
132ea941 447 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
8569410c 448
9f57e6e8
SK
449AS_CASE([$enable_static_programs],
450 [yes],
d924b10b 451 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
9f57e6e8
SK
452 [no],
453 [enable_static_programs=]
454)
8569410c 455
8569410c 456dnl Set all the individual AM_CONDITIONALs
132ea941 457m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
9f57e6e8
SK
458 AS_CASE([,$enable_static_programs,],
459 [*,UL_PRG,*], [static_[]UL_PRG=yes]
460 )
d924b10b 461 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
132ea941
KZ
462 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
463 [test "x$static_[]UL_PRG" = xyes])
8569410c
SK
464])
465
08b1c219
KZ
466
467AC_ARG_ENABLE([all-programs],
468 AS_HELP_STRING([--disable-all-programs], [disable everything, might be overridden by --enable-<name>]),
469 [], [enable_all_programs=undefined]
470)
471
472AS_CASE([$enable_all_programs],
7477f356
KZ
473 [yes], [AC_MSG_WARN([force to build all programs by default])
474 ul_default_estate=check],
08b1c219 475 [no], [AC_MSG_WARN([disable all programs by default])
7477f356 476 ul_default_estate=no]
08b1c219
KZ
477)
478
479
d7a01582 480AX_CHECK_TLS
3ac22f7a 481
13f5473e
KZ
482AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
483# include <stdio.h>
3eeb5808 484# include <stdlib.h>
13f5473e
KZ
485int main()
486{
487 int i;
488 char *s;
489 i = sscanf("x", $1, &s);
4f310fae 490 free(s);
13f5473e
KZ
491 if (i == 1)
492 return 0;
493 return 1;
494}])
495
c8494d88
RM
496ul_save_CPPFLAGS="$CPPFLAGS"
497CPPFLAGS="-Werror ${CPPFLAGS}"
13f5473e
KZ
498AC_CACHE_VAL([scanf_cv_alloc_modifier],
499 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
500 [scanf_cv_alloc_modifier=ms],
501 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
502 [scanf_cv_alloc_modifier=as],
503 [scanf_cv_alloc_modifier=no]
504 )
b420e279 505 ,
d0202f1c
SAS
506
507 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
508 #include <stdio.h>
695e4e1a 509 #include <unistd.h>
d0202f1c
SAS
510
511 #ifdef __GLIBC__
512
513 #if !(__GLIBC_PREREQ(2, 7))
514 #error %m is not available
515 #endif
516
695e4e1a 517 #elif defined(_POSIX_VERSION)
d0202f1c 518
695e4e1a
MF
519 #if _POSIX_VERSION < 200809L
520 #error %m is not available
521 #endif
522
523 #else
d0202f1c
SAS
524 #error Your C-library is not supported.
525 #endif
526 ])],
527 [scanf_cv_alloc_modifier=ms],
528 [scanf_cv_alloc_modifier=no])]
13f5473e
KZ
529 )
530)
c8494d88 531CPPFLAGS="$ul_save_CPPFLAGS"
13f5473e
KZ
532
533AC_MSG_CHECKING([scanf string alloc modifiers])
9f57e6e8
SK
534AS_CASE([$scanf_cv_alloc_modifier],
535 [ms],
536 [AC_MSG_RESULT([(%ms) yes])
537 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
538 have_scanf_alloc_modifier=yes],
539 [as],
540 [AC_MSG_RESULT([(%as) yes])
541 have_scanf_alloc_modifier=yes
542 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
543 [AC_MSG_RESULT([no])
544 have_scanf_alloc_modifier=no]
545)
13f5473e 546
034d378b
SK
547UL_CHECK_LIB([util], [openpty])
548UL_CHECK_LIB([termcap], [tgetnum])
3aecf79d
KZ
549
550AC_CHECK_TYPES([union semun], [], [], [[
551#include <sys/sem.h>
552]])
034d378b 553AC_CHECK_TYPES([loff_t])
3aecf79d
KZ
554
555AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
556#include <wchar.h>
557#include <wctype.h>
558#include <stdio.h>
559]], [[
560 wchar_t wc;
561 wint_t w;
562 w = fgetwc(stdin);
563 if (w == WEOF) exit(1);
564 wc = w;
565 fputwc(wc,stdout);
566]])],
034d378b 567[AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
3aecf79d
KZ
568])
569
570AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
571#include <sched.h>
572]])
573
034d378b 574AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
3aecf79d 575
b09bc508
MF
576AC_CHECK_TYPES([sighandler_t], [], [], [[
577#include <signal.h>
578]])
579
3aecf79d
KZ
580AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
581#include <sched.h>
582]])
583
8d35bdc9
KZ
584# on Solaris, you can't mix and match standards, since we use c99
585# aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
586# check for crypt.h and use that without XOPEN_SOURCE.
587AC_CHECK_HEADERS([crypt.h])
588AC_LINK_IFELSE([AC_LANG_PROGRAM([[
589#ifdef HAVE_CRYPT_H
590#include <crypt.h>
591#else
592#define _XOPEN_SOURCE
593#include <unistd.h>
594#endif
595]], [[
596char *c = crypt("abc","pw");
597]])],[],[
598 LIBS="$LIBS -lcrypt"
599 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
600 #ifdef HAVE_CRYPT_H
601 #include <crypt.h>
602 #else
603 #define _XOPEN_SOURCE
604 #include <unistd.h>
605 #endif
606 ]], [[
607 char *c = crypt("abc","pw");
608 ]])],[
034d378b 609 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
8d35bdc9
KZ
610 have_libcrypt=yes
611 ],[
612 AC_MSG_ERROR([crypt() is not available])
613 ])
614])
034d378b 615AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
8d35bdc9 616
13f5473e 617
75ad4910
KZ
618AC_ARG_WITH([selinux],
619 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
034d378b 620 [], [with_selinux=no]
75ad4910
KZ
621)
622
3013eb9d 623AS_IF([test "x$with_selinux" = xno], [
034d378b 624 AM_CONDITIONAL([HAVE_SELINUX], [false])
3013eb9d 625], [
7e34c79f 626 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
034d378b 627 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
7e34c79f 628 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
034d378b 629 AM_CONDITIONAL([HAVE_SELINUX], [true])
7e34c79f
KZ
630 have_selinux=yes],
631 [have_selinux=no])
632
9f57e6e8
SK
633 AS_CASE([$with_selinux:$have_selinux],
634 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
635 )
312f04f4 636
3013eb9d 637 AS_IF([test "x$have_selinux" = xyes], [
312f04f4
KZ
638 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
639 # This function is missing in old libselinux 1.xx versions
640 AC_CHECK_FUNCS([security_get_initial_context])
641 UL_RESTORE_FLAGS
3013eb9d
SK
642 ])
643])
75ad4910
KZ
644AC_SUBST([SELINUX_LIBS])
645AC_SUBST([SELINUX_LIBS_STATIC])
646
647AC_ARG_WITH([audit],
648 AS_HELP_STRING([--with-audit], [compile with audit support]),
034d378b 649 [], [with_audit=no]
75ad4910
KZ
650)
651
3013eb9d 652AS_IF([test "x$with_audit" = xno], [
034d378b 653 AM_CONDITIONAL([HAVE_AUDIT], [false])
3013eb9d 654], [
034d378b 655 UL_CHECK_LIB([audit], [audit_log_user_message])
9f57e6e8
SK
656 AS_CASE([$with_audit:$have_audit],
657 [yes:no],
658 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
659 )
3013eb9d 660])
75ad4910
KZ
661
662AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
034d378b 663 [], [with_udev=auto]
75ad4910
KZ
664)
665
3013eb9d 666AS_IF([test "x$with_udev" = xno], [
034d378b 667 AM_CONDITIONAL([HAVE_UDEV], [false])
3013eb9d 668], [
034d378b 669 UL_CHECK_LIB([udev], [udev_new])
9f57e6e8
SK
670 AS_CASE([$with_udev:$have_udev],
671 [yes:no],
672 [AC_MSG_ERROR([udev selected but libudev not found])]
673 )
3013eb9d 674])
75ad4910
KZ
675
676AC_ARG_WITH([ncurses],
677 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
f06b4328 678 (--without-ncurses disables all ncurses(w) support)]),
034d378b 679 [], [with_ncurses=auto]
75ad4910 680)
034d378b 681AM_CONDITIONAL([HAVE_NCURSES], [false])
3013eb9d 682AS_IF([test "x$with_ncurses" != xno], [
75ad4910 683 have_ncurses=no
2b8f22bd
MF
684
685 dnl First try to find the pkg-config module.
686 PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
687 have_ncurses=yes
688 NCURSES_LIBS=${NCURSESW_LIBS}
689 NCURSES_CFLAGS=${NCURSESW_CFLAGS}
690 AC_DEFINE([HAVE_LIBNCURSESW])
f1512be8 691 CURSES_LIB_NAME="ncursesw"
2b8f22bd
MF
692 ], [
693 PKG_CHECK_MODULES(NCURSES, [ncurses], [
694 have_ncurses=yes
695 AC_DEFINE([HAVE_LIBNCURSES])
f1512be8 696 CURSES_LIB_NAME="ncursesw"
2b8f22bd
MF
697 ], [:])
698 ])
699
700 AS_IF([test "x$have_ncurses" = xyes], [
701 dnl If that worked, setup the defines that the code expects.
702 save_CPPFLAGS="$CPPFLAGS"
703 CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
704 AC_CHECK_HEADERS([ncurses.h])
705 CPPFLAGS="$save_CPPFLAGS"
706 ], [
707 dnl If that failed, fall back to classic searching.
708 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
709 AS_IF([test "x$with_ncurses" = xauto], [
710 UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
711 AS_IF([test "x$have_ncurses" = xyes], [
712 AC_CHECK_HEADERS([ncursesw/ncurses.h])
713 NCURSES_LIBS="-lncursesw"
f1512be8 714 CURSES_LIB_NAME="ncursesw"
2b8f22bd 715 ])
3013eb9d 716 ])
2b8f22bd
MF
717 AS_IF([test "x$have_ncurses" = xno], [
718 UL_CHECK_LIB(ncurses, initscr)
719 AS_IF([test "x$have_ncurses" = xyes], [
720 NCURSES_LIBS="-lncurses"
f1512be8 721 CURSES_LIB_NAME="ncurses"
2b8f22bd 722 ])
3013eb9d
SK
723 ])
724 ])
75ad4910 725 ])
2b8f22bd 726
3013eb9d 727 AS_IF([test "x$have_ncurses" = xno], [
75ad4910 728 AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
3013eb9d
SK
729 ])
730])
2b8f22bd 731AC_SUBST([NCURSES_CFLAGS])
75ad4910
KZ
732AC_SUBST([NCURSES_LIBS])
733
734
735AC_ARG_WITH([slang],
736 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
034d378b 737 [], [with_slang=no]
75ad4910 738)
50ea6795 739have_slang=no
3013eb9d 740AS_IF([test "x$with_slang" = xyes], [
75ad4910
KZ
741 AC_CHECK_HEADERS([slang.h slang/slang.h])
742 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 743 [have_slang=yes], [], [
75ad4910
KZ
744#ifdef HAVE_SLANG_H
745#include <slang.h>
746#elif defined(HAVE_SLANG_SLANG_H)
747#include <slang/slang.h>
748#endif
749])
3013eb9d 750 AS_IF([test "x$have_slang" = xno], [
f1512be8
KZ
751 AC_MSG_ERROR([slang selected but slcurses.h not found])],
752 [CURSES_LIB_NAME=slang
3013eb9d
SK
753 ])
754])
034d378b 755AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
50ea6795 756
50ea6795 757
f1512be8
KZ
758AS_IF([test "x$have_slang" = xyes -o "x$have_ncurses" = xyes], [
759 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
760 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
7556c944
KZ
761 [Define if curses library has the use_default_colors().])
762 ])
763 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
764 AC_DEFINE(HAVE_RESIZETERM, 1,
765 [Define if curses library has the resizeterm().])
f1512be8
KZ
766 ])
767])
768
50ea6795 769
ccf92e6d
KZ
770dnl Try pkg-config for libtinfo
771PKG_CHECK_MODULES(TINFO, [tinfo], [have_tinfo=yes], [
772 dnl If that failed, fall back to classic searching.
773 AC_CHECK_LIB([tinfo], [tgetent], [
774 have_tinfo=yes
775 TINFO_LIBS="-ltinfo"
776 TINFO_CFLAGS=""])
2b8f22bd
MF
777])
778AC_SUBST([TINFO_LIBS])
ccf92e6d 779AC_SUBST([TINFO_CFLAGS])
b88e6b02 780AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
4310faf9
KZ
781AS_IF([test "x$have_tinfo" = xyes],
782 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
783])
75ad4910
KZ
784
785
786AC_ARG_WITH([utempter],
787 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
034d378b 788 [], [with_utempter=no]
75ad4910
KZ
789)
790
3013eb9d 791AS_IF([test "x$with_utempter" = xyes], [
034d378b 792 UL_CHECK_LIB([utempter], [utempter_add_record])
3013eb9d 793 AS_IF([test "x$have_utempter" = xno], [
75ad4910 794 AC_MSG_ERROR([utempter selected but libutempter not found])
3013eb9d
SK
795 ])
796], [
034d378b 797 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
3013eb9d 798])
75ad4910
KZ
799
800
d17584b6 801
1dbbde66
KZ
802dnl
803dnl libuuid
804dnl
17afb032
KZ
805AC_ARG_ENABLE([libuuid],
806 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
08b1c219 807 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
17afb032 808)
fa7be20e 809UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
810AC_SUBST([LIBUUID_VERSION])
811AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 812AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 813
13985252 814AS_IF([test "x$build_libuuid" = xyes], [
17afb032 815 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
3013eb9d 816])
48d7b13a 817
1dbbde66
KZ
818dnl
819dnl libblkid
820dnl
f910b559 821AC_ARG_ENABLE([libblkid],
1d12ed57 822 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
08b1c219 823 [], [UL_DEFAULT_ENABLE([libblkid], [yes])]
40f07ff7 824)
61a074f7 825UL_BUILD_INIT([libblkid])
033cf439 826AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
827AC_SUBST([LIBBLKID_VERSION])
828AC_SUBST([LIBBLKID_VERSION_INFO])
034d378b
SK
829AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
830AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
3013eb9d 831AS_IF([test "x$build_libblkid" = xyes], [
034d378b 832 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
3013eb9d 833])
034d378b
SK
834AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
835AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
f910b559 836
1dbbde66
KZ
837dnl
838dnl libmount
839dnl
f1cde479
KZ
840AC_ARG_ENABLE([libmount],
841 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
08b1c219 842 [], [UL_DEFAULT_ENABLE([libmount], [check])]
f1cde479 843)
61a074f7 844UL_BUILD_INIT([libmount])
13f5473e
KZ
845UL_REQUIRES_BUILD([libmount], [libblkid])
846UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
034d378b
SK
847AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
848AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
8e368761 849
f1cde479 850AC_SUBST([LIBMOUNT_VERSION])
10e1d2e5
SH
851AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
852AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
853AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
f1cde479 854AC_SUBST([LIBMOUNT_VERSION_INFO])
034d378b 855AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
13f5473e 856
e3f72275
KZ
857AC_ARG_ENABLE([libmount-force-mountinfo],
858 AS_HELP_STRING([--enable-libmount-force-mountinfo], [ignore /etc/mtab in all situations (recommended for systemd)]),
859 [], [enable_libmount_force_mountinfo=no]
860)
861
862AS_IF([test "x$enable_libmount_force_mountinfo" == xyes], [
863 AC_DEFINE([USE_LIBMOUNT_FORCE_MOUNTINFO], [1], [Define to 1 if want to ignore mtab in all situations.])
864])
865
f1cde479 866
1a4d989e
OO
867dnl
868dnl libsmartcols
869dnl
870AC_ARG_ENABLE([libsmartcols],
871 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
08b1c219 872 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1a4d989e
OO
873)
874UL_BUILD_INIT([libsmartcols])
1a4d989e
OO
875AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
876AM_CONDITIONAL([BUILD_LIBSMARTCOLS_TESTS], [test "x$build_libsmartcols" = xyes -a "x$enable_static" = xyes])
877
878AC_SUBST([LIBSMARTCOLS_VERSION])
879AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
880AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
881
882
eb6a03f3 883dnl
0bb4c979 884dnl libfdisk
eb6a03f3 885dnl
0bb4c979
KZ
886AC_ARG_ENABLE([libfdisk],
887 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
888 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
889)
890UL_BUILD_INIT([libfdisk])
eb6a03f3 891UL_REQUIRES_BUILD([libfdisk], [libuuid])
034d378b 892AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
0bb4c979
KZ
893AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
894
ed79557e
KZ
895AS_IF([test "x$build_libblkid" = xyes],
896 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
897AC_SUBST([LIBFDISK_PC_REQUIRES])
898
0bb4c979 899AC_SUBST([LIBFDISK_VERSION])
791da22d
KZ
900AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
901AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
902AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
0bb4c979
KZ
903AC_SUBST([LIBFDISK_VERSION_INFO])
904AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
905
eb6a03f3
KZ
906
907UL_BUILD_INIT([fdisk], [check])
908UL_REQUIRES_BUILD([fdisk], [libfdisk])
d44115f3 909UL_REQUIRES_BUILD([fdisk], [libsmartcols])
034d378b 910AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
eb6a03f3
KZ
911
912
62b2c024 913UL_BUILD_INIT([sfdisk], [check])
9c1f9dd3
KZ
914UL_REQUIRES_BUILD([sfdisk], [libfdisk])
915UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
ecc6047e
KZ
916AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
917
918
08b1c219
KZ
919UL_BUILD_INIT([cfdisk], [check])
920UL_REQUIRES_BUILD([cfdisk], [libfdisk])
921UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
922UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
923AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
924
925
434b07a0
KZ
926AC_ARG_ENABLE([mount],
927 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
08b1c219 928 [], [UL_DEFAULT_ENABLE([mount], [check])]
ecdba5dd 929)
434b07a0 930UL_BUILD_INIT([mount])
53e8c16e 931UL_REQUIRES_LINUX([mount])
434b07a0 932UL_REQUIRES_BUILD([mount], [libmount])
034d378b 933AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
ecdba5dd
KZ
934
935
bafe1a75
KZ
936AC_ARG_ENABLE([losetup],
937 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
08b1c219 938 [], [UL_DEFAULT_ENABLE([losetup], [check])]
bafe1a75
KZ
939)
940UL_BUILD_INIT([losetup])
941UL_REQUIRES_LINUX([losetup])
7477f356 942UL_REQUIRES_BUILD([losetup], [libsmartcols])
034d378b 943AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
bafe1a75 944
0624d840
KZ
945AC_ARG_ENABLE([zramctl],
946 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
947 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
948)
949UL_BUILD_INIT([zramctl])
950UL_REQUIRES_LINUX([zramctl])
951UL_REQUIRES_BUILD([zramctl], [libsmartcols])
952AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
bafe1a75 953
1dbbde66
KZ
954AC_ARG_ENABLE([fsck],
955 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
08b1c219 956 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1dbbde66 957)
61a074f7 958UL_BUILD_INIT([fsck])
a7b585ea 959UL_REQUIRES_BUILD([fsck], [libmount])
034d378b 960AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1dbbde66
KZ
961
962
963AC_ARG_ENABLE([partx],
964 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
08b1c219 965 [], [UL_DEFAULT_ENABLE([partx], [check])]
1dbbde66 966)
61a074f7 967UL_BUILD_INIT([partx])
ecde2536
KZ
968UL_REQUIRES_LINUX([partx])
969UL_REQUIRES_BUILD([partx], [libblkid])
08b1c219 970UL_REQUIRES_BUILD([partx], [libsmartcols])
034d378b 971AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1dbbde66
KZ
972
973
1dbbde66
KZ
974AC_ARG_ENABLE([uuidd],
975 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
08b1c219 976 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1dbbde66 977)
61a074f7 978UL_BUILD_INIT([uuidd])
bcdab497 979UL_REQUIRES_BUILD([uuidd], [libuuid])
3013eb9d 980AS_IF([test "x$build_uuidd" = xyes], [
034d378b 981 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
3013eb9d 982])
034d378b 983AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1dbbde66
KZ
984
985
1b15cbd1
KZ
986UL_BUILD_INIT([uuidgen], [check])
987UL_REQUIRES_BUILD([uuidgen], [libuuid])
988AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
989
15a2c741
KZ
990UL_BUILD_INIT([blkid], [check])
991UL_REQUIRES_BUILD([blkid], [libblkid])
992AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
993
994UL_BUILD_INIT([findfs], [check])
995UL_REQUIRES_BUILD([findfs], [libblkid])
996AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
997
998UL_BUILD_INIT([wipefs], [check])
999UL_REQUIRES_BUILD([wipefs], [libblkid])
1000AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1001
1002UL_BUILD_INIT([findmnt], [check])
1003UL_REQUIRES_BUILD([findmnt], [libmount])
1004UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1005AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1006
1b15cbd1 1007
0164c245 1008AC_ARG_ENABLE([mountpoint],
2023ccc4 1009 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
08b1c219 1010 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
0164c245 1011)
61a074f7 1012UL_BUILD_INIT([mountpoint])
a9127bc1 1013UL_REQUIRES_BUILD([mountpoint], [libmount])
034d378b 1014AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
0164c245
KZ
1015
1016
10e56b49
KZ
1017AC_ARG_ENABLE([fallocate],
1018 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
08b1c219 1019 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
10e56b49 1020)
61a074f7 1021UL_BUILD_INIT([fallocate])
10e56b49
KZ
1022UL_REQUIRES_LINUX([fallocate])
1023UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
034d378b 1024AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
10e56b49 1025
3013eb9d 1026AS_IF([test "x$build_fallocate" = xyes], [
10e56b49
KZ
1027 dnl check for valid fallocate() function
1028 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1029 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1030 dnl and program can't be linked.
1031 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1032 dnl function prototype.
1033 AC_MSG_CHECKING([for valid fallocate() function])
1034 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
1035#ifdef HAVE_UNISTD_H
1036# include <unistd.h>
1037#endif
1038#ifdef HAVE_SYS_TYPES_H
1039# include <sys/types.h>
1040#endif
1041#ifdef HAVE_LINUX_FALLOC_H
1042# include <linux/falloc.h>
1043#endif
1044#ifdef HAVE_FCNTL_H
1045# include <fcntl.h>
1046#endif
1047]],[[
1048 long ret;
b832c2fe 1049 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
1050 if (ret != 0) {
1051 return 1;
1052 }
1053 ]])],[
10e56b49 1054 AC_MSG_RESULT([yes])
034d378b 1055 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
10e56b49 1056 AC_MSG_RESULT([no])])
3013eb9d 1057])
10e56b49 1058
19a224ad 1059
a2ea6670
KZ
1060AC_ARG_ENABLE([unshare],
1061 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
08b1c219 1062 [], [UL_DEFAULT_ENABLE([unshare], [check])]
a2ea6670 1063)
61a074f7 1064UL_BUILD_INIT([unshare])
a2ea6670
KZ
1065UL_REQUIRES_LINUX([unshare])
1066UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
034d378b 1067AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
bdd384d1 1068AC_CHECK_FUNCS([unshare])
b3425806 1069
f8aa8e94
EB
1070AC_ARG_ENABLE([nsenter],
1071 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
08b1c219 1072 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
f8aa8e94
EB
1073)
1074UL_BUILD_INIT([nsenter])
1075UL_REQUIRES_LINUX([nsenter])
6cd4beac 1076UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
034d378b 1077AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
bdd384d1 1078AC_CHECK_FUNCS([setns])
b3425806 1079
5600c405
AL
1080dnl setpriv depends on libcap-ng. It would be possible to build
1081dnl a version of setpriv with limited functionality without libcap-ng,
1082dnl but this isn't currently supported.
1083UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1084AC_ARG_ENABLE([setpriv],
1085 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
08b1c219 1086 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
5600c405
AL
1087)
1088UL_BUILD_INIT([setpriv])
1089UL_REQUIRES_LINUX([setpriv])
48469f90 1090UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
e1b8ba20 1091UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
034d378b 1092AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
5600c405
AL
1093
1094
539feec1
ML
1095AC_ARG_ENABLE([eject],
1096 AS_HELP_STRING([--disable-eject], [do not build eject]),
08b1c219 1097 [], [UL_DEFAULT_ENABLE([eject], [check])]
539feec1
ML
1098)
1099UL_BUILD_INIT([eject])
1100UL_REQUIRES_LINUX([eject])
7770e7df 1101UL_REQUIRES_BUILD([eject], [libmount])
034d378b 1102AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
539feec1
ML
1103
1104
48d7b13a 1105AC_ARG_ENABLE([agetty],
7fa4f112 1106 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
08b1c219 1107 [], [UL_DEFAULT_ENABLE([agetty], [yes])]
48d7b13a 1108)
61a074f7 1109UL_BUILD_INIT([agetty])
034d378b 1110AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
90d5285d
KZ
1111AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1112 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1113],[
1114 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1115])
0fc74be1 1116
48d7b13a 1117
9cb68977 1118AC_ARG_ENABLE([cramfs],
7fa4f112 1119 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
08b1c219 1120 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
9cb68977 1121)
61a074f7 1122UL_BUILD_INIT([cramfs])
034d378b 1123AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
d81b5a52 1124UL_REQUIRES_HAVE([cramfs], [z], [z library])
034d378b 1125AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
9cb68977 1126
a13cdb7a 1127
8d6f0bae 1128AC_ARG_ENABLE([bfs],
834fc88c 1129 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
08b1c219 1130 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
834fc88c
KZ
1131)
1132UL_BUILD_INIT([bfs])
034d378b 1133AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
834fc88c
KZ
1134
1135
3d9fdac5
KZ
1136AC_ARG_ENABLE([minix],
1137 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
08b1c219 1138 [], [UL_DEFAULT_ENABLE([minix], [yes])]
3d9fdac5
KZ
1139)
1140UL_BUILD_INIT([minix])
1141AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1142
1143
8d6f0bae
KZ
1144AC_ARG_ENABLE([fdformat],
1145 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
08b1c219 1146 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
8d6f0bae
KZ
1147)
1148UL_BUILD_INIT([fdformat])
1149UL_REQUIRES_LINUX([fdformat])
034d378b 1150AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
8d6f0bae
KZ
1151
1152
6acf31ac
KZ
1153AC_ARG_ENABLE([hwclock],
1154 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
08b1c219 1155 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
6acf31ac
KZ
1156)
1157have_linuxdummy=$linux_os
1158
1159UL_BUILD_INIT([hwclock])
1160UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
034d378b 1161AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
e09ebf22
KZ
1162
1163
ecc6047e
KZ
1164UL_BUILD_INIT([mkfs], [yes])
1165AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1166
1167UL_BUILD_INIT([isosize], [yes])
1168AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1169
3d9fdac5 1170
7b040214
KZ
1171UL_BUILD_INIT([fstrim], [check])
1172UL_REQUIRES_LINUX([fstrim])
1173UL_REQUIRES_BUILD([fstrim], [libmount])
1174AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1175
1176
143635c9
KZ
1177UL_BUILD_INIT([swapon], [check])
1178UL_REQUIRES_LINUX([swapon])
1179UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 1180UL_REQUIRES_BUILD([swapon], [libmount])
7477f356 1181UL_REQUIRES_BUILD([swapon], [libsmartcols])
034d378b 1182AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
143635c9
KZ
1183
1184
61a074f7 1185UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
1186UL_REQUIRES_LINUX([lsblk])
1187UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 1188UL_REQUIRES_BUILD([lsblk], [libmount])
7477f356 1189UL_REQUIRES_BUILD([lsblk], [libsmartcols])
034d378b 1190AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
9cb68977 1191
a3d3b770 1192
61a074f7 1193UL_BUILD_INIT([lscpu], [check])
da396d88 1194UL_REQUIRES_LINUX([lscpu])
7477f356 1195UL_REQUIRES_BUILD([lscpu], [libsmartcols])
da396d88 1196UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
034d378b 1197AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
da396d88 1198
a3d3b770 1199
ab1cfad5
OO
1200UL_BUILD_INIT([lslogins], [check])
1201UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1202AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1203
1204
61a074f7 1205UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
1206UL_REQUIRES_LINUX([chcpu])
1207UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
034d378b 1208AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
da396d88 1209
a13cdb7a 1210
7fcccbdf
KZ
1211AC_ARG_ENABLE([wdctl],
1212 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
08b1c219 1213 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
7fcccbdf
KZ
1214)
1215UL_BUILD_INIT([wdctl])
5b0289b9 1216UL_REQUIRES_LINUX([wdctl])
7477f356 1217UL_REQUIRES_BUILD([wdctl], [libsmartcols])
5b0289b9 1218UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
034d378b 1219AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
5b0289b9
KZ
1220
1221
54dbc8cf
KZ
1222UL_BUILD_INIT([swaplabel], [check])
1223UL_REQUIRES_BUILD([swaplabel], [libblkid])
034d378b 1224AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
54dbc8cf
KZ
1225
1226
ecc6047e
KZ
1227UL_BUILD_INIT([mkswap], [yes])
1228AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
08b1c219
KZ
1229AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1230 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1231])
ecc6047e 1232
1b15cbd1
KZ
1233UL_BUILD_INIT([cal], [yes])
1234AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1235
1236UL_BUILD_INIT([logger], [yes])
1237AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1238
4c838e6c 1239UL_BUILD_INIT([look], [yes])
1b15cbd1
KZ
1240AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1241
1242UL_BUILD_INIT([mcookie], [yes])
1243AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1244
1245UL_BUILD_INIT([namei], [yes])
1246AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1247
1248UL_BUILD_INIT([whereis], [yes])
1249AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1250
3adaaa15
KZ
1251UL_BUILD_INIT([getopt], [yes])
1252AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1253
ecc6047e
KZ
1254
1255UL_BUILD_INIT([blockdev], [check])
1256UL_REQUIRES_LINUX([blockdev])
1257AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1258
1259
945ac250
KZ
1260UL_BUILD_INIT([prlimit], [check])
1261UL_REQUIRES_LINUX([prlimit])
7477f356 1262UL_REQUIRES_BUILD([prlimit], [libsmartcols])
945ac250 1263UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
034d378b 1264AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
3013eb9d 1265AS_IF([test "x$build_prlimit" = xyes], [
945ac250 1266 AC_CHECK_FUNCS([prlimit])
3013eb9d 1267])
945ac250
KZ
1268
1269
3dc02ef4
DB
1270UL_BUILD_INIT([lslocks], [check])
1271UL_REQUIRES_LINUX([lslocks])
ec1204dc 1272UL_REQUIRES_BUILD([lslocks], [libmount])
7477f356 1273UL_REQUIRES_BUILD([lslocks], [libsmartcols])
034d378b 1274AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
3dc02ef4
DB
1275
1276
bd671347
KZ
1277AC_ARG_ENABLE([switch_root],
1278 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
08b1c219 1279 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
bd671347 1280)
61a074f7 1281UL_BUILD_INIT([switch_root])
a3d3b770
KZ
1282UL_REQUIRES_LINUX([switch_root])
1283UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
034d378b 1284AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
bd671347
KZ
1285
1286
11125e7a
KZ
1287AC_ARG_ENABLE([pivot_root],
1288 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
08b1c219 1289 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
11125e7a 1290)
61a074f7 1291UL_BUILD_INIT([pivot_root])
5cbbdfbf 1292UL_REQUIRES_LINUX([pivot_root])
9f632667 1293UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
034d378b 1294AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
11125e7a
KZ
1295
1296
205dbb7a
KZ
1297UL_BUILD_INIT([flock], [yes])
1298AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1299
1300UL_BUILD_INIT([ipcmk], [yes])
1301AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1302
1303UL_BUILD_INIT([ipcrm], [yes])
1304AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1305
1306UL_BUILD_INIT([ipcs], [yes])
1307AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1308
1309UL_BUILD_INIT([renice], [yes])
1310AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1311
1312UL_BUILD_INIT([setsid], [yes])
1313AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1314
1315UL_BUILD_INIT([readprofile], [check])
1316UL_REQUIRES_LINUX([readprofile])
1317AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1318
1319UL_BUILD_INIT([dmesg], [check])
1320UL_REQUIRES_LINUX([dmesg])
1321AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1322
1323UL_BUILD_INIT([ctrlaltdel], [check])
1324UL_REQUIRES_LINUX([ctrlaltdel])
1325AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1326
1327UL_BUILD_INIT([fsfreeze], [check])
1328UL_REQUIRES_LINUX([fsfreeze])
1329AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1330
1331UL_BUILD_INIT([blkdiscard], [check])
1332UL_REQUIRES_LINUX([blkdiscard])
1333AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1334
1335UL_BUILD_INIT([ldattach], [check])
1336UL_REQUIRES_LINUX([ldattach])
1337AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1338
1339UL_BUILD_INIT([rtcwake], [check])
1340UL_REQUIRES_LINUX([rtcwake])
1341AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1342
1343UL_BUILD_INIT([setarch], [check])
1344UL_REQUIRES_LINUX([setarch])
1345AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1346
3f91b990
KZ
1347UL_BUILD_INIT([script], [yes])
1348AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1349
1350UL_BUILD_INIT([scriptreplay], [yes])
1351AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1352
cb45354e
KZ
1353UL_BUILD_INIT([col], [yes])
1354AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1355
1356UL_BUILD_INIT([colcrt], [yes])
1357AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1358
1359UL_BUILD_INIT([colrm], [yes])
1360AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1361
1362UL_BUILD_INIT([column], [yes])
1363AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1364
1365UL_BUILD_INIT([hexdump], [yes])
1366AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1367
1368UL_BUILD_INIT([rev], [yes])
1369AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1370
1371UL_BUILD_INIT([tailf], [yes])
1372AM_CONDITIONAL([BUILD_TAILF], [test "x$build_tailf" = xyes])
1373
3f91b990 1374
1342ffcb
SK
1375AC_ARG_ENABLE([tunelp],
1376 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
08b1c219 1377 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1342ffcb
SK
1378)
1379UL_BUILD_INIT([tunelp])
1380UL_REQUIRES_LINUX([tunelp])
034d378b 1381AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1342ffcb
SK
1382
1383
48d7b13a 1384AC_ARG_ENABLE([kill],
4be753aa 1385 AS_HELP_STRING([--disable-kill], [do not build kill]),
08b1c219 1386 [], [UL_DEFAULT_ENABLE([kill], [check])]
48d7b13a 1387)
61a074f7 1388UL_BUILD_INIT([kill])
4be753aa 1389UL_REQUIRES_LINUX([kill])
034d378b 1390AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
48d7b13a 1391
569ff0d3
KZ
1392dnl Don't use UL_DEFAULT_ENABLE() here, deprecated stuff has to be insensitive
1393dnl to --enable-all-programs.
ce602720
OO
1394AC_ARG_ENABLE([deprecated-last],
1395 AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
569ff0d3 1396 [], [enable_deprecated_last=no]
ce602720
OO
1397)
1398UL_BUILD_INIT([deprecated_last])
ce602720
OO
1399AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1400
1401
48d7b13a 1402AC_ARG_ENABLE([last],
ce602720 1403 AS_HELP_STRING([--disable-last], [do not build last]),
08b1c219 1404 [], [UL_DEFAULT_ENABLE([last], [check])]
48d7b13a 1405)
61a074f7 1406UL_BUILD_INIT([last])
4d1d1233 1407UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
034d378b 1408AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2dc68529 1409
48d7b13a 1410
78d5ceac 1411AC_ARG_ENABLE([utmpdump],
c9b53461 1412 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
08b1c219 1413 [], [UL_DEFAULT_ENABLE([utmpdump], [yes])]
78d5ceac
KZ
1414)
1415UL_BUILD_INIT([utmpdump])
034d378b 1416AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
78d5ceac
KZ
1417
1418
c135a8bd
SK
1419AC_ARG_ENABLE([line],
1420 AS_HELP_STRING([--enable-line], [build line]),
08b1c219 1421 [], [UL_DEFAULT_ENABLE([line], [no])]
c135a8bd 1422)
61a074f7 1423UL_BUILD_INIT([line])
034d378b 1424AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2dc68529 1425
48d7b13a
KZ
1426
1427AC_ARG_ENABLE([mesg],
5c0b406d 1428 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
08b1c219 1429 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
48d7b13a 1430)
61a074f7 1431UL_BUILD_INIT([mesg])
034d378b 1432AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
48d7b13a
KZ
1433
1434
48d7b13a 1435AC_ARG_ENABLE([raw],
5c0b406d 1436 AS_HELP_STRING([--disable-raw], [do not build raw]),
08b1c219 1437 [], [UL_DEFAULT_ENABLE([raw], [check])]
48d7b13a 1438)
61a074f7 1439UL_BUILD_INIT([raw])
16ba8d58
KZ
1440UL_REQUIRES_LINUX([raw])
1441UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
034d378b 1442AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
48d7b13a
KZ
1443
1444
48d7b13a 1445AC_ARG_ENABLE([rename],
7fa4f112 1446 AS_HELP_STRING([--disable-rename], [do not build rename]),
08b1c219 1447 [], [UL_DEFAULT_ENABLE([rename], [yes])]
48d7b13a 1448)
61a074f7 1449UL_BUILD_INIT([rename])
034d378b 1450AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
48d7b13a
KZ
1451
1452
1453AC_ARG_ENABLE([reset],
7fa4f112 1454 AS_HELP_STRING([--enable-reset], [build reset]),
08b1c219 1455 [], [UL_DEFAULT_ENABLE([reset], [no])]
48d7b13a 1456)
61a074f7 1457UL_BUILD_INIT([reset])
034d378b 1458AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
48d7b13a
KZ
1459
1460
cc76731e
KZ
1461AC_ARG_ENABLE([vipw],
1462 AS_HELP_STRING([--enable-vipw], [build vipw]),
08b1c219 1463 [], [UL_DEFAULT_ENABLE([vipw], [no])]
48d7b13a 1464)
cc76731e 1465UL_BUILD_INIT([vipw])
034d378b 1466AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
9cb68977 1467
c94b3604 1468
aec9ecbd
KZ
1469AC_ARG_ENABLE([newgrp],
1470 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
08b1c219 1471 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
aec9ecbd
KZ
1472)
1473UL_BUILD_INIT([newgrp])
034d378b 1474AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
aec9ecbd
KZ
1475
1476
d86918b6 1477AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
034d378b 1478 [], [with_user=check]
7e4714f2 1479)
6e93c52f 1480have_user=no
3013eb9d 1481AS_IF([test "x$with_user" != xno], [
2771954b 1482 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
9f57e6e8
SK
1483 AS_CASE([$with_user:$have_user],
1484 [yes:no],
1485 [AC_MSG_ERROR([user selected but libuser not found])],
1486 [*:yes],
1487 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1488 )
1f6ec24c
KZ
1489 # temporary solution, libuser has stupid .pc where are exported all
1490 # private dependencies to Requires: instead of Requires.private:
3013eb9d 1491 AS_IF([test "x$have_user" = xyes], [
1f6ec24c 1492 LIBUSER_LIBS=-luser
3013eb9d
SK
1493 ])
1494])
034d378b 1495AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
7e4714f2 1496
d86918b6
KZ
1497AC_ARG_ENABLE([chfn-chsh-password],
1498 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
034d378b 1499 [], [enable_chfn_chsh_password=yes]
d86918b6
KZ
1500)
1501
1502AC_ARG_ENABLE([chfn-chsh],
1503 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
9a4e9c9d 1504 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
d86918b6
KZ
1505)
1506UL_BUILD_INIT([chfn_chsh])
1507
3013eb9d 1508AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
fe2c9909 1509 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
034d378b 1510 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
3013eb9d 1511])
034d378b
SK
1512AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1513AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
d86918b6
KZ
1514
1515AC_ARG_ENABLE([chsh-only-listed],
5c0b406d
BS
1516 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1517 [], enable_chsh_only_listed=yes
d86918b6 1518)
7e4714f2 1519
3013eb9d
SK
1520AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1521 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1522])
71681ee5 1523
2c8a3e16 1524
e7614a07
KZ
1525AC_ARG_ENABLE([login],
1526 AS_HELP_STRING([--disable-login], [do not build login]),
08b1c219 1527 [], [UL_DEFAULT_ENABLE([login], [check])]
e7614a07
KZ
1528)
1529UL_BUILD_INIT([login])
fe2c9909
WJ
1530UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1531UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
034d378b 1532AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
e7614a07 1533
71681ee5
KZ
1534AC_ARG_ENABLE([login-chown-vcs],
1535 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
034d378b 1536 [], [enable_login_chown_vcs=no]
71681ee5
KZ
1537)
1538
3013eb9d 1539AS_IF([test "x$enable_login_chown_vcs" = xyes], [
034d378b 1540 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
3013eb9d 1541])
71681ee5
KZ
1542
1543AC_ARG_ENABLE([login-stat-mail],
1544 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
034d378b 1545 [], [enable_login_stat_mail=no]
71681ee5
KZ
1546)
1547
3013eb9d 1548AS_IF([test "x$enable_login_stat_mail" = xyes], [
034d378b 1549 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
3013eb9d 1550])
71681ee5 1551
e7614a07 1552
88407b93
KZ
1553AC_ARG_ENABLE([nologin],
1554 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
08b1c219 1555 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
88407b93
KZ
1556)
1557UL_BUILD_INIT([nologin])
1558AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1559
1560
e7614a07
KZ
1561AC_ARG_ENABLE([sulogin],
1562 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
08b1c219 1563 [], [UL_DEFAULT_ENABLE([sulogin], [yes])]
e7614a07
KZ
1564)
1565UL_BUILD_INIT([sulogin])
034d378b 1566AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
e7614a07 1567
f17f5f48 1568
ff4c5555
KZ
1569AC_ARG_ENABLE([su],
1570 AS_HELP_STRING([--disable-su], [do not build su]),
08b1c219 1571 [], [UL_DEFAULT_ENABLE([su], [check])]
ff4c5555
KZ
1572)
1573UL_BUILD_INIT([su])
fe2c9909 1574UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
034d378b 1575AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
ff4c5555
KZ
1576
1577
7ec6adb1
KZ
1578AC_ARG_ENABLE([runuser],
1579 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
08b1c219 1580 [], [UL_DEFAULT_ENABLE([runuser], [check])]
7ec6adb1
KZ
1581)
1582UL_BUILD_INIT([runuser])
fe2c9909 1583UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
034d378b 1584AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
7ec6adb1
KZ
1585
1586
53b22add
KZ
1587AC_ARG_ENABLE([ul],
1588 AS_HELP_STRING([--disable-ul], [do not build ul]),
08b1c219 1589 [], [UL_DEFAULT_ENABLE([ul], [check])]
53b22add
KZ
1590)
1591UL_BUILD_INIT([ul])
1592UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
034d378b 1593AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
53b22add
KZ
1594
1595
1596AC_ARG_ENABLE([more],
1597 AS_HELP_STRING([--disable-more], [do not build more]),
08b1c219 1598 [], [UL_DEFAULT_ENABLE([more], [check])]
53b22add
KZ
1599)
1600UL_BUILD_INIT([more])
1601UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
034d378b 1602AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
53b22add
KZ
1603
1604
1605AC_ARG_ENABLE([pg],
1606 AS_HELP_STRING([--disable-pg], [do not build pg]),
08b1c219 1607 [], [UL_DEFAULT_ENABLE([pg], [check])]
53b22add
KZ
1608)
1609UL_BUILD_INIT([pg])
1610UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
034d378b 1611AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
53b22add
KZ
1612
1613
d78d0409
KZ
1614AC_ARG_ENABLE([setterm],
1615 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
08b1c219 1616 [], [UL_DEFAULT_ENABLE([setterm], [check])]
d78d0409
KZ
1617)
1618UL_BUILD_INIT([setterm])
1619UL_REQUIRES_LINUX([setterm])
1620UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
034d378b 1621AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
d78d0409 1622
d6ace0b8
KZ
1623# build_schedutils= is just configure-only variable to control
1624# ionice, taskset and chrt
48d7b13a 1625AC_ARG_ENABLE([schedutils],
34228e69 1626 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
08b1c219 1627 [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
48d7b13a 1628)
61a074f7 1629UL_BUILD_INIT([schedutils])
17d5e11b 1630
61a074f7 1631UL_BUILD_INIT([ionice], [check])
17d5e11b
KZ
1632UL_REQUIRES_BUILD([ionice], [schedutils])
1633UL_REQUIRES_SYSCALL_CHECK([ionice],
1634 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
1635 [alpha], [442],
1636 [i*86], [289],
1637 [ia64*], [1274],
1638 [powerpc*], [273],
1639 [s390*], [282],
1640 [sparc*], [196],
1641 [sh*], [288],
1642 [x86_64*], [251])],
17d5e11b
KZ
1643 [ioprio_set])
1644
1645UL_REQUIRES_SYSCALL_CHECK([ionice],
1646 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
1647 [alpha], [443],
1648 [i*86], [290],
1649 [ia64*], [1275],
1650 [powerpc*], [274],
1651 [s390*], [283],
1652 [sparc*], [218],
1653 [sh*], [289],
1654 [x86_64*], [252])],
17d5e11b
KZ
1655 [ioprio_get])
1656
034d378b 1657AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
17d5e11b 1658
61a074f7 1659UL_BUILD_INIT([taskset], [check])
17d5e11b 1660UL_REQUIRES_BUILD([taskset], [schedutils])
e21e6d26 1661UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
1662UL_REQUIRES_SYSCALL_CHECK([taskset],
1663 [UL_CHECK_SYSCALL([sched_getaffinity])],
1664 [sched_getaffinity])
034d378b 1665AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
48d7b13a 1666
d6ace0b8
KZ
1667UL_BUILD_INIT([chrt], [check])
1668UL_REQUIRES_BUILD([chrt], [schedutils])
1669AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1670
48d7b13a
KZ
1671
1672AC_ARG_ENABLE([wall],
7fa4f112 1673 AS_HELP_STRING([--disable-wall], [do not build wall]),
08b1c219 1674 [], [UL_DEFAULT_ENABLE([wall], [yes])]
48d7b13a 1675)
8fc8888b 1676UL_BUILD_INIT([wall])
034d378b 1677AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
48d7b13a
KZ
1678
1679
1680AC_ARG_ENABLE([write],
7fa4f112 1681 AS_HELP_STRING([--enable-write], [build write]),
08b1c219 1682 [], [UL_DEFAULT_ENABLE([write], [no])]
48d7b13a 1683)
61a074f7 1684UL_BUILD_INIT([write])
034d378b 1685AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
48d7b13a
KZ
1686
1687
ebff016a
KZ
1688AC_ARG_WITH([systemd],
1689 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
1690 [], [with_systemd=check]
1691)
1692
1693have_systemd=no
1694AS_IF([test "x$with_systemd" != xno], [
1695 # new version -- all libsystemd-* libs merged into libsystemd
1696 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
1697 # old versions
1698 AS_IF([test "x$have_systemd" != "xyes"], [
1699 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
1700 [have_systemd_daemon=yes], [have_systemd_daemon=no])
1701 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
1702 [have_systemd_journal=yes], [have_systemd_journal=no])
1703 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
1704 have_systemd=yes])
ea45d34c 1705 ])
ebff016a
KZ
1706 AS_CASE([$with_systemd:$have_systemd],
1707 [yes:no],
1708 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
1709 [*:yes],
1710 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
1711 )
3013eb9d 1712])
ebff016a
KZ
1713AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
1714
bbe289c4 1715
1b68c379
PU
1716AC_ARG_WITH([systemdsystemunitdir],
1717 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
c8498f2f 1718 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1b68c379 1719
3013eb9d 1720AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1b68c379 1721 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
3013eb9d 1722])
1b68c379 1723
bbe289c4 1724
b8095d25
KZ
1725AC_ARG_WITH([smack],
1726 AS_HELP_STRING([--with-smack], [build with SMACK support]),
1727 [], [with_smack=no]
1728)
1729AS_IF([test "x$with_smack" = xyes], [
1730 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
1731])
1732
1733
9cc36e9f
SK
1734AC_ARG_WITH([bashcompletiondir],
1735 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1736 [],
c8498f2f
SK
1737 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1738 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
9cc36e9f
SK
1739 ], [
1740 with_bashcompletiondir=${datadir}/bash-completion/completions
1741 ])
1742])
1743AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1744
ece777e9
KZ
1745AC_ARG_ENABLE([bash-completion],
1746 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
034d378b 1747 [], [enable_bash_completion=yes]
ece777e9
KZ
1748)
1749
034d378b 1750AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
ece777e9 1751
9cc36e9f 1752
d78df0ac 1753AC_ARG_WITH([python],
4c54effb
KZ
1754 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
1755 [], [with_python=check withval=check]
d78df0ac 1756)
8e5c4675 1757
d78df0ac 1758have_python=no
8e5c4675
KZ
1759AS_IF([test "x$with_python" != xno], [
1760 # We follow distributions default and look for PKG module name "python"
1761 # (minimal version is 2) but if major version is explicitly specified by
1762 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1763 # "python3".
4c54effb 1764 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
0b567ae5
SK
1765 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
1766 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
8e5c4675
KZ
1767 AS_CASE([$with_python:$have_python],
1768 [yes:no],
4c54effb
KZ
1769 [AC_MSG_ERROR([python selected but libpython not found])],
1770 [check:no],
1771 [AC_MSG_WARN([libpython not found, do not build python bindings])],
1772 [*:yes],
1773 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])]
8e5c4675 1774 )
d78df0ac
KZ
1775])
1776
da0ec90b
KZ
1777
1778AC_ARG_ENABLE([pylibmount],
1779 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
1780 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
1781)
1782UL_BUILD_INIT([pylibmount])
1783UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
1784UL_REQUIRES_BUILD([pylibmount], [libmount])
d78df0ac
KZ
1785AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1786
1787
48d7b13a 1788AC_ARG_ENABLE([pg-bell],
7fa4f112 1789 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
034d378b 1790 [], [enable_pg_bell=yes]
48d7b13a
KZ
1791)
1792
3013eb9d 1793AS_IF([test "x$enable_pg_bell" = xyes], [
034d378b 1794 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
3013eb9d 1795])
48d7b13a
KZ
1796
1797
bb4cb69d
MF
1798AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1799AC_ARG_ENABLE([fs-paths-default],
1800 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
9f57e6e8
SK
1801 [AS_CASE([$enableval],
1802 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
1803 [no], [fs_paths_defaults=""],
1804 [fs_paths_defaults="$enableval"]
1805 )],
bb4cb69d
MF
1806 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1807)
1808AC_ARG_ENABLE([fs-paths-extra],
1809 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
9f57e6e8
SK
1810 [AS_CASE([$enableval],
1811 [yes|no], [fs_paths_extra=""],
1812 [fs_paths_extra="$enableval"]
1813 )],
bb4cb69d
MF
1814 [fs_paths_extra=""]
1815)
1816fs_paths="$fs_paths_defaults"
3013eb9d
SK
1817AS_IF([test "x$fs_paths_extra" != "x"], [
1818 AS_IF([test "x$fs_paths" != "x"], [
bb4cb69d 1819 fs_paths="${fs_paths}:"
3013eb9d 1820 ])
bb4cb69d 1821 fs_paths="${fs_paths}${fs_paths_extra}"
3013eb9d 1822])
bb4cb69d
MF
1823AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1824
1825
48d7b13a 1826AC_ARG_ENABLE([use-tty-group],
7fa4f112 1827 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
034d378b 1828 [], [enable_use_tty_group=yes]
48d7b13a 1829)
034d378b 1830AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
48d7b13a 1831
3013eb9d 1832AS_IF([test "x$enable_use_tty_group" = xyes], [
034d378b 1833 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
3013eb9d 1834])
48d7b13a 1835
ab6478ef
WF
1836
1837AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
1838 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1839 [use emergency mount of /dev and /proc for sulogin]),
034d378b 1840 [], [enable_sulogin_emergency_mount=no]
ab6478ef
WF
1841)
1842
3013eb9d 1843AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
034d378b 1844 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
ab6478ef 1845 [Should sulogin use a emergency mount of /dev and /proc?])
3013eb9d 1846])
ab6478ef
WF
1847
1848
f71d1104
KZ
1849AC_ARG_ENABLE([usrdir-path],
1850 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
1851 [], [enable_usrdir_path=no]
1852)
1853
1854AS_IF([test "x$enable_usrdir_path" == xyes], [
1855 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
1856])
1857
1858
f3831bbd
KZ
1859AC_ARG_ENABLE([makeinstall-chown],
1860 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
034d378b 1861 [], [enable_makeinstall_chown=yes]
f3831bbd 1862)
034d378b 1863AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
f3831bbd 1864
81f55ab9 1865
4c24a7ae
KZ
1866AC_ARG_ENABLE([makeinstall-setuid],
1867 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
034d378b 1868 [], [enable_makeinstall_setuid=yes]
4c24a7ae 1869)
034d378b 1870AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
4c24a7ae 1871
06bcee19 1872
81f55ab9
KZ
1873AC_ARG_ENABLE([colors-default],
1874 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
1875 [], [enable_colors_default=yes]
1876)
1877AS_IF([test "x$enable_colors_default" = xyes], [
1878 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
1879])
1880
1881
1f10890f
SK
1882AC_ARG_VAR([SUID_CFLAGS],
1883 [CFLAGS used for binaries which are usually with the suid bit])
1884AC_ARG_VAR([SUID_LDFLAGS],
1885 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 1886
03d00d49
KZ
1887AC_ARG_VAR([DAEMON_CFLAGS],
1888 [CFLAGS used for binaries which are usually executed as daemons])
1889AC_ARG_VAR([DAEMON_LDFLAGS],
1890 [LDFLAGS used for binaries which are usually executed as daemons])
1891
1892AC_ARG_VAR([SOLIB_CFLAGS],
1893 [CFLAGS used for shared libraries])
1894AC_ARG_VAR([SOLIB_LDFLAGS],
1895 [LDFLAGS used for shared libraries])
1896
2ad21963
KZ
1897AC_ARG_VAR([ADJTIME_PATH],
1898 [Path to hwclock adjtime file, default /etc/adjtime])
1899AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
1900AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
1901
1902
9cb68977 1903LIBS=""
48d7b13a 1904
48d7b13a 1905
034d378b 1906AC_CONFIG_HEADERS([config.h])
48d7b13a 1907
d4baf92e
KZ
1908#
1909# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1910# more details.
1911#
8eeb575c 1912AC_CONFIG_FILES([
f06b4328 1913Makefile
31a938ac 1914libblkid/docs/Makefile
8fb4efae 1915libblkid/docs/version.xml
8fb4efae 1916libblkid/src/blkid.h
705854f3
KZ
1917libfdisk/docs/Makefile
1918libfdisk/docs/version.xml
1919libfdisk/src/libfdisk.h
31a938ac 1920libmount/docs/Makefile
2aefc0a8 1921libmount/docs/version.xml
f06b4328 1922libmount/src/libmount.h
1d90bcb1
OO
1923libsmartcols/docs/Makefile
1924libsmartcols/docs/version.xml
1a4d989e 1925libsmartcols/src/libsmartcols.h
f06b4328 1926po/Makefile.in
8eeb575c 1927])
48d7b13a
KZ
1928
1929AC_OUTPUT
4e1073c2
KZ
1930
1931AC_MSG_RESULT([
1932 ${PACKAGE} ${VERSION}
1933
1934 prefix: ${prefix}
1935 exec prefix: ${exec_prefix}
1936
5c0b406d
BS
1937 localstatedir: ${localstatedir}
1938 bindir: ${bindir}
4e1073c2
KZ
1939 sbindir: ${sbindir}
1940 libdir: ${libdir}
1941 includedir: ${includedir}
5c0b406d
BS
1942 usrbin_execdir: ${usrbin_execdir}
1943 usrsbin_execdir: ${usrsbin_execdir}
1944 usrlib_execdir: ${usrlib_execdir}
4e1073c2
KZ
1945
1946 compiler: ${CC}
1947 cflags: ${CFLAGS}
1948 suid cflags: ${SUID_CFLAGS}
1949 ldflags: ${LDFLAGS}
1950 suid ldflags: ${SUID_LDFLAGS}
8e5c4675 1951
0b567ae5
SK
1952 Python: ${PYTHON}
1953 Python version: ${PYTHON_VERSION}
3745d4a9
KZ
1954 Python libs: ${pyexecdir}
1955
8e5c4675 1956 Bash completions: ${with_bashcompletiondir}
ebff016a 1957 Systemd support: ${have_systemd}
4e1073c2
KZ
1958
1959 warnings:
1960
1961${WARN_CFLAGS}
b4b84389
KZ
1962
1963 Type 'make' or 'make <utilname>' to compile.
4e1073c2 1964])