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