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