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