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