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