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