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