]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
build-sys: add TINFO_LIBS_STATIC
[thirdparty/util-linux.git] / configure.ac
CommitLineData
034d378b 1AC_INIT([util-linux],
38c75b59 2 m4_esyscmd([tools/git-version-gen .tarball-version]),
5564a8c7
SK
3 [kzak@redhat.com],,
4 [http://www.kernel.org/pub/linux/utils/util-linux/])
baf39af1 5
034d378b 6AC_PREREQ([2.60])
48d7b13a 7
034d378b 8AC_CONFIG_AUX_DIR([config])
b12991dd 9AC_CONFIG_MACRO_DIR([m4])
eaf70198
SK
10dnl AC_USE_SYSTEM_EXTENSIONS must be called before any macros that run
11dnl the compiler (like AC_PROG_LIBTOOL) to avoid autoconf errors.
12AC_USE_SYSTEM_EXTENSIONS
333034f6 13AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax dist-bzip2 no-dist-gzip dist-xz -Wno-portability subdir-objects])
48d7b13a 14
eb35c251 15m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
f06b4328 16 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
eb35c251 17
034d378b 18AC_CONFIG_SRCDIR([sys-utils/mount.c])
15a9b48c
SK
19AC_PREFIX_DEFAULT([/usr])
20
33b0be6d
KZ
21dnl version details from <major>.<minor>[-<suffix>]
22PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
23PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{print $2}' \
f06b4328 24 | awk -F- '{print $1}')
33b0be6d 25PACKAGE_VERSION_RELEASE=0
a0948ffe 26
33b0be6d
KZ
27dnl libblkid version
28LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
3c0a983e 29LIBBLKID_DATE="19-Feb-2015"
dc2b8d87
KZ
30LIBBLKID_LT_MAJOR=1
31LIBBLKID_LT_MINOR=1
32LIBBLKID_LT_MICRO=0
33LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
a0948ffe 34
f6076f55
KZ
35dnl libuuid version
36LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
dc2b8d87
KZ
37LIBUUID_LT_MAJOR=1
38LIBUUID_LT_MINOR=3
39LIBUUID_LT_MICRO=0
40LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
f6076f55 41
f1cde479
KZ
42dnl libmount version
43LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
44LIBMOUNT_LT_MAJOR=1
45LIBMOUNT_LT_MINOR=1
46LIBMOUNT_LT_MICRO=0
47LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
48
1a4d989e
OO
49dnl libsmartcols version
50LIBSMARTCOLS_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
51LIBSMARTCOLS_LT_MAJOR=1
52LIBSMARTCOLS_LT_MINOR=1
53LIBSMARTCOLS_LT_MICRO=0
54LIBSMARTCOLS_VERSION_INFO=`expr $LIBSMARTCOLS_LT_MAJOR + $LIBSMARTCOLS_LT_MINOR`:$LIBSMARTCOLS_LT_MICRO:$LIBSMARTCOLS_LT_MINOR
55
0bb4c979
KZ
56dnl libfdisk version
57LIBFDISK_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
58LIBFDISK_LT_MAJOR=1
59LIBFDISK_LT_MINOR=1
60LIBFDISK_LT_MICRO=0
61LIBFDISK_VERSION_INFO=`expr $LIBFDISK_LT_MAJOR + $LIBFDISK_LT_MINOR`:$LIBFDISK_LT_MICRO:$LIBFDISK_LT_MINOR
62
15a9b48c 63# Check whether exec_prefix=/usr:
9f57e6e8
SK
64AS_CASE([$exec_prefix:$prefix],
65[NONE:NONE | NONE:/usr | /usr:*],
66 [AC_MSG_NOTICE([Default --exec-prefix detected.])
17794746
KZ
67 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
68 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
69 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
9f57e6e8
SK
70 ]
71)
72
73AS_CASE([$prefix:$localstatedir],
3745d4a9 74 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
9f57e6e8
SK
75 [localstatedir=/run
76 AC_MSG_NOTICE([ --localstatedir defaults to /run])
77 ]
78)
11935cd3 79AC_SUBST([localstatedir])
07a16b9d 80
b0a0d7d5 81
996fb358 82# The original default values of {bin,sbin,lib}dir
aaf3e8f5 83usrbin_execdir='${exec_prefix}/bin'
30688dde 84AC_SUBST([usrbin_execdir])
996fb358 85
aaf3e8f5 86usrsbin_execdir='${exec_prefix}/sbin'
30688dde 87AC_SUBST([usrsbin_execdir])
996fb358 88
9f57e6e8 89AS_CASE([$libdir],
b2b61efc 90 ['${exec_prefix}/'* | '${prefix}/'* | /usr/* | "${prefix}"/* ],
9f57e6e8
SK
91 [usrlib_execdir=$libdir],
92 [usrlib_execdir='${exec_prefix}'$libdir]
93)
30688dde 94AC_SUBST([usrlib_execdir])
996fb358 95
bdf5f542 96
31c9c1c4 97AM_PROG_CC_C_O
48d7b13a 98AC_PROG_CC_STDC
a6996860 99AC_CANONICAL_HOST
85b4c147 100AC_C_CONST
e79829db 101AC_C_VOLATILE
fbaec83b 102AC_C_BIGENDIAN
b12991dd 103
0e60bc9b 104dnl Compiler warnings
b1b54edf 105UL_WARN_ADD([-fno-common])
9dc72d0b 106UL_WARN_ADD([-Wall])
b1b54edf 107UL_WARN_ADD([-Werror=sequence-point])
0e60bc9b 108UL_WARN_ADD([-Wextra])
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 \
2a965b80 349 open_memstream \
f06b4328
SK
350 personality \
351 posix_fadvise \
352 prctl \
9c7955da 353 qsort_r \
f06b4328 354 rpmatch \
485a8bfa 355 scandirat \
69045d3d
KZ
356 setresgid \
357 setresuid \
f06b4328
SK
358 sigqueue \
359 srandom \
360 strnchr \
69b7e41e
KZ
361 strndup \
362 strnlen \
f06b4328 363 sysconf \
88e0f3df 364 sysinfo \
f06b4328
SK
365 updwtmp \
366 usleep \
eb76ca98
FG
367 warn \
368 warnx \
f06b4328 369])
48d7b13a 370AC_FUNC_FSEEKO
48d7b13a 371
940fd28c 372AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
465e9973 373AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
90d5285d
KZ
374AC_CHECK_FUNCS([futimens], [have_futimens=yes])
375AC_CHECK_FUNCS([inotify_init1], [have_inotify_init1=yes])
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
2fa60c5e 451m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid, nsenter])
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
034d378b
SK
556UL_CHECK_LIB([util], [openpty])
557UL_CHECK_LIB([termcap], [tgetnum])
3aecf79d
KZ
558
559AC_CHECK_TYPES([union semun], [], [], [[
560#include <sys/sem.h>
561]])
034d378b 562AC_CHECK_TYPES([loff_t])
3aecf79d
KZ
563
564AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
565#include <wchar.h>
566#include <wctype.h>
567#include <stdio.h>
568]], [[
569 wchar_t wc;
570 wint_t w;
571 w = fgetwc(stdin);
572 if (w == WEOF) exit(1);
573 wc = w;
574 fputwc(wc,stdout);
575]])],
034d378b 576[AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
3aecf79d
KZ
577])
578
579AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
580#include <sched.h>
581]])
582
034d378b 583AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
3aecf79d 584
b09bc508
MF
585AC_CHECK_TYPES([sighandler_t], [], [], [[
586#include <signal.h>
587]])
588
3aecf79d
KZ
589AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
590#include <sched.h>
591]])
592
8d35bdc9
KZ
593# on Solaris, you can't mix and match standards, since we use c99
594# aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
595# check for crypt.h and use that without XOPEN_SOURCE.
596AC_CHECK_HEADERS([crypt.h])
597AC_LINK_IFELSE([AC_LANG_PROGRAM([[
598#ifdef HAVE_CRYPT_H
599#include <crypt.h>
600#else
601#define _XOPEN_SOURCE
602#include <unistd.h>
603#endif
604]], [[
605char *c = crypt("abc","pw");
606]])],[],[
607 LIBS="$LIBS -lcrypt"
608 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
609 #ifdef HAVE_CRYPT_H
610 #include <crypt.h>
611 #else
612 #define _XOPEN_SOURCE
613 #include <unistd.h>
614 #endif
615 ]], [[
616 char *c = crypt("abc","pw");
617 ]])],[
034d378b 618 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
8d35bdc9
KZ
619 have_libcrypt=yes
620 ],[
621 AC_MSG_ERROR([crypt() is not available])
622 ])
623])
034d378b 624AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
8d35bdc9 625
13f5473e 626
75ad4910
KZ
627AC_ARG_WITH([selinux],
628 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
034d378b 629 [], [with_selinux=no]
75ad4910
KZ
630)
631
3013eb9d 632AS_IF([test "x$with_selinux" = xno], [
034d378b 633 AM_CONDITIONAL([HAVE_SELINUX], [false])
3013eb9d 634], [
7e34c79f 635 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
034d378b 636 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
7e34c79f 637 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
034d378b 638 AM_CONDITIONAL([HAVE_SELINUX], [true])
7e34c79f
KZ
639 have_selinux=yes],
640 [have_selinux=no])
641
9f57e6e8
SK
642 AS_CASE([$with_selinux:$have_selinux],
643 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
644 )
312f04f4 645
3013eb9d 646 AS_IF([test "x$have_selinux" = xyes], [
312f04f4
KZ
647 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
648 # This function is missing in old libselinux 1.xx versions
649 AC_CHECK_FUNCS([security_get_initial_context])
650 UL_RESTORE_FLAGS
3013eb9d
SK
651 ])
652])
75ad4910
KZ
653AC_SUBST([SELINUX_LIBS])
654AC_SUBST([SELINUX_LIBS_STATIC])
655
0273afda 656
75ad4910
KZ
657AC_ARG_WITH([audit],
658 AS_HELP_STRING([--with-audit], [compile with audit support]),
034d378b 659 [], [with_audit=no]
75ad4910
KZ
660)
661
3013eb9d 662AS_IF([test "x$with_audit" = xno], [
034d378b 663 AM_CONDITIONAL([HAVE_AUDIT], [false])
3013eb9d 664], [
034d378b 665 UL_CHECK_LIB([audit], [audit_log_user_message])
9f57e6e8
SK
666 AS_CASE([$with_audit:$have_audit],
667 [yes:no],
668 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
669 )
3013eb9d 670])
75ad4910
KZ
671
672AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
034d378b 673 [], [with_udev=auto]
75ad4910
KZ
674)
675
3013eb9d 676AS_IF([test "x$with_udev" = xno], [
034d378b 677 AM_CONDITIONAL([HAVE_UDEV], [false])
3013eb9d 678], [
034d378b 679 UL_CHECK_LIB([udev], [udev_new])
9f57e6e8
SK
680 AS_CASE([$with_udev:$have_udev],
681 [yes:no],
682 [AC_MSG_ERROR([udev selected but libudev not found])]
683 )
3013eb9d 684])
75ad4910
KZ
685
686AC_ARG_WITH([ncurses],
687 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
f06b4328 688 (--without-ncurses disables all ncurses(w) support)]),
034d378b 689 [], [with_ncurses=auto]
75ad4910 690)
034d378b 691AM_CONDITIONAL([HAVE_NCURSES], [false])
3013eb9d 692AS_IF([test "x$with_ncurses" != xno], [
75ad4910 693 have_ncurses=no
2b8f22bd
MF
694
695 dnl First try to find the pkg-config module.
696 PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
697 have_ncurses=yes
698 NCURSES_LIBS=${NCURSESW_LIBS}
699 NCURSES_CFLAGS=${NCURSESW_CFLAGS}
700 AC_DEFINE([HAVE_LIBNCURSESW])
f1512be8 701 CURSES_LIB_NAME="ncursesw"
2b8f22bd
MF
702 ], [
703 PKG_CHECK_MODULES(NCURSES, [ncurses], [
704 have_ncurses=yes
705 AC_DEFINE([HAVE_LIBNCURSES])
f1512be8 706 CURSES_LIB_NAME="ncursesw"
2b8f22bd
MF
707 ], [:])
708 ])
709
710 AS_IF([test "x$have_ncurses" = xyes], [
711 dnl If that worked, setup the defines that the code expects.
712 save_CPPFLAGS="$CPPFLAGS"
713 CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
714 AC_CHECK_HEADERS([ncurses.h])
715 CPPFLAGS="$save_CPPFLAGS"
716 ], [
717 dnl If that failed, fall back to classic searching.
718 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
719 AS_IF([test "x$with_ncurses" = xauto], [
720 UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
721 AS_IF([test "x$have_ncurses" = xyes], [
722 AC_CHECK_HEADERS([ncursesw/ncurses.h])
723 NCURSES_LIBS="-lncursesw"
f1512be8 724 CURSES_LIB_NAME="ncursesw"
2b8f22bd 725 ])
3013eb9d 726 ])
2b8f22bd
MF
727 AS_IF([test "x$have_ncurses" = xno], [
728 UL_CHECK_LIB(ncurses, initscr)
729 AS_IF([test "x$have_ncurses" = xyes], [
730 NCURSES_LIBS="-lncurses"
f1512be8 731 CURSES_LIB_NAME="ncurses"
2b8f22bd 732 ])
3013eb9d
SK
733 ])
734 ])
75ad4910 735 ])
2b8f22bd 736
43cc76e2
KZ
737 AS_CASE([$with_ncurses:$have_ncurses],
738 [yes:no], [AC_MSG_ERROR([ncurses or ncursesw selected, but library not found])]
739 )
740
3013eb9d 741])
2b8f22bd 742AC_SUBST([NCURSES_CFLAGS])
75ad4910
KZ
743AC_SUBST([NCURSES_LIBS])
744
745
746AC_ARG_WITH([slang],
747 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
034d378b 748 [], [with_slang=no]
75ad4910 749)
50ea6795 750have_slang=no
3013eb9d 751AS_IF([test "x$with_slang" = xyes], [
75ad4910
KZ
752 AC_CHECK_HEADERS([slang.h slang/slang.h])
753 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 754 [have_slang=yes], [], [
75ad4910
KZ
755#ifdef HAVE_SLANG_H
756#include <slang.h>
757#elif defined(HAVE_SLANG_SLANG_H)
758#include <slang/slang.h>
759#endif
760])
3013eb9d 761 AS_IF([test "x$have_slang" = xno], [
f1512be8
KZ
762 AC_MSG_ERROR([slang selected but slcurses.h not found])],
763 [CURSES_LIB_NAME=slang
3013eb9d
SK
764 ])
765])
034d378b 766AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
50ea6795 767
50ea6795 768
f1512be8
KZ
769AS_IF([test "x$have_slang" = xyes -o "x$have_ncurses" = xyes], [
770 AC_CHECK_LIB([$CURSES_LIB_NAME], use_default_colors, [
771 AC_DEFINE(HAVE_USE_DEFAULT_COLORS, 1,
7556c944
KZ
772 [Define if curses library has the use_default_colors().])
773 ])
774 AC_CHECK_LIB([$CURSES_LIB_NAME], resizeterm, [
775 AC_DEFINE(HAVE_RESIZETERM, 1,
776 [Define if curses library has the resizeterm().])
f1512be8
KZ
777 ])
778])
779
50ea6795 780
ccf92e6d 781dnl Try pkg-config for libtinfo
0b28c2ec
KZ
782PKG_CHECK_MODULES(TINFO, [tinfo], [
783 dnl pkg-config success
784 have_tinfo=yes
785 UL_PKG_STATIC([TINFO_LIBS_STATIC], [tinfo])], [
786
787 dnl If pkg-config failed, fall back to classic searching.
788 AC_CHECK_LIB([tinfo], [tgetent], [
ccf92e6d
KZ
789 have_tinfo=yes
790 TINFO_LIBS="-ltinfo"
0b28c2ec 791 TINFO_LIBS_STATIC="-tinfo"
ccf92e6d 792 TINFO_CFLAGS=""])
0b28c2ec 793
2b8f22bd
MF
794])
795AC_SUBST([TINFO_LIBS])
0b28c2ec 796AC_SUBST([TINFO_LIBS_STATIC])
ccf92e6d 797AC_SUBST([TINFO_CFLAGS])
b88e6b02 798AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
254743e4 799AS_IF([test "x$have_tinfo" = xyes], [
4310faf9
KZ
800 AC_DEFINE(HAVE_LIBTINFO, 1, [Define if libtinfo available.])
801])
75ad4910
KZ
802
803
0b28c2ec
KZ
804AC_ARG_WITH([readline],
805 AS_HELP_STRING([--with-readline], [compile with GNU Readline support]),
806 [], [with_readline=auto]
807)
808
809AS_IF([test "x$with_readline" = xno], [
810 AM_CONDITIONAL([HAVE_READLINE], [false])
811], [
812 UL_CHECK_LIB([readline], [readline])
813 AS_CASE([$with_readline:$have_readline],
814 [yes:no],
815 [AC_MSG_ERROR([readline selected but libreadline not found ])],
816 [*:yes],
817 [READLINE_LIBS="-lreadline"
818 READLINE_LIBS_STATIC="-lreadline $TINFO_LIBS_STATIC"]
819 )
820])
821AC_SUBST([READLINE_LIBS])
822AC_SUBST([READLINE_LIBS_STATIC])
823
824
75ad4910
KZ
825AC_ARG_WITH([utempter],
826 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
034d378b 827 [], [with_utempter=no]
75ad4910
KZ
828)
829
3013eb9d 830AS_IF([test "x$with_utempter" = xyes], [
034d378b 831 UL_CHECK_LIB([utempter], [utempter_add_record])
3013eb9d 832 AS_IF([test "x$have_utempter" = xno], [
75ad4910 833 AC_MSG_ERROR([utempter selected but libutempter not found])
3013eb9d
SK
834 ])
835], [
034d378b 836 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
3013eb9d 837])
75ad4910
KZ
838
839
d17584b6 840
1dbbde66
KZ
841dnl
842dnl libuuid
843dnl
17afb032
KZ
844AC_ARG_ENABLE([libuuid],
845 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
08b1c219 846 [], [UL_DEFAULT_ENABLE([libuuid], [yes])]
17afb032 847)
fa7be20e 848UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
849AC_SUBST([LIBUUID_VERSION])
850AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 851AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 852
13985252 853AS_IF([test "x$build_libuuid" = xyes], [
17afb032 854 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
3013eb9d 855])
48d7b13a 856
1dbbde66
KZ
857dnl
858dnl libblkid
859dnl
f910b559 860AC_ARG_ENABLE([libblkid],
1d12ed57 861 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
08b1c219 862 [], [UL_DEFAULT_ENABLE([libblkid], [yes])]
40f07ff7 863)
61a074f7 864UL_BUILD_INIT([libblkid])
033cf439 865AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
866AC_SUBST([LIBBLKID_VERSION])
867AC_SUBST([LIBBLKID_VERSION_INFO])
034d378b
SK
868AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
869AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
3013eb9d 870AS_IF([test "x$build_libblkid" = xyes], [
034d378b 871 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
3013eb9d 872])
034d378b
SK
873AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
874AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
f910b559 875
1dbbde66
KZ
876dnl
877dnl libmount
878dnl
f1cde479
KZ
879AC_ARG_ENABLE([libmount],
880 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
08b1c219 881 [], [UL_DEFAULT_ENABLE([libmount], [check])]
f1cde479 882)
61a074f7 883UL_BUILD_INIT([libmount])
13f5473e
KZ
884UL_REQUIRES_BUILD([libmount], [libblkid])
885UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
034d378b
SK
886AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
887AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
8e368761 888
f1cde479 889AC_SUBST([LIBMOUNT_VERSION])
10e1d2e5
SH
890AC_SUBST([LIBMOUNT_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
891AC_SUBST([LIBMOUNT_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
892AC_SUBST([LIBMOUNT_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
f1cde479 893AC_SUBST([LIBMOUNT_VERSION_INFO])
034d378b 894AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
13f5473e 895
e3f72275
KZ
896AC_ARG_ENABLE([libmount-force-mountinfo],
897 AS_HELP_STRING([--enable-libmount-force-mountinfo], [ignore /etc/mtab in all situations (recommended for systemd)]),
898 [], [enable_libmount_force_mountinfo=no]
899)
900
901AS_IF([test "x$enable_libmount_force_mountinfo" == xyes], [
902 AC_DEFINE([USE_LIBMOUNT_FORCE_MOUNTINFO], [1], [Define to 1 if want to ignore mtab in all situations.])
903])
904
f1cde479 905
1a4d989e
OO
906dnl
907dnl libsmartcols
908dnl
909AC_ARG_ENABLE([libsmartcols],
910 AS_HELP_STRING([--disable-libsmartcols], [do not build libsmartcols]),
08b1c219 911 [], [UL_DEFAULT_ENABLE([libsmartcols], [yes])]
1a4d989e
OO
912)
913UL_BUILD_INIT([libsmartcols])
1a4d989e
OO
914AM_CONDITIONAL([BUILD_LIBSMARTCOLS], [test "x$build_libsmartcols" = xyes])
915AM_CONDITIONAL([BUILD_LIBSMARTCOLS_TESTS], [test "x$build_libsmartcols" = xyes -a "x$enable_static" = xyes])
916
917AC_SUBST([LIBSMARTCOLS_VERSION])
918AC_SUBST([LIBSMARTCOLS_VERSION_INFO])
919AC_DEFINE_UNQUOTED([LIBSMARTCOLS_VERSION], ["$LIBSMARTCOLS_VERSION"], [libsmartcols version string])
920
921
eb6a03f3 922dnl
0bb4c979 923dnl libfdisk
eb6a03f3 924dnl
0bb4c979
KZ
925AC_ARG_ENABLE([libfdisk],
926 AS_HELP_STRING([--disable-libfdisk], [do not build libfdisk]),
927 [], [UL_DEFAULT_ENABLE([libfdisk], [check])]
928)
929UL_BUILD_INIT([libfdisk])
eb6a03f3 930UL_REQUIRES_BUILD([libfdisk], [libuuid])
034d378b 931AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
0bb4c979
KZ
932AM_CONDITIONAL([BUILD_LIBFDISK_TESTS], [test "x$build_libfdisk" = xyes -a "x$enable_static" = xyes])
933
ed79557e
KZ
934AS_IF([test "x$build_libblkid" = xyes],
935 [LIBFDISK_PC_REQUIRES="uuid blkid"],[LIBFDISK_PC_REQUIRES="uuid"])
936AC_SUBST([LIBFDISK_PC_REQUIRES])
937
0bb4c979 938AC_SUBST([LIBFDISK_VERSION])
791da22d
KZ
939AC_SUBST([LIBFDISK_MAJOR_VERSION], $PACKAGE_VERSION_MAJOR)
940AC_SUBST([LIBFDISK_MINOR_VERSION], $PACKAGE_VERSION_MINOR)
941AC_SUBST([LIBFDISK_PATCH_VERSION], $PACKAGE_VERSION_RELEASE)
0bb4c979
KZ
942AC_SUBST([LIBFDISK_VERSION_INFO])
943AC_DEFINE_UNQUOTED([LIBFDISK_VERSION], ["$LIBFDISK_VERSION"], [libfdisk version string])
944
eb6a03f3
KZ
945
946UL_BUILD_INIT([fdisk], [check])
947UL_REQUIRES_BUILD([fdisk], [libfdisk])
d44115f3 948UL_REQUIRES_BUILD([fdisk], [libsmartcols])
034d378b 949AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
eb6a03f3
KZ
950
951
62b2c024 952UL_BUILD_INIT([sfdisk], [check])
9c1f9dd3
KZ
953UL_REQUIRES_BUILD([sfdisk], [libfdisk])
954UL_REQUIRES_BUILD([sfdisk], [libsmartcols])
ecc6047e
KZ
955AM_CONDITIONAL([BUILD_SFDISK], [test "x$build_sfdisk" = xyes])
956
957
08b1c219
KZ
958UL_BUILD_INIT([cfdisk], [check])
959UL_REQUIRES_BUILD([cfdisk], [libfdisk])
960UL_REQUIRES_BUILD([cfdisk], [libsmartcols])
961UL_REQUIRES_HAVE([cfdisk], [ncurses,slang], [ncurses or slang library])
962AM_CONDITIONAL([BUILD_CFDISK], [test "x$build_cfdisk" = xyes])
963
964
434b07a0
KZ
965AC_ARG_ENABLE([mount],
966 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
08b1c219 967 [], [UL_DEFAULT_ENABLE([mount], [check])]
ecdba5dd 968)
434b07a0 969UL_BUILD_INIT([mount])
53e8c16e 970UL_REQUIRES_LINUX([mount])
434b07a0 971UL_REQUIRES_BUILD([mount], [libmount])
034d378b 972AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
ecdba5dd
KZ
973
974
bafe1a75
KZ
975AC_ARG_ENABLE([losetup],
976 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
08b1c219 977 [], [UL_DEFAULT_ENABLE([losetup], [check])]
bafe1a75
KZ
978)
979UL_BUILD_INIT([losetup])
980UL_REQUIRES_LINUX([losetup])
7477f356 981UL_REQUIRES_BUILD([losetup], [libsmartcols])
034d378b 982AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
bafe1a75 983
0624d840
KZ
984AC_ARG_ENABLE([zramctl],
985 AS_HELP_STRING([--disable-zramctl], [do not build zramctl]),
986 [], [UL_DEFAULT_ENABLE([zramctl], [check])]
987)
988UL_BUILD_INIT([zramctl])
989UL_REQUIRES_LINUX([zramctl])
990UL_REQUIRES_BUILD([zramctl], [libsmartcols])
991AM_CONDITIONAL([BUILD_ZRAMCTL], [test "x$build_zramctl" = xyes])
bafe1a75 992
1dbbde66
KZ
993AC_ARG_ENABLE([fsck],
994 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
08b1c219 995 [], [UL_DEFAULT_ENABLE([fsck], [check])]
1dbbde66 996)
61a074f7 997UL_BUILD_INIT([fsck])
a7b585ea 998UL_REQUIRES_BUILD([fsck], [libmount])
034d378b 999AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1dbbde66
KZ
1000
1001
1002AC_ARG_ENABLE([partx],
1003 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
08b1c219 1004 [], [UL_DEFAULT_ENABLE([partx], [check])]
1dbbde66 1005)
61a074f7 1006UL_BUILD_INIT([partx])
ecde2536
KZ
1007UL_REQUIRES_LINUX([partx])
1008UL_REQUIRES_BUILD([partx], [libblkid])
08b1c219 1009UL_REQUIRES_BUILD([partx], [libsmartcols])
034d378b 1010AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1dbbde66
KZ
1011
1012
1dbbde66
KZ
1013AC_ARG_ENABLE([uuidd],
1014 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
08b1c219 1015 [], [UL_DEFAULT_ENABLE([uuidd], [check])]
1dbbde66 1016)
61a074f7 1017UL_BUILD_INIT([uuidd])
bcdab497 1018UL_REQUIRES_BUILD([uuidd], [libuuid])
3013eb9d 1019AS_IF([test "x$build_uuidd" = xyes], [
034d378b 1020 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
3013eb9d 1021])
034d378b 1022AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1dbbde66
KZ
1023
1024
1b15cbd1
KZ
1025UL_BUILD_INIT([uuidgen], [check])
1026UL_REQUIRES_BUILD([uuidgen], [libuuid])
1027AM_CONDITIONAL([BUILD_UUIDGEN], [test "x$build_uuidgen" = xyes])
1028
15a2c741
KZ
1029UL_BUILD_INIT([blkid], [check])
1030UL_REQUIRES_BUILD([blkid], [libblkid])
1031AM_CONDITIONAL([BUILD_BLKID], [test "x$build_blkid" = xyes])
1032
1033UL_BUILD_INIT([findfs], [check])
1034UL_REQUIRES_BUILD([findfs], [libblkid])
1035AM_CONDITIONAL([BUILD_FINDFS], [test "x$build_findfs" = xyes])
1036
1037UL_BUILD_INIT([wipefs], [check])
1038UL_REQUIRES_BUILD([wipefs], [libblkid])
1039AM_CONDITIONAL([BUILD_WIPEFS], [test "x$build_wipefs" = xyes])
1040
1041UL_BUILD_INIT([findmnt], [check])
1042UL_REQUIRES_BUILD([findmnt], [libmount])
1043UL_REQUIRES_BUILD([findmnt], [libsmartcols])
1044AM_CONDITIONAL([BUILD_FINDMNT], [test "x$build_findmnt" = xyes])
1045
1b15cbd1 1046
0164c245 1047AC_ARG_ENABLE([mountpoint],
2023ccc4 1048 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
08b1c219 1049 [], [UL_DEFAULT_ENABLE([mountpoint], [check])]
0164c245 1050)
61a074f7 1051UL_BUILD_INIT([mountpoint])
a9127bc1 1052UL_REQUIRES_BUILD([mountpoint], [libmount])
034d378b 1053AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
0164c245
KZ
1054
1055
10e56b49
KZ
1056AC_ARG_ENABLE([fallocate],
1057 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
08b1c219 1058 [], [UL_DEFAULT_ENABLE([fallocate], [check])]
10e56b49 1059)
61a074f7 1060UL_BUILD_INIT([fallocate])
10e56b49
KZ
1061UL_REQUIRES_LINUX([fallocate])
1062UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
034d378b 1063AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
10e56b49 1064
3013eb9d 1065AS_IF([test "x$build_fallocate" = xyes], [
10e56b49
KZ
1066 dnl check for valid fallocate() function
1067 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
1068 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
1069 dnl and program can't be linked.
1070 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
1071 dnl function prototype.
1072 AC_MSG_CHECKING([for valid fallocate() function])
1073 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
1074#ifdef HAVE_UNISTD_H
1075# include <unistd.h>
1076#endif
1077#ifdef HAVE_SYS_TYPES_H
1078# include <sys/types.h>
1079#endif
1080#ifdef HAVE_LINUX_FALLOC_H
1081# include <linux/falloc.h>
1082#endif
1083#ifdef HAVE_FCNTL_H
1084# include <fcntl.h>
1085#endif
1086]],[[
1087 long ret;
b832c2fe 1088 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
1089 if (ret != 0) {
1090 return 1;
1091 }
1092 ]])],[
10e56b49 1093 AC_MSG_RESULT([yes])
034d378b 1094 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
10e56b49 1095 AC_MSG_RESULT([no])])
3013eb9d 1096])
10e56b49 1097
19a224ad 1098
a2ea6670
KZ
1099AC_ARG_ENABLE([unshare],
1100 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
08b1c219 1101 [], [UL_DEFAULT_ENABLE([unshare], [check])]
a2ea6670 1102)
61a074f7 1103UL_BUILD_INIT([unshare])
a2ea6670
KZ
1104UL_REQUIRES_LINUX([unshare])
1105UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
034d378b 1106AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
bdd384d1 1107AC_CHECK_FUNCS([unshare])
b3425806 1108
f8aa8e94
EB
1109AC_ARG_ENABLE([nsenter],
1110 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
08b1c219 1111 [], [UL_DEFAULT_ENABLE([nsenter], [check])]
f8aa8e94
EB
1112)
1113UL_BUILD_INIT([nsenter])
1114UL_REQUIRES_LINUX([nsenter])
6cd4beac 1115UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
034d378b 1116AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
bdd384d1 1117AC_CHECK_FUNCS([setns])
b3425806 1118
5600c405
AL
1119dnl setpriv depends on libcap-ng. It would be possible to build
1120dnl a version of setpriv with limited functionality without libcap-ng,
1121dnl but this isn't currently supported.
1122UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
1123AC_ARG_ENABLE([setpriv],
1124 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
08b1c219 1125 [], [UL_DEFAULT_ENABLE([setpriv], [check])]
5600c405
AL
1126)
1127UL_BUILD_INIT([setpriv])
1128UL_REQUIRES_LINUX([setpriv])
48469f90 1129UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
e1b8ba20 1130UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
034d378b 1131AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
5600c405
AL
1132
1133
539feec1
ML
1134AC_ARG_ENABLE([eject],
1135 AS_HELP_STRING([--disable-eject], [do not build eject]),
08b1c219 1136 [], [UL_DEFAULT_ENABLE([eject], [check])]
539feec1
ML
1137)
1138UL_BUILD_INIT([eject])
1139UL_REQUIRES_LINUX([eject])
7770e7df 1140UL_REQUIRES_BUILD([eject], [libmount])
034d378b 1141AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
539feec1
ML
1142
1143
48d7b13a 1144AC_ARG_ENABLE([agetty],
7fa4f112 1145 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
08b1c219 1146 [], [UL_DEFAULT_ENABLE([agetty], [yes])]
48d7b13a 1147)
61a074f7 1148UL_BUILD_INIT([agetty])
034d378b 1149AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
90d5285d
KZ
1150AS_IF([test "x$have_futimens" = xyes -a "x$have_inotify_init1" = xyes ], [
1151 AC_DEFINE([AGETTY_RELOAD], [1], [Enable agetty --reload feature])
1152],[
1153 AC_MSG_WARN([futimens or inotify_init1 not found; agetty(8) will not provide ---reload functionality])
1154])
0fc74be1 1155
48d7b13a 1156
9cb68977 1157AC_ARG_ENABLE([cramfs],
7fa4f112 1158 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
08b1c219 1159 [], [UL_DEFAULT_ENABLE([cramfs], [check])]
9cb68977 1160)
61a074f7 1161UL_BUILD_INIT([cramfs])
034d378b 1162AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
d81b5a52 1163UL_REQUIRES_HAVE([cramfs], [z], [z library])
034d378b 1164AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
9cb68977 1165
a13cdb7a 1166
8d6f0bae 1167AC_ARG_ENABLE([bfs],
834fc88c 1168 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
08b1c219 1169 [], [UL_DEFAULT_ENABLE([bfs], [yes])]
834fc88c
KZ
1170)
1171UL_BUILD_INIT([bfs])
034d378b 1172AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
834fc88c
KZ
1173
1174
3d9fdac5
KZ
1175AC_ARG_ENABLE([minix],
1176 AS_HELP_STRING([--disable-minix], [do not build fsck.minix, mkfs.minix]),
08b1c219 1177 [], [UL_DEFAULT_ENABLE([minix], [yes])]
3d9fdac5
KZ
1178)
1179UL_BUILD_INIT([minix])
1180AM_CONDITIONAL([BUILD_MINIX], [test "x$build_minix" = xyes])
1181
1182
8d6f0bae
KZ
1183AC_ARG_ENABLE([fdformat],
1184 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
08b1c219 1185 [], [UL_DEFAULT_ENABLE([fdformat], [check])]
8d6f0bae
KZ
1186)
1187UL_BUILD_INIT([fdformat])
1188UL_REQUIRES_LINUX([fdformat])
034d378b 1189AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
8d6f0bae
KZ
1190
1191
6acf31ac
KZ
1192AC_ARG_ENABLE([hwclock],
1193 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
08b1c219 1194 [], [UL_DEFAULT_ENABLE([hwclock], [check])]
6acf31ac
KZ
1195)
1196have_linuxdummy=$linux_os
1197
1198UL_BUILD_INIT([hwclock])
1199UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
034d378b 1200AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
e09ebf22
KZ
1201
1202
ecc6047e
KZ
1203UL_BUILD_INIT([mkfs], [yes])
1204AM_CONDITIONAL([BUILD_MKFS], [test "x$build_mkfs" = xyes])
1205
1206UL_BUILD_INIT([isosize], [yes])
1207AM_CONDITIONAL([BUILD_ISOSIZE], [test "x$build_isosize" = xyes])
1208
3d9fdac5 1209
7b040214
KZ
1210UL_BUILD_INIT([fstrim], [check])
1211UL_REQUIRES_LINUX([fstrim])
1212UL_REQUIRES_BUILD([fstrim], [libmount])
1213AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
1214
1215
143635c9
KZ
1216UL_BUILD_INIT([swapon], [check])
1217UL_REQUIRES_LINUX([swapon])
1218UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 1219UL_REQUIRES_BUILD([swapon], [libmount])
7477f356 1220UL_REQUIRES_BUILD([swapon], [libsmartcols])
034d378b 1221AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
143635c9
KZ
1222
1223
61a074f7 1224UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
1225UL_REQUIRES_LINUX([lsblk])
1226UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 1227UL_REQUIRES_BUILD([lsblk], [libmount])
7477f356 1228UL_REQUIRES_BUILD([lsblk], [libsmartcols])
034d378b 1229AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
9cb68977 1230
a3d3b770 1231
61a074f7 1232UL_BUILD_INIT([lscpu], [check])
da396d88 1233UL_REQUIRES_LINUX([lscpu])
7477f356 1234UL_REQUIRES_BUILD([lscpu], [libsmartcols])
da396d88 1235UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
034d378b 1236AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
da396d88 1237
a3d3b770 1238
ab1cfad5
OO
1239UL_BUILD_INIT([lslogins], [check])
1240UL_REQUIRES_BUILD([lslogins], [libsmartcols])
1241AM_CONDITIONAL([BUILD_LSLOGINS], [test "x$build_lslogins" = xyes])
1242
1243
61a074f7 1244UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
1245UL_REQUIRES_LINUX([chcpu])
1246UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
034d378b 1247AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
da396d88 1248
a13cdb7a 1249
7fcccbdf
KZ
1250AC_ARG_ENABLE([wdctl],
1251 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
08b1c219 1252 [], [UL_DEFAULT_ENABLE([wdctl], [check])]
7fcccbdf
KZ
1253)
1254UL_BUILD_INIT([wdctl])
5b0289b9 1255UL_REQUIRES_LINUX([wdctl])
7477f356 1256UL_REQUIRES_BUILD([wdctl], [libsmartcols])
5b0289b9 1257UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
034d378b 1258AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
5b0289b9
KZ
1259
1260
54dbc8cf
KZ
1261UL_BUILD_INIT([swaplabel], [check])
1262UL_REQUIRES_BUILD([swaplabel], [libblkid])
034d378b 1263AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
54dbc8cf
KZ
1264
1265
ecc6047e
KZ
1266UL_BUILD_INIT([mkswap], [yes])
1267AM_CONDITIONAL([BUILD_MKSWAP], [test "x$build_mkswap" = xyes])
08b1c219
KZ
1268AS_IF([test "x$build_mkswap" = xyes -a "x$build_libuuid" != xyes], [
1269 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
1270])
ecc6047e 1271
1b15cbd1
KZ
1272UL_BUILD_INIT([cal], [yes])
1273AM_CONDITIONAL([BUILD_CAL], [test "x$build_cal" = xyes])
1274
1275UL_BUILD_INIT([logger], [yes])
1276AM_CONDITIONAL([BUILD_LOGGER], [test "x$build_logger" = xyes])
1277
4c838e6c 1278UL_BUILD_INIT([look], [yes])
1b15cbd1
KZ
1279AM_CONDITIONAL([BUILD_LOOK], [test "x$build_look" = xyes])
1280
1281UL_BUILD_INIT([mcookie], [yes])
1282AM_CONDITIONAL([BUILD_MCOOKIE], [test "x$build_mcookie" = xyes])
1283
1284UL_BUILD_INIT([namei], [yes])
1285AM_CONDITIONAL([BUILD_NAMEI], [test "x$build_namei" = xyes])
1286
1287UL_BUILD_INIT([whereis], [yes])
1288AM_CONDITIONAL([BUILD_WHEREIS], [test "x$build_whereis" = xyes])
1289
3adaaa15
KZ
1290UL_BUILD_INIT([getopt], [yes])
1291AM_CONDITIONAL([BUILD_GETOPT], [test "x$build_getopt" = xyes])
1292
ecc6047e
KZ
1293
1294UL_BUILD_INIT([blockdev], [check])
1295UL_REQUIRES_LINUX([blockdev])
1296AM_CONDITIONAL([BUILD_BLOCKDEV], [test "x$build_blockdev" = xyes])
1297
1298
945ac250
KZ
1299UL_BUILD_INIT([prlimit], [check])
1300UL_REQUIRES_LINUX([prlimit])
7477f356 1301UL_REQUIRES_BUILD([prlimit], [libsmartcols])
945ac250 1302UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
034d378b 1303AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
3013eb9d 1304AS_IF([test "x$build_prlimit" = xyes], [
945ac250 1305 AC_CHECK_FUNCS([prlimit])
3013eb9d 1306])
945ac250
KZ
1307
1308
3dc02ef4
DB
1309UL_BUILD_INIT([lslocks], [check])
1310UL_REQUIRES_LINUX([lslocks])
ec1204dc 1311UL_REQUIRES_BUILD([lslocks], [libmount])
7477f356 1312UL_REQUIRES_BUILD([lslocks], [libsmartcols])
034d378b 1313AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
3dc02ef4
DB
1314
1315
bd671347
KZ
1316AC_ARG_ENABLE([switch_root],
1317 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
08b1c219 1318 [], [UL_DEFAULT_ENABLE([switch_root], [check])]
bd671347 1319)
61a074f7 1320UL_BUILD_INIT([switch_root])
a3d3b770
KZ
1321UL_REQUIRES_LINUX([switch_root])
1322UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
034d378b 1323AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
bd671347
KZ
1324
1325
11125e7a
KZ
1326AC_ARG_ENABLE([pivot_root],
1327 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
08b1c219 1328 [], [UL_DEFAULT_ENABLE([pivot_root], [check])]
11125e7a 1329)
61a074f7 1330UL_BUILD_INIT([pivot_root])
5cbbdfbf 1331UL_REQUIRES_LINUX([pivot_root])
9f632667 1332UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
034d378b 1333AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
11125e7a
KZ
1334
1335
205dbb7a 1336UL_BUILD_INIT([flock], [yes])
254743e4 1337UL_REQUIRES_HAVE([flock], [timer], [timer_create function])
205dbb7a
KZ
1338AM_CONDITIONAL([BUILD_FLOCK], [test "x$build_flock" = xyes])
1339
1340UL_BUILD_INIT([ipcmk], [yes])
1341AM_CONDITIONAL([BUILD_IPCMK], [test "x$build_ipcmk" = xyes])
1342
1343UL_BUILD_INIT([ipcrm], [yes])
1344AM_CONDITIONAL([BUILD_IPCRM], [test "x$build_ipcrm" = xyes])
1345
1346UL_BUILD_INIT([ipcs], [yes])
1347AM_CONDITIONAL([BUILD_IPCS], [test "x$build_ipcs" = xyes])
1348
1349UL_BUILD_INIT([renice], [yes])
1350AM_CONDITIONAL([BUILD_RENICE], [test "x$build_renice" = xyes])
1351
1352UL_BUILD_INIT([setsid], [yes])
1353AM_CONDITIONAL([BUILD_SETSID], [test "x$build_setsid" = xyes])
1354
1355UL_BUILD_INIT([readprofile], [check])
1356UL_REQUIRES_LINUX([readprofile])
1357AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes])
1358
1359UL_BUILD_INIT([dmesg], [check])
1360UL_REQUIRES_LINUX([dmesg])
1361AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes])
1362
1363UL_BUILD_INIT([ctrlaltdel], [check])
1364UL_REQUIRES_LINUX([ctrlaltdel])
1365AM_CONDITIONAL([BUILD_CTRLALTDEL], [test "x$build_ctrlaltdel" = xyes])
1366
1367UL_BUILD_INIT([fsfreeze], [check])
1368UL_REQUIRES_LINUX([fsfreeze])
1369AM_CONDITIONAL([BUILD_FSFREEZE], [test "x$build_fsfreeze" = xyes])
1370
1371UL_BUILD_INIT([blkdiscard], [check])
1372UL_REQUIRES_LINUX([blkdiscard])
1373AM_CONDITIONAL([BUILD_BLKDISCARD], [test "x$build_blkdiscard" = xyes])
1374
1375UL_BUILD_INIT([ldattach], [check])
1376UL_REQUIRES_LINUX([ldattach])
1377AM_CONDITIONAL([BUILD_LDATTACH], [test "x$build_ldattach" = xyes])
1378
1379UL_BUILD_INIT([rtcwake], [check])
1380UL_REQUIRES_LINUX([rtcwake])
1381AM_CONDITIONAL([BUILD_RTCWAKE], [test "x$build_rtcwake" = xyes])
1382
1383UL_BUILD_INIT([setarch], [check])
1384UL_REQUIRES_LINUX([setarch])
1385AM_CONDITIONAL([BUILD_SETARCH], [test "x$build_setarch" = xyes])
1386
3f91b990
KZ
1387UL_BUILD_INIT([script], [yes])
1388AM_CONDITIONAL([BUILD_SCRIPT], [test "x$build_script" = xyes])
1389
1390UL_BUILD_INIT([scriptreplay], [yes])
1391AM_CONDITIONAL([BUILD_SCRIPTREPLAY], [test "x$build_scriptreplay" = xyes])
1392
cb45354e
KZ
1393UL_BUILD_INIT([col], [yes])
1394AM_CONDITIONAL([BUILD_COL], [test "x$build_col" = xyes])
1395
1396UL_BUILD_INIT([colcrt], [yes])
1397AM_CONDITIONAL([BUILD_COLCRT], [test "x$build_colcrt" = xyes])
1398
1399UL_BUILD_INIT([colrm], [yes])
1400AM_CONDITIONAL([BUILD_COLRM], [test "x$build_colrm" = xyes])
1401
1402UL_BUILD_INIT([column], [yes])
1403AM_CONDITIONAL([BUILD_COLUMN], [test "x$build_column" = xyes])
1404
1405UL_BUILD_INIT([hexdump], [yes])
1406AM_CONDITIONAL([BUILD_HEXDUMP], [test "x$build_hexdump" = xyes])
1407
1408UL_BUILD_INIT([rev], [yes])
1409AM_CONDITIONAL([BUILD_REV], [test "x$build_rev" = xyes])
1410
1411UL_BUILD_INIT([tailf], [yes])
1412AM_CONDITIONAL([BUILD_TAILF], [test "x$build_tailf" = xyes])
1413
3f91b990 1414
1342ffcb
SK
1415AC_ARG_ENABLE([tunelp],
1416 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
08b1c219 1417 [], [UL_DEFAULT_ENABLE([tunelp], [no])]
1342ffcb
SK
1418)
1419UL_BUILD_INIT([tunelp])
1420UL_REQUIRES_LINUX([tunelp])
034d378b 1421AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1342ffcb
SK
1422
1423
48d7b13a 1424AC_ARG_ENABLE([kill],
4be753aa 1425 AS_HELP_STRING([--disable-kill], [do not build kill]),
08b1c219 1426 [], [UL_DEFAULT_ENABLE([kill], [check])]
48d7b13a 1427)
61a074f7 1428UL_BUILD_INIT([kill])
4be753aa 1429UL_REQUIRES_LINUX([kill])
034d378b 1430AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
48d7b13a 1431
569ff0d3
KZ
1432dnl Don't use UL_DEFAULT_ENABLE() here, deprecated stuff has to be insensitive
1433dnl to --enable-all-programs.
ce602720
OO
1434AC_ARG_ENABLE([deprecated-last],
1435 AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
569ff0d3 1436 [], [enable_deprecated_last=no]
ce602720
OO
1437)
1438UL_BUILD_INIT([deprecated_last])
ce602720
OO
1439AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1440
1441
48d7b13a 1442AC_ARG_ENABLE([last],
ce602720 1443 AS_HELP_STRING([--disable-last], [do not build last]),
08b1c219 1444 [], [UL_DEFAULT_ENABLE([last], [check])]
48d7b13a 1445)
61a074f7 1446UL_BUILD_INIT([last])
4d1d1233 1447UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
034d378b 1448AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2dc68529 1449
48d7b13a 1450
78d5ceac 1451AC_ARG_ENABLE([utmpdump],
c9b53461 1452 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
08b1c219 1453 [], [UL_DEFAULT_ENABLE([utmpdump], [yes])]
78d5ceac
KZ
1454)
1455UL_BUILD_INIT([utmpdump])
034d378b 1456AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
78d5ceac
KZ
1457
1458
c135a8bd
SK
1459AC_ARG_ENABLE([line],
1460 AS_HELP_STRING([--enable-line], [build line]),
08b1c219 1461 [], [UL_DEFAULT_ENABLE([line], [no])]
c135a8bd 1462)
61a074f7 1463UL_BUILD_INIT([line])
034d378b 1464AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2dc68529 1465
48d7b13a
KZ
1466
1467AC_ARG_ENABLE([mesg],
5c0b406d 1468 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
08b1c219 1469 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
48d7b13a 1470)
61a074f7 1471UL_BUILD_INIT([mesg])
034d378b 1472AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
48d7b13a
KZ
1473
1474
48d7b13a 1475AC_ARG_ENABLE([raw],
5c0b406d 1476 AS_HELP_STRING([--disable-raw], [do not build raw]),
08b1c219 1477 [], [UL_DEFAULT_ENABLE([raw], [check])]
48d7b13a 1478)
61a074f7 1479UL_BUILD_INIT([raw])
16ba8d58
KZ
1480UL_REQUIRES_LINUX([raw])
1481UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
034d378b 1482AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
48d7b13a
KZ
1483
1484
48d7b13a 1485AC_ARG_ENABLE([rename],
7fa4f112 1486 AS_HELP_STRING([--disable-rename], [do not build rename]),
08b1c219 1487 [], [UL_DEFAULT_ENABLE([rename], [yes])]
48d7b13a 1488)
61a074f7 1489UL_BUILD_INIT([rename])
034d378b 1490AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
48d7b13a
KZ
1491
1492
1493AC_ARG_ENABLE([reset],
7fa4f112 1494 AS_HELP_STRING([--enable-reset], [build reset]),
08b1c219 1495 [], [UL_DEFAULT_ENABLE([reset], [no])]
48d7b13a 1496)
61a074f7 1497UL_BUILD_INIT([reset])
034d378b 1498AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
48d7b13a
KZ
1499
1500
cc76731e
KZ
1501AC_ARG_ENABLE([vipw],
1502 AS_HELP_STRING([--enable-vipw], [build vipw]),
08b1c219 1503 [], [UL_DEFAULT_ENABLE([vipw], [no])]
48d7b13a 1504)
cc76731e 1505UL_BUILD_INIT([vipw])
034d378b 1506AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
9cb68977 1507
c94b3604 1508
aec9ecbd
KZ
1509AC_ARG_ENABLE([newgrp],
1510 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
08b1c219 1511 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
aec9ecbd
KZ
1512)
1513UL_BUILD_INIT([newgrp])
034d378b 1514AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
aec9ecbd
KZ
1515
1516
d86918b6 1517AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
034d378b 1518 [], [with_user=check]
7e4714f2 1519)
6e93c52f 1520have_user=no
3013eb9d 1521AS_IF([test "x$with_user" != xno], [
2771954b 1522 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
9f57e6e8
SK
1523 AS_CASE([$with_user:$have_user],
1524 [yes:no],
1525 [AC_MSG_ERROR([user selected but libuser not found])],
1526 [*:yes],
1527 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1528 )
1f6ec24c
KZ
1529 # temporary solution, libuser has stupid .pc where are exported all
1530 # private dependencies to Requires: instead of Requires.private:
3013eb9d 1531 AS_IF([test "x$have_user" = xyes], [
1f6ec24c 1532 LIBUSER_LIBS=-luser
3013eb9d
SK
1533 ])
1534])
034d378b 1535AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
7e4714f2 1536
d86918b6
KZ
1537AC_ARG_ENABLE([chfn-chsh-password],
1538 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
034d378b 1539 [], [enable_chfn_chsh_password=yes]
d86918b6
KZ
1540)
1541
1542AC_ARG_ENABLE([chfn-chsh],
1543 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
9a4e9c9d 1544 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
d86918b6
KZ
1545)
1546UL_BUILD_INIT([chfn_chsh])
1547
3013eb9d 1548AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
fe2c9909 1549 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_appl_h], [PAM header file])
034d378b 1550 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
3013eb9d 1551])
034d378b
SK
1552AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1553AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
d86918b6
KZ
1554
1555AC_ARG_ENABLE([chsh-only-listed],
5c0b406d
BS
1556 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1557 [], enable_chsh_only_listed=yes
d86918b6 1558)
7e4714f2 1559
3013eb9d
SK
1560AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1561 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1562])
71681ee5 1563
2c8a3e16 1564
e7614a07
KZ
1565AC_ARG_ENABLE([login],
1566 AS_HELP_STRING([--disable-login], [do not build login]),
08b1c219 1567 [], [UL_DEFAULT_ENABLE([login], [check])]
e7614a07
KZ
1568)
1569UL_BUILD_INIT([login])
fe2c9909
WJ
1570UL_REQUIRES_HAVE([login], [security_pam_appl_h], [PAM header file])
1571UL_REQUIRES_HAVE([login], [security_pam_misc_h, security_openpam_h], [PAM conversation functions])
034d378b 1572AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
e7614a07 1573
71681ee5
KZ
1574AC_ARG_ENABLE([login-chown-vcs],
1575 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
034d378b 1576 [], [enable_login_chown_vcs=no]
71681ee5
KZ
1577)
1578
3013eb9d 1579AS_IF([test "x$enable_login_chown_vcs" = xyes], [
034d378b 1580 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
3013eb9d 1581])
71681ee5
KZ
1582
1583AC_ARG_ENABLE([login-stat-mail],
1584 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
034d378b 1585 [], [enable_login_stat_mail=no]
71681ee5
KZ
1586)
1587
3013eb9d 1588AS_IF([test "x$enable_login_stat_mail" = xyes], [
034d378b 1589 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
3013eb9d 1590])
71681ee5 1591
e7614a07 1592
88407b93
KZ
1593AC_ARG_ENABLE([nologin],
1594 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
08b1c219 1595 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
88407b93
KZ
1596)
1597UL_BUILD_INIT([nologin])
1598AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1599
1600
e7614a07
KZ
1601AC_ARG_ENABLE([sulogin],
1602 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
08b1c219 1603 [], [UL_DEFAULT_ENABLE([sulogin], [yes])]
e7614a07
KZ
1604)
1605UL_BUILD_INIT([sulogin])
034d378b 1606AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
e7614a07 1607
f17f5f48 1608
ff4c5555
KZ
1609AC_ARG_ENABLE([su],
1610 AS_HELP_STRING([--disable-su], [do not build su]),
08b1c219 1611 [], [UL_DEFAULT_ENABLE([su], [check])]
ff4c5555
KZ
1612)
1613UL_BUILD_INIT([su])
fe2c9909 1614UL_REQUIRES_HAVE([su], [security_pam_appl_h], [PAM header file])
034d378b 1615AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
ff4c5555
KZ
1616
1617
7ec6adb1
KZ
1618AC_ARG_ENABLE([runuser],
1619 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
08b1c219 1620 [], [UL_DEFAULT_ENABLE([runuser], [check])]
7ec6adb1
KZ
1621)
1622UL_BUILD_INIT([runuser])
fe2c9909 1623UL_REQUIRES_HAVE([runuser], [security_pam_appl_h], [PAM header file])
034d378b 1624AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
7ec6adb1
KZ
1625
1626
53b22add
KZ
1627AC_ARG_ENABLE([ul],
1628 AS_HELP_STRING([--disable-ul], [do not build ul]),
08b1c219 1629 [], [UL_DEFAULT_ENABLE([ul], [check])]
53b22add
KZ
1630)
1631UL_BUILD_INIT([ul])
1632UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
034d378b 1633AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
53b22add
KZ
1634
1635
1636AC_ARG_ENABLE([more],
1637 AS_HELP_STRING([--disable-more], [do not build more]),
08b1c219 1638 [], [UL_DEFAULT_ENABLE([more], [check])]
53b22add
KZ
1639)
1640UL_BUILD_INIT([more])
1641UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
034d378b 1642AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
53b22add
KZ
1643
1644
1645AC_ARG_ENABLE([pg],
1646 AS_HELP_STRING([--disable-pg], [do not build pg]),
08b1c219 1647 [], [UL_DEFAULT_ENABLE([pg], [check])]
53b22add
KZ
1648)
1649UL_BUILD_INIT([pg])
1650UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
034d378b 1651AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
53b22add
KZ
1652
1653
d78d0409
KZ
1654AC_ARG_ENABLE([setterm],
1655 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
08b1c219 1656 [], [UL_DEFAULT_ENABLE([setterm], [check])]
d78d0409
KZ
1657)
1658UL_BUILD_INIT([setterm])
1659UL_REQUIRES_LINUX([setterm])
1660UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
034d378b 1661AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
d78d0409 1662
d6ace0b8
KZ
1663# build_schedutils= is just configure-only variable to control
1664# ionice, taskset and chrt
48d7b13a 1665AC_ARG_ENABLE([schedutils],
34228e69 1666 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
08b1c219 1667 [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
48d7b13a 1668)
61a074f7 1669UL_BUILD_INIT([schedutils])
17d5e11b 1670
61a074f7 1671UL_BUILD_INIT([ionice], [check])
17d5e11b
KZ
1672UL_REQUIRES_BUILD([ionice], [schedutils])
1673UL_REQUIRES_SYSCALL_CHECK([ionice],
1674 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
1675 [alpha], [442],
1676 [i*86], [289],
1677 [ia64*], [1274],
1678 [powerpc*], [273],
1679 [s390*], [282],
1680 [sparc*], [196],
1681 [sh*], [288],
1682 [x86_64*], [251])],
17d5e11b
KZ
1683 [ioprio_set])
1684
1685UL_REQUIRES_SYSCALL_CHECK([ionice],
1686 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
1687 [alpha], [443],
1688 [i*86], [290],
1689 [ia64*], [1275],
1690 [powerpc*], [274],
1691 [s390*], [283],
1692 [sparc*], [218],
1693 [sh*], [289],
1694 [x86_64*], [252])],
17d5e11b
KZ
1695 [ioprio_get])
1696
034d378b 1697AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
17d5e11b 1698
61a074f7 1699UL_BUILD_INIT([taskset], [check])
17d5e11b 1700UL_REQUIRES_BUILD([taskset], [schedutils])
e21e6d26 1701UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
1702UL_REQUIRES_SYSCALL_CHECK([taskset],
1703 [UL_CHECK_SYSCALL([sched_getaffinity])],
1704 [sched_getaffinity])
034d378b 1705AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
48d7b13a 1706
d6ace0b8
KZ
1707UL_BUILD_INIT([chrt], [check])
1708UL_REQUIRES_BUILD([chrt], [schedutils])
1709AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1710
48d7b13a
KZ
1711
1712AC_ARG_ENABLE([wall],
7fa4f112 1713 AS_HELP_STRING([--disable-wall], [do not build wall]),
08b1c219 1714 [], [UL_DEFAULT_ENABLE([wall], [yes])]
48d7b13a 1715)
8fc8888b 1716UL_BUILD_INIT([wall])
034d378b 1717AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
48d7b13a
KZ
1718
1719
1720AC_ARG_ENABLE([write],
7fa4f112 1721 AS_HELP_STRING([--enable-write], [build write]),
08b1c219 1722 [], [UL_DEFAULT_ENABLE([write], [no])]
48d7b13a 1723)
61a074f7 1724UL_BUILD_INIT([write])
034d378b 1725AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
48d7b13a
KZ
1726
1727
ebff016a
KZ
1728AC_ARG_WITH([systemd],
1729 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
1730 [], [with_systemd=check]
1731)
1732
1733have_systemd=no
1734AS_IF([test "x$with_systemd" != xno], [
1735 # new version -- all libsystemd-* libs merged into libsystemd
1736 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
1737 # old versions
1738 AS_IF([test "x$have_systemd" != "xyes"], [
1739 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
1740 [have_systemd_daemon=yes], [have_systemd_daemon=no])
1741 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
1742 [have_systemd_journal=yes], [have_systemd_journal=no])
1743 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
1744 have_systemd=yes])
ea45d34c 1745 ])
ebff016a
KZ
1746 AS_CASE([$with_systemd:$have_systemd],
1747 [yes:no],
1748 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
1749 [*:yes],
1750 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
1751 )
3013eb9d 1752])
ebff016a
KZ
1753AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
1754
bbe289c4 1755
1b68c379
PU
1756AC_ARG_WITH([systemdsystemunitdir],
1757 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
c8498f2f 1758 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1b68c379 1759
3013eb9d 1760AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1b68c379 1761 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
3013eb9d 1762])
1b68c379 1763
bbe289c4 1764
b8095d25
KZ
1765AC_ARG_WITH([smack],
1766 AS_HELP_STRING([--with-smack], [build with SMACK support]),
1767 [], [with_smack=no]
1768)
1769AS_IF([test "x$with_smack" = xyes], [
1770 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
1771])
1772
1773
9cc36e9f
SK
1774AC_ARG_WITH([bashcompletiondir],
1775 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1776 [],
c8498f2f
SK
1777 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1778 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
9cc36e9f
SK
1779 ], [
1780 with_bashcompletiondir=${datadir}/bash-completion/completions
1781 ])
1782])
1783AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1784
ece777e9
KZ
1785AC_ARG_ENABLE([bash-completion],
1786 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
034d378b 1787 [], [enable_bash_completion=yes]
ece777e9
KZ
1788)
1789
034d378b 1790AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
ece777e9 1791
9cc36e9f 1792
d78df0ac 1793AC_ARG_WITH([python],
4c54effb
KZ
1794 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
1795 [], [with_python=check withval=check]
d78df0ac 1796)
8e5c4675 1797
d78df0ac 1798have_python=no
b2ae8c57 1799have_libpython=no
8e5c4675
KZ
1800AS_IF([test "x$with_python" != xno], [
1801 # We follow distributions default and look for PKG module name "python"
1802 # (minimal version is 2) but if major version is explicitly specified by
1803 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1804 # "python3".
4c54effb 1805 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
0b567ae5 1806 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
b2ae8c57
KZ
1807
1808 # check for python interpreter
0b567ae5 1809 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
8e5c4675
KZ
1810 AS_CASE([$with_python:$have_python],
1811 [yes:no],
b2ae8c57 1812 [AC_MSG_ERROR([python selected but python interpreter not found])],
4c54effb 1813 [check:no],
b2ae8c57 1814 [AC_MSG_WARN([python interpreter not found, do not build python bindings])],
4c54effb 1815 [*:yes],
b2ae8c57
KZ
1816 # check for python development stuff
1817 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION],
1818 [have_libpython=yes], [have_libpython=no])]
8e5c4675 1819 )
d78df0ac
KZ
1820])
1821
da0ec90b
KZ
1822
1823AC_ARG_ENABLE([pylibmount],
1824 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
1825 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
1826)
1827UL_BUILD_INIT([pylibmount])
b2ae8c57 1828UL_REQUIRES_HAVE([pylibmount], [libpython], [libpython])
da0ec90b 1829UL_REQUIRES_BUILD([pylibmount], [libmount])
d78df0ac
KZ
1830AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1831
1832
48d7b13a 1833AC_ARG_ENABLE([pg-bell],
7fa4f112 1834 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
034d378b 1835 [], [enable_pg_bell=yes]
48d7b13a
KZ
1836)
1837
3013eb9d 1838AS_IF([test "x$enable_pg_bell" = xyes], [
034d378b 1839 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
3013eb9d 1840])
48d7b13a
KZ
1841
1842
bb4cb69d
MF
1843AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1844AC_ARG_ENABLE([fs-paths-default],
1845 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
9f57e6e8
SK
1846 [AS_CASE([$enableval],
1847 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
1848 [no], [fs_paths_defaults=""],
1849 [fs_paths_defaults="$enableval"]
1850 )],
bb4cb69d
MF
1851 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1852)
1853AC_ARG_ENABLE([fs-paths-extra],
1854 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
9f57e6e8
SK
1855 [AS_CASE([$enableval],
1856 [yes|no], [fs_paths_extra=""],
1857 [fs_paths_extra="$enableval"]
1858 )],
bb4cb69d
MF
1859 [fs_paths_extra=""]
1860)
1861fs_paths="$fs_paths_defaults"
3013eb9d
SK
1862AS_IF([test "x$fs_paths_extra" != "x"], [
1863 AS_IF([test "x$fs_paths" != "x"], [
bb4cb69d 1864 fs_paths="${fs_paths}:"
3013eb9d 1865 ])
bb4cb69d 1866 fs_paths="${fs_paths}${fs_paths_extra}"
3013eb9d 1867])
bb4cb69d
MF
1868AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1869
1870
48d7b13a 1871AC_ARG_ENABLE([use-tty-group],
7fa4f112 1872 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
034d378b 1873 [], [enable_use_tty_group=yes]
48d7b13a 1874)
034d378b 1875AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
48d7b13a 1876
3013eb9d 1877AS_IF([test "x$enable_use_tty_group" = xyes], [
034d378b 1878 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
3013eb9d 1879])
48d7b13a 1880
ab6478ef
WF
1881
1882AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
1883 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1884 [use emergency mount of /dev and /proc for sulogin]),
034d378b 1885 [], [enable_sulogin_emergency_mount=no]
ab6478ef
WF
1886)
1887
3013eb9d 1888AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
034d378b 1889 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
ab6478ef 1890 [Should sulogin use a emergency mount of /dev and /proc?])
3013eb9d 1891])
ab6478ef
WF
1892
1893
f71d1104
KZ
1894AC_ARG_ENABLE([usrdir-path],
1895 AS_HELP_STRING([--enable-usrdir-path], [use only /usr paths in PATH env. variable (recommended on systems with /bin -> /usr/bin symlinks)]),
1896 [], [enable_usrdir_path=no]
1897)
1898
1899AS_IF([test "x$enable_usrdir_path" == xyes], [
1900 AC_DEFINE([USE_USRDIR_PATHS_ONLY], [1], [Define to 1 to remove /bin and /sbin from PATH env.variable])
1901])
1902
1903
f3831bbd
KZ
1904AC_ARG_ENABLE([makeinstall-chown],
1905 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
034d378b 1906 [], [enable_makeinstall_chown=yes]
f3831bbd 1907)
034d378b 1908AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
f3831bbd 1909
81f55ab9 1910
4c24a7ae
KZ
1911AC_ARG_ENABLE([makeinstall-setuid],
1912 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
034d378b 1913 [], [enable_makeinstall_setuid=yes]
4c24a7ae 1914)
034d378b 1915AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
4c24a7ae 1916
06bcee19 1917
81f55ab9
KZ
1918AC_ARG_ENABLE([colors-default],
1919 AS_HELP_STRING([--disable-colors-default], [do not colorize output from utils by default]),
1920 [], [enable_colors_default=yes]
1921)
1922AS_IF([test "x$enable_colors_default" = xyes], [
1923 AC_DEFINE([USE_COLORS_BY_DEFAULT], [1], [Enables colorized output from utils by default])
1924])
1925
1926
1f10890f
SK
1927AC_ARG_VAR([SUID_CFLAGS],
1928 [CFLAGS used for binaries which are usually with the suid bit])
1929AC_ARG_VAR([SUID_LDFLAGS],
1930 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 1931
03d00d49
KZ
1932AC_ARG_VAR([DAEMON_CFLAGS],
1933 [CFLAGS used for binaries which are usually executed as daemons])
1934AC_ARG_VAR([DAEMON_LDFLAGS],
1935 [LDFLAGS used for binaries which are usually executed as daemons])
1936
1937AC_ARG_VAR([SOLIB_CFLAGS],
1938 [CFLAGS used for shared libraries])
1939AC_ARG_VAR([SOLIB_LDFLAGS],
1940 [LDFLAGS used for shared libraries])
1941
2ad21963
KZ
1942AC_ARG_VAR([ADJTIME_PATH],
1943 [Path to hwclock adjtime file, default /etc/adjtime])
1944AS_IF([test "x$ADJTIME_PATH" = x], [ADJTIME_PATH="/etc/adjtime"])
1945AC_DEFINE_UNQUOTED([CONFIG_ADJTIME_PATH], "$ADJTIME_PATH", [Path to hwclock adjtime file])
1946
1947
9cb68977 1948LIBS=""
48d7b13a 1949
48d7b13a 1950
034d378b 1951AC_CONFIG_HEADERS([config.h])
48d7b13a 1952
d4baf92e
KZ
1953#
1954# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1955# more details.
1956#
8eeb575c 1957AC_CONFIG_FILES([
f06b4328 1958Makefile
31a938ac 1959libblkid/docs/Makefile
8fb4efae 1960libblkid/docs/version.xml
8fb4efae 1961libblkid/src/blkid.h
705854f3
KZ
1962libfdisk/docs/Makefile
1963libfdisk/docs/version.xml
1964libfdisk/src/libfdisk.h
31a938ac 1965libmount/docs/Makefile
2aefc0a8 1966libmount/docs/version.xml
f06b4328 1967libmount/src/libmount.h
1d90bcb1
OO
1968libsmartcols/docs/Makefile
1969libsmartcols/docs/version.xml
1a4d989e 1970libsmartcols/src/libsmartcols.h
f06b4328 1971po/Makefile.in
8eeb575c 1972])
48d7b13a
KZ
1973
1974AC_OUTPUT
4e1073c2
KZ
1975
1976AC_MSG_RESULT([
1977 ${PACKAGE} ${VERSION}
1978
1979 prefix: ${prefix}
1980 exec prefix: ${exec_prefix}
1981
5c0b406d
BS
1982 localstatedir: ${localstatedir}
1983 bindir: ${bindir}
4e1073c2
KZ
1984 sbindir: ${sbindir}
1985 libdir: ${libdir}
1986 includedir: ${includedir}
5c0b406d
BS
1987 usrbin_execdir: ${usrbin_execdir}
1988 usrsbin_execdir: ${usrsbin_execdir}
1989 usrlib_execdir: ${usrlib_execdir}
4e1073c2
KZ
1990
1991 compiler: ${CC}
1992 cflags: ${CFLAGS}
1993 suid cflags: ${SUID_CFLAGS}
1994 ldflags: ${LDFLAGS}
1995 suid ldflags: ${SUID_LDFLAGS}
8e5c4675 1996
0b567ae5
SK
1997 Python: ${PYTHON}
1998 Python version: ${PYTHON_VERSION}
3745d4a9
KZ
1999 Python libs: ${pyexecdir}
2000
8e5c4675 2001 Bash completions: ${with_bashcompletiondir}
ebff016a 2002 Systemd support: ${have_systemd}
4e1073c2
KZ
2003
2004 warnings:
2005
2006${WARN_CFLAGS}
b4b84389
KZ
2007
2008 Type 'make' or 'make <utilname>' to compile.
4e1073c2 2009])