]> git.ipfire.org Git - thirdparty/util-linux.git/blame - configure.ac
build-sys: support list of variables for UL_REQUIRES_HAVE macro
[thirdparty/util-linux.git] / configure.ac
CommitLineData
38c75b59
SK
1AC_INIT(util-linux,
2 m4_esyscmd([tools/git-version-gen .tarball-version]),
3 kzak@redhat.com)
baf39af1 4
7fc9786b 5AC_PREREQ(2.60)
48d7b13a
KZ
6
7AC_CONFIG_AUX_DIR(config)
b12991dd 8AC_CONFIG_MACRO_DIR([m4])
333034f6 9AM_INIT_AUTOMAKE([-Wall foreign 1.10 tar-pax dist-bzip2 no-dist-gzip dist-xz -Wno-portability subdir-objects])
48d7b13a 10
eb35c251 11m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
f06b4328 12 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
eb35c251 13
d2feb47f 14AC_CONFIG_SRCDIR(sys-utils/mount.c)
15a9b48c
SK
15AC_PREFIX_DEFAULT([/usr])
16
33b0be6d
KZ
17dnl version details from <major>.<minor>[-<suffix>]
18PACKAGE_VERSION_MAJOR=$(echo $PACKAGE_VERSION | awk -F. '{print $1}')
19PACKAGE_VERSION_MINOR=$(echo $PACKAGE_VERSION | awk -F. '{print $2}' \
f06b4328 20 | awk -F- '{print $1}')
33b0be6d 21PACKAGE_VERSION_RELEASE=0
a0948ffe 22
33b0be6d
KZ
23dnl libblkid version
24LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
58e6e67a 25LIBBLKID_DATE="04-Sep-2012"
dc2b8d87
KZ
26LIBBLKID_LT_MAJOR=1
27LIBBLKID_LT_MINOR=1
28LIBBLKID_LT_MICRO=0
29LIBBLKID_VERSION_INFO=`expr $LIBBLKID_LT_MAJOR + $LIBBLKID_LT_MINOR`:$LIBBLKID_LT_MICRO:$LIBBLKID_LT_MINOR
a0948ffe 30
f6076f55
KZ
31dnl libuuid version
32LIBUUID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
dc2b8d87
KZ
33LIBUUID_LT_MAJOR=1
34LIBUUID_LT_MINOR=3
35LIBUUID_LT_MICRO=0
36LIBUUID_VERSION_INFO=`expr $LIBUUID_LT_MAJOR + $LIBUUID_LT_MINOR`:$LIBUUID_LT_MICRO:$LIBUUID_LT_MINOR
f6076f55 37
f1cde479
KZ
38dnl libmount version
39LIBMOUNT_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE"
40LIBMOUNT_LT_MAJOR=1
41LIBMOUNT_LT_MINOR=1
42LIBMOUNT_LT_MICRO=0
43LIBMOUNT_VERSION_INFO=`expr $LIBMOUNT_LT_MAJOR + $LIBMOUNT_LT_MINOR`:$LIBMOUNT_LT_MICRO:$LIBMOUNT_LT_MINOR
44
15a9b48c
SK
45# Check whether exec_prefix=/usr:
46case $exec_prefix:$prefix in
47NONE:NONE | NONE:/usr | /usr:*)
48 AC_MSG_NOTICE([Default --exec-prefix detected.])
49 case $bindir in
50 '${exec_prefix}/bin') bindir=/bin
51 AC_MSG_NOTICE([ --bindir defaults to /bin]) ;;
52 esac
53 case $sbindir in
54 '${exec_prefix}/sbin') sbindir=/sbin
55 AC_MSG_NOTICE([ --sbindir defaults to /sbin]) ;;
971f57f6
KZ
56 esac
57 case $libdir in
58 '${exec_prefix}/lib') libdir=/lib
59 AC_MSG_NOTICE([ --libdir defaults to /lib]) ;;
15a9b48c
SK
60 esac ;;
61esac
48d7b13a 62
07a16b9d 63case $prefix:$localstatedir in
10a42fb7 64 NONE:'${prefix}/var' | /usr:'${prefix}/var')
07a16b9d
SK
65 localstatedir=/run
66 AC_MSG_NOTICE([ --localstatedir defaults to /run])
67 ;;
07a16b9d 68esac
11935cd3 69AC_SUBST([localstatedir])
07a16b9d 70
b0a0d7d5 71
996fb358 72# The original default values of {bin,sbin,lib}dir
aaf3e8f5 73usrbin_execdir='${exec_prefix}/bin'
30688dde 74AC_SUBST([usrbin_execdir])
996fb358 75
aaf3e8f5 76usrsbin_execdir='${exec_prefix}/sbin'
30688dde 77AC_SUBST([usrsbin_execdir])
996fb358 78
df0bd828
KZ
79case $libdir in
80 '${exec_prefix}/'* | '${prefix}/'* | /usr/*)
81 usrlib_execdir=$libdir ;;
82 *)
83 usrlib_execdir='${exec_prefix}'$libdir ;;
84esac
30688dde 85AC_SUBST([usrlib_execdir])
996fb358 86
bdf5f542 87
31c9c1c4 88AM_PROG_CC_C_O
48d7b13a 89AC_PROG_CC_STDC
240f7101 90AC_GNU_SOURCE
a6996860 91AC_CANONICAL_HOST
85b4c147 92AC_C_CONST
e79829db 93AC_C_VOLATILE
fbaec83b 94AC_C_BIGENDIAN
b12991dd 95
0e60bc9b 96dnl Compiler warnings
b1b54edf 97UL_WARN_ADD([-fno-common])
9dc72d0b 98UL_WARN_ADD([-Wall])
b1b54edf 99UL_WARN_ADD([-Werror=sequence-point])
0e60bc9b 100UL_WARN_ADD([-Wextra])
b1b54edf
KZ
101UL_WARN_ADD([-Wmissing-declarations])
102UL_WARN_ADD([-Wmissing-parameter-type])
103UL_WARN_ADD([-Wmissing-prototypes])
0e60bc9b 104UL_WARN_ADD([-Wno-missing-field-initializers])
b1b54edf 105UL_WARN_ADD([-Wredundant-decls])
0e60bc9b
KZ
106UL_WARN_ADD([-Wsign-compare])
107UL_WARN_ADD([-Wtype-limits])
108UL_WARN_ADD([-Wuninitialized])
b1b54edf
KZ
109UL_WARN_ADD([-Wunused-but-set-parameter])
110UL_WARN_ADD([-Wunused-but-set-variable])
0e60bc9b 111UL_WARN_ADD([-Wunused-parameter])
0e60bc9b 112UL_WARN_ADD([-Wunused-result])
bec5c9db 113UL_WARN_ADD([-Wunused-variable])
dcd33c3e
KZ
114UL_WARN_ADD([-Wnested-externs])
115UL_WARN_ADD([-Wpointer-arith])
116UL_WARN_ADD([-Wstrict-prototypes])
117UL_WARN_ADD([-Wformat-security])
0e60bc9b
KZ
118AC_SUBST([WARN_CFLAGS])
119
b12991dd
KZ
120dnl libtool-2
121LT_INIT
48d7b13a 122
fd0f4132
SK
123m4_ifndef([PKG_PROG_PKG_CONFIG],
124 [m4_fatal([Could not locate the pkg-config autoconf
125 macros. These are usually located in /usr/share/aclocal/pkg.m4.
126 If your macros are in a different location, try setting the
127 environment variable AL_OPTS="-I/other/macro/dir" before running
128 ./autogen.sh or autoreconf again.])])
d06d028a
KZ
129PKG_PROG_PKG_CONFIG
130
22aa5166
KZ
131GTK_DOC_CHECK([1.10])
132AC_PATH_PROG([XSLTPROC], [xsltproc])
133
8c182554
KZ
134linux_os=no
135case ${host_os} in
136 *linux*)
137 linux_os=yes
138 ;;
139esac
49ccbae6 140AM_CONDITIONAL([LINUX], test "x$linux_os" = xyes)
8c182554 141
3c6e292c
KZ
142dnl define ARCH_<NAME> conditionals
143UL_SET_ARCH(I86, i?86-*)
144UL_SET_ARCH(86_64, x86_64*)
145UL_SET_ARCH(IA64, ia64*)
146UL_SET_ARCH(S390, s390*)
147UL_SET_ARCH(SPARC, sparc*)
148UL_SET_ARCH(PPC, ppc*|powerpc*)
149UL_SET_ARCH(M68K, m68*)
150UL_SET_ARCH(MIPS, mips*)
151UL_SET_ARCH(HPPA, hppa*)
152
48d7b13a
KZ
153AC_SYS_LARGEFILE
154
09734b00
KZ
155AM_GNU_GETTEXT_VERSION([0.14.1])
156AM_GNU_GETTEXT([external])
157if test -d "$srcdir/po"
158then
159 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
160else
161 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"
162fi
163
e460a5bf 164AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
48d7b13a
KZ
165#ifdef HAVE_LINUX_COMPILER_H
166#include <linux/compiler.h>
167#endif
168])
f06b4328
SK
169AC_CHECK_HEADERS([ \
170 asm/io.h \
171 err.h \
a0948ffe 172 errno.h \
f06b4328 173 fcntl.h \
a0948ffe 174 getopt.h \
f06b4328
SK
175 inttypes.h \
176 linux/cdrom.h \
177 linux/falloc.h \
5b0289b9 178 linux/watchdog.h \
a0948ffe 179 linux/fd.h \
f06b4328 180 linux/raw.h \
a0948ffe
KZ
181 linux/tiocl.h \
182 linux/version.h \
8b7f16fc 183 locale.h \
607c2a72 184 mntent.h \
f06b4328 185 net/if.h \
754fed0c 186 net/if_dl.h \
f06b4328
SK
187 netinet/in.h \
188 paths.h \
189 pty.h \
190 security/pam_misc.h \
191 stdint.h \
78288764 192 stdio_ext.h \
a0948ffe 193 stdlib.h \
1a1eb4e1
KZ
194 endian.h \
195 byteswap.h \
196 sys/endian.h \
a0948ffe
KZ
197 sys/disk.h \
198 sys/disklabel.h \
f06b4328 199 sys/file.h \
bf962c0a 200 sys/io.h \
f06b4328
SK
201 sys/ioccom.h \
202 sys/ioctl.h \
a0948ffe
KZ
203 sys/mkdev.h \
204 sys/prctl.h \
205 sys/queue.h \
f06b4328 206 sys/resource.h \
2a7c1f70 207 sys/socket.h \
f06b4328 208 sys/sockio.h \
a0948ffe 209 sys/stat.h \
f06b4328
SK
210 sys/swap.h \
211 sys/syscall.h \
212 sys/time.h \
a0948ffe 213 sys/types.h \
754fed0c 214 sys/un.h \
f06b4328
SK
215 unistd.h \
216])
dc61d398 217
a67387b7
KZ
218AC_CHECK_HEADERS([langinfo.h],
219 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
220 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
221
16ba8d58
KZ
222dnl Convert some ac_cv_header_* variables to have_*
223dnl
224have_linux_raw_h=$ac_cv_header_linux_raw_h
5b0289b9 225have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
ff0cb84d 226have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
48d7b13a 227
a67387b7
KZ
228
229AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
230#include <time.h>
231#include <unistd.h>
232]], [[
233 int a = 0;
234 struct tm *tm = localtime(0);
235 if (a == -1) /* false */
f06b4328 236 sleep(tm->tm_gmtoff);
a67387b7
KZ
237]])],
238[AC_DEFINE(HAVE_TM_GMTOFF,1,[Does struct tm have a field tm_gmtoff?])
239])
240
241AC_CHECK_MEMBERS([struct termios.c_line],,,
242 [[#include <termios.h>]])
243
244AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
245 [#include <sys/stat.h>])
246
247AC_CHECK_DECLS([
248 UNAME26,
249 ADDR_NO_RANDOMIZE,
250 FDPIC_FUNCPTRS,
251 MMAP_PAGE_ZERO,
252 ADDR_COMPAT_LAYOUT,
253 READ_IMPLIES_EXEC,
254 ADDR_LIMIT_32BIT,
255 WHOLE_SECONDS,
256 STICKY_TIMEOUTS,
257 ADDR_LIMIT_3GB], [], [], [#include <linux/personality.h>])
258
259AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
260[[
261#ifdef HAVE_SYS_SWAP_H
262# include <sys/swap.h>
263#endif
264#include <unistd.h>
265]],
266[[swapon("/dev/null", 0);]])],
267[AC_DEFINE(SWAPON_HAS_TWO_ARGS, 1, [Is swapon() declared with two parameters?])
268],
269[AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
270])
dc61d398
KZ
271
272
a88057d9
TP
273AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
274
2a7c1f70
KZ
275AC_CHECK_DECL([llseek],
276 [AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
277 [Define to 1 if have llseek prototype])],
278 [],
279 [#include <unistd.h>])
280
281AC_CHECK_DECL([lseek64],
282 [AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
283 [Define to 1 if have lseek64 prototype])],
284 [],
285 [#define _LARGEFILE_SOURCE
286 #define _LARGEFILE64_SOURCE
287 #include <unistd.h>])
288
0e9b73d3
SK
289AC_CHECK_DECL([environ],
290 [AC_DEFINE(HAVE_ENVIRON_DECL, 1,
291 [Define to 1 if have **environ prototype])],
292)
293
294AC_CHECK_DECL([strsignal],
295 [AC_DEFINE(HAVE_STRSIGNAL_DECL, 1,
296 [Define to 1 if have strsignal function prototype])],
297)
298
f06b4328 299AC_CHECK_FUNCS([ \
78288764 300 __fpending \
f06b4328 301 __secure_getenv \
eb76ca98
FG
302 err \
303 errx \
bf962c0a 304 fsync \
f06b4328 305 futimens \
bf962c0a 306 getdomainname \
f06b4328
SK
307 getdtablesize \
308 getexecname \
309 getmntinfo \
310 getrlimit \
311 inotify_init \
3ac22f7a 312 jrand48 \
bf962c0a 313 lchown \
a0948ffe
KZ
314 llseek \
315 lseek64 \
f06b4328
SK
316 nanosleep \
317 personality \
318 posix_fadvise \
319 prctl \
320 rpmatch \
485a8bfa 321 scandirat \
69045d3d
KZ
322 setresgid \
323 setresuid \
f06b4328
SK
324 sigqueue \
325 srandom \
326 strnchr \
69b7e41e
KZ
327 strndup \
328 strnlen \
f06b4328
SK
329 strtoull \
330 sysconf \
331 updwtmp \
332 usleep \
eb76ca98
FG
333 warn \
334 warnx \
f06b4328 335])
48d7b13a 336AC_FUNC_FSEEKO
48d7b13a 337
940fd28c 338AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
465e9973 339AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
465e9973 340
754fed0c
KZ
341AC_CHECK_MEMBER(struct sockaddr.sa_len,
342 AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),,
343 [#include <sys/types.h>
344 #include <sys/socket.h>])
345
60cc9f94 346SOCKET_LIBS=
60cc9f94
FG
347AC_SEARCH_LIBS([socket], [socket],
348 [if test x"$ac_cv_search_socket" != x"none required"; then
349 SOCKET_LIBS="$SOCKET_LIBS -lsocket";
350 fi])
351AC_SUBST([SOCKET_LIBS])
352
d58c47d9
FG
353
354have_dirfd=no
355AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
356if test x"$have_dirfd" = xno ; then
357 AC_CHECK_DECLS([dirfd],
358 [have_dirfd=yes], [have_dirfd=no],
359 [#include <sys/types.h>
360 #include <dirent.h>])
361fi
362
363have_ddfd=no
364if test x"$have_dirfd" = xno ; then
365 AC_CHECK_MEMBERS([DIR.dd_fd],
366 [have_ddfd=yes], [have_ddfd=no],
367 [#include <sys/types.h>
368 #include <dirent.h>])
369fi
370
371case "$have_dirfd:$have_ddfd" in
372no:no)
373 AC_MSG_ERROR([cannot find a method to get filedescriptor of directory]) ;;
374esac
375
376
a804f444
FG
377AC_MSG_CHECKING(whether program_invocation_short_name is defined)
378AC_TRY_COMPILE([#include <argp.h>],
f06b4328
SK
379 [program_invocation_short_name = "test";],
380 AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
381 [Define if program_invocation_short_name is defined])
382 AC_MSG_RESULT(yes),
383 AC_MSG_RESULT(no))
a804f444
FG
384
385AC_MSG_CHECKING([whether __progname is defined])
386AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
f06b4328
SK
387 [if (*__progname == 0) return;])],
388 AC_DEFINE(HAVE___PROGNAME, 1, [Define if __progname is defined])
389 AC_MSG_RESULT(yes),
390 AC_MSG_RESULT(no))
a804f444 391
8569410c 392dnl Static compilation
132ea941 393m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid])
8569410c
SK
394
395AC_ARG_ENABLE([static-programs],
396 [AS_HELP_STRING([--enable-static-programs=LIST],
397 [link static the programs in LIST (comma-separated,
132ea941 398 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
8569410c
SK
399
400case $enable_static_programs in
132ea941 401yes) enable_static_programs=m4_quote(UL_STATIC_PROGRAMS) ;;
8569410c
SK
402no) enable_static_programs= ;;
403esac
404
8569410c 405dnl Set all the individual AM_CONDITIONALs
132ea941 406m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
8569410c 407 case ,$enable_static_programs, in
132ea941 408 *,UL_PRG,*) static_[]UL_PRG=yes ;;
8569410c 409 esac
132ea941
KZ
410 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
411 [test "x$static_[]UL_PRG" = xyes])
8569410c
SK
412])
413
d7a01582 414AX_CHECK_TLS
3ac22f7a 415
13f5473e
KZ
416AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
417# include <stdio.h>
418int main()
419{
420 int i;
421 char *s;
422 i = sscanf("x", $1, &s);
423 if (i == 1)
424 return 0;
425 return 1;
426}])
427
428AC_CACHE_VAL([scanf_cv_alloc_modifier],
429 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
430 [scanf_cv_alloc_modifier=ms],
431 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
432 [scanf_cv_alloc_modifier=as],
433 [scanf_cv_alloc_modifier=no]
434 )
b420e279 435 ,
d0202f1c
SAS
436
437 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
438 #include <stdio.h>
439
440 #ifdef __GLIBC__
441
442 #if !(__GLIBC_PREREQ(2, 7))
443 #error %m is not available
444 #endif
445
446 #else
447
448 #error Your C-library is not supported.
449 #endif
450 ])],
451 [scanf_cv_alloc_modifier=ms],
452 [scanf_cv_alloc_modifier=no])]
13f5473e
KZ
453 )
454)
455
456AC_MSG_CHECKING([scanf string alloc modifiers])
457case "$scanf_cv_alloc_modifier" in
458ms)
459 AC_MSG_RESULT([(%ms) yes])
460 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
461 have_scanf_alloc_modifier=yes
462 ;;
463as)
464 AC_MSG_RESULT([(%as) yes])
465 have_scanf_alloc_modifier=yes
466 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])
467 ;;
468*)
469 AC_MSG_RESULT([no])
470 have_scanf_alloc_modifier=no
471 ;;
472esac
473
3aecf79d
KZ
474UL_CHECK_LIB(util, openpty)
475UL_CHECK_LIB(termcap, tgetnum)
476
477AC_CHECK_TYPES([union semun], [], [], [[
478#include <sys/sem.h>
479]])
480AC_CHECK_TYPES(loff_t)
481
482AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
483#include <wchar.h>
484#include <wctype.h>
485#include <stdio.h>
486]], [[
487 wchar_t wc;
488 wint_t w;
489 w = fgetwc(stdin);
490 if (w == WEOF) exit(1);
491 wc = w;
492 fputwc(wc,stdout);
493]])],
494[AC_DEFINE(HAVE_WIDECHAR,1,Do we have wide character support?)
495])
496
497AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
498#include <sched.h>
499]])
500
501AM_CONDITIONAL(HAVE_CPU_SET_T, [test "x$have_cpu_set_t" = xyes])
502
503AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
504#include <sched.h>
505]])
506
8d35bdc9
KZ
507# on Solaris, you can't mix and match standards, since we use c99
508# aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
509# check for crypt.h and use that without XOPEN_SOURCE.
510AC_CHECK_HEADERS([crypt.h])
511AC_LINK_IFELSE([AC_LANG_PROGRAM([[
512#ifdef HAVE_CRYPT_H
513#include <crypt.h>
514#else
515#define _XOPEN_SOURCE
516#include <unistd.h>
517#endif
518]], [[
519char *c = crypt("abc","pw");
520]])],[],[
521 LIBS="$LIBS -lcrypt"
522 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
523 #ifdef HAVE_CRYPT_H
524 #include <crypt.h>
525 #else
526 #define _XOPEN_SOURCE
527 #include <unistd.h>
528 #endif
529 ]], [[
530 char *c = crypt("abc","pw");
531 ]])],[
532 AC_DEFINE(HAVE_LIBCRYPT, 1, [Do we need -lcrypt?])
533 have_libcrypt=yes
534 ],[
535 AC_MSG_ERROR([crypt() is not available])
536 ])
537])
538AM_CONDITIONAL(HAVE_LIBCRYPT, test "x$have_libcrypt" = xyes)
539
13f5473e 540
75ad4910
KZ
541AC_ARG_WITH([selinux],
542 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
543 [], with_selinux=no
544)
545
546if test "x$with_selinux" = xno; then
547 AM_CONDITIONAL(HAVE_SELINUX, false)
548else
7e34c79f 549 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
2c689115 550 [AC_DEFINE(HAVE_LIBSELINUX, 1, [Define if SELinux is available])
7e34c79f
KZ
551 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
552 AM_CONDITIONAL(HAVE_SELINUX, true)
553 have_selinux=yes],
554 [have_selinux=no])
555
75ad4910 556 case "$with_selinux:$have_selinux" in
7e34c79f 557 yes:no) AC_MSG_ERROR([SELinux selected but libselinux not found or too old]);;
75ad4910
KZ
558 esac
559fi
75ad4910
KZ
560AC_SUBST([SELINUX_LIBS])
561AC_SUBST([SELINUX_LIBS_STATIC])
562
563AC_ARG_WITH([audit],
564 AS_HELP_STRING([--with-audit], [compile with audit support]),
565 [], with_audit=no
566)
567
568if test "x$with_audit" = xno; then
569 AM_CONDITIONAL(HAVE_AUDIT, false)
570else
571 UL_CHECK_LIB(audit, audit_log_user_message)
572 case "$with_audit:$have_audit" in
573 yes:no)
574 AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])
575 ;;
576 esac
577fi
578
579AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
580 [], with_udev=auto
581)
582
583if test "x$with_udev" = xno; then
584 AM_CONDITIONAL(HAVE_UDEV, false)
585else
586 UL_CHECK_LIB(udev, udev_new)
587 case "$with_udev:$have_udev" in
588 yes:no)
589 AC_MSG_ERROR([udev selected but libudev not found])
590 ;;
591 esac
592fi
593
594AC_ARG_WITH([ncurses],
595 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
f06b4328 596 (--without-ncurses disables all ncurses(w) support)]),
75ad4910
KZ
597 [], with_ncurses=auto
598)
599AM_CONDITIONAL(HAVE_NCURSES, false)
600
601if test "x$with_ncurses" != xno; then
602 have_ncurses=no
603 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
604 if test "x$with_ncurses" = xauto; then
605 UL_CHECK_LIB(ncursesw, initscr, ncurses)
606 if test "x$have_ncurses" = xyes; then
f06b4328
SK
607 AC_CHECK_HEADERS([ncursesw/ncurses.h])
608 NCURSES_LIBS="-lncursesw"
75ad4910
KZ
609 fi
610 fi
611 if test "x$have_ncurses" = xno; then
612 UL_CHECK_LIB(ncurses, initscr)
613 if test "x$have_ncurses" = xyes; then
f06b4328 614 NCURSES_LIBS="-lncurses"
75ad4910
KZ
615 fi
616 fi
617 ])
618 if test "x$have_ncurses" = xno; then
619 AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
620 fi
621fi
622AC_SUBST([NCURSES_LIBS])
623
624
625AC_ARG_WITH([slang],
626 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
627 [], with_slang=no
628)
50ea6795 629have_slang=no
75ad4910
KZ
630if test "x$with_slang" = xyes; then
631 AC_CHECK_HEADERS([slang.h slang/slang.h])
632 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
50ea6795 633 [have_slang=yes], [], [
75ad4910
KZ
634#ifdef HAVE_SLANG_H
635#include <slang.h>
636#elif defined(HAVE_SLANG_SLANG_H)
637#include <slang/slang.h>
638#endif
639])
50ea6795 640 if test "x$have_slang" = xno; then
75ad4910
KZ
641 AC_MSG_ERROR([slang selected but slcurses.h not found])
642 fi
643fi
50ea6795
KZ
644AM_CONDITIONAL(HAVE_SLANG, test "x$have_slang" = xyes)
645
646
fbd2620d 647AM_CONDITIONAL(BUILD_CFDISK, test "x$have_slang" = xyes -o "x$have_ncurses" = xyes)
50ea6795
KZ
648
649
650have_tinfo=no
651AC_CHECK_LIB(tinfo, tgetent, [have_tinfo=yes])
652AM_CONDITIONAL(HAVE_TINFO, test "x$have_tinfo" = xyes)
75ad4910
KZ
653
654
655AC_ARG_WITH([utempter],
656 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
657 [], with_utempter=no
658)
659
660if test "x$with_utempter" = xyes; then
661 UL_CHECK_LIB(utempter, utempter_add_record)
662 if test "x$have_utempter" = xno; then
663 AC_MSG_ERROR([utempter selected but libutempter not found])
664 fi
665else
666 AM_CONDITIONAL(HAVE_UTEMPTER, false)
667fi
668
669
d17584b6 670AC_ARG_ENABLE([most-builds],
455fe9a0 671 AS_HELP_STRING([--enable-most-builds], [build everything other than experimental code]),
d17584b6
SK
672 [], enable_most_builds=no
673)
674if test "x$enable_most_builds" = xyes; then
57790046 675 enable_arch=check
3a3dcbdc
SK
676 enable_chfn_chsh=yes
677 enable_chkdupexe=yes
57790046 678 enable_elvtune=check
d17584b6
SK
679 enable_last=yes
680 enable_line=yes
681 enable_mesg=yes
3a3dcbdc 682 enable_newgrp=yes
d17584b6 683 enable_reset=yes
3a3dcbdc
SK
684 enable_socket_activation=yes
685 enable_tunelp=yes
cc76731e 686 enable_vipw=yes
d17584b6
SK
687 enable_write=yes
688fi
689
1dbbde66
KZ
690dnl
691dnl libuuid
692dnl
17afb032
KZ
693AC_ARG_ENABLE([libuuid],
694 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
695 [], enable_libuuid=yes
696)
fa7be20e 697UL_BUILD_INIT([libuuid])
dc2b8d87
KZ
698AC_SUBST([LIBUUID_VERSION])
699AC_SUBST([LIBUUID_VERSION_INFO])
fa7be20e 700AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
9dc801d2 701
403e2d0c 702if test "x$enable_libuuid" = xyes; then
17afb032
KZ
703 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
704else
705 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
706fi
48d7b13a 707
1dbbde66
KZ
708dnl
709dnl libblkid
710dnl
f910b559 711AC_ARG_ENABLE([libblkid],
1d12ed57 712 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
f910b559 713 [], enable_libblkid=yes
40f07ff7 714)
61a074f7 715UL_BUILD_INIT([libblkid])
033cf439 716AC_SUBST([LIBBLKID_DATE])
dc2b8d87
KZ
717AC_SUBST([LIBBLKID_VERSION])
718AC_SUBST([LIBBLKID_VERSION_INFO])
f910b559
KZ
719AC_DEFINE_UNQUOTED(LIBBLKID_VERSION, "$LIBBLKID_VERSION", [libblkid version string])
720AC_DEFINE_UNQUOTED(LIBBLKID_DATE, "$LIBBLKID_DATE", [libblkid date string])
4f3b364b 721if test "x$build_libblkid" = xyes; then
d06d028a 722 AC_DEFINE(HAVE_LIBBLKID, 1, [Define to 1 if you have the -lblkid.])
64754af9 723fi
4f3b364b 724AM_CONDITIONAL(BUILD_LIBBLKID, test "x$build_libblkid" = xyes)
43ffdc82 725AM_CONDITIONAL(BUILD_LIBBLKID_TESTS, test "x$build_libblkid" = xyes -a "x$enable_static" = xyes)
f910b559 726
1dbbde66
KZ
727dnl
728dnl libmount
729dnl
f1cde479
KZ
730AC_ARG_ENABLE([libmount],
731 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
a2b3d040 732 [], enable_libmount=check
f1cde479 733)
61a074f7 734UL_BUILD_INIT([libmount])
13f5473e
KZ
735UL_REQUIRES_LINUX([libmount])
736UL_REQUIRES_BUILD([libmount], [libblkid])
737UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
738AM_CONDITIONAL(BUILD_LIBMOUNT, test "x$build_libmount" = xyes)
43ffdc82 739AM_CONDITIONAL(BUILD_LIBMOUNT_TESTS, test "x$build_libmount" = xyes -a "x$enable_static" = xyes)
8e368761 740
f1cde479
KZ
741AC_SUBST([LIBMOUNT_VERSION])
742AC_SUBST([LIBMOUNT_VERSION_INFO])
f4ab4ae8 743AC_DEFINE_UNQUOTED(LIBMOUNT_VERSION, "$LIBMOUNT_VERSION", [libmount version string])
13f5473e 744
f1cde479 745
434b07a0
KZ
746AC_ARG_ENABLE([deprecated-mount],
747 AS_HELP_STRING([--enable-deprecated-mount], [build old mount utilities]),
748 [], enable_deprecated_mount=no
1dbbde66 749)
434b07a0
KZ
750UL_BUILD_INIT([deprecated_mount])
751UL_REQUIRES_LINUX([deprecated_mount])
752UL_REQUIRES_BUILD([deprecated_mount], [libblkid])
753AM_CONDITIONAL(BUILD_DEPRECATED_MOUNT, test "x$build_deprecated_mount" = xyes)
1dbbde66
KZ
754
755
434b07a0
KZ
756AC_ARG_ENABLE([mount],
757 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
758 [], enable_mount=check
ecdba5dd 759)
434b07a0
KZ
760UL_BUILD_INIT([mount])
761UL_REQUIRES_BUILD([mount], [libmount])
bafe1a75 762UL_CONFLICTS_BUILD([mount], [deprecated_mount], [old deprecated mount version])
434b07a0 763AM_CONDITIONAL(BUILD_MOUNT, test "x$build_mount" = xyes)
ecdba5dd
KZ
764
765
bafe1a75
KZ
766AC_ARG_ENABLE([losetup],
767 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
768 [], enable_losetup=check
769)
770UL_BUILD_INIT([losetup])
771UL_REQUIRES_LINUX([losetup])
772AM_CONDITIONAL(BUILD_LOSETUP, test "x$build_losetup" = xyes)
773
774
1dbbde66
KZ
775AC_ARG_ENABLE([fsck],
776 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
1d12ed57 777 [], enable_fsck=check
1dbbde66 778)
61a074f7 779UL_BUILD_INIT([fsck])
a7b585ea 780UL_REQUIRES_BUILD([fsck], [libmount])
1d12ed57 781AM_CONDITIONAL(BUILD_FSCK, test "x$build_fsck" = xyes)
1dbbde66
KZ
782
783
784AC_ARG_ENABLE([partx],
785 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
786 [], enable_partx=check
787)
61a074f7 788UL_BUILD_INIT([partx])
ecde2536
KZ
789UL_REQUIRES_LINUX([partx])
790UL_REQUIRES_BUILD([partx], [libblkid])
1dbbde66
KZ
791AM_CONDITIONAL(BUILD_PARTX, test "x$build_partx" = xyes)
792
793
1dbbde66
KZ
794AC_ARG_ENABLE([uuidd],
795 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
bcdab497 796 [], enable_uuidd=check
1dbbde66 797)
61a074f7 798UL_BUILD_INIT([uuidd])
bcdab497
KZ
799UL_REQUIRES_BUILD([uuidd], [libuuid])
800if test "x$build_uuidd" = xyes; then
1dbbde66
KZ
801 AC_DEFINE(HAVE_UUIDD, 1, [Define to 1 if you want to use uuid daemon.])
802fi
bcdab497 803AM_CONDITIONAL(BUILD_UUIDD, test "x$build_uuidd" = xyes)
1dbbde66
KZ
804
805
0164c245 806AC_ARG_ENABLE([mountpoint],
2023ccc4 807 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
3d92ed40 808 [], enable_mountpoint=check
0164c245 809)
61a074f7 810UL_BUILD_INIT([mountpoint])
a9127bc1 811UL_REQUIRES_BUILD([mountpoint], [libmount])
3d92ed40 812AM_CONDITIONAL(BUILD_MOUNTPOINT, test "x$build_mountpoint" = xyes)
0164c245
KZ
813
814
10e56b49
KZ
815AC_ARG_ENABLE([fallocate],
816 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
817 [], enable_fallocate=check
818)
61a074f7 819UL_BUILD_INIT([fallocate])
10e56b49
KZ
820UL_REQUIRES_LINUX([fallocate])
821UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
822AM_CONDITIONAL(BUILD_FALLOCATE, test "x$build_fallocate" = xyes)
823
824if test "x$build_fallocate" = xyes; then
825 dnl check for valid fallocate() function
826 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
827 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
828 dnl and program can't be linked.
829 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
830 dnl function prototype.
831 AC_MSG_CHECKING([for valid fallocate() function])
832 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
b832c2fe
YD
833#ifdef HAVE_UNISTD_H
834# include <unistd.h>
835#endif
836#ifdef HAVE_SYS_TYPES_H
837# include <sys/types.h>
838#endif
839#ifdef HAVE_LINUX_FALLOC_H
840# include <linux/falloc.h>
841#endif
842#ifdef HAVE_FCNTL_H
843# include <fcntl.h>
844#endif
845]],[[
846 long ret;
b832c2fe 847 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
b832c2fe
YD
848 if (ret != 0) {
849 return 1;
850 }
851 ]])],[
10e56b49
KZ
852 AC_MSG_RESULT([yes])
853 AC_DEFINE(HAVE_FALLOCATE,1,[Have valid fallocate() function])],[
854 AC_MSG_RESULT([no])])
855fi
856
19a224ad 857
a2ea6670
KZ
858AC_ARG_ENABLE([unshare],
859 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
860 [], enable_unshare=check
861)
61a074f7 862UL_BUILD_INIT([unshare])
a2ea6670
KZ
863UL_REQUIRES_LINUX([unshare])
864UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
865AM_CONDITIONAL(BUILD_UNSHARE, test "x$build_unshare" = xyes)
866if test "x$build_unshare" = xyes; then
867 AC_CHECK_FUNCS([unshare])
868fi
b3425806 869
f8aa8e94
EB
870AC_ARG_ENABLE([nsenter],
871 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
872 [], enable_nsenter=check
873)
874UL_BUILD_INIT([nsenter])
875UL_REQUIRES_LINUX([nsenter])
876UL_REQUIRES_SYSCALL_CHECK([setns], [UL_CHECK_SYSCALL([setns])])
877AM_CONDITIONAL(BUILD_NSENTER, test "x$build_nsenter" = xyes)
878if test "x$build_nsenter" = xyes; then
879 AC_CHECK_FUNCS([setns])
880fi
b3425806 881
6a97809b
KZ
882AC_ARG_ENABLE([arch],
883 AS_HELP_STRING([--enable-arch], [do build arch]),
884 [], enable_arch=no
885)
61a074f7 886UL_BUILD_INIT([arch])
3c6e292c
KZ
887UL_REQUIRES_LINUX([arch])
888AM_CONDITIONAL(BUILD_ARCH, test "x$build_arch" = xyes)
889
48d7b13a 890
539feec1
ML
891AC_ARG_ENABLE([eject],
892 AS_HELP_STRING([--disable-eject], [do not build eject]),
57790046 893 [], enable_eject=check
539feec1
ML
894)
895UL_BUILD_INIT([eject])
896UL_REQUIRES_LINUX([eject])
7770e7df 897UL_REQUIRES_BUILD([eject], [libmount])
88a3f049 898AM_CONDITIONAL(BUILD_EJECT, test "x$build_eject" = xyes)
539feec1
ML
899
900
48d7b13a 901AC_ARG_ENABLE([agetty],
7fa4f112 902 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
271d98e0 903 [], enable_agetty=yes
48d7b13a 904)
61a074f7 905UL_BUILD_INIT([agetty])
0fc74be1
KZ
906AM_CONDITIONAL(BUILD_AGETTY, test "x$build_agetty" = xyes)
907
48d7b13a 908
9cb68977 909AC_ARG_ENABLE([cramfs],
7fa4f112 910 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
271d98e0 911 [], enable_cramfs=check
9cb68977 912)
61a074f7 913UL_BUILD_INIT([cramfs])
d81b5a52
KZ
914AC_CHECK_LIB(z, crc32, [have_z=yes], [have_z=no])
915UL_REQUIRES_HAVE([cramfs], [z], [z library])
49ccbae6 916AM_CONDITIONAL(BUILD_CRAMFS, test "x$build_cramfs" = xyes)
9cb68977 917
a13cdb7a 918
e09ebf22
KZ
919if test "x$have_io" = xyes -o "x$linux_os" = xyes; then
920 build_hwclock=yes
921fi
922AM_CONDITIONAL(BUILD_HWCLOCK, test "x$build_hwclock" = xyes)
923
924
143635c9
KZ
925UL_BUILD_INIT([swapon], [check])
926UL_REQUIRES_LINUX([swapon])
927UL_REQUIRES_BUILD([swapon], [libblkid])
7770e7df 928UL_REQUIRES_BUILD([swapon], [libmount])
143635c9
KZ
929AM_CONDITIONAL(BUILD_SWAPON, test "x$build_swapon" = xyes)
930
931
61a074f7 932UL_BUILD_INIT([lsblk], [check])
a13cdb7a
KZ
933UL_REQUIRES_LINUX([lsblk])
934UL_REQUIRES_BUILD([lsblk], [libblkid])
9554f7ab 935UL_REQUIRES_BUILD([lsblk], [libmount])
7f7126d7 936AM_CONDITIONAL(BUILD_LSBLK, test "x$build_lsblk" = xyes)
9cb68977 937
a3d3b770 938
61a074f7 939UL_BUILD_INIT([lscpu], [check])
da396d88
KZ
940UL_REQUIRES_LINUX([lscpu])
941UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
942AM_CONDITIONAL(BUILD_LSCPU, test "x$build_lscpu" = xyes)
943
a3d3b770 944
61a074f7 945UL_BUILD_INIT([chcpu], [check])
da396d88
KZ
946UL_REQUIRES_LINUX([chcpu])
947UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
948AM_CONDITIONAL(BUILD_CHCPU, test "x$build_chcpu" = xyes)
949
a13cdb7a 950
7fcccbdf
KZ
951AC_ARG_ENABLE([wdctl],
952 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
953 [], enable_wdctl=check
954)
955UL_BUILD_INIT([wdctl])
5b0289b9
KZ
956UL_REQUIRES_LINUX([wdctl])
957UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
958AM_CONDITIONAL(BUILD_WDCTL, test "x$build_wdctl" = xyes)
959
960
54dbc8cf
KZ
961UL_BUILD_INIT([swaplabel], [check])
962UL_REQUIRES_BUILD([swaplabel], [libblkid])
963AM_CONDITIONAL(BUILD_SWAPLABEL, test "x$build_swaplabel" = xyes)
964
965
945ac250
KZ
966UL_BUILD_INIT([prlimit], [check])
967UL_REQUIRES_LINUX([prlimit])
968UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
969AM_CONDITIONAL(BUILD_PRLIMIT, test "x$build_prlimit" = xyes)
970if test "x$build_prlimit" = xyes; then
971 AC_CHECK_FUNCS([prlimit])
972fi
973
974
3dc02ef4
DB
975UL_BUILD_INIT([lslocks], [check])
976UL_REQUIRES_LINUX([lslocks])
977AM_CONDITIONAL(BUILD_LSLOCKS, test "x$build_lslocks" = xyes)
978
979
bd671347
KZ
980AC_ARG_ENABLE([switch_root],
981 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
940fd28c 982 [], enable_switch_root=check
bd671347 983)
61a074f7 984UL_BUILD_INIT([switch_root])
a3d3b770
KZ
985UL_REQUIRES_LINUX([switch_root])
986UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
940fd28c 987AM_CONDITIONAL(BUILD_SWITCH_ROOT, test "x$build_switch_root" = xyes)
bd671347
KZ
988
989
11125e7a
KZ
990AC_ARG_ENABLE([pivot_root],
991 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
992 [], enable_pivot_root=check
993)
61a074f7 994UL_BUILD_INIT([pivot_root])
9f632667
KZ
995UL_REQUIRES_LINUX([switch_root])
996UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
4a2ecf0a 997AM_CONDITIONAL(BUILD_PIVOT_ROOT, test "x$build_pivot_root" = xyes)
11125e7a
KZ
998
999
48d7b13a 1000AC_ARG_ENABLE([elvtune],
7fa4f112 1001 AS_HELP_STRING([--enable-elvtune], [build elvtune (only works with 2.2 and 2.4 kernels)]),
271d98e0 1002 [], enable_elvtune=no
48d7b13a 1003)
61a074f7 1004UL_BUILD_INIT([elvtune])
b8d8c653
KZ
1005UL_REQUIRES_LINUX([elvtune])
1006AM_CONDITIONAL(BUILD_ELVTUNE, test "x$build_elvtune" = xyes)
1007
48d7b13a 1008
1342ffcb
SK
1009AC_ARG_ENABLE([tunelp],
1010 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1011 [], enable_tunelp=no
1012)
1013UL_BUILD_INIT([tunelp])
1014UL_REQUIRES_LINUX([tunelp])
1015AM_CONDITIONAL(BUILD_TUNELP, test "x$build_tunelp" = xyes)
1016
1017
48d7b13a 1018AC_ARG_ENABLE([kill],
4be753aa
KZ
1019 AS_HELP_STRING([--disable-kill], [do not build kill]),
1020 [], enable_kill=check
48d7b13a 1021)
61a074f7 1022UL_BUILD_INIT([kill])
4be753aa 1023UL_REQUIRES_LINUX([kill])
626e8773 1024AM_CONDITIONAL(BUILD_KILL, test "x$build_kill" = xyes)
48d7b13a
KZ
1025
1026
1027AC_ARG_ENABLE([last],
7fa4f112 1028 AS_HELP_STRING([--enable-last], [build last]),
271d98e0 1029 [], enable_last=no
48d7b13a 1030)
61a074f7 1031UL_BUILD_INIT([last])
2dc68529
KZ
1032AM_CONDITIONAL(BUILD_LAST, test "x$build_last" = xyes)
1033
48d7b13a 1034
78d5ceac 1035AC_ARG_ENABLE([utmpdump],
c9b53461 1036 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
78d5ceac
KZ
1037 [], enable_utmpdump=yes
1038)
1039UL_BUILD_INIT([utmpdump])
1040AM_CONDITIONAL(BUILD_UTMPDUMP, test "x$build_utmpdump" = xyes)
1041
1042
c135a8bd
SK
1043AC_ARG_ENABLE([line],
1044 AS_HELP_STRING([--enable-line], [build line]),
1045 [], enable_line=no
1046)
61a074f7 1047UL_BUILD_INIT([line])
2dc68529
KZ
1048AM_CONDITIONAL(BUILD_LINE, test "x$build_line" = xyes)
1049
48d7b13a
KZ
1050
1051AC_ARG_ENABLE([mesg],
7fa4f112 1052 AS_HELP_STRING([--enable-mesg], [build mesg]),
271d98e0 1053 [], enable_mesg=no
48d7b13a 1054)
61a074f7 1055UL_BUILD_INIT([mesg])
2dc68529 1056AM_CONDITIONAL(BUILD_MESG, test "x$build_mesg" = xyes)
48d7b13a
KZ
1057
1058
48d7b13a 1059AC_ARG_ENABLE([raw],
7fa4f112 1060 AS_HELP_STRING([--enable-raw], [build raw]),
16ba8d58 1061 [], enable_raw=check
48d7b13a 1062)
61a074f7 1063UL_BUILD_INIT([raw])
16ba8d58
KZ
1064UL_REQUIRES_LINUX([raw])
1065UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1066AM_CONDITIONAL(BUILD_RAW, test "x$build_raw" = xyes)
48d7b13a
KZ
1067
1068
48d7b13a 1069AC_ARG_ENABLE([rename],
7fa4f112 1070 AS_HELP_STRING([--disable-rename], [do not build rename]),
271d98e0 1071 [], enable_rename=yes
48d7b13a 1072)
61a074f7 1073UL_BUILD_INIT([rename])
d1171542 1074AM_CONDITIONAL(BUILD_RENAME, test "x$build_rename" = xyes)
48d7b13a
KZ
1075
1076
1077AC_ARG_ENABLE([reset],
7fa4f112 1078 AS_HELP_STRING([--enable-reset], [build reset]),
271d98e0 1079 [], enable_reset=no
48d7b13a 1080)
61a074f7 1081UL_BUILD_INIT([reset])
d1171542 1082AM_CONDITIONAL(BUILD_RESET, test "x$build_reset" = xyes)
48d7b13a
KZ
1083
1084
cc76731e
KZ
1085AC_ARG_ENABLE([vipw],
1086 AS_HELP_STRING([--enable-vipw], [build vipw]),
1087 [], enable_vipw=no
48d7b13a 1088)
cc76731e
KZ
1089UL_BUILD_INIT([vipw])
1090AM_CONDITIONAL(BUILD_VIPW, test "x$build_vipw" = xyes)
9cb68977 1091
c94b3604 1092
aec9ecbd
KZ
1093AC_ARG_ENABLE([newgrp],
1094 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1095 [], enable_newgrp=no
1096)
1097UL_BUILD_INIT([newgrp])
1098AM_CONDITIONAL(BUILD_NEWGRP, test "x$build_newgrp" = xyes)
1099
1100
2c8a3e16
KZ
1101AC_ARG_ENABLE([chfn-chsh],
1102 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1103 [], enable_chfn_chsh=no
1104)
1105UL_BUILD_INIT([chfn_chsh])
1106UL_REQUIRES_HAVE([chfn_chsh], [security_pam_misc_h], [PAM header file])
1107AM_CONDITIONAL(BUILD_CHFN_CHSH, test "x$build_chfn_chsh" = xyes)
1108
71681ee5
KZ
1109AC_ARG_ENABLE([chsh-only-listed],
1110AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1111[], enable_chsh_only_listed=yes
1112)
1113
1114if test "x$enable_chsh_only_listed" = xyes; then
1115AC_DEFINE(ONLY_LISTED_SHELLS, 1, [Should chsh allow only shells in /etc/shells?])
1116fi
1117
2c8a3e16 1118
e7614a07
KZ
1119AC_ARG_ENABLE([login],
1120 AS_HELP_STRING([--disable-login], [do not build login]),
1121 [], enable_login=yes
1122)
1123UL_BUILD_INIT([login])
1124UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
1125AM_CONDITIONAL(BUILD_LOGIN, test "x$build_login" = xyes)
1126
71681ee5
KZ
1127AC_ARG_ENABLE([login-chown-vcs],
1128 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1129 [], enable_login_chown_vcs=no
1130)
1131
1132if test "x$enable_login_chown_vcs" = xyes; then
1133 AC_DEFINE(LOGIN_CHOWN_VCS, 1, [Should login chown /dev/vcsN?])
1134fi
1135
1136AC_ARG_ENABLE([login-stat-mail],
1137 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1138 [], enable_login_stat_mail=no
1139)
1140
1141if test "x$enable_login_stat_mail" = xyes; then
1142 AC_DEFINE(LOGIN_STAT_MAIL, 1, [Should login stat() the mailbox?])
1143fi
1144
e7614a07
KZ
1145
1146AC_ARG_ENABLE([sulogin],
1147 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1148 [], enable_sulogin=yes
1149)
1150UL_BUILD_INIT([sulogin])
1151AM_CONDITIONAL(BUILD_SULOGIN, test "x$build_sulogin" = xyes)
1152
f17f5f48 1153
ff4c5555
KZ
1154AC_ARG_ENABLE([su],
1155 AS_HELP_STRING([--disable-su], [do not build su]),
1156 [], enable_su=yes
1157)
1158UL_BUILD_INIT([su])
1159UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
1160AM_CONDITIONAL(BUILD_SU, test "x$build_su" = xyes)
1161
1162
7ec6adb1
KZ
1163AC_ARG_ENABLE([runuser],
1164 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1165 [], enable_runuser=yes
1166)
1167UL_BUILD_INIT([runuser])
1168UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
1169AM_CONDITIONAL(BUILD_RUNUSER, test "x$build_runuser" = xyes)
1170
1171
48d7b13a 1172AC_ARG_ENABLE([schedutils],
7fa4f112 1173 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, teskset]),
271d98e0 1174 [], enable_schedutils=yes
48d7b13a 1175)
61a074f7 1176UL_BUILD_INIT([schedutils])
17d5e11b
KZ
1177AM_CONDITIONAL(BUILD_SCHEDUTILS, test "x$build_schedutils" = xyes)
1178
61a074f7 1179UL_BUILD_INIT([ionice], [check])
17d5e11b
KZ
1180UL_REQUIRES_BUILD([ionice], [schedutils])
1181UL_REQUIRES_SYSCALL_CHECK([ionice],
1182 [UL_CHECK_SYSCALL([ioprio_set],
f06b4328
SK
1183 [alpha], [442],
1184 [i*86], [289],
1185 [ia64*], [1274],
1186 [powerpc*], [273],
1187 [s390*], [282],
1188 [sparc*], [196],
1189 [sh*], [288],
1190 [x86_64*], [251])],
17d5e11b
KZ
1191 [ioprio_set])
1192
1193UL_REQUIRES_SYSCALL_CHECK([ionice],
1194 [UL_CHECK_SYSCALL([ioprio_get],
f06b4328
SK
1195 [alpha], [443],
1196 [i*86], [290],
1197 [ia64*], [1275],
1198 [powerpc*], [274],
1199 [s390*], [283],
1200 [sparc*], [218],
1201 [sh*], [289],
1202 [x86_64*], [252])],
17d5e11b
KZ
1203 [ioprio_get])
1204
1205AM_CONDITIONAL(BUILD_IONICE, test "x$build_ionice" = xyes)
1206
61a074f7 1207UL_BUILD_INIT([taskset], [check])
17d5e11b 1208UL_REQUIRES_BUILD([taskset], [schedutils])
e21e6d26 1209UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
17d5e11b
KZ
1210UL_REQUIRES_SYSCALL_CHECK([taskset],
1211 [UL_CHECK_SYSCALL([sched_getaffinity])],
1212 [sched_getaffinity])
1213AM_CONDITIONAL(BUILD_TASKSET, test "x$build_taskset" = xyes)
48d7b13a
KZ
1214
1215
1216AC_ARG_ENABLE([wall],
7fa4f112 1217 AS_HELP_STRING([--disable-wall], [do not build wall]),
271d98e0 1218 [], enable_wall=yes
48d7b13a 1219)
8fc8888b 1220UL_BUILD_INIT([wall])
f0898116 1221AM_CONDITIONAL(BUILD_WALL, test "x$build_wall" = xyes)
48d7b13a
KZ
1222
1223
1224AC_ARG_ENABLE([write],
7fa4f112 1225 AS_HELP_STRING([--enable-write], [build write]),
271d98e0 1226 [], enable_write=no
48d7b13a 1227)
61a074f7 1228UL_BUILD_INIT([write])
f0898116 1229AM_CONDITIONAL(BUILD_WRITE, test "x$build_write" = xyes)
48d7b13a
KZ
1230
1231
4581bd9c
KZ
1232AC_ARG_ENABLE([chkdupexe],
1233 AS_HELP_STRING([--enable-chkdupexe], [build deprecated chkdupexe]),
1234 [], enable_chkdupexe=no
1235)
1236UL_BUILD_INIT([chkdupexe])
1237AM_CONDITIONAL(BUILD_CHKDUPEXE, test "x$build_chkdupexe" = xyes)
1238
1239if test "x$build_chkdupexe" = xyes; then
1240 AC_PATH_PROG(PERL, perl)
1241 AC_CONFIG_FILES([misc-utils/chkdupexe:misc-utils/chkdupexe.pl])
1242fi
1243
1244
bbe289c4
PU
1245AC_ARG_ENABLE([socket-activation],
1246 AS_HELP_STRING([--enable-socket-activation], [build uuidd with support for systemd socket activation]),
1247 [], enable_socket_activation=no
1248)
1249
1250AM_CONDITIONAL(USE_SOCKET_ACTIVATION, test "x$enable_socket_activation" = xyes)
1251
1252if test "x$enable_socket_activation" = xyes; then
1253 AC_DEFINE(USE_SOCKET_ACTIVATION, 1, [Should uuidd support socket activation?])
1254fi
1255
1b68c379
PU
1256AC_ARG_WITH([systemdsystemunitdir],
1257 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
1258 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
1259
1260if test "x$with_systemdsystemunitdir" != "xno"; then
1261 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1262fi
1263
37b88bfc 1264AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != "xno" ])
1b68c379 1265
bbe289c4 1266
48d7b13a 1267AC_ARG_ENABLE([pg-bell],
7fa4f112 1268 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
271d98e0 1269 [], enable_pg_bell=yes
48d7b13a
KZ
1270)
1271
49ccbae6 1272if test "x$enable_pg_bell" = xyes; then
48d7b13a
KZ
1273 AC_DEFINE(PG_BELL, 1, [Should pg ring the bell on invalid keys?])
1274fi
1275
1276
1277AC_ARG_ENABLE([require-password],
7fa4f112 1278 AS_HELP_STRING([--disable-require-password], [do not require the user to enter the password in chfn and chsh]),
271d98e0 1279 [], enable_require_password=yes
48d7b13a
KZ
1280)
1281
49ccbae6 1282if test "x$enable_require_password" = xyes; then
48d7b13a
KZ
1283 AC_DEFINE(REQUIRE_PASSWORD, 1, [Should chfn and chsh require the user to enter the password?])
1284fi
1285
1286
bb4cb69d
MF
1287AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1288AC_ARG_ENABLE([fs-paths-default],
1289 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
1290 [case "$enableval" in
1291 yes) fs_paths_defaults="FS_PATHS_DEFAULT" ;;
1292 no) fs_paths_defaults="" ;;
1293 *) fs_paths_defaults="$enableval" ;;
1294 esac],
1295 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1296)
1297AC_ARG_ENABLE([fs-paths-extra],
1298 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
1299 [case "$enableval" in
1300 yes|no) fs_paths_extra="" ;;
f06b4328 1301 *) fs_paths_extra="$enableval" ;;
bb4cb69d
MF
1302 esac],
1303 [fs_paths_extra=""]
1304)
1305fs_paths="$fs_paths_defaults"
1306if test "x$fs_paths_extra" != "x"; then
1307 if test "x$fs_paths" != "x"; then
1308 fs_paths="${fs_paths}:"
1309 fi
1310 fs_paths="${fs_paths}${fs_paths_extra}"
1311fi
1312AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1313
1314
48d7b13a 1315AC_ARG_ENABLE([use-tty-group],
7fa4f112 1316 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
271d98e0 1317 [], enable_use_tty_group=yes
48d7b13a 1318)
49ccbae6 1319AM_CONDITIONAL(USE_TTY_GROUP, test "x$enable_use_tty_group" = xyes)
48d7b13a 1320
49ccbae6 1321if test "x$enable_use_tty_group" = xyes; then
48d7b13a
KZ
1322 AC_DEFINE(USE_TTY_GROUP, 1, [Should wall and write be installed setgid tty?])
1323fi
1324
ab6478ef
WF
1325
1326AC_ARG_ENABLE([sulogin-emergency-mount],
479d50bd
DR
1327 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1328 [use emergency mount of /dev and /proc for sulogin]),
1329 [], enable_sulogin_emergency_mount=no
ab6478ef
WF
1330)
1331
1332if test "x$enable_sulogin_emergency_mount" = xyes; then
1333 AC_DEFINE(USE_SULOGIN_EMERGENCY_MOUNT, 1,
1334 [Should sulogin use a emergency mount of /dev and /proc?])
1335fi
1336
1337
f3831bbd
KZ
1338AC_ARG_ENABLE([makeinstall-chown],
1339 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
1340 [], enable_makeinstall_chown=yes
1341)
49ccbae6 1342AM_CONDITIONAL(MAKEINSTALL_DO_CHOWN, test "x$enable_makeinstall_chown" = xyes)
f3831bbd 1343
4c24a7ae
KZ
1344AC_ARG_ENABLE([makeinstall-setuid],
1345 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
1346 [], enable_makeinstall_setuid=yes
1347)
1348AM_CONDITIONAL(MAKEINSTALL_DO_SETUID, test "x$enable_makeinstall_setuid" = xyes)
1349
06bcee19 1350
1f10890f
SK
1351AC_ARG_VAR([SUID_CFLAGS],
1352 [CFLAGS used for binaries which are usually with the suid bit])
1353AC_ARG_VAR([SUID_LDFLAGS],
1354 [LDFLAGS used for binaries which are usually with the suid bit])
06bcee19 1355
9cb68977 1356LIBS=""
48d7b13a 1357
48d7b13a
KZ
1358
1359AC_CONFIG_HEADERS(config.h)
1360
d4baf92e
KZ
1361#
1362# Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1363# more details.
1364#
8eeb575c 1365AC_CONFIG_FILES([
f06b4328 1366Makefile
31a938ac 1367libblkid/docs/Makefile
8fb4efae 1368libblkid/docs/version.xml
8fb4efae 1369libblkid/src/blkid.h
31a938ac 1370libmount/docs/Makefile
2aefc0a8 1371libmount/docs/version.xml
f06b4328 1372libmount/src/libmount.h
f06b4328 1373po/Makefile.in
8eeb575c 1374])
48d7b13a
KZ
1375
1376AC_OUTPUT
4e1073c2
KZ
1377
1378AC_MSG_RESULT([
1379 ${PACKAGE} ${VERSION}
1380
1381 prefix: ${prefix}
1382 exec prefix: ${exec_prefix}
1383
1384 localstatedir: ${localstatedir}
1385 bindir: ${bindir}
1386 sbindir: ${sbindir}
1387 libdir: ${libdir}
1388 includedir: ${includedir}
4e1073c2
KZ
1389 usrbin_execdir: ${usrbin_execdir}
1390 usrsbin_execdir: ${usrsbin_execdir}
1391 usrlib_execdir: ${usrlib_execdir}
1392
1393 compiler: ${CC}
1394 cflags: ${CFLAGS}
1395 suid cflags: ${SUID_CFLAGS}
1396 ldflags: ${LDFLAGS}
1397 suid ldflags: ${SUID_LDFLAGS}
1398
1399 warnings:
1400
1401${WARN_CFLAGS}
1402])