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