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