]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
build-sys: ove fdisks to disk-utils
[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"
bad3c52f 29LIBBLKID_DATE="21-Oct-2013"
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
15a9b48c 49# Check whether exec_prefix=/usr:
9f57e6e8
SK
50AS_CASE([$exec_prefix:$prefix],
51[NONE:NONE | NONE:/usr | /usr:*],
52 [AC_MSG_NOTICE([Default --exec-prefix detected.])
17794746
KZ
53 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
54 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [sbindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
55 AS_CASE([$libdir], ['${exec_prefix}/lib'], [libdir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
9f57e6e8
SK
56 ]
57)
58
59AS_CASE([$prefix:$localstatedir],
3745d4a9 60 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
9f57e6e8
SK
61 [localstatedir=/run
62 AC_MSG_NOTICE([ --localstatedir defaults to /run])
63 ]
64)
11935cd3 65AC_SUBST([localstatedir])
07a16b9d 66
b0a0d7d5 67
996fb358 68# The original default values of {bin,sbin,lib}dir
aaf3e8f5 69usrbin_execdir='${exec_prefix}/bin'
30688dde 70AC_SUBST([usrbin_execdir])
996fb358 71
aaf3e8f5 72usrsbin_execdir='${exec_prefix}/sbin'
30688dde 73AC_SUBST([usrsbin_execdir])
996fb358 74
9f57e6e8 75AS_CASE([$libdir],
3745d4a9 76 ['${exec_prefix}/'* | '${prefix}/'* | /usr/*],
9f57e6e8
SK
77 [usrlib_execdir=$libdir],
78 [usrlib_execdir='${exec_prefix}'$libdir]
79)
30688dde 80AC_SUBST([usrlib_execdir])
996fb358 81
bdf5f542 82
31c9c1c4 83AM_PROG_CC_C_O
48d7b13a 84AC_PROG_CC_STDC
a6996860 85AC_CANONICAL_HOST
85b4c147 86AC_C_CONST
e79829db 87AC_C_VOLATILE
fbaec83b 88AC_C_BIGENDIAN
b12991dd 89
0e60bc9b 90dnl Compiler warnings
b1b54edf 91UL_WARN_ADD([-fno-common])
9dc72d0b 92UL_WARN_ADD([-Wall])
b1b54edf 93UL_WARN_ADD([-Werror=sequence-point])
0e60bc9b 94UL_WARN_ADD([-Wextra])
b1b54edf
KZ
95UL_WARN_ADD([-Wmissing-declarations])
96UL_WARN_ADD([-Wmissing-parameter-type])
97UL_WARN_ADD([-Wmissing-prototypes])
0e60bc9b 98UL_WARN_ADD([-Wno-missing-field-initializers])
b1b54edf 99UL_WARN_ADD([-Wredundant-decls])
0e60bc9b
KZ
100UL_WARN_ADD([-Wsign-compare])
101UL_WARN_ADD([-Wtype-limits])
102UL_WARN_ADD([-Wuninitialized])
b1b54edf
KZ
103UL_WARN_ADD([-Wunused-but-set-parameter])
104UL_WARN_ADD([-Wunused-but-set-variable])
0e60bc9b 105UL_WARN_ADD([-Wunused-parameter])
0e60bc9b 106UL_WARN_ADD([-Wunused-result])
bec5c9db 107UL_WARN_ADD([-Wunused-variable])
dcd33c3e
KZ
108UL_WARN_ADD([-Wnested-externs])
109UL_WARN_ADD([-Wpointer-arith])
110UL_WARN_ADD([-Wstrict-prototypes])
111UL_WARN_ADD([-Wformat-security])
0e60bc9b
KZ
112AC_SUBST([WARN_CFLAGS])
113
034d378b 114UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
7697771d
KZ
115AC_SUBST([BSD_WARN_CFLAGS])
116
b12991dd
KZ
117dnl libtool-2
118LT_INIT
48d7b13a 119
fd0f4132
SK
120m4_ifndef([PKG_PROG_PKG_CONFIG],
121 [m4_fatal([Could not locate the pkg-config autoconf
122 macros. These are usually located in /usr/share/aclocal/pkg.m4.
123 If your macros are in a different location, try setting the
124 environment variable AL_OPTS="-I/other/macro/dir" before running
125 ./autogen.sh or autoreconf again.])])
d06d028a
KZ
126PKG_PROG_PKG_CONFIG
127
22aa5166
KZ
128GTK_DOC_CHECK([1.10])
129AC_PATH_PROG([XSLTPROC], [xsltproc])
130
8c182554 131linux_os=no
9f57e6e8 132AS_CASE([${host_os}], [*linux*], [linux_os=yes])
034d378b 133AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
8c182554 134
3c6e292c 135dnl define ARCH_<NAME> conditionals
034d378b
SK
136UL_SET_ARCH([I86], [i?86-*])
137UL_SET_ARCH([86_64], [x86_64*])
138UL_SET_ARCH([IA64], [ia64*])
139UL_SET_ARCH([S390], [s390*])
140UL_SET_ARCH([SPARC], [sparc*])
141UL_SET_ARCH([PPC], [ppc*|powerpc*])
142UL_SET_ARCH([M68K], [m68*])
143UL_SET_ARCH([MIPS], [mips*])
144UL_SET_ARCH([HPPA], [hppa*])
3c6e292c 145
48d7b13a
KZ
146AC_SYS_LARGEFILE
147
e3e16717 148AM_GNU_GETTEXT_VERSION([0.18])
09734b00 149AM_GNU_GETTEXT([external])
3013eb9d
SK
150
151AS_IF([test -d "$srcdir/po"], [
152 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
153], [
154 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"
155])
09734b00 156
e460a5bf 157AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
48d7b13a
KZ
158#ifdef HAVE_LINUX_COMPILER_H
159#include <linux/compiler.h>
160#endif
161])
f06b4328
SK
162AC_CHECK_HEADERS([ \
163 asm/io.h \
164 err.h \
a0948ffe 165 errno.h \
f06b4328 166 fcntl.h \
a0948ffe 167 getopt.h \
f06b4328
SK
168 inttypes.h \
169 linux/cdrom.h \
170 linux/falloc.h \
5b0289b9 171 linux/watchdog.h \
a0948ffe 172 linux/fd.h \
f06b4328 173 linux/raw.h \
a0948ffe
KZ
174 linux/tiocl.h \
175 linux/version.h \
48469f90 176 linux/securebits.h \
8b7f16fc 177 locale.h \
607c2a72 178 mntent.h \
f06b4328 179 net/if.h \
754fed0c 180 net/if_dl.h \
f06b4328
SK
181 netinet/in.h \
182 paths.h \
183 pty.h \
184 security/pam_misc.h \
185 stdint.h \
78288764 186 stdio_ext.h \
a0948ffe 187 stdlib.h \
1a1eb4e1
KZ
188 endian.h \
189 byteswap.h \
190 sys/endian.h \
a0948ffe
KZ
191 sys/disk.h \
192 sys/disklabel.h \
f06b4328 193 sys/file.h \
bf962c0a 194 sys/io.h \
f06b4328
SK
195 sys/ioccom.h \
196 sys/ioctl.h \
a0948ffe
KZ
197 sys/mkdev.h \
198 sys/prctl.h \
199 sys/queue.h \
f06b4328 200 sys/resource.h \
2a7c1f70 201 sys/socket.h \
f06b4328 202 sys/sockio.h \
a0948ffe 203 sys/stat.h \
f06b4328
SK
204 sys/swap.h \
205 sys/syscall.h \
206 sys/time.h \
00c505d9 207 sys/ttydefaults.h \
a0948ffe 208 sys/types.h \
754fed0c 209 sys/un.h \
f06b4328
SK
210 unistd.h \
211])
dc61d398 212
a67387b7
KZ
213AC_CHECK_HEADERS([langinfo.h],
214 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
215 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
216
16ba8d58
KZ
217dnl Convert some ac_cv_header_* variables to have_*
218dnl
219have_linux_raw_h=$ac_cv_header_linux_raw_h
48469f90 220have_linux_securebits_h=$ac_cv_header_linux_securebits_h
5b0289b9 221have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
ff0cb84d 222have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
48d7b13a 223
a67387b7
KZ
224
225AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
226#include <time.h>
227#include <unistd.h>
228]], [[
229 int a = 0;
230 struct tm *tm = localtime(0);
231 if (a == -1) /* false */
f06b4328 232 sleep(tm->tm_gmtoff);
a67387b7 233]])],
034d378b 234[AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
a67387b7
KZ
235])
236
237AC_CHECK_MEMBERS([struct termios.c_line],,,
238 [[#include <termios.h>]])
239
240AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
241 [#include <sys/stat.h>])
242
a67387b7
KZ
243AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
244[[
245#ifdef HAVE_SYS_SWAP_H
246# include <sys/swap.h>
247#endif
248#include <unistd.h>
249]],
250[[swapon("/dev/null", 0);]])],
034d378b 251[AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
a67387b7
KZ
252],
253[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
254])
dc61d398
KZ
255
256
a88057d9
TP
257AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
258
2a7c1f70 259AC_CHECK_DECL([llseek],
034d378b 260 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
2a7c1f70
KZ
261 [Define to 1 if have llseek prototype])],
262 [],
263 [#include <unistd.h>])
264
265AC_CHECK_DECL([lseek64],
034d378b 266 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
2a7c1f70
KZ
267 [Define to 1 if have lseek64 prototype])],
268 [],
269 [#define _LARGEFILE_SOURCE
270 #define _LARGEFILE64_SOURCE
271 #include <unistd.h>])
272
0e9b73d3 273AC_CHECK_DECL([environ],
034d378b 274 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
0e9b73d3
SK
275 [Define to 1 if have **environ prototype])],
276)
277
278AC_CHECK_DECL([strsignal],
034d378b 279 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
0e9b73d3
SK
280 [Define to 1 if have strsignal function prototype])],
281)
282
f06b4328 283AC_CHECK_FUNCS([ \
78288764 284 __fpending \
075f4bfd 285 secure_getenv \
f06b4328 286 __secure_getenv \
eb76ca98
FG
287 err \
288 errx \
bf962c0a 289 fsync \
f06b4328 290 futimens \
bf962c0a 291 getdomainname \
f06b4328
SK
292 getdtablesize \
293 getexecname \
294 getmntinfo \
295 getrlimit \
296 inotify_init \
3ac22f7a 297 jrand48 \
bf962c0a 298 lchown \
a0948ffe
KZ
299 llseek \
300 lseek64 \
02887b73 301 mempcpy \
f06b4328
SK
302 nanosleep \
303 personality \
304 posix_fadvise \
305 prctl \
306 rpmatch \
485a8bfa 307 scandirat \
69045d3d
KZ
308 setresgid \
309 setresuid \
f06b4328
SK
310 sigqueue \
311 srandom \
312 strnchr \
69b7e41e
KZ
313 strndup \
314 strnlen \
f06b4328
SK
315 strtoull \
316 sysconf \
317 updwtmp \
318 usleep \
eb76ca98
FG
319 warn \
320 warnx \
f06b4328 321])
48d7b13a 322AC_FUNC_FSEEKO
48d7b13a 323
940fd28c 324AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
465e9973 325AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
465e9973 326
034d378b
SK
327AC_CHECK_MEMBER([struct sockaddr.sa_len],
328 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
754fed0c
KZ
329 [#include <sys/types.h>
330 #include <sys/socket.h>])
331
60cc9f94 332SOCKET_LIBS=
60cc9f94 333AC_SEARCH_LIBS([socket], [socket],
3013eb9d
SK
334 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
335 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
336])
60cc9f94
FG
337AC_SUBST([SOCKET_LIBS])
338
d58c47d9
FG
339
340have_dirfd=no
341AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
3013eb9d 342AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
343 AC_CHECK_DECLS([dirfd],
344 [have_dirfd=yes], [have_dirfd=no],
345 [#include <sys/types.h>
346 #include <dirent.h>])
3013eb9d 347])
d58c47d9
FG
348
349have_ddfd=no
3013eb9d 350AS_IF([test x"$have_dirfd" = xno], [
d58c47d9
FG
351 AC_CHECK_MEMBERS([DIR.dd_fd],
352 [have_ddfd=yes], [have_ddfd=no],
353 [#include <sys/types.h>
354 #include <dirent.h>])
3013eb9d 355])
d58c47d9 356
9f57e6e8
SK
357AS_CASE([$have_dirfd:$have_ddfd],
358 [no:no],
359 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
360)
d58c47d9
FG
361
362
d6abf168
SK
363AC_MSG_CHECKING([whether program_invocation_short_name is defined])
364AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
365 #include <argp.h>
366]], [[
367 program_invocation_short_name = "test";
368]])], [
369 AC_MSG_RESULT([yes])
370 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
371 [Define if program_invocation_short_name is defined])
372], [
373 AC_MSG_RESULT([no])
374])
375
a804f444
FG
376
377AC_MSG_CHECKING([whether __progname is defined])
378AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
f06b4328 379 [if (*__progname == 0) return;])],
034d378b
SK
380 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
381 AC_MSG_RESULT([yes]),
382 AC_MSG_RESULT([no]))
a804f444 383
8569410c 384dnl Static compilation
132ea941 385m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid])
8569410c
SK
386
387AC_ARG_ENABLE([static-programs],
388 [AS_HELP_STRING([--enable-static-programs=LIST],
389 [link static the programs in LIST (comma-separated,
132ea941 390 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
8569410c 391
9f57e6e8
SK
392AS_CASE([$enable_static_programs],
393 [yes],
d924b10b 394 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
9f57e6e8
SK
395 [no],
396 [enable_static_programs=]
397)
8569410c 398
8569410c 399dnl Set all the individual AM_CONDITIONALs
132ea941 400m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
9f57e6e8
SK
401 AS_CASE([,$enable_static_programs,],
402 [*,UL_PRG,*], [static_[]UL_PRG=yes]
403 )
d924b10b 404 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
132ea941
KZ
405 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
406 [test "x$static_[]UL_PRG" = xyes])
8569410c
SK
407])
408
d7a01582 409AX_CHECK_TLS
3ac22f7a 410
13f5473e
KZ
411AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
412# include <stdio.h>
413int main()
414{
415 int i;
416 char *s;
417 i = sscanf("x", $1, &s);
418 if (i == 1)
419 return 0;
420 return 1;
421}])
422
423AC_CACHE_VAL([scanf_cv_alloc_modifier],
424 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
425 [scanf_cv_alloc_modifier=ms],
426 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
427 [scanf_cv_alloc_modifier=as],
428 [scanf_cv_alloc_modifier=no]
429 )
b420e279 430 ,
d0202f1c
SAS
431
432 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
433 #include <stdio.h>
695e4e1a 434 #include <unistd.h>
d0202f1c
SAS
435
436 #ifdef __GLIBC__
437
438 #if !(__GLIBC_PREREQ(2, 7))
439 #error %m is not available
440 #endif
441
695e4e1a 442 #elif defined(_POSIX_VERSION)
d0202f1c 443
695e4e1a
MF
444 #if _POSIX_VERSION < 200809L
445 #error %m is not available
446 #endif
447
448 #else
d0202f1c
SAS
449 #error Your C-library is not supported.
450 #endif
451 ])],
452 [scanf_cv_alloc_modifier=ms],
453 [scanf_cv_alloc_modifier=no])]
13f5473e
KZ
454 )
455)
456
457AC_MSG_CHECKING([scanf string alloc modifiers])
9f57e6e8
SK
458AS_CASE([$scanf_cv_alloc_modifier],
459 [ms],
460 [AC_MSG_RESULT([(%ms) yes])
461 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
462 have_scanf_alloc_modifier=yes],
463 [as],
464 [AC_MSG_RESULT([(%as) yes])
465 have_scanf_alloc_modifier=yes
466 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
467 [AC_MSG_RESULT([no])
468 have_scanf_alloc_modifier=no]
469)
13f5473e 470
034d378b
SK
471UL_CHECK_LIB([util], [openpty])
472UL_CHECK_LIB([termcap], [tgetnum])
3aecf79d
KZ
473
474AC_CHECK_TYPES([union semun], [], [], [[
475#include <sys/sem.h>
476]])
034d378b 477AC_CHECK_TYPES([loff_t])
3aecf79d
KZ
478
479AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
480#include <wchar.h>
481#include <wctype.h>
482#include <stdio.h>
483]], [[
484 wchar_t wc;
485 wint_t w;
486 w = fgetwc(stdin);
487 if (w == WEOF) exit(1);
488 wc = w;
489 fputwc(wc,stdout);
490]])],
034d378b 491[AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
3aecf79d
KZ
492])
493
494AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
495#include <sched.h>
496]])
497
034d378b 498AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
3aecf79d 499
b09bc508
MF
500AC_CHECK_TYPES([sighandler_t], [], [], [[
501#include <signal.h>
502]])
503
3aecf79d
KZ
504AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
505#include <sched.h>
506]])
507
8d35bdc9
KZ
508# on Solaris, you can't mix and match standards, since we use c99
509# aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
510# check for crypt.h and use that without XOPEN_SOURCE.
511AC_CHECK_HEADERS([crypt.h])
512AC_LINK_IFELSE([AC_LANG_PROGRAM([[
513#ifdef HAVE_CRYPT_H
514#include <crypt.h>
515#else
516#define _XOPEN_SOURCE
517#include <unistd.h>
518#endif
519]], [[
520char *c = crypt("abc","pw");
521]])],[],[
522 LIBS="$LIBS -lcrypt"
523 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
524 #ifdef HAVE_CRYPT_H
525 #include <crypt.h>
526 #else
527 #define _XOPEN_SOURCE
528 #include <unistd.h>
529 #endif
530 ]], [[
531 char *c = crypt("abc","pw");
532 ]])],[
034d378b 533 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
8d35bdc9
KZ
534 have_libcrypt=yes
535 ],[
536 AC_MSG_ERROR([crypt() is not available])
537 ])
538])
034d378b 539AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
8d35bdc9 540
13f5473e 541
75ad4910
KZ
542AC_ARG_WITH([selinux],
543 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
034d378b 544 [], [with_selinux=no]
75ad4910
KZ
545)
546
3013eb9d 547AS_IF([test "x$with_selinux" = xno], [
034d378b 548 AM_CONDITIONAL([HAVE_SELINUX], [false])
3013eb9d 549], [
7e34c79f 550 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
034d378b 551 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
7e34c79f 552 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
034d378b 553 AM_CONDITIONAL([HAVE_SELINUX], [true])
7e34c79f
KZ
554 have_selinux=yes],
555 [have_selinux=no])
556
9f57e6e8
SK
557 AS_CASE([$with_selinux:$have_selinux],
558 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
559 )
312f04f4 560
3013eb9d 561 AS_IF([test "x$have_selinux" = xyes], [
312f04f4
KZ
562 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
563 # This function is missing in old libselinux 1.xx versions
564 AC_CHECK_FUNCS([security_get_initial_context])
565 UL_RESTORE_FLAGS
3013eb9d
SK
566 ])
567])
75ad4910
KZ
568AC_SUBST([SELINUX_LIBS])
569AC_SUBST([SELINUX_LIBS_STATIC])
570
571AC_ARG_WITH([audit],
572 AS_HELP_STRING([--with-audit], [compile with audit support]),
034d378b 573 [], [with_audit=no]
75ad4910
KZ
574)
575
3013eb9d 576AS_IF([test "x$with_audit" = xno], [
034d378b 577 AM_CONDITIONAL([HAVE_AUDIT], [false])
3013eb9d 578], [
034d378b 579 UL_CHECK_LIB([audit], [audit_log_user_message])
9f57e6e8
SK
580 AS_CASE([$with_audit:$have_audit],
581 [yes:no],
582 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
583 )
3013eb9d 584])
75ad4910
KZ
585
586AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
034d378b 587 [], [with_udev=auto]
75ad4910
KZ
588)
589
3013eb9d 590AS_IF([test "x$with_udev" = xno], [
034d378b 591 AM_CONDITIONAL([HAVE_UDEV], [false])
3013eb9d 592], [
034d378b 593 UL_CHECK_LIB([udev], [udev_new])
9f57e6e8
SK
594 AS_CASE([$with_udev:$have_udev],
595 [yes:no],
596 [AC_MSG_ERROR([udev selected but libudev not found])]
597 )
3013eb9d 598])
75ad4910
KZ
599
600AC_ARG_WITH([ncurses],
601 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
f06b4328 602 (--without-ncurses disables all ncurses(w) support)]),
034d378b 603 [], [with_ncurses=auto]
75ad4910 604)
034d378b 605AM_CONDITIONAL([HAVE_NCURSES], [false])
75ad4910 606
3013eb9d 607AS_IF([test "x$with_ncurses" != xno], [
75ad4910 608 have_ncurses=no
2b8f22bd
MF
609
610 dnl First try to find the pkg-config module.
611 PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
612 have_ncurses=yes
613 NCURSES_LIBS=${NCURSESW_LIBS}
614 NCURSES_CFLAGS=${NCURSESW_CFLAGS}
615 AC_DEFINE([HAVE_LIBNCURSESW])
616 ], [
617 PKG_CHECK_MODULES(NCURSES, [ncurses], [
618 have_ncurses=yes
619 AC_DEFINE([HAVE_LIBNCURSES])
620 ], [:])
621 ])
622
623 AS_IF([test "x$have_ncurses" = xyes], [
624 dnl If that worked, setup the defines that the code expects.
625 save_CPPFLAGS="$CPPFLAGS"
626 CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
627 AC_CHECK_HEADERS([ncurses.h])
628 CPPFLAGS="$save_CPPFLAGS"
629 ], [
630 dnl If that failed, fall back to classic searching.
631 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
632 AS_IF([test "x$with_ncurses" = xauto], [
633 UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
634 AS_IF([test "x$have_ncurses" = xyes], [
635 AC_CHECK_HEADERS([ncursesw/ncurses.h])
636 NCURSES_LIBS="-lncursesw"
637 ])
3013eb9d 638 ])
2b8f22bd
MF
639 AS_IF([test "x$have_ncurses" = xno], [
640 UL_CHECK_LIB(ncurses, initscr)
641 AS_IF([test "x$have_ncurses" = xyes], [
642 NCURSES_LIBS="-lncurses"
643 ])
3013eb9d
SK
644 ])
645 ])
75ad4910 646 ])
2b8f22bd 647
3013eb9d 648 AS_IF([test "x$have_ncurses" = xno], [
75ad4910 649 AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
3013eb9d
SK
650 ])
651])
2b8f22bd 652AC_SUBST([NCURSES_CFLAGS])
75ad4910
KZ
653AC_SUBST([NCURSES_LIBS])
654
655
656AC_ARG_WITH([slang],
657 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
034d378b 658 [], [with_slang=no]
75ad4910 659)
50ea6795 660have_slang=no
3013eb9d 661AS_IF([test "x$with_slang" = xyes], [
75ad4910
KZ
662 AC_CHECK_HEADERS([slang.h slang/slang.h])
663 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 664 [have_slang=yes], [], [
75ad4910
KZ
665#ifdef HAVE_SLANG_H
666#include <slang.h>
667#elif defined(HAVE_SLANG_SLANG_H)
668#include <slang/slang.h>
669#endif
670])
3013eb9d 671 AS_IF([test "x$have_slang" = xno], [
75ad4910 672 AC_MSG_ERROR([slang selected but slcurses.h not found])
3013eb9d
SK
673 ])
674])
034d378b 675AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
50ea6795 676
034d378b 677AM_CONDITIONAL([BUILD_CFDISK], [test "x$have_slang" = xyes -o "x$have_ncurses" = xyes])
50ea6795
KZ
678
679
ccf92e6d
KZ
680dnl Try pkg-config for libtinfo
681PKG_CHECK_MODULES(TINFO, [tinfo], [have_tinfo=yes], [
682 dnl If that failed, fall back to classic searching.
683 AC_CHECK_LIB([tinfo], [tgetent], [
684 have_tinfo=yes
685 TINFO_LIBS="-ltinfo"
686 TINFO_CFLAGS=""])
2b8f22bd
MF
687])
688AC_SUBST([TINFO_LIBS])
ccf92e6d 689AC_SUBST([TINFO_CFLAGS])
b88e6b02 690AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xyes])
75ad4910
KZ
691
692
693AC_ARG_WITH([utempter],
694 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
034d378b 695 [], [with_utempter=no]
75ad4910
KZ
696)
697
3013eb9d 698AS_IF([test "x$with_utempter" = xyes], [
034d378b 699 UL_CHECK_LIB([utempter], [utempter_add_record])
3013eb9d 700 AS_IF([test "x$have_utempter" = xno], [
75ad4910 701 AC_MSG_ERROR([utempter selected but libutempter not found])
3013eb9d
SK
702 ])
703], [
034d378b 704 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
3013eb9d 705])
75ad4910
KZ
706
707
d17584b6 708AC_ARG_ENABLE([most-builds],
455fe9a0 709 AS_HELP_STRING([--enable-most-builds], [build everything other than experimental code]),
034d378b 710 [], [enable_most_builds=no]
d17584b6 711)
3013eb9d 712AS_IF([test "x$enable_most_builds" = xyes], [
3a3dcbdc 713 enable_chfn_chsh=yes
d17584b6
SK
714 enable_line=yes
715 enable_mesg=yes
3a3dcbdc 716 enable_newgrp=yes
d17584b6 717 enable_reset=yes
3a3dcbdc 718 enable_socket_activation=yes
4b670c01 719 enable_journald=yes
3a3dcbdc 720 enable_tunelp=yes
cc76731e 721 enable_vipw=yes
d17584b6 722 enable_write=yes
3745d4a9 723 with_python=yes
3013eb9d 724])
d17584b6 725
1dbbde66
KZ
726dnl
727dnl libuuid
728dnl
17afb032
KZ
729AC_ARG_ENABLE([libuuid],
730 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
034d378b 731 [], [enable_libuuid=yes]
17afb032 732)
fa7be20e 733UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
734AC_SUBST([LIBUUID_VERSION])
735AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 736AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 737
3013eb9d 738AS_IF([test "x$enable_libuuid" = xyes], [
17afb032 739 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
3013eb9d 740], [
17afb032 741 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
3013eb9d 742])
48d7b13a 743
1dbbde66
KZ
744dnl
745dnl libblkid
746dnl
f910b559 747AC_ARG_ENABLE([libblkid],
1d12ed57 748 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
034d378b 749 [], [enable_libblkid=yes]
40f07ff7 750)
61a074f7 751UL_BUILD_INIT([libblkid])
033cf439 752AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
753AC_SUBST([LIBBLKID_VERSION])
754AC_SUBST([LIBBLKID_VERSION_INFO])
034d378b
SK
755AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
756AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
3013eb9d 757AS_IF([test "x$build_libblkid" = xyes], [
034d378b 758 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
3013eb9d 759])
034d378b
SK
760AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
761AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
f910b559 762
1dbbde66
KZ
763dnl
764dnl libmount
765dnl
f1cde479
KZ
766AC_ARG_ENABLE([libmount],
767 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
034d378b 768 [], [enable_libmount=check]
f1cde479 769)
61a074f7 770UL_BUILD_INIT([libmount])
13f5473e
KZ
771UL_REQUIRES_LINUX([libmount])
772UL_REQUIRES_BUILD([libmount], [libblkid])
773UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
034d378b
SK
774AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
775AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
8e368761 776
f1cde479
KZ
777AC_SUBST([LIBMOUNT_VERSION])
778AC_SUBST([LIBMOUNT_VERSION_INFO])
034d378b 779AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
13f5473e 780
f1cde479 781
eb6a03f3
KZ
782dnl
783dnl libfdisk is enabled all time if possible
784dnl
785UL_BUILD_INIT([libfdisk], [check])
786UL_REQUIRES_BUILD([libfdisk], [libuuid])
034d378b 787AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
eb6a03f3
KZ
788
789UL_BUILD_INIT([fdisk], [check])
790UL_REQUIRES_BUILD([fdisk], [libfdisk])
034d378b 791AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
eb6a03f3
KZ
792
793
434b07a0
KZ
794AC_ARG_ENABLE([mount],
795 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
034d378b 796 [], [enable_mount=check]
ecdba5dd 797)
434b07a0
KZ
798UL_BUILD_INIT([mount])
799UL_REQUIRES_BUILD([mount], [libmount])
034d378b 800AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
ecdba5dd
KZ
801
802
bafe1a75
KZ
803AC_ARG_ENABLE([losetup],
804 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
034d378b 805 [], [enable_losetup=check]
bafe1a75
KZ
806)
807UL_BUILD_INIT([losetup])
808UL_REQUIRES_LINUX([losetup])
034d378b 809AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
bafe1a75
KZ
810
811
78cdc254
KZ
812AC_ARG_ENABLE([cytune],
813 AS_HELP_STRING([--disable-cytune], [do not build cytune]),
034d378b 814 [], [enable_cytune=check]
78cdc254
KZ
815)
816UL_BUILD_INIT([cytune])
817UL_REQUIRES_LINUX([cytune])
034d378b 818AM_CONDITIONAL([BUILD_CYTUNE], [test "x$build_cytune" = xyes])
78cdc254
KZ
819
820
1dbbde66
KZ
821AC_ARG_ENABLE([fsck],
822 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
034d378b 823 [], [enable_fsck=check]
1dbbde66 824)
61a074f7 825UL_BUILD_INIT([fsck])
a7b585ea 826UL_REQUIRES_BUILD([fsck], [libmount])
034d378b 827AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
1dbbde66
KZ
828
829
830AC_ARG_ENABLE([partx],
831 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
034d378b 832 [], [enable_partx=check]
1dbbde66 833)
61a074f7 834UL_BUILD_INIT([partx])
ecde2536
KZ
835UL_REQUIRES_LINUX([partx])
836UL_REQUIRES_BUILD([partx], [libblkid])
034d378b 837AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
1dbbde66
KZ
838
839
1dbbde66
KZ
840AC_ARG_ENABLE([uuidd],
841 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
034d378b 842 [], [enable_uuidd=check]
1dbbde66 843)
61a074f7 844UL_BUILD_INIT([uuidd])
bcdab497 845UL_REQUIRES_BUILD([uuidd], [libuuid])
3013eb9d 846AS_IF([test "x$build_uuidd" = xyes], [
034d378b 847 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
3013eb9d 848])
034d378b 849AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
1dbbde66
KZ
850
851
0164c245 852AC_ARG_ENABLE([mountpoint],
2023ccc4 853 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
034d378b 854 [], [enable_mountpoint=check]
0164c245 855)
61a074f7 856UL_BUILD_INIT([mountpoint])
a9127bc1 857UL_REQUIRES_BUILD([mountpoint], [libmount])
034d378b 858AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
0164c245
KZ
859
860
10e56b49
KZ
861AC_ARG_ENABLE([fallocate],
862 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
034d378b 863 [], [enable_fallocate=check]
10e56b49 864)
61a074f7 865UL_BUILD_INIT([fallocate])
10e56b49
KZ
866UL_REQUIRES_LINUX([fallocate])
867UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
034d378b 868AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
10e56b49 869
3013eb9d 870AS_IF([test "x$build_fallocate" = xyes], [
10e56b49
KZ
871 dnl check for valid fallocate() function
872 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
873 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
874 dnl and program can't be linked.
875 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
876 dnl function prototype.
877 AC_MSG_CHECKING([for valid fallocate() function])
878 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
879#ifdef HAVE_UNISTD_H
880# include <unistd.h>
881#endif
882#ifdef HAVE_SYS_TYPES_H
883# include <sys/types.h>
884#endif
885#ifdef HAVE_LINUX_FALLOC_H
886# include <linux/falloc.h>
887#endif
888#ifdef HAVE_FCNTL_H
889# include <fcntl.h>
890#endif
891]],[[
892 long ret;
b832c2fe 893 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
894 if (ret != 0) {
895 return 1;
896 }
897 ]])],[
10e56b49 898 AC_MSG_RESULT([yes])
034d378b 899 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
10e56b49 900 AC_MSG_RESULT([no])])
3013eb9d 901])
10e56b49 902
19a224ad 903
a2ea6670
KZ
904AC_ARG_ENABLE([unshare],
905 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
034d378b 906 [], [enable_unshare=check]
a2ea6670 907)
61a074f7 908UL_BUILD_INIT([unshare])
a2ea6670
KZ
909UL_REQUIRES_LINUX([unshare])
910UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
034d378b 911AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
bdd384d1 912AC_CHECK_FUNCS([unshare])
b3425806 913
f8aa8e94
EB
914AC_ARG_ENABLE([nsenter],
915 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
034d378b 916 [], [enable_nsenter=check]
f8aa8e94
EB
917)
918UL_BUILD_INIT([nsenter])
919UL_REQUIRES_LINUX([nsenter])
6cd4beac 920UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
034d378b 921AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
bdd384d1 922AC_CHECK_FUNCS([setns])
b3425806 923
5600c405
AL
924dnl setpriv depends on libcap-ng. It would be possible to build
925dnl a version of setpriv with limited functionality without libcap-ng,
926dnl but this isn't currently supported.
927UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
928AC_ARG_ENABLE([setpriv],
929 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
034d378b 930 [], [enable_setpriv=check]
5600c405
AL
931)
932UL_BUILD_INIT([setpriv])
933UL_REQUIRES_LINUX([setpriv])
48469f90 934UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
e1b8ba20 935UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
034d378b 936AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
5600c405
AL
937
938
539feec1
ML
939AC_ARG_ENABLE([eject],
940 AS_HELP_STRING([--disable-eject], [do not build eject]),
034d378b 941 [], [enable_eject=check]
539feec1
ML
942)
943UL_BUILD_INIT([eject])
944UL_REQUIRES_LINUX([eject])
7770e7df 945UL_REQUIRES_BUILD([eject], [libmount])
034d378b 946AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
539feec1
ML
947
948
48d7b13a 949AC_ARG_ENABLE([agetty],
7fa4f112 950 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
034d378b 951 [], [enable_agetty=yes]
48d7b13a 952)
61a074f7 953UL_BUILD_INIT([agetty])
034d378b 954AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
0fc74be1 955
48d7b13a 956
9cb68977 957AC_ARG_ENABLE([cramfs],
7fa4f112 958 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
034d378b 959 [], [enable_cramfs=check]
9cb68977 960)
61a074f7 961UL_BUILD_INIT([cramfs])
034d378b 962AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
d81b5a52 963UL_REQUIRES_HAVE([cramfs], [z], [z library])
034d378b 964AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
9cb68977 965
a13cdb7a 966
8d6f0bae 967AC_ARG_ENABLE([bfs],
834fc88c 968 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
034d378b 969 [], [enable_bfs=yes]
834fc88c
KZ
970)
971UL_BUILD_INIT([bfs])
034d378b 972AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
834fc88c
KZ
973
974
8d6f0bae
KZ
975AC_ARG_ENABLE([fdformat],
976 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
034d378b 977 [], [enable_fdformat=check]
8d6f0bae
KZ
978)
979UL_BUILD_INIT([fdformat])
980UL_REQUIRES_LINUX([fdformat])
034d378b 981AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
8d6f0bae
KZ
982
983
6acf31ac
KZ
984AC_ARG_ENABLE([hwclock],
985 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
034d378b 986 [], [enable_hwclock=check]
6acf31ac
KZ
987)
988have_linuxdummy=$linux_os
989
990UL_BUILD_INIT([hwclock])
991UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
034d378b 992AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
e09ebf22
KZ
993
994
7b040214
KZ
995UL_BUILD_INIT([fstrim], [check])
996UL_REQUIRES_LINUX([fstrim])
997UL_REQUIRES_BUILD([fstrim], [libmount])
998AM_CONDITIONAL([BUILD_FSTRIM], [test "x$build_fstrim" = xyes])
999
1000
143635c9
KZ
1001UL_BUILD_INIT([swapon], [check])
1002UL_REQUIRES_LINUX([swapon])
1003UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 1004UL_REQUIRES_BUILD([swapon], [libmount])
034d378b 1005AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
143635c9
KZ
1006
1007
61a074f7 1008UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
1009UL_REQUIRES_LINUX([lsblk])
1010UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 1011UL_REQUIRES_BUILD([lsblk], [libmount])
034d378b 1012AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
9cb68977 1013
a3d3b770 1014
61a074f7 1015UL_BUILD_INIT([lscpu], [check])
da396d88
KZ
1016UL_REQUIRES_LINUX([lscpu])
1017UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
034d378b 1018AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
da396d88 1019
a3d3b770 1020
61a074f7 1021UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
1022UL_REQUIRES_LINUX([chcpu])
1023UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
034d378b 1024AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
da396d88 1025
a13cdb7a 1026
7fcccbdf
KZ
1027AC_ARG_ENABLE([wdctl],
1028 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
034d378b 1029 [], [enable_wdctl=check]
7fcccbdf
KZ
1030)
1031UL_BUILD_INIT([wdctl])
5b0289b9
KZ
1032UL_REQUIRES_LINUX([wdctl])
1033UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
034d378b 1034AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
5b0289b9
KZ
1035
1036
54dbc8cf
KZ
1037UL_BUILD_INIT([swaplabel], [check])
1038UL_REQUIRES_BUILD([swaplabel], [libblkid])
034d378b 1039AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
54dbc8cf
KZ
1040
1041
945ac250
KZ
1042UL_BUILD_INIT([prlimit], [check])
1043UL_REQUIRES_LINUX([prlimit])
1044UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
034d378b 1045AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
3013eb9d 1046AS_IF([test "x$build_prlimit" = xyes], [
945ac250 1047 AC_CHECK_FUNCS([prlimit])
3013eb9d 1048])
945ac250
KZ
1049
1050
3dc02ef4
DB
1051UL_BUILD_INIT([lslocks], [check])
1052UL_REQUIRES_LINUX([lslocks])
ec1204dc 1053UL_REQUIRES_BUILD([lslocks], [libmount])
034d378b 1054AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
3dc02ef4
DB
1055
1056
bd671347
KZ
1057AC_ARG_ENABLE([switch_root],
1058 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
034d378b 1059 [], [enable_switch_root=check]
bd671347 1060)
61a074f7 1061UL_BUILD_INIT([switch_root])
a3d3b770
KZ
1062UL_REQUIRES_LINUX([switch_root])
1063UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
034d378b 1064AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
bd671347
KZ
1065
1066
11125e7a
KZ
1067AC_ARG_ENABLE([pivot_root],
1068 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
034d378b 1069 [], [enable_pivot_root=check]
11125e7a 1070)
61a074f7 1071UL_BUILD_INIT([pivot_root])
9f632667
KZ
1072UL_REQUIRES_LINUX([switch_root])
1073UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
034d378b 1074AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
11125e7a
KZ
1075
1076
1342ffcb
SK
1077AC_ARG_ENABLE([tunelp],
1078 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
034d378b 1079 [], [enable_tunelp=no]
1342ffcb
SK
1080)
1081UL_BUILD_INIT([tunelp])
1082UL_REQUIRES_LINUX([tunelp])
034d378b 1083AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1342ffcb
SK
1084
1085
48d7b13a 1086AC_ARG_ENABLE([kill],
4be753aa 1087 AS_HELP_STRING([--disable-kill], [do not build kill]),
034d378b 1088 [], [enable_kill=check]
48d7b13a 1089)
61a074f7 1090UL_BUILD_INIT([kill])
4be753aa 1091UL_REQUIRES_LINUX([kill])
034d378b 1092AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
48d7b13a
KZ
1093
1094
ce602720
OO
1095AC_ARG_ENABLE([deprecated-last],
1096 AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
1097 [], [enable_deprecated_last=no]
1098)
1099UL_BUILD_INIT([deprecated_last])
ce602720
OO
1100AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1101
1102
48d7b13a 1103AC_ARG_ENABLE([last],
ce602720 1104 AS_HELP_STRING([--disable-last], [do not build last]),
4d1d1233 1105 [], [enable_last=check]
48d7b13a 1106)
61a074f7 1107UL_BUILD_INIT([last])
4d1d1233 1108UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
034d378b 1109AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
2dc68529 1110
48d7b13a 1111
78d5ceac 1112AC_ARG_ENABLE([utmpdump],
c9b53461 1113 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
034d378b 1114 [], [enable_utmpdump=yes]
78d5ceac
KZ
1115)
1116UL_BUILD_INIT([utmpdump])
034d378b 1117AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
78d5ceac
KZ
1118
1119
c135a8bd
SK
1120AC_ARG_ENABLE([line],
1121 AS_HELP_STRING([--enable-line], [build line]),
034d378b 1122 [], [enable_line=no]
c135a8bd 1123)
61a074f7 1124UL_BUILD_INIT([line])
034d378b 1125AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
2dc68529 1126
48d7b13a
KZ
1127
1128AC_ARG_ENABLE([mesg],
1cc62b35
KZ
1129 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1130 [], [enable_mesg=yes]
48d7b13a 1131)
61a074f7 1132UL_BUILD_INIT([mesg])
034d378b 1133AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
48d7b13a
KZ
1134
1135
48d7b13a 1136AC_ARG_ENABLE([raw],
53b22add 1137 AS_HELP_STRING([--disable-raw], [do not build raw]),
034d378b 1138 [], [enable_raw=check]
48d7b13a 1139)
61a074f7 1140UL_BUILD_INIT([raw])
16ba8d58
KZ
1141UL_REQUIRES_LINUX([raw])
1142UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
034d378b 1143AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
48d7b13a
KZ
1144
1145
48d7b13a 1146AC_ARG_ENABLE([rename],
7fa4f112 1147 AS_HELP_STRING([--disable-rename], [do not build rename]),
034d378b 1148 [], [enable_rename=yes]
48d7b13a 1149)
61a074f7 1150UL_BUILD_INIT([rename])
034d378b 1151AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
48d7b13a
KZ
1152
1153
1154AC_ARG_ENABLE([reset],
7fa4f112 1155 AS_HELP_STRING([--enable-reset], [build reset]),
034d378b 1156 [], [enable_reset=no]
48d7b13a 1157)
61a074f7 1158UL_BUILD_INIT([reset])
034d378b 1159AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
48d7b13a
KZ
1160
1161
cc76731e
KZ
1162AC_ARG_ENABLE([vipw],
1163 AS_HELP_STRING([--enable-vipw], [build vipw]),
034d378b 1164 [], [enable_vipw=no]
48d7b13a 1165)
cc76731e 1166UL_BUILD_INIT([vipw])
034d378b 1167AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
9cb68977 1168
c94b3604 1169
aec9ecbd
KZ
1170AC_ARG_ENABLE([newgrp],
1171 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
034d378b 1172 [], [enable_newgrp=no]
aec9ecbd
KZ
1173)
1174UL_BUILD_INIT([newgrp])
034d378b 1175AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
aec9ecbd
KZ
1176
1177
d86918b6 1178AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
034d378b 1179 [], [with_user=check]
7e4714f2 1180)
6e93c52f 1181have_user=no
3013eb9d 1182AS_IF([test "x$with_user" != xno], [
2771954b 1183 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
9f57e6e8
SK
1184 AS_CASE([$with_user:$have_user],
1185 [yes:no],
1186 [AC_MSG_ERROR([user selected but libuser not found])],
1187 [*:yes],
1188 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1189 )
1f6ec24c
KZ
1190 # temporary solution, libuser has stupid .pc where are exported all
1191 # private dependencies to Requires: instead of Requires.private:
3013eb9d 1192 AS_IF([test "x$have_user" = xyes], [
1f6ec24c 1193 LIBUSER_LIBS=-luser
3013eb9d
SK
1194 ])
1195])
034d378b 1196AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
7e4714f2 1197
d86918b6
KZ
1198AC_ARG_ENABLE([chfn-chsh-password],
1199 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
034d378b 1200 [], [enable_chfn_chsh_password=yes]
d86918b6
KZ
1201)
1202
1203AC_ARG_ENABLE([chfn-chsh],
1204 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
034d378b 1205 [], [enable_chfn_chsh=no]
d86918b6
KZ
1206)
1207UL_BUILD_INIT([chfn_chsh])
1208
3013eb9d 1209AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
d86918b6 1210 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_misc_h], [PAM header file])
034d378b 1211 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
3013eb9d 1212])
034d378b
SK
1213AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1214AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
d86918b6
KZ
1215
1216AC_ARG_ENABLE([chsh-only-listed],
1217AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1218[], enable_chsh_only_listed=yes
1219)
7e4714f2 1220
3013eb9d
SK
1221AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1222 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1223])
71681ee5 1224
2c8a3e16 1225
e7614a07
KZ
1226AC_ARG_ENABLE([login],
1227 AS_HELP_STRING([--disable-login], [do not build login]),
034d378b 1228 [], [enable_login=check]
e7614a07
KZ
1229)
1230UL_BUILD_INIT([login])
1231UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
034d378b 1232AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
e7614a07 1233
71681ee5
KZ
1234AC_ARG_ENABLE([login-chown-vcs],
1235 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
034d378b 1236 [], [enable_login_chown_vcs=no]
71681ee5
KZ
1237)
1238
3013eb9d 1239AS_IF([test "x$enable_login_chown_vcs" = xyes], [
034d378b 1240 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
3013eb9d 1241])
71681ee5
KZ
1242
1243AC_ARG_ENABLE([login-stat-mail],
1244 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
034d378b 1245 [], [enable_login_stat_mail=no]
71681ee5
KZ
1246)
1247
3013eb9d 1248AS_IF([test "x$enable_login_stat_mail" = xyes], [
034d378b 1249 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
3013eb9d 1250])
71681ee5 1251
e7614a07 1252
88407b93
KZ
1253AC_ARG_ENABLE([nologin],
1254 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1255 [], [enable_nologin=yes]
1256)
1257UL_BUILD_INIT([nologin])
1258AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1259
1260
e7614a07
KZ
1261AC_ARG_ENABLE([sulogin],
1262 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
034d378b 1263 [], [enable_sulogin=yes]
e7614a07
KZ
1264)
1265UL_BUILD_INIT([sulogin])
034d378b 1266AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
e7614a07 1267
f17f5f48 1268
ff4c5555
KZ
1269AC_ARG_ENABLE([su],
1270 AS_HELP_STRING([--disable-su], [do not build su]),
034d378b 1271 [], [enable_su=check]
ff4c5555
KZ
1272)
1273UL_BUILD_INIT([su])
1274UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
034d378b 1275AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
ff4c5555
KZ
1276
1277
7ec6adb1
KZ
1278AC_ARG_ENABLE([runuser],
1279 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
034d378b 1280 [], [enable_runuser=check]
7ec6adb1
KZ
1281)
1282UL_BUILD_INIT([runuser])
1283UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
034d378b 1284AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
7ec6adb1
KZ
1285
1286
53b22add
KZ
1287AC_ARG_ENABLE([ul],
1288 AS_HELP_STRING([--disable-ul], [do not build ul]),
034d378b 1289 [], [enable_ul=check]
53b22add
KZ
1290)
1291UL_BUILD_INIT([ul])
1292UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
034d378b 1293AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
53b22add
KZ
1294
1295
1296AC_ARG_ENABLE([more],
1297 AS_HELP_STRING([--disable-more], [do not build more]),
034d378b 1298 [], [enable_more=check]
53b22add
KZ
1299)
1300UL_BUILD_INIT([more])
1301UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
034d378b 1302AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
53b22add
KZ
1303
1304
1305AC_ARG_ENABLE([pg],
1306 AS_HELP_STRING([--disable-pg], [do not build pg]),
034d378b 1307 [], [enable_pg=check]
53b22add
KZ
1308)
1309UL_BUILD_INIT([pg])
1310UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
034d378b 1311AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
53b22add
KZ
1312
1313
d78d0409
KZ
1314AC_ARG_ENABLE([setterm],
1315 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
034d378b 1316 [], [enable_setterm=check]
d78d0409
KZ
1317)
1318UL_BUILD_INIT([setterm])
1319UL_REQUIRES_LINUX([setterm])
1320UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
034d378b 1321AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
d78d0409
KZ
1322
1323
48d7b13a 1324AC_ARG_ENABLE([schedutils],
34228e69 1325 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
034d378b 1326 [], [enable_schedutils=yes]
48d7b13a 1327)
61a074f7 1328UL_BUILD_INIT([schedutils])
034d378b 1329AM_CONDITIONAL([BUILD_SCHEDUTILS], [test "x$build_schedutils" = xyes])
17d5e11b 1330
61a074f7 1331UL_BUILD_INIT([ionice], [check])
17d5e11b
KZ
1332UL_REQUIRES_BUILD([ionice], [schedutils])
1333UL_REQUIRES_SYSCALL_CHECK([ionice],
1334 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
1335 [alpha], [442],
1336 [i*86], [289],
1337 [ia64*], [1274],
1338 [powerpc*], [273],
1339 [s390*], [282],
1340 [sparc*], [196],
1341 [sh*], [288],
1342 [x86_64*], [251])],
17d5e11b
KZ
1343 [ioprio_set])
1344
1345UL_REQUIRES_SYSCALL_CHECK([ionice],
1346 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
1347 [alpha], [443],
1348 [i*86], [290],
1349 [ia64*], [1275],
1350 [powerpc*], [274],
1351 [s390*], [283],
1352 [sparc*], [218],
1353 [sh*], [289],
1354 [x86_64*], [252])],
17d5e11b
KZ
1355 [ioprio_get])
1356
034d378b 1357AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
17d5e11b 1358
61a074f7 1359UL_BUILD_INIT([taskset], [check])
17d5e11b 1360UL_REQUIRES_BUILD([taskset], [schedutils])
e21e6d26 1361UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
1362UL_REQUIRES_SYSCALL_CHECK([taskset],
1363 [UL_CHECK_SYSCALL([sched_getaffinity])],
1364 [sched_getaffinity])
034d378b 1365AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
48d7b13a
KZ
1366
1367
1368AC_ARG_ENABLE([wall],
7fa4f112 1369 AS_HELP_STRING([--disable-wall], [do not build wall]),
034d378b 1370 [], [enable_wall=yes]
48d7b13a 1371)
8fc8888b 1372UL_BUILD_INIT([wall])
034d378b 1373AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
48d7b13a
KZ
1374
1375
1376AC_ARG_ENABLE([write],
7fa4f112 1377 AS_HELP_STRING([--enable-write], [build write]),
034d378b 1378 [], [enable_write=no]
48d7b13a 1379)
61a074f7 1380UL_BUILD_INIT([write])
034d378b 1381AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
48d7b13a
KZ
1382
1383
bbe289c4
PU
1384AC_ARG_ENABLE([socket-activation],
1385 AS_HELP_STRING([--enable-socket-activation], [build uuidd with support for systemd socket activation]),
034d378b 1386 [], [enable_socket_activation=no]
bbe289c4 1387)
ea45d34c 1388have_systemd_daemon=no
3013eb9d 1389AS_IF([test "x$enable_socket_activation" = xyes], [
ea45d34c
SK
1390 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon], [], [
1391 AC_MSG_ERROR([cannot find libsystemd-daemon support])
1392 ])
1393 have_systemd_daemon=yes
1394 AC_DEFINE([HAVE_LIBSYSTEMD_DAEMON], [1], [Define if libsystemd-daemon is available])
3013eb9d 1395])
ea45d34c 1396AM_CONDITIONAL([HAVE_SYSTEMD_DAEMON], [test "x$have_systemd_daemon" = xyes])
bbe289c4 1397
1b68c379
PU
1398AC_ARG_WITH([systemdsystemunitdir],
1399 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
c8498f2f 1400 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1b68c379 1401
3013eb9d 1402AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1b68c379 1403 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
3013eb9d 1404])
1b68c379 1405
bbe289c4 1406
4b670c01
SK
1407AC_ARG_ENABLE([journald],
1408 AS_HELP_STRING([--enable-journald], [add journald support to logger]),
1409 [], [enable_journald=no]
1410)
1411have_journald=no
1412AS_IF([test "x$enable_journald" = xyes], [
1413 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal], [], [
1414 AC_MSG_ERROR([cannot find libsystemd-journal support])
1415 ])
1416 have_journald=yes
1417 AC_DEFINE([HAVE_JOURNALD], [1], [Define if journald is available])
1418])
1419AM_CONDITIONAL([HAVE_JOURNALD], [test "x$have_journald" = xyes])
1420
1421
b8095d25
KZ
1422AC_ARG_WITH([smack],
1423 AS_HELP_STRING([--with-smack], [build with SMACK support]),
1424 [], [with_smack=no]
1425)
1426AS_IF([test "x$with_smack" = xyes], [
1427 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
1428])
1429
1430
9cc36e9f
SK
1431AC_ARG_WITH([bashcompletiondir],
1432 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1433 [],
c8498f2f
SK
1434 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1435 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
9cc36e9f
SK
1436 ], [
1437 with_bashcompletiondir=${datadir}/bash-completion/completions
1438 ])
1439])
1440AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1441
ece777e9
KZ
1442AC_ARG_ENABLE([bash-completion],
1443 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
034d378b 1444 [], [enable_bash_completion=yes]
ece777e9
KZ
1445)
1446
034d378b 1447AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
ece777e9 1448
9cc36e9f 1449
d78df0ac 1450AC_ARG_WITH([python],
3745d4a9
KZ
1451 AS_HELP_STRING([--with-python], [generate python bindings, use --with-python={2,3} to force version]),
1452 [], [with_python=no]
d78df0ac 1453)
8e5c4675 1454
d78df0ac 1455have_python=no
8e5c4675
KZ
1456AS_IF([test "x$with_python" != xno], [
1457 # We follow distributions default and look for PKG module name "python"
1458 # (minimal version is 2) but if major version is explicitly specified by
1459 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1460 # "python3".
0b567ae5
SK
1461 AS_IF([test "x$withval" != xno -a "x$withval" != xyes],
1462 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
1463 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
8e5c4675
KZ
1464 AS_CASE([$with_python:$have_python],
1465 [yes:no],
0b567ae5 1466 [AC_MSG_ERROR([python selected but libpython not found])]
8e5c4675 1467 )
0b567ae5 1468 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])
d924b10b
KZ
1469
1470 UL_BUILD_INIT([pylibmount], [check])
1471 UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
1472 UL_REQUIRES_BUILD([pylibmount], [libmount])
d78df0ac
KZ
1473])
1474
d78df0ac
KZ
1475AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1476
1477
48d7b13a 1478AC_ARG_ENABLE([pg-bell],
7fa4f112 1479 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
034d378b 1480 [], [enable_pg_bell=yes]
48d7b13a
KZ
1481)
1482
3013eb9d 1483AS_IF([test "x$enable_pg_bell" = xyes], [
034d378b 1484 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
3013eb9d 1485])
48d7b13a
KZ
1486
1487
bb4cb69d
MF
1488AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1489AC_ARG_ENABLE([fs-paths-default],
1490 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
9f57e6e8
SK
1491 [AS_CASE([$enableval],
1492 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
1493 [no], [fs_paths_defaults=""],
1494 [fs_paths_defaults="$enableval"]
1495 )],
bb4cb69d
MF
1496 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1497)
1498AC_ARG_ENABLE([fs-paths-extra],
1499 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
9f57e6e8
SK
1500 [AS_CASE([$enableval],
1501 [yes|no], [fs_paths_extra=""],
1502 [fs_paths_extra="$enableval"]
1503 )],
bb4cb69d
MF
1504 [fs_paths_extra=""]
1505)
1506fs_paths="$fs_paths_defaults"
3013eb9d
SK
1507AS_IF([test "x$fs_paths_extra" != "x"], [
1508 AS_IF([test "x$fs_paths" != "x"], [
bb4cb69d 1509 fs_paths="${fs_paths}:"
3013eb9d 1510 ])
bb4cb69d 1511 fs_paths="${fs_paths}${fs_paths_extra}"
3013eb9d 1512])
bb4cb69d
MF
1513AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1514
1515
48d7b13a 1516AC_ARG_ENABLE([use-tty-group],
7fa4f112 1517 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
034d378b 1518 [], [enable_use_tty_group=yes]
48d7b13a 1519)
034d378b 1520AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
48d7b13a 1521
3013eb9d 1522AS_IF([test "x$enable_use_tty_group" = xyes], [
034d378b 1523 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
3013eb9d 1524])
48d7b13a 1525
ab6478ef
WF
1526
1527AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
1528 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1529 [use emergency mount of /dev and /proc for sulogin]),
034d378b 1530 [], [enable_sulogin_emergency_mount=no]
ab6478ef
WF
1531)
1532
3013eb9d 1533AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
034d378b 1534 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
ab6478ef 1535 [Should sulogin use a emergency mount of /dev and /proc?])
3013eb9d 1536])
ab6478ef
WF
1537
1538
f3831bbd
KZ
1539AC_ARG_ENABLE([makeinstall-chown],
1540 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
034d378b 1541 [], [enable_makeinstall_chown=yes]
f3831bbd 1542)
034d378b 1543AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
f3831bbd 1544
4c24a7ae
KZ
1545AC_ARG_ENABLE([makeinstall-setuid],
1546 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
034d378b 1547 [], [enable_makeinstall_setuid=yes]
4c24a7ae 1548)
034d378b 1549AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
4c24a7ae 1550
06bcee19 1551
1f10890f
SK
1552AC_ARG_VAR([SUID_CFLAGS],
1553 [CFLAGS used for binaries which are usually with the suid bit])
1554AC_ARG_VAR([SUID_LDFLAGS],
1555 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 1556
03d00d49
KZ
1557AC_ARG_VAR([DAEMON_CFLAGS],
1558 [CFLAGS used for binaries which are usually executed as daemons])
1559AC_ARG_VAR([DAEMON_LDFLAGS],
1560 [LDFLAGS used for binaries which are usually executed as daemons])
1561
1562AC_ARG_VAR([SOLIB_CFLAGS],
1563 [CFLAGS used for shared libraries])
1564AC_ARG_VAR([SOLIB_LDFLAGS],
1565 [LDFLAGS used for shared libraries])
1566
9cb68977 1567LIBS=""
48d7b13a 1568
48d7b13a 1569
034d378b 1570AC_CONFIG_HEADERS([config.h])
48d7b13a 1571
d4baf92e
KZ
1572#
1573# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1574# more details.
1575#
8eeb575c 1576AC_CONFIG_FILES([
f06b4328 1577Makefile
31a938ac 1578libblkid/docs/Makefile
8fb4efae 1579libblkid/docs/version.xml
8fb4efae 1580libblkid/src/blkid.h
31a938ac 1581libmount/docs/Makefile
2aefc0a8 1582libmount/docs/version.xml
f06b4328 1583libmount/src/libmount.h
f06b4328 1584po/Makefile.in
8eeb575c 1585])
48d7b13a
KZ
1586
1587AC_OUTPUT
4e1073c2
KZ
1588
1589AC_MSG_RESULT([
1590 ${PACKAGE} ${VERSION}
1591
1592 prefix: ${prefix}
1593 exec prefix: ${exec_prefix}
1594
1595 localstatedir: ${localstatedir}
1596 bindir: ${bindir}
1597 sbindir: ${sbindir}
1598 libdir: ${libdir}
1599 includedir: ${includedir}
4e1073c2
KZ
1600 usrbin_execdir: ${usrbin_execdir}
1601 usrsbin_execdir: ${usrsbin_execdir}
1602 usrlib_execdir: ${usrlib_execdir}
1603
1604 compiler: ${CC}
1605 cflags: ${CFLAGS}
1606 suid cflags: ${SUID_CFLAGS}
1607 ldflags: ${LDFLAGS}
1608 suid ldflags: ${SUID_LDFLAGS}
8e5c4675 1609
0b567ae5
SK
1610 Python: ${PYTHON}
1611 Python version: ${PYTHON_VERSION}
3745d4a9
KZ
1612 Python libs: ${pyexecdir}
1613
8e5c4675 1614 Bash completions: ${with_bashcompletiondir}
4e1073c2
KZ
1615
1616 warnings:
1617
1618${WARN_CFLAGS}
1619])