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