]> git.ipfire.org Git - thirdparty/util-linux.git/blob - configure.ac
Merge branch 'misc-build-sys' of https://github.com/rudimeier/util-linux
[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$build_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 dnl Don't use UL_DEFAULT_ENABLE() here, deprecated stuff has to be insensitive
1291 dnl to --enable-all-programs.
1292 AC_ARG_ENABLE([deprecated-last],
1293 AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
1294 [], [enable_deprecated_last=no]
1295 )
1296 UL_BUILD_INIT([deprecated_last])
1297 AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1298
1299
1300 AC_ARG_ENABLE([last],
1301 AS_HELP_STRING([--disable-last], [do not build last]),
1302 [], [UL_DEFAULT_ENABLE([last], [check])]
1303 )
1304 UL_BUILD_INIT([last])
1305 UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
1306 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1307
1308
1309 AC_ARG_ENABLE([utmpdump],
1310 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1311 [], [UL_DEFAULT_ENABLE([utmpdump], [yes])]
1312 )
1313 UL_BUILD_INIT([utmpdump])
1314 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1315
1316
1317 AC_ARG_ENABLE([line],
1318 AS_HELP_STRING([--enable-line], [build line]),
1319 [], [UL_DEFAULT_ENABLE([line], [no])]
1320 )
1321 UL_BUILD_INIT([line])
1322 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1323
1324
1325 AC_ARG_ENABLE([mesg],
1326 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1327 [], [UL_DEFAULT_ENABLE([mesg], [yes])]
1328 )
1329 UL_BUILD_INIT([mesg])
1330 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1331
1332
1333 AC_ARG_ENABLE([raw],
1334 AS_HELP_STRING([--disable-raw], [do not build raw]),
1335 [], [UL_DEFAULT_ENABLE([raw], [check])]
1336 )
1337 UL_BUILD_INIT([raw])
1338 UL_REQUIRES_LINUX([raw])
1339 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1340 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1341
1342
1343 AC_ARG_ENABLE([rename],
1344 AS_HELP_STRING([--disable-rename], [do not build rename]),
1345 [], [UL_DEFAULT_ENABLE([rename], [yes])]
1346 )
1347 UL_BUILD_INIT([rename])
1348 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1349
1350
1351 AC_ARG_ENABLE([reset],
1352 AS_HELP_STRING([--enable-reset], [build reset]),
1353 [], [UL_DEFAULT_ENABLE([reset], [no])]
1354 )
1355 UL_BUILD_INIT([reset])
1356 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
1357
1358
1359 AC_ARG_ENABLE([vipw],
1360 AS_HELP_STRING([--enable-vipw], [build vipw]),
1361 [], [UL_DEFAULT_ENABLE([vipw], [no])]
1362 )
1363 UL_BUILD_INIT([vipw])
1364 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1365
1366
1367 AC_ARG_ENABLE([newgrp],
1368 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1369 [], [UL_DEFAULT_ENABLE([newgrp], [no])]
1370 )
1371 UL_BUILD_INIT([newgrp])
1372 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1373
1374
1375 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1376 [], [with_user=check]
1377 )
1378 have_user=no
1379 AS_IF([test "x$with_user" != xno], [
1380 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1381 AS_CASE([$with_user:$have_user],
1382 [yes:no],
1383 [AC_MSG_ERROR([user selected but libuser not found])],
1384 [*:yes],
1385 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1386 )
1387 # temporary solution, libuser has stupid .pc where are exported all
1388 # private dependencies to Requires: instead of Requires.private:
1389 AS_IF([test "x$have_user" = xyes], [
1390 LIBUSER_LIBS=-luser
1391 ])
1392 ])
1393 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1394
1395 AC_ARG_ENABLE([chfn-chsh-password],
1396 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1397 [], [enable_chfn_chsh_password=yes]
1398 )
1399
1400 AC_ARG_ENABLE([chfn-chsh],
1401 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1402 [], [UL_DEFAULT_ENABLE([chfn_chsh], [check])]
1403 )
1404 UL_BUILD_INIT([chfn_chsh])
1405
1406 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1407 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_misc_h], [PAM header file])
1408 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1409 ])
1410 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1411 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1412
1413 AC_ARG_ENABLE([chsh-only-listed],
1414 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1415 [], enable_chsh_only_listed=yes
1416 )
1417
1418 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1419 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1420 ])
1421
1422
1423 AC_ARG_ENABLE([login],
1424 AS_HELP_STRING([--disable-login], [do not build login]),
1425 [], [UL_DEFAULT_ENABLE([login], [check])]
1426 )
1427 UL_BUILD_INIT([login])
1428 UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
1429 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1430
1431 AC_ARG_ENABLE([login-chown-vcs],
1432 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1433 [], [enable_login_chown_vcs=no]
1434 )
1435
1436 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1437 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1438 ])
1439
1440 AC_ARG_ENABLE([login-stat-mail],
1441 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1442 [], [enable_login_stat_mail=no]
1443 )
1444
1445 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1446 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1447 ])
1448
1449
1450 AC_ARG_ENABLE([nologin],
1451 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1452 [], [UL_DEFAULT_ENABLE([nologin], [yes])]
1453 )
1454 UL_BUILD_INIT([nologin])
1455 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1456
1457
1458 AC_ARG_ENABLE([sulogin],
1459 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1460 [], [UL_DEFAULT_ENABLE([sulogin], [yes])]
1461 )
1462 UL_BUILD_INIT([sulogin])
1463 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1464
1465
1466 AC_ARG_ENABLE([su],
1467 AS_HELP_STRING([--disable-su], [do not build su]),
1468 [], [UL_DEFAULT_ENABLE([su], [check])]
1469 )
1470 UL_BUILD_INIT([su])
1471 UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
1472 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1473
1474
1475 AC_ARG_ENABLE([runuser],
1476 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1477 [], [UL_DEFAULT_ENABLE([runuser], [check])]
1478 )
1479 UL_BUILD_INIT([runuser])
1480 UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
1481 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1482
1483
1484 AC_ARG_ENABLE([ul],
1485 AS_HELP_STRING([--disable-ul], [do not build ul]),
1486 [], [UL_DEFAULT_ENABLE([ul], [check])]
1487 )
1488 UL_BUILD_INIT([ul])
1489 UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
1490 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1491
1492
1493 AC_ARG_ENABLE([more],
1494 AS_HELP_STRING([--disable-more], [do not build more]),
1495 [], [UL_DEFAULT_ENABLE([more], [check])]
1496 )
1497 UL_BUILD_INIT([more])
1498 UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
1499 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1500
1501
1502 AC_ARG_ENABLE([pg],
1503 AS_HELP_STRING([--disable-pg], [do not build pg]),
1504 [], [UL_DEFAULT_ENABLE([pg], [check])]
1505 )
1506 UL_BUILD_INIT([pg])
1507 UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
1508 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1509
1510
1511 AC_ARG_ENABLE([setterm],
1512 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1513 [], [UL_DEFAULT_ENABLE([setterm], [check])]
1514 )
1515 UL_BUILD_INIT([setterm])
1516 UL_REQUIRES_LINUX([setterm])
1517 UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
1518 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1519
1520 # build_schedutils= is just configure-only variable to control
1521 # ionice, taskset and chrt
1522 AC_ARG_ENABLE([schedutils],
1523 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1524 [], [UL_DEFAULT_ENABLE([schedutils], [yes])]
1525 )
1526 UL_BUILD_INIT([schedutils])
1527
1528 UL_BUILD_INIT([ionice], [check])
1529 UL_REQUIRES_BUILD([ionice], [schedutils])
1530 UL_REQUIRES_SYSCALL_CHECK([ionice],
1531 [UL_CHECK_SYSCALL([ioprio_set],
1532 [alpha], [442],
1533 [i*86], [289],
1534 [ia64*], [1274],
1535 [powerpc*], [273],
1536 [s390*], [282],
1537 [sparc*], [196],
1538 [sh*], [288],
1539 [x86_64*], [251])],
1540 [ioprio_set])
1541
1542 UL_REQUIRES_SYSCALL_CHECK([ionice],
1543 [UL_CHECK_SYSCALL([ioprio_get],
1544 [alpha], [443],
1545 [i*86], [290],
1546 [ia64*], [1275],
1547 [powerpc*], [274],
1548 [s390*], [283],
1549 [sparc*], [218],
1550 [sh*], [289],
1551 [x86_64*], [252])],
1552 [ioprio_get])
1553
1554 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1555
1556 UL_BUILD_INIT([taskset], [check])
1557 UL_REQUIRES_BUILD([taskset], [schedutils])
1558 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1559 UL_REQUIRES_SYSCALL_CHECK([taskset],
1560 [UL_CHECK_SYSCALL([sched_getaffinity])],
1561 [sched_getaffinity])
1562 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1563
1564 UL_BUILD_INIT([chrt], [check])
1565 UL_REQUIRES_BUILD([chrt], [schedutils])
1566 AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
1567
1568
1569 AC_ARG_ENABLE([wall],
1570 AS_HELP_STRING([--disable-wall], [do not build wall]),
1571 [], [UL_DEFAULT_ENABLE([wall], [yes])]
1572 )
1573 UL_BUILD_INIT([wall])
1574 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1575
1576
1577 AC_ARG_ENABLE([write],
1578 AS_HELP_STRING([--enable-write], [build write]),
1579 [], [UL_DEFAULT_ENABLE([write], [no])]
1580 )
1581 UL_BUILD_INIT([write])
1582 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1583
1584
1585 AC_ARG_WITH([systemd],
1586 AS_HELP_STRING([--with-systemd], [build with support for systemd]),
1587 [], [with_systemd=check]
1588 )
1589
1590 have_systemd=no
1591 AS_IF([test "x$with_systemd" != xno], [
1592 # new version -- all libsystemd-* libs merged into libsystemd
1593 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [have_systemd=yes], [have_systemd=no])
1594 # old versions
1595 AS_IF([test "x$have_systemd" != "xyes"], [
1596 PKG_CHECK_MODULES([SYSTEMD_DAEMON], [libsystemd-daemon],
1597 [have_systemd_daemon=yes], [have_systemd_daemon=no])
1598 PKG_CHECK_MODULES([SYSTEMD_JOURNAL], [libsystemd-journal],
1599 [have_systemd_journal=yes], [have_systemd_journal=no])
1600 AS_IF([test "x$have_systemd_daemon" = "xyes" -a "x$have_systemd_journal" = "xyes" ],[
1601 have_systemd=yes])
1602 ])
1603 AS_CASE([$with_systemd:$have_systemd],
1604 [yes:no],
1605 [AC_MSG_ERROR([systemd expected but libsystemd not found])],
1606 [*:yes],
1607 AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
1608 )
1609 ])
1610 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
1611
1612
1613 AC_ARG_WITH([systemdsystemunitdir],
1614 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
1615 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1616
1617 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1618 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1619 ])
1620
1621
1622 AC_ARG_WITH([smack],
1623 AS_HELP_STRING([--with-smack], [build with SMACK support]),
1624 [], [with_smack=no]
1625 )
1626 AS_IF([test "x$with_smack" = xyes], [
1627 AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
1628 ])
1629
1630
1631 AC_ARG_WITH([bashcompletiondir],
1632 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1633 [],
1634 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1635 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
1636 ], [
1637 with_bashcompletiondir=${datadir}/bash-completion/completions
1638 ])
1639 ])
1640 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1641
1642 AC_ARG_ENABLE([bash-completion],
1643 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
1644 [], [enable_bash_completion=yes]
1645 )
1646
1647 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
1648
1649
1650 AC_ARG_WITH([python],
1651 AS_HELP_STRING([--without-python], [do not build python bindings, use --with-python={2,3} to force version]),
1652 [], [with_python=check withval=check]
1653 )
1654
1655 have_python=no
1656 AS_IF([test "x$with_python" != xno], [
1657 # We follow distributions default and look for PKG module name "python"
1658 # (minimal version is 2) but if major version is explicitly specified by
1659 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1660 # "python3".
1661 AS_IF([test "x$withval" != xno -a "x$withval" != xyes -a "x$withval" != xcheck],
1662 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
1663 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
1664 AS_CASE([$with_python:$have_python],
1665 [yes:no],
1666 [AC_MSG_ERROR([python selected but libpython not found])],
1667 [check:no],
1668 [AC_MSG_WARN([libpython not found, do not build python bindings])],
1669 [*:yes],
1670 [PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])]
1671 )
1672 ])
1673
1674
1675 AC_ARG_ENABLE([pylibmount],
1676 AS_HELP_STRING([--disable-pylibmount], [do not build pylibmount]),
1677 [], [UL_DEFAULT_ENABLE([pylibmount], [check])]
1678 )
1679 UL_BUILD_INIT([pylibmount])
1680 UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
1681 UL_REQUIRES_BUILD([pylibmount], [libmount])
1682 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1683
1684
1685 AC_ARG_ENABLE([pg-bell],
1686 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
1687 [], [enable_pg_bell=yes]
1688 )
1689
1690 AS_IF([test "x$enable_pg_bell" = xyes], [
1691 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
1692 ])
1693
1694
1695 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1696 AC_ARG_ENABLE([fs-paths-default],
1697 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
1698 [AS_CASE([$enableval],
1699 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
1700 [no], [fs_paths_defaults=""],
1701 [fs_paths_defaults="$enableval"]
1702 )],
1703 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1704 )
1705 AC_ARG_ENABLE([fs-paths-extra],
1706 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
1707 [AS_CASE([$enableval],
1708 [yes|no], [fs_paths_extra=""],
1709 [fs_paths_extra="$enableval"]
1710 )],
1711 [fs_paths_extra=""]
1712 )
1713 fs_paths="$fs_paths_defaults"
1714 AS_IF([test "x$fs_paths_extra" != "x"], [
1715 AS_IF([test "x$fs_paths" != "x"], [
1716 fs_paths="${fs_paths}:"
1717 ])
1718 fs_paths="${fs_paths}${fs_paths_extra}"
1719 ])
1720 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1721
1722
1723 AC_ARG_ENABLE([use-tty-group],
1724 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
1725 [], [enable_use_tty_group=yes]
1726 )
1727 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
1728
1729 AS_IF([test "x$enable_use_tty_group" = xyes], [
1730 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
1731 ])
1732
1733
1734 AC_ARG_ENABLE([sulogin-emergency-mount],
1735 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1736 [use emergency mount of /dev and /proc for sulogin]),
1737 [], [enable_sulogin_emergency_mount=no]
1738 )
1739
1740 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
1741 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
1742 [Should sulogin use a emergency mount of /dev and /proc?])
1743 ])
1744
1745
1746 AC_ARG_ENABLE([makeinstall-chown],
1747 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
1748 [], [enable_makeinstall_chown=yes]
1749 )
1750 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
1751
1752 AC_ARG_ENABLE([makeinstall-setuid],
1753 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
1754 [], [enable_makeinstall_setuid=yes]
1755 )
1756 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
1757
1758
1759 AC_ARG_VAR([SUID_CFLAGS],
1760 [CFLAGS used for binaries which are usually with the suid bit])
1761 AC_ARG_VAR([SUID_LDFLAGS],
1762 [LDFLAGS used for binaries which are usually with the suid bit])
1763
1764 AC_ARG_VAR([DAEMON_CFLAGS],
1765 [CFLAGS used for binaries which are usually executed as daemons])
1766 AC_ARG_VAR([DAEMON_LDFLAGS],
1767 [LDFLAGS used for binaries which are usually executed as daemons])
1768
1769 AC_ARG_VAR([SOLIB_CFLAGS],
1770 [CFLAGS used for shared libraries])
1771 AC_ARG_VAR([SOLIB_LDFLAGS],
1772 [LDFLAGS used for shared libraries])
1773
1774 LIBS=""
1775
1776
1777 AC_CONFIG_HEADERS([config.h])
1778
1779 #
1780 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1781 # more details.
1782 #
1783 AC_CONFIG_FILES([
1784 Makefile
1785 libblkid/docs/Makefile
1786 libblkid/docs/version.xml
1787 libblkid/src/blkid.h
1788 libmount/docs/Makefile
1789 libmount/docs/version.xml
1790 libmount/src/libmount.h
1791 libsmartcols/docs/Makefile
1792 libsmartcols/docs/version.xml
1793 libsmartcols/src/libsmartcols.h
1794 po/Makefile.in
1795 ])
1796
1797 AC_OUTPUT
1798
1799 AC_MSG_RESULT([
1800 ${PACKAGE} ${VERSION}
1801
1802 prefix: ${prefix}
1803 exec prefix: ${exec_prefix}
1804
1805 localstatedir: ${localstatedir}
1806 bindir: ${bindir}
1807 sbindir: ${sbindir}
1808 libdir: ${libdir}
1809 includedir: ${includedir}
1810 usrbin_execdir: ${usrbin_execdir}
1811 usrsbin_execdir: ${usrsbin_execdir}
1812 usrlib_execdir: ${usrlib_execdir}
1813
1814 compiler: ${CC}
1815 cflags: ${CFLAGS}
1816 suid cflags: ${SUID_CFLAGS}
1817 ldflags: ${LDFLAGS}
1818 suid ldflags: ${SUID_LDFLAGS}
1819
1820 Python: ${PYTHON}
1821 Python version: ${PYTHON_VERSION}
1822 Python libs: ${pyexecdir}
1823
1824 Bash completions: ${with_bashcompletiondir}
1825 Systemd support: ${have_systemd}
1826
1827 warnings:
1828
1829 ${WARN_CFLAGS}
1830 ])