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