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