]> git.ipfire.org Git - thirdparty/util-linux.git/blob - configure.ac
po: merge changes
[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="27-Sep-2013"
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 # Check whether exec_prefix=/usr:
50 AS_CASE([$exec_prefix:$prefix],
51 [NONE:NONE | NONE:/usr | /usr:*],
52 [AC_MSG_NOTICE([Default --exec-prefix detected.])
53 AS_CASE([$bindir], ['${exec_prefix}/bin'], [bindir=/bin; AC_MSG_NOTICE([ --bindir defaults to /bin]) ])
54 AS_CASE([$sbindir], ['${exec_prefix}/sbin'], [bindir=/sbin; AC_MSG_NOTICE([ --sbindir defaults to /sbin])])
55 AS_CASE([$libdir], ['${exec_prefix}/lib'], [bindir=/lib; AC_MSG_NOTICE([ --libdir defaults to /lib]) ])
56 ]
57 )
58
59 AS_CASE([$prefix:$localstatedir],
60 [NONE:'${prefix}/var' | /usr:'${prefix}/var'],
61 [localstatedir=/run
62 AC_MSG_NOTICE([ --localstatedir defaults to /run])
63 ]
64 )
65 AC_SUBST([localstatedir])
66
67
68 # The original default values of {bin,sbin,lib}dir
69 usrbin_execdir='${exec_prefix}/bin'
70 AC_SUBST([usrbin_execdir])
71
72 usrsbin_execdir='${exec_prefix}/sbin'
73 AC_SUBST([usrsbin_execdir])
74
75 AS_CASE([$libdir],
76 ['${exec_prefix}/'* | '${prefix}/'* | /usr/*],
77 [usrlib_execdir=$libdir],
78 [usrlib_execdir='${exec_prefix}'$libdir]
79 )
80 AC_SUBST([usrlib_execdir])
81
82
83 AM_PROG_CC_C_O
84 AC_PROG_CC_STDC
85 AC_CANONICAL_HOST
86 AC_C_CONST
87 AC_C_VOLATILE
88 AC_C_BIGENDIAN
89
90 dnl Compiler warnings
91 UL_WARN_ADD([-fno-common])
92 UL_WARN_ADD([-Wall])
93 UL_WARN_ADD([-Werror=sequence-point])
94 UL_WARN_ADD([-Wextra])
95 UL_WARN_ADD([-Wmissing-declarations])
96 UL_WARN_ADD([-Wmissing-parameter-type])
97 UL_WARN_ADD([-Wmissing-prototypes])
98 UL_WARN_ADD([-Wno-missing-field-initializers])
99 UL_WARN_ADD([-Wredundant-decls])
100 UL_WARN_ADD([-Wsign-compare])
101 UL_WARN_ADD([-Wtype-limits])
102 UL_WARN_ADD([-Wuninitialized])
103 UL_WARN_ADD([-Wunused-but-set-parameter])
104 UL_WARN_ADD([-Wunused-but-set-variable])
105 UL_WARN_ADD([-Wunused-parameter])
106 UL_WARN_ADD([-Wunused-result])
107 UL_WARN_ADD([-Wunused-variable])
108 UL_WARN_ADD([-Wnested-externs])
109 UL_WARN_ADD([-Wpointer-arith])
110 UL_WARN_ADD([-Wstrict-prototypes])
111 UL_WARN_ADD([-Wformat-security])
112 AC_SUBST([WARN_CFLAGS])
113
114 UL_WARN_ADD([-Wno-clobbered], [BSD_WARN_CFLAGS])
115 AC_SUBST([BSD_WARN_CFLAGS])
116
117 dnl libtool-2
118 LT_INIT
119
120 m4_ifndef([PKG_PROG_PKG_CONFIG],
121 [m4_fatal([Could not locate the pkg-config autoconf
122 macros. These are usually located in /usr/share/aclocal/pkg.m4.
123 If your macros are in a different location, try setting the
124 environment variable AL_OPTS="-I/other/macro/dir" before running
125 ./autogen.sh or autoreconf again.])])
126 PKG_PROG_PKG_CONFIG
127
128 GTK_DOC_CHECK([1.10])
129 AC_PATH_PROG([XSLTPROC], [xsltproc])
130
131 linux_os=no
132 AS_CASE([${host_os}], [*linux*], [linux_os=yes])
133 AM_CONDITIONAL([LINUX], [test "x$linux_os" = xyes])
134
135 dnl define ARCH_<NAME> conditionals
136 UL_SET_ARCH([I86], [i?86-*])
137 UL_SET_ARCH([86_64], [x86_64*])
138 UL_SET_ARCH([IA64], [ia64*])
139 UL_SET_ARCH([S390], [s390*])
140 UL_SET_ARCH([SPARC], [sparc*])
141 UL_SET_ARCH([PPC], [ppc*|powerpc*])
142 UL_SET_ARCH([M68K], [m68*])
143 UL_SET_ARCH([MIPS], [mips*])
144 UL_SET_ARCH([HPPA], [hppa*])
145
146 AC_SYS_LARGEFILE
147
148 AM_GNU_GETTEXT_VERSION([0.14.1])
149 AM_GNU_GETTEXT([external])
150
151 AS_IF([test -d "$srcdir/po"], [
152 ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
153 ], [
154 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"
155 ])
156
157 AC_CHECK_HEADERS([linux/compiler.h linux/blkpg.h linux/major.h], [], [], [
158 #ifdef HAVE_LINUX_COMPILER_H
159 #include <linux/compiler.h>
160 #endif
161 ])
162 AC_CHECK_HEADERS([ \
163 asm/io.h \
164 err.h \
165 errno.h \
166 fcntl.h \
167 getopt.h \
168 inttypes.h \
169 linux/cdrom.h \
170 linux/falloc.h \
171 linux/watchdog.h \
172 linux/fd.h \
173 linux/raw.h \
174 linux/tiocl.h \
175 linux/version.h \
176 linux/securebits.h \
177 locale.h \
178 mntent.h \
179 net/if.h \
180 net/if_dl.h \
181 netinet/in.h \
182 paths.h \
183 pty.h \
184 security/pam_misc.h \
185 stdint.h \
186 stdio_ext.h \
187 stdlib.h \
188 endian.h \
189 byteswap.h \
190 sys/endian.h \
191 sys/disk.h \
192 sys/disklabel.h \
193 sys/file.h \
194 sys/io.h \
195 sys/ioccom.h \
196 sys/ioctl.h \
197 sys/mkdev.h \
198 sys/prctl.h \
199 sys/queue.h \
200 sys/resource.h \
201 sys/socket.h \
202 sys/sockio.h \
203 sys/stat.h \
204 sys/swap.h \
205 sys/syscall.h \
206 sys/time.h \
207 sys/ttydefaults.h \
208 sys/types.h \
209 sys/un.h \
210 unistd.h \
211 ])
212
213 AC_CHECK_HEADERS([langinfo.h],
214 [AM_CONDITIONAL([HAVE_LANGINFO], [true])],
215 [AM_CONDITIONAL([HAVE_LANGINFO], [false])])
216
217 dnl Convert some ac_cv_header_* variables to have_*
218 dnl
219 have_linux_raw_h=$ac_cv_header_linux_raw_h
220 have_linux_securebits_h=$ac_cv_header_linux_securebits_h
221 have_linux_watchdog_h=$ac_cv_header_linux_watchdog_h
222 have_security_pam_misc_h=$ac_cv_header_security_pam_misc_h
223
224
225 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
226 #include <time.h>
227 #include <unistd.h>
228 ]], [[
229 int a = 0;
230 struct tm *tm = localtime(0);
231 if (a == -1) /* false */
232 sleep(tm->tm_gmtoff);
233 ]])],
234 [AC_DEFINE([HAVE_TM_GMTOFF], [1], [Does struct tm have a field tm_gmtoff?])
235 ])
236
237 AC_CHECK_MEMBERS([struct termios.c_line],,,
238 [[#include <termios.h>]])
239
240 AC_CHECK_MEMBERS([struct stat.st_mtim.tv_nsec],,,
241 [#include <sys/stat.h>])
242
243 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
244 [[
245 #ifdef HAVE_SYS_SWAP_H
246 # include <sys/swap.h>
247 #endif
248 #include <unistd.h>
249 ]],
250 [[swapon("/dev/null", 0);]])],
251 [AC_DEFINE([SWAPON_HAS_TWO_ARGS], [1], [Is swapon() declared with two parameters?])
252 ],
253 [AC_MSG_NOTICE([Your libc thinks that swapon has 1 arg only.])
254 ])
255
256
257 AC_CHECK_DECLS([_NL_TIME_WEEK_1STDAY],[],[],[[#include <langinfo.h>]])
258
259 AC_CHECK_DECL([llseek],
260 [AC_DEFINE([HAVE_LLSEEK_PROTOTYPE], [1],
261 [Define to 1 if have llseek prototype])],
262 [],
263 [#include <unistd.h>])
264
265 AC_CHECK_DECL([lseek64],
266 [AC_DEFINE([HAVE_LSEEK64_PROTOTYPE], [1],
267 [Define to 1 if have lseek64 prototype])],
268 [],
269 [#define _LARGEFILE_SOURCE
270 #define _LARGEFILE64_SOURCE
271 #include <unistd.h>])
272
273 AC_CHECK_DECL([environ],
274 [AC_DEFINE([HAVE_ENVIRON_DECL], [1],
275 [Define to 1 if have **environ prototype])],
276 )
277
278 AC_CHECK_DECL([strsignal],
279 [AC_DEFINE([HAVE_STRSIGNAL_DECL], [1],
280 [Define to 1 if have strsignal function prototype])],
281 )
282
283 AC_CHECK_FUNCS([ \
284 __fpending \
285 secure_getenv \
286 __secure_getenv \
287 err \
288 errx \
289 fsync \
290 futimens \
291 getdomainname \
292 getdtablesize \
293 getexecname \
294 getmntinfo \
295 getrlimit \
296 inotify_init \
297 jrand48 \
298 lchown \
299 llseek \
300 lseek64 \
301 mempcpy \
302 nanosleep \
303 personality \
304 posix_fadvise \
305 prctl \
306 rpmatch \
307 scandirat \
308 setresgid \
309 setresuid \
310 sigqueue \
311 srandom \
312 strnchr \
313 strndup \
314 strnlen \
315 strtoull \
316 sysconf \
317 updwtmp \
318 usleep \
319 warn \
320 warnx \
321 ])
322 AC_FUNC_FSEEKO
323
324 AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no])
325 AC_CHECK_FUNCS([ioperm iopl], [have_io=yes])
326
327 AC_CHECK_MEMBER([struct sockaddr.sa_len],
328 AC_DEFINE_UNQUOTED([HAVE_SA_LEN], [1], [Define if struct sockaddr contains sa_len]), [],
329 [#include <sys/types.h>
330 #include <sys/socket.h>])
331
332 SOCKET_LIBS=
333 AC_SEARCH_LIBS([socket], [socket],
334 [AS_IF([test x"$ac_cv_search_socket" != x"none required"],
335 [SOCKET_LIBS="$SOCKET_LIBS -lsocket"])
336 ])
337 AC_SUBST([SOCKET_LIBS])
338
339
340 have_dirfd=no
341 AC_CHECK_FUNCS([dirfd], [have_dirfd=yes], [have_dirfd=no])
342 AS_IF([test x"$have_dirfd" = xno], [
343 AC_CHECK_DECLS([dirfd],
344 [have_dirfd=yes], [have_dirfd=no],
345 [#include <sys/types.h>
346 #include <dirent.h>])
347 ])
348
349 have_ddfd=no
350 AS_IF([test x"$have_dirfd" = xno], [
351 AC_CHECK_MEMBERS([DIR.dd_fd],
352 [have_ddfd=yes], [have_ddfd=no],
353 [#include <sys/types.h>
354 #include <dirent.h>])
355 ])
356
357 AS_CASE([$have_dirfd:$have_ddfd],
358 [no:no],
359 [AC_MSG_ERROR([cannot find a method to get filedescriptor of directory])]
360 )
361
362
363 AC_MSG_CHECKING([whether program_invocation_short_name is defined])
364 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
365 #include <argp.h>
366 ]], [[
367 program_invocation_short_name = "test";
368 ]])], [
369 AC_MSG_RESULT([yes])
370 AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
371 [Define if program_invocation_short_name is defined])
372 ], [
373 AC_MSG_RESULT([no])
374 ])
375
376
377 AC_MSG_CHECKING([whether __progname is defined])
378 AC_LINK_IFELSE([AC_LANG_PROGRAM([extern char *__progname;],
379 [if (*__progname == 0) return;])],
380 AC_DEFINE([HAVE___PROGNAME], [1], [Define if __progname is defined])
381 AC_MSG_RESULT([yes]),
382 AC_MSG_RESULT([no]))
383
384 dnl Static compilation
385 m4_define([UL_STATIC_PROGRAMS], [losetup, mount, umount, fdisk, sfdisk, blkid])
386
387 AC_ARG_ENABLE([static-programs],
388 [AS_HELP_STRING([--enable-static-programs=LIST],
389 [link static the programs in LIST (comma-separated,
390 supported for ]m4_defn([UL_STATIC_PROGRAMS])[)])])
391
392 AS_CASE([$enable_static_programs],
393 [yes],
394 [enable_static_programs=m4_quote(UL_STATIC_PROGRAMS)],
395 [no],
396 [enable_static_programs=]
397 )
398
399 dnl Set all the individual AM_CONDITIONALs
400 m4_foreach([UL_PRG], m4_defn([UL_STATIC_PROGRAMS]), [
401 AS_CASE([,$enable_static_programs,],
402 [*,UL_PRG,*], [static_[]UL_PRG=yes]
403 )
404 AS_IF([test "x$static_[]UL_PRG" = xyes], [AC_MSG_NOTICE([enable static build: UL_PRG.])])
405 AM_CONDITIONAL([HAVE_STATIC_]m4_toupper(UL_PRG),
406 [test "x$static_[]UL_PRG" = xyes])
407 ])
408
409 AX_CHECK_TLS
410
411 AC_DEFUN([UL_SCANF_TYPE_MODIFIER], [dnl
412 # include <stdio.h>
413 int main()
414 {
415 int i;
416 char *s;
417 i = sscanf("x", $1, &s);
418 if (i == 1)
419 return 0;
420 return 1;
421 }])
422
423 AC_CACHE_VAL([scanf_cv_alloc_modifier],
424 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%ms"])])],
425 [scanf_cv_alloc_modifier=ms],
426 AC_RUN_IFELSE([AC_LANG_SOURCE([UL_SCANF_TYPE_MODIFIER(["%as"])])],
427 [scanf_cv_alloc_modifier=as],
428 [scanf_cv_alloc_modifier=no]
429 )
430 ,
431
432 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([
433 #include <stdio.h>
434 #include <unistd.h>
435
436 #ifdef __GLIBC__
437
438 #if !(__GLIBC_PREREQ(2, 7))
439 #error %m is not available
440 #endif
441
442 #elif defined(_POSIX_VERSION)
443
444 #if _POSIX_VERSION < 200809L
445 #error %m is not available
446 #endif
447
448 #else
449 #error Your C-library is not supported.
450 #endif
451 ])],
452 [scanf_cv_alloc_modifier=ms],
453 [scanf_cv_alloc_modifier=no])]
454 )
455 )
456
457 AC_MSG_CHECKING([scanf string alloc modifiers])
458 AS_CASE([$scanf_cv_alloc_modifier],
459 [ms],
460 [AC_MSG_RESULT([(%ms) yes])
461 AC_DEFINE([HAVE_SCANF_MS_MODIFIER], [1], [scanf %ms modifier])
462 have_scanf_alloc_modifier=yes],
463 [as],
464 [AC_MSG_RESULT([(%as) yes])
465 have_scanf_alloc_modifier=yes
466 AC_DEFINE([HAVE_SCANF_AS_MODIFIER], [1], [scanf %as modifier])],
467 [AC_MSG_RESULT([no])
468 have_scanf_alloc_modifier=no]
469 )
470
471 UL_CHECK_LIB([util], [openpty])
472 UL_CHECK_LIB([termcap], [tgetnum])
473
474 AC_CHECK_TYPES([union semun], [], [], [[
475 #include <sys/sem.h>
476 ]])
477 AC_CHECK_TYPES([loff_t])
478
479 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
480 #include <wchar.h>
481 #include <wctype.h>
482 #include <stdio.h>
483 ]], [[
484 wchar_t wc;
485 wint_t w;
486 w = fgetwc(stdin);
487 if (w == WEOF) exit(1);
488 wc = w;
489 fputwc(wc,stdout);
490 ]])],
491 [AC_DEFINE([HAVE_WIDECHAR], [1], [Do we have wide character support?])
492 ])
493
494 AC_CHECK_TYPES([cpu_set_t], [have_cpu_set_t=yes], [], [[
495 #include <sched.h>
496 ]])
497
498 AM_CONDITIONAL([HAVE_CPU_SET_T], [test "x$have_cpu_set_t" = xyes])
499
500 AC_CHECK_TYPES([sighandler_t], [], [], [[
501 #include <signal.h>
502 ]])
503
504 AC_CHECK_DECLS([CPU_ALLOC], [], [], [[
505 #include <sched.h>
506 ]])
507
508 # on Solaris, you can't mix and match standards, since we use c99
509 # aparently at this stage, XOPEN_SOURCE will conflict. As workaround,
510 # check for crypt.h and use that without XOPEN_SOURCE.
511 AC_CHECK_HEADERS([crypt.h])
512 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
513 #ifdef HAVE_CRYPT_H
514 #include <crypt.h>
515 #else
516 #define _XOPEN_SOURCE
517 #include <unistd.h>
518 #endif
519 ]], [[
520 char *c = crypt("abc","pw");
521 ]])],[],[
522 LIBS="$LIBS -lcrypt"
523 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
524 #ifdef HAVE_CRYPT_H
525 #include <crypt.h>
526 #else
527 #define _XOPEN_SOURCE
528 #include <unistd.h>
529 #endif
530 ]], [[
531 char *c = crypt("abc","pw");
532 ]])],[
533 AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?])
534 have_libcrypt=yes
535 ],[
536 AC_MSG_ERROR([crypt() is not available])
537 ])
538 ])
539 AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes])
540
541
542 AC_ARG_WITH([selinux],
543 AS_HELP_STRING([--with-selinux], [compile with SELinux support]),
544 [], [with_selinux=no]
545 )
546
547 AS_IF([test "x$with_selinux" = xno], [
548 AM_CONDITIONAL([HAVE_SELINUX], [false])
549 ], [
550 PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.0],
551 [AC_DEFINE([HAVE_LIBSELINUX], [1], [Define if SELinux is available])
552 UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux])
553 AM_CONDITIONAL([HAVE_SELINUX], [true])
554 have_selinux=yes],
555 [have_selinux=no])
556
557 AS_CASE([$with_selinux:$have_selinux],
558 [yes:no], [AC_MSG_ERROR([SELinux selected but libselinux not found or too old])]
559 )
560
561 AS_IF([test "x$have_selinux" = xyes], [
562 UL_SET_FLAGS([], [], [$SELINUX_LIBS])
563 # This function is missing in old libselinux 1.xx versions
564 AC_CHECK_FUNCS([security_get_initial_context])
565 UL_RESTORE_FLAGS
566 ])
567 ])
568 AC_SUBST([SELINUX_LIBS])
569 AC_SUBST([SELINUX_LIBS_STATIC])
570
571 AC_ARG_WITH([audit],
572 AS_HELP_STRING([--with-audit], [compile with audit support]),
573 [], [with_audit=no]
574 )
575
576 AS_IF([test "x$with_audit" = xno], [
577 AM_CONDITIONAL([HAVE_AUDIT], [false])
578 ], [
579 UL_CHECK_LIB([audit], [audit_log_user_message])
580 AS_CASE([$with_audit:$have_audit],
581 [yes:no],
582 [AC_MSG_ERROR([Audit selected but libaudit not found (or does not support audit_log_user_message())])]
583 )
584 ])
585
586 AC_ARG_WITH([udev], AS_HELP_STRING([--without-udev], [compile without udev support]),
587 [], [with_udev=auto]
588 )
589
590 AS_IF([test "x$with_udev" = xno], [
591 AM_CONDITIONAL([HAVE_UDEV], [false])
592 ], [
593 UL_CHECK_LIB([udev], [udev_new])
594 AS_CASE([$with_udev:$have_udev],
595 [yes:no],
596 [AC_MSG_ERROR([udev selected but libudev not found])]
597 )
598 ])
599
600 AC_ARG_WITH([ncurses],
601 AS_HELP_STRING([--with-ncurses], [build with non-wide ncurses, default is wide version
602 (--without-ncurses disables all ncurses(w) support)]),
603 [], [with_ncurses=auto]
604 )
605 AM_CONDITIONAL([HAVE_NCURSES], [false])
606
607 AS_IF([test "x$with_ncurses" != xno], [
608 have_ncurses=no
609
610 dnl First try to find the pkg-config module.
611 PKG_CHECK_MODULES(NCURSESW, [ncursesw], [
612 have_ncurses=yes
613 NCURSES_LIBS=${NCURSESW_LIBS}
614 NCURSES_CFLAGS=${NCURSESW_CFLAGS}
615 AC_DEFINE([HAVE_LIBNCURSESW])
616 ], [
617 PKG_CHECK_MODULES(NCURSES, [ncurses], [
618 have_ncurses=yes
619 AC_DEFINE([HAVE_LIBNCURSES])
620 ], [:])
621 ])
622
623 AS_IF([test "x$have_ncurses" = xyes], [
624 dnl If that worked, setup the defines that the code expects.
625 save_CPPFLAGS="$CPPFLAGS"
626 CPPFLAGS="$CPPFLAGS $NCURSES_CFLAGS"
627 AC_CHECK_HEADERS([ncurses.h])
628 CPPFLAGS="$save_CPPFLAGS"
629 ], [
630 dnl If that failed, fall back to classic searching.
631 AC_CHECK_HEADERS([ncurses.h ncurses/ncurses.h], [
632 AS_IF([test "x$with_ncurses" = xauto], [
633 UL_CHECK_LIB([ncursesw], [initscr], [ncurses])
634 AS_IF([test "x$have_ncurses" = xyes], [
635 AC_CHECK_HEADERS([ncursesw/ncurses.h])
636 NCURSES_LIBS="-lncursesw"
637 ])
638 ])
639 AS_IF([test "x$have_ncurses" = xno], [
640 UL_CHECK_LIB(ncurses, initscr)
641 AS_IF([test "x$have_ncurses" = xyes], [
642 NCURSES_LIBS="-lncurses"
643 ])
644 ])
645 ])
646 ])
647
648 AS_IF([test "x$have_ncurses" = xno], [
649 AC_MSG_ERROR([ncurses or ncursesw selected, but library not found (--without-ncurses to disable)])
650 ])
651 ])
652 AC_SUBST([NCURSES_CFLAGS])
653 AC_SUBST([NCURSES_LIBS])
654
655
656 AC_ARG_WITH([slang],
657 AS_HELP_STRING([--with-slang], [compile cfdisk with slang]),
658 [], [with_slang=no]
659 )
660 have_slang=no
661 AS_IF([test "x$with_slang" = xyes], [
662 AC_CHECK_HEADERS([slang.h slang/slang.h])
663 AC_CHECK_HEADERS([slcurses.h slang/slcurses.h],
664 [have_slang=yes], [], [
665 #ifdef HAVE_SLANG_H
666 #include <slang.h>
667 #elif defined(HAVE_SLANG_SLANG_H)
668 #include <slang/slang.h>
669 #endif
670 ])
671 AS_IF([test "x$have_slang" = xno], [
672 AC_MSG_ERROR([slang selected but slcurses.h not found])
673 ])
674 ])
675 AM_CONDITIONAL([HAVE_SLANG], [test "x$have_slang" = xyes])
676
677 AM_CONDITIONAL([BUILD_CFDISK], [test "x$have_slang" = xyes -o "x$have_ncurses" = xyes])
678
679
680 dnl Try pkg-config for libtinfo
681 PKG_CHECK_MODULES(TINFO, [tinfo], [have_tinfo=yes], [
682 dnl If that failed, fall back to classic searching.
683 AC_CHECK_LIB([tinfo], [tgetent], [
684 have_tinfo=yes
685 TINFO_LIBS="-ltinfo"
686 TINFO_CFLAGS=""])
687 ])
688 AC_SUBST([TINFO_LIBS])
689 AC_SUBST([TINFO_CFLAGS])
690 AM_CONDITIONAL([HAVE_TINFO], [test "x$have_tinfo" = xxyes])
691
692
693 AC_ARG_WITH([utempter],
694 AS_HELP_STRING([--with-utempter], [compile script(1) with libutempter]),
695 [], [with_utempter=no]
696 )
697
698 AS_IF([test "x$with_utempter" = xyes], [
699 UL_CHECK_LIB([utempter], [utempter_add_record])
700 AS_IF([test "x$have_utempter" = xno], [
701 AC_MSG_ERROR([utempter selected but libutempter not found])
702 ])
703 ], [
704 AM_CONDITIONAL([HAVE_UTEMPTER], [false])
705 ])
706
707
708 AC_ARG_ENABLE([most-builds],
709 AS_HELP_STRING([--enable-most-builds], [build everything other than experimental code]),
710 [], [enable_most_builds=no]
711 )
712 AS_IF([test "x$enable_most_builds" = xyes], [
713 enable_chfn_chsh=yes
714 enable_line=yes
715 enable_mesg=yes
716 enable_newgrp=yes
717 enable_reset=yes
718 enable_socket_activation=yes
719 enable_tunelp=yes
720 enable_vipw=yes
721 enable_write=yes
722 with_python=yes
723 ])
724
725 dnl
726 dnl libuuid
727 dnl
728 AC_ARG_ENABLE([libuuid],
729 AS_HELP_STRING([--disable-libuuid], [do not build libuuid and uuid utilities]),
730 [], [enable_libuuid=yes]
731 )
732 UL_BUILD_INIT([libuuid])
733 AC_SUBST([LIBUUID_VERSION])
734 AC_SUBST([LIBUUID_VERSION_INFO])
735 AM_CONDITIONAL(BUILD_LIBUUID, test "x$build_libuuid" = xyes)
736
737 AS_IF([test "x$enable_libuuid" = xyes], [
738 AC_DEFINE(HAVE_LIBUUID, 1, [Define to 1 if you have the -luuid.])
739 ], [
740 AC_MSG_WARN([uuid library is not found; mkswap(8) will not generate UUIDs])
741 ])
742
743 dnl
744 dnl libblkid
745 dnl
746 AC_ARG_ENABLE([libblkid],
747 AS_HELP_STRING([--disable-libblkid], [do not build libblkid and many related utilities]),
748 [], [enable_libblkid=yes]
749 )
750 UL_BUILD_INIT([libblkid])
751 AC_SUBST([LIBBLKID_DATE])
752 AC_SUBST([LIBBLKID_VERSION])
753 AC_SUBST([LIBBLKID_VERSION_INFO])
754 AC_DEFINE_UNQUOTED([LIBBLKID_VERSION], ["$LIBBLKID_VERSION"], [libblkid version string])
755 AC_DEFINE_UNQUOTED([LIBBLKID_DATE], ["$LIBBLKID_DATE"], [libblkid date string])
756 AS_IF([test "x$build_libblkid" = xyes], [
757 AC_DEFINE([HAVE_LIBBLKID], [1], [Define to 1 if you have the -lblkid.])
758 ])
759 AM_CONDITIONAL([BUILD_LIBBLKID], [test "x$build_libblkid" = xyes])
760 AM_CONDITIONAL([BUILD_LIBBLKID_TESTS], [test "x$build_libblkid" = xyes -a "x$enable_static" = xyes])
761
762 dnl
763 dnl libmount
764 dnl
765 AC_ARG_ENABLE([libmount],
766 AS_HELP_STRING([--disable-libmount], [do not build libmount]),
767 [], [enable_libmount=check]
768 )
769 UL_BUILD_INIT([libmount])
770 UL_REQUIRES_LINUX([libmount])
771 UL_REQUIRES_BUILD([libmount], [libblkid])
772 UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
773 AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
774 AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
775
776 AC_SUBST([LIBMOUNT_VERSION])
777 AC_SUBST([LIBMOUNT_VERSION_INFO])
778 AC_DEFINE_UNQUOTED([LIBMOUNT_VERSION], ["$LIBMOUNT_VERSION"], [libmount version string])
779
780
781 dnl
782 dnl libfdisk is enabled all time if possible
783 dnl
784 UL_BUILD_INIT([libfdisk], [check])
785 UL_REQUIRES_BUILD([libfdisk], [libuuid])
786 AM_CONDITIONAL([BUILD_LIBFDISK], [test "x$build_libfdisk" = xyes])
787
788 UL_BUILD_INIT([fdisk], [check])
789 UL_REQUIRES_BUILD([fdisk], [libfdisk])
790 AM_CONDITIONAL([BUILD_FDISK], [test "x$build_fdisk" = xyes])
791
792
793 AC_ARG_ENABLE([deprecated-mount],
794 AS_HELP_STRING([--enable-deprecated-mount], [build old mount utilities]),
795 [], [enable_deprecated_mount=no]
796 )
797 UL_BUILD_INIT([deprecated_mount])
798 UL_REQUIRES_LINUX([deprecated_mount])
799 UL_REQUIRES_BUILD([deprecated_mount], [libblkid])
800 AM_CONDITIONAL([BUILD_DEPRECATED_MOUNT], [test "x$build_deprecated_mount" = xyes])
801
802
803 AC_ARG_ENABLE([mount],
804 AS_HELP_STRING([--disable-mount], [do not build mount(8) and umount(8)]),
805 [], [enable_mount=check]
806 )
807 UL_BUILD_INIT([mount])
808 UL_REQUIRES_BUILD([mount], [libmount])
809 UL_CONFLICTS_BUILD([mount], [deprecated_mount], [old deprecated mount version])
810 AM_CONDITIONAL([BUILD_MOUNT], [test "x$build_mount" = xyes])
811
812
813 AC_ARG_ENABLE([losetup],
814 AS_HELP_STRING([--disable-losetup], [do not build losetup]),
815 [], [enable_losetup=check]
816 )
817 UL_BUILD_INIT([losetup])
818 UL_REQUIRES_LINUX([losetup])
819 AM_CONDITIONAL([BUILD_LOSETUP], [test "x$build_losetup" = xyes])
820
821
822 AC_ARG_ENABLE([cytune],
823 AS_HELP_STRING([--disable-cytune], [do not build cytune]),
824 [], [enable_cytune=check]
825 )
826 UL_BUILD_INIT([cytune])
827 UL_REQUIRES_LINUX([cytune])
828 AM_CONDITIONAL([BUILD_CYTUNE], [test "x$build_cytune" = xyes])
829
830
831 AC_ARG_ENABLE([fsck],
832 AS_HELP_STRING([--disable-fsck], [do not build fsck]),
833 [], [enable_fsck=check]
834 )
835 UL_BUILD_INIT([fsck])
836 UL_REQUIRES_BUILD([fsck], [libmount])
837 AM_CONDITIONAL([BUILD_FSCK], [test "x$build_fsck" = xyes])
838
839
840 AC_ARG_ENABLE([partx],
841 AS_HELP_STRING([--disable-partx], [do not build addpart, delpart, partx]),
842 [], [enable_partx=check]
843 )
844 UL_BUILD_INIT([partx])
845 UL_REQUIRES_LINUX([partx])
846 UL_REQUIRES_BUILD([partx], [libblkid])
847 AM_CONDITIONAL([BUILD_PARTX], [test "x$build_partx" = xyes])
848
849
850 AC_ARG_ENABLE([uuidd],
851 AS_HELP_STRING([--disable-uuidd], [do not build the uuid daemon]),
852 [], [enable_uuidd=check]
853 )
854 UL_BUILD_INIT([uuidd])
855 UL_REQUIRES_BUILD([uuidd], [libuuid])
856 AS_IF([test "x$build_uuidd" = xyes], [
857 AC_DEFINE([HAVE_UUIDD], [1], [Define to 1 if you want to use uuid daemon.])
858 ])
859 AM_CONDITIONAL([BUILD_UUIDD], [test "x$build_uuidd" = xyes])
860
861
862 AC_ARG_ENABLE([mountpoint],
863 AS_HELP_STRING([--disable-mountpoint], [do not build mountpoint]),
864 [], [enable_mountpoint=check]
865 )
866 UL_BUILD_INIT([mountpoint])
867 UL_REQUIRES_BUILD([mountpoint], [libmount])
868 AM_CONDITIONAL([BUILD_MOUNTPOINT], [test "x$build_mountpoint" = xyes])
869
870
871 AC_ARG_ENABLE([fallocate],
872 AS_HELP_STRING([--disable-fallocate], [do not build fallocate]),
873 [], [enable_fallocate=check]
874 )
875 UL_BUILD_INIT([fallocate])
876 UL_REQUIRES_LINUX([fallocate])
877 UL_REQUIRES_SYSCALL_CHECK([fallocate], [UL_CHECK_SYSCALL([fallocate])])
878 AM_CONDITIONAL([BUILD_FALLOCATE], [test "x$build_fallocate" = xyes])
879
880 AS_IF([test "x$build_fallocate" = xyes], [
881 dnl check for valid fallocate() function
882 dnl with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
883 dnl when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
884 dnl and program can't be linked.
885 dnl AC_CHECK_FUNC can't catch such errors since it's redefining
886 dnl function prototype.
887 AC_MSG_CHECKING([for valid fallocate() function])
888 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
889 #ifdef HAVE_UNISTD_H
890 # include <unistd.h>
891 #endif
892 #ifdef HAVE_SYS_TYPES_H
893 # include <sys/types.h>
894 #endif
895 #ifdef HAVE_LINUX_FALLOC_H
896 # include <linux/falloc.h>
897 #endif
898 #ifdef HAVE_FCNTL_H
899 # include <fcntl.h>
900 #endif
901 ]],[[
902 long ret;
903 ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
904 if (ret != 0) {
905 return 1;
906 }
907 ]])],[
908 AC_MSG_RESULT([yes])
909 AC_DEFINE([HAVE_FALLOCATE], [1], [Have valid fallocate() function])],[
910 AC_MSG_RESULT([no])])
911 ])
912
913
914 AC_ARG_ENABLE([unshare],
915 AS_HELP_STRING([--disable-unshare], [do not build unshare]),
916 [], [enable_unshare=check]
917 )
918 UL_BUILD_INIT([unshare])
919 UL_REQUIRES_LINUX([unshare])
920 UL_REQUIRES_SYSCALL_CHECK([unshare], [UL_CHECK_SYSCALL([unshare])])
921 AM_CONDITIONAL([BUILD_UNSHARE], [test "x$build_unshare" = xyes])
922 AC_CHECK_FUNCS([unshare])
923
924 AC_ARG_ENABLE([nsenter],
925 AS_HELP_STRING([--disable-nsenter], [do not build nsenter]),
926 [], [enable_nsenter=check]
927 )
928 UL_BUILD_INIT([nsenter])
929 UL_REQUIRES_LINUX([nsenter])
930 UL_REQUIRES_SYSCALL_CHECK([nsenter], [UL_CHECK_SYSCALL([setns])], [setns])
931 AM_CONDITIONAL([BUILD_NSENTER], [test "x$build_nsenter" = xyes])
932 AC_CHECK_FUNCS([setns])
933
934 dnl setpriv depends on libcap-ng. It would be possible to build
935 dnl a version of setpriv with limited functionality without libcap-ng,
936 dnl but this isn't currently supported.
937 UL_CHECK_LIB([cap-ng], [capng_apply], [cap_ng])
938 AC_ARG_ENABLE([setpriv],
939 AS_HELP_STRING([--disable-setpriv], [do not build setpriv]),
940 [], [enable_setpriv=check]
941 )
942 UL_BUILD_INIT([setpriv])
943 UL_REQUIRES_LINUX([setpriv])
944 UL_REQUIRES_HAVE([setpriv], [linux_securebits_h], [securebits.h header file])
945 UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library])
946 AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes])
947
948
949 AC_ARG_ENABLE([eject],
950 AS_HELP_STRING([--disable-eject], [do not build eject]),
951 [], [enable_eject=check]
952 )
953 UL_BUILD_INIT([eject])
954 UL_REQUIRES_LINUX([eject])
955 UL_REQUIRES_BUILD([eject], [libmount])
956 AM_CONDITIONAL([BUILD_EJECT], [test "x$build_eject" = xyes])
957
958
959 AC_ARG_ENABLE([agetty],
960 AS_HELP_STRING([--disable-agetty], [do not build agetty]),
961 [], [enable_agetty=yes]
962 )
963 UL_BUILD_INIT([agetty])
964 AM_CONDITIONAL([BUILD_AGETTY], [test "x$build_agetty" = xyes])
965
966
967 AC_ARG_ENABLE([cramfs],
968 AS_HELP_STRING([--disable-cramfs], [do not build fsck.cramfs, mkfs.cramfs]),
969 [], [enable_cramfs=check]
970 )
971 UL_BUILD_INIT([cramfs])
972 AC_CHECK_LIB([z], [crc32], [have_z=yes], [have_z=no])
973 UL_REQUIRES_HAVE([cramfs], [z], [z library])
974 AM_CONDITIONAL([BUILD_CRAMFS], [test "x$build_cramfs" = xyes])
975
976
977 AC_ARG_ENABLE([bfs],
978 AS_HELP_STRING([--disable-bfs], [do not build mkfs.bfs]),
979 [], [enable_bfs=yes]
980 )
981 UL_BUILD_INIT([bfs])
982 AM_CONDITIONAL([BUILD_BFS], [test "x$build_bfs" = xyes])
983
984
985 AC_ARG_ENABLE([fdformat],
986 AS_HELP_STRING([--disable-fdformat], [do not build fdformat]),
987 [], [enable_fdformat=check]
988 )
989 UL_BUILD_INIT([fdformat])
990 UL_REQUIRES_LINUX([fdformat])
991 AM_CONDITIONAL([BUILD_FDFORMAT], [test "x$build_fdformat" = xyes])
992
993
994 AC_ARG_ENABLE([hwclock],
995 AS_HELP_STRING([--disable-hwclock], [do not build hwclock]),
996 [], [enable_hwclock=check]
997 )
998 have_linuxdummy=$linux_os
999
1000 UL_BUILD_INIT([hwclock])
1001 UL_REQUIRES_HAVE([hwclock], [io, linuxdummy], [ioperm iopl function or Linux])
1002 AM_CONDITIONAL([BUILD_HWCLOCK], [test "x$build_hwclock" = xyes])
1003
1004
1005 UL_BUILD_INIT([swapon], [check])
1006 UL_REQUIRES_LINUX([swapon])
1007 UL_REQUIRES_BUILD([swapon], [libblkid])
1008 UL_REQUIRES_BUILD([swapon], [libmount])
1009 AM_CONDITIONAL([BUILD_SWAPON], [test "x$build_swapon" = xyes])
1010
1011
1012 UL_BUILD_INIT([lsblk], [check])
1013 UL_REQUIRES_LINUX([lsblk])
1014 UL_REQUIRES_BUILD([lsblk], [libblkid])
1015 UL_REQUIRES_BUILD([lsblk], [libmount])
1016 AM_CONDITIONAL([BUILD_LSBLK], [test "x$build_lsblk" = xyes])
1017
1018
1019 UL_BUILD_INIT([lscpu], [check])
1020 UL_REQUIRES_LINUX([lscpu])
1021 UL_REQUIRES_HAVE([lscpu], [cpu_set_t], [cpu_set_t type])
1022 AM_CONDITIONAL([BUILD_LSCPU], [test "x$build_lscpu" = xyes])
1023
1024
1025 UL_BUILD_INIT([chcpu], [check])
1026 UL_REQUIRES_LINUX([chcpu])
1027 UL_REQUIRES_HAVE([chcpu], [cpu_set_t], [cpu_set_t type])
1028 AM_CONDITIONAL([BUILD_CHCPU], [test "x$build_chcpu" = xyes])
1029
1030
1031 AC_ARG_ENABLE([wdctl],
1032 AS_HELP_STRING([--disable-wdctl], [do not build wdctl]),
1033 [], [enable_wdctl=check]
1034 )
1035 UL_BUILD_INIT([wdctl])
1036 UL_REQUIRES_LINUX([wdctl])
1037 UL_REQUIRES_HAVE([wdctl], [linux_watchdog_h], [linux/watchdog.h header file])
1038 AM_CONDITIONAL([BUILD_WDCTL], [test "x$build_wdctl" = xyes])
1039
1040
1041 UL_BUILD_INIT([swaplabel], [check])
1042 UL_REQUIRES_BUILD([swaplabel], [libblkid])
1043 AM_CONDITIONAL([BUILD_SWAPLABEL], [test "x$build_swaplabel" = xyes])
1044
1045
1046 UL_BUILD_INIT([prlimit], [check])
1047 UL_REQUIRES_LINUX([prlimit])
1048 UL_REQUIRES_SYSCALL_CHECK([prlimit], [UL_CHECK_SYSCALL([prlimit64])], [prlimit64])
1049 AM_CONDITIONAL([BUILD_PRLIMIT], [test "x$build_prlimit" = xyes])
1050 AS_IF([test "x$build_prlimit" = xyes], [
1051 AC_CHECK_FUNCS([prlimit])
1052 ])
1053
1054
1055 UL_BUILD_INIT([lslocks], [check])
1056 UL_REQUIRES_LINUX([lslocks])
1057 UL_REQUIRES_BUILD([lslocks], [libmount])
1058 AM_CONDITIONAL([BUILD_LSLOCKS], [test "x$build_lslocks" = xyes])
1059
1060
1061 AC_ARG_ENABLE([switch_root],
1062 AS_HELP_STRING([--disable-switch_root], [do not build switch_root]),
1063 [], [enable_switch_root=check]
1064 )
1065 UL_BUILD_INIT([switch_root])
1066 UL_REQUIRES_LINUX([switch_root])
1067 UL_REQUIRES_HAVE([switch_root], [openat], [openat function])
1068 AM_CONDITIONAL([BUILD_SWITCH_ROOT], [test "x$build_switch_root" = xyes])
1069
1070
1071 AC_ARG_ENABLE([pivot_root],
1072 AS_HELP_STRING([--disable-pivot_root], [do not build pivot_root]),
1073 [], [enable_pivot_root=check]
1074 )
1075 UL_BUILD_INIT([pivot_root])
1076 UL_REQUIRES_LINUX([switch_root])
1077 UL_REQUIRES_SYSCALL_CHECK([pivot_root], [UL_CHECK_SYSCALL([pivot_root])])
1078 AM_CONDITIONAL([BUILD_PIVOT_ROOT], [test "x$build_pivot_root" = xyes])
1079
1080
1081 AC_ARG_ENABLE([tunelp],
1082 AS_HELP_STRING([--enable-tunelp], [build tunelp]),
1083 [], [enable_tunelp=no]
1084 )
1085 UL_BUILD_INIT([tunelp])
1086 UL_REQUIRES_LINUX([tunelp])
1087 AM_CONDITIONAL([BUILD_TUNELP], [test "x$build_tunelp" = xyes])
1088
1089
1090 AC_ARG_ENABLE([kill],
1091 AS_HELP_STRING([--disable-kill], [do not build kill]),
1092 [], [enable_kill=check]
1093 )
1094 UL_BUILD_INIT([kill])
1095 UL_REQUIRES_LINUX([kill])
1096 AM_CONDITIONAL([BUILD_KILL], [test "x$build_kill" = xyes])
1097
1098
1099 AC_ARG_ENABLE([deprecated-last],
1100 AS_HELP_STRING([--enable-deprecated-last], [build old deprecated last]),
1101 [], [enable_deprecated_last=no]
1102 )
1103 UL_BUILD_INIT([deprecated_last])
1104 AM_CONDITIONAL([BUILD_DEPRECATED_LAST], [test "x$build_deprecated_last" = xyes])
1105
1106
1107 AC_ARG_ENABLE([last],
1108 AS_HELP_STRING([--disable-last], [do not build last]),
1109 [], [enable_last=check]
1110 )
1111 UL_BUILD_INIT([last])
1112 UL_CONFLICTS_BUILD([last], [deprecated_last], [old deprecated last version])
1113 AM_CONDITIONAL([BUILD_LAST], [test "x$build_last" = xyes])
1114
1115
1116 AC_ARG_ENABLE([utmpdump],
1117 AS_HELP_STRING([--disable-utmpdump], [do not build utmpdump]),
1118 [], [enable_utmpdump=yes]
1119 )
1120 UL_BUILD_INIT([utmpdump])
1121 AM_CONDITIONAL([BUILD_UTMPDUMP], [test "x$build_utmpdump" = xyes])
1122
1123
1124 AC_ARG_ENABLE([line],
1125 AS_HELP_STRING([--enable-line], [build line]),
1126 [], [enable_line=no]
1127 )
1128 UL_BUILD_INIT([line])
1129 AM_CONDITIONAL([BUILD_LINE], [test "x$build_line" = xyes])
1130
1131
1132 AC_ARG_ENABLE([mesg],
1133 AS_HELP_STRING([--disable-mesg], [do not build mesg]),
1134 [], [enable_mesg=yes]
1135 )
1136 UL_BUILD_INIT([mesg])
1137 AM_CONDITIONAL([BUILD_MESG], [test "x$build_mesg" = xyes])
1138
1139
1140 AC_ARG_ENABLE([raw],
1141 AS_HELP_STRING([--disable-raw], [do not build raw]),
1142 [], [enable_raw=check]
1143 )
1144 UL_BUILD_INIT([raw])
1145 UL_REQUIRES_LINUX([raw])
1146 UL_REQUIRES_HAVE([raw], [linux_raw_h], [raw.h header file])
1147 AM_CONDITIONAL([BUILD_RAW], [test "x$build_raw" = xyes])
1148
1149
1150 AC_ARG_ENABLE([rename],
1151 AS_HELP_STRING([--disable-rename], [do not build rename]),
1152 [], [enable_rename=yes]
1153 )
1154 UL_BUILD_INIT([rename])
1155 AM_CONDITIONAL([BUILD_RENAME], [test "x$build_rename" = xyes])
1156
1157
1158 AC_ARG_ENABLE([reset],
1159 AS_HELP_STRING([--enable-reset], [build reset]),
1160 [], [enable_reset=no]
1161 )
1162 UL_BUILD_INIT([reset])
1163 AM_CONDITIONAL([BUILD_RESET], [test "x$build_reset" = xyes])
1164
1165
1166 AC_ARG_ENABLE([vipw],
1167 AS_HELP_STRING([--enable-vipw], [build vipw]),
1168 [], [enable_vipw=no]
1169 )
1170 UL_BUILD_INIT([vipw])
1171 AM_CONDITIONAL([BUILD_VIPW], [test "x$build_vipw" = xyes])
1172
1173
1174 AC_ARG_ENABLE([newgrp],
1175 AS_HELP_STRING([--enable-newgrp], [build newgrp]),
1176 [], [enable_newgrp=no]
1177 )
1178 UL_BUILD_INIT([newgrp])
1179 AM_CONDITIONAL([BUILD_NEWGRP], [test "x$build_newgrp" = xyes])
1180
1181
1182 AC_ARG_WITH([user], AS_HELP_STRING([--without-user], [compile without libuser (remote chsh)]),
1183 [], [with_user=check]
1184 )
1185 have_user=no
1186 AS_IF([test "x$with_user" != xno], [
1187 PKG_CHECK_MODULES(LIBUSER,[libuser >= 0.58], [have_user=yes], [have_user=no])
1188 AS_CASE([$with_user:$have_user],
1189 [yes:no],
1190 [AC_MSG_ERROR([user selected but libuser not found])],
1191 [*:yes],
1192 [AC_DEFINE([HAVE_LIBUSER], [1], [Define if libuser is available])]
1193 )
1194 # temporary solution, libuser has stupid .pc where are exported all
1195 # private dependencies to Requires: instead of Requires.private:
1196 AS_IF([test "x$have_user" = xyes], [
1197 LIBUSER_LIBS=-luser
1198 ])
1199 ])
1200 AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
1201
1202 AC_ARG_ENABLE([chfn-chsh-password],
1203 AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
1204 [], [enable_chfn_chsh_password=yes]
1205 )
1206
1207 AC_ARG_ENABLE([chfn-chsh],
1208 AS_HELP_STRING([--enable-chfn-chsh], [build chfn and chsh]),
1209 [], [enable_chfn_chsh=no]
1210 )
1211 UL_BUILD_INIT([chfn_chsh])
1212
1213 AS_IF([test "x$enable_chfn_chsh_password" = xyes -o "x$have_user" = xyes], [
1214 UL_REQUIRES_HAVE([chfn_chsh], [security_pam_misc_h], [PAM header file])
1215 AC_DEFINE([CHFN_CHSH_PASSWORD], [1], [Should chfn and chsh require the user to enter the password?])
1216 ])
1217 AM_CONDITIONAL([BUILD_CHFN_CHSH], [test "x$build_chfn_chsh" = xyes])
1218 AM_CONDITIONAL([CHFN_CHSH_PASSWORD], [test "x$enable_chfn_chsh_password" = xyes])
1219
1220 AC_ARG_ENABLE([chsh-only-listed],
1221 AS_HELP_STRING([--disable-chsh-only-listed], [chsh: allow shells not in /etc/shells]),
1222 [], enable_chsh_only_listed=yes
1223 )
1224
1225 AS_IF([test "x$enable_chsh_only_listed" = xyes], [
1226 AC_DEFINE([ONLY_LISTED_SHELLS], [1], [Should chsh allow only shells in /etc/shells?])
1227 ])
1228
1229
1230 AC_ARG_ENABLE([login],
1231 AS_HELP_STRING([--disable-login], [do not build login]),
1232 [], [enable_login=check]
1233 )
1234 UL_BUILD_INIT([login])
1235 UL_REQUIRES_HAVE([login], [security_pam_misc_h], [PAM header file])
1236 AM_CONDITIONAL([BUILD_LOGIN], [test "x$build_login" = xyes])
1237
1238 AC_ARG_ENABLE([login-chown-vcs],
1239 AS_HELP_STRING([--enable-login-chown-vcs], [let login chown /dev/vcsN]),
1240 [], [enable_login_chown_vcs=no]
1241 )
1242
1243 AS_IF([test "x$enable_login_chown_vcs" = xyes], [
1244 AC_DEFINE([LOGIN_CHOWN_VCS], [1], [Should login chown /dev/vcsN?])
1245 ])
1246
1247 AC_ARG_ENABLE([login-stat-mail],
1248 AS_HELP_STRING([--enable-login-stat-mail], [let login stat() the mailbox]),
1249 [], [enable_login_stat_mail=no]
1250 )
1251
1252 AS_IF([test "x$enable_login_stat_mail" = xyes], [
1253 AC_DEFINE([LOGIN_STAT_MAIL], [1], [Should login stat() the mailbox?])
1254 ])
1255
1256
1257 AC_ARG_ENABLE([nologin],
1258 AS_HELP_STRING([--disable-nologin], [do not build nologin]),
1259 [], [enable_nologin=yes]
1260 )
1261 UL_BUILD_INIT([nologin])
1262 AM_CONDITIONAL([BUILD_NOLOGIN], [test "x$build_nologin" = xyes])
1263
1264
1265 AC_ARG_ENABLE([sulogin],
1266 AS_HELP_STRING([--disable-sulogin], [do not build sulogin]),
1267 [], [enable_sulogin=yes]
1268 )
1269 UL_BUILD_INIT([sulogin])
1270 AM_CONDITIONAL([BUILD_SULOGIN], [test "x$build_sulogin" = xyes])
1271
1272
1273 AC_ARG_ENABLE([su],
1274 AS_HELP_STRING([--disable-su], [do not build su]),
1275 [], [enable_su=check]
1276 )
1277 UL_BUILD_INIT([su])
1278 UL_REQUIRES_HAVE([su], [security_pam_misc_h], [PAM header file])
1279 AM_CONDITIONAL([BUILD_SU], [test "x$build_su" = xyes])
1280
1281
1282 AC_ARG_ENABLE([runuser],
1283 AS_HELP_STRING([--disable-runuser], [do not build runuser]),
1284 [], [enable_runuser=check]
1285 )
1286 UL_BUILD_INIT([runuser])
1287 UL_REQUIRES_HAVE([runuser], [security_pam_misc_h], [PAM header file])
1288 AM_CONDITIONAL([BUILD_RUNUSER], [test "x$build_runuser" = xyes])
1289
1290
1291 AC_ARG_ENABLE([ul],
1292 AS_HELP_STRING([--disable-ul], [do not build ul]),
1293 [], [enable_ul=check]
1294 )
1295 UL_BUILD_INIT([ul])
1296 UL_REQUIRES_HAVE([ul], [ncurses, tinfo], [ncurses or tinfo libraries])
1297 AM_CONDITIONAL([BUILD_UL], [test "x$build_ul" = xyes])
1298
1299
1300 AC_ARG_ENABLE([more],
1301 AS_HELP_STRING([--disable-more], [do not build more]),
1302 [], [enable_more=check]
1303 )
1304 UL_BUILD_INIT([more])
1305 UL_REQUIRES_HAVE([more], [ncurses, tinfo, termcap], [ncurses, tinfo or termcap libraries])
1306 AM_CONDITIONAL([BUILD_MORE], [test "x$build_more" = xyes])
1307
1308
1309 AC_ARG_ENABLE([pg],
1310 AS_HELP_STRING([--disable-pg], [do not build pg]),
1311 [], [enable_pg=check]
1312 )
1313 UL_BUILD_INIT([pg])
1314 UL_REQUIRES_HAVE([pg], [ncurses], [ncurses or ncursesw library])
1315 AM_CONDITIONAL([BUILD_PG], [test "x$build_pg" = xyes])
1316
1317
1318 AC_ARG_ENABLE([setterm],
1319 AS_HELP_STRING([--disable-setterm], [do not build setterm]),
1320 [], [enable_setterm=check]
1321 )
1322 UL_BUILD_INIT([setterm])
1323 UL_REQUIRES_LINUX([setterm])
1324 UL_REQUIRES_HAVE([setterm], [ncurses], [ncurses library])
1325 AM_CONDITIONAL([BUILD_SETTERM], [test "x$build_setterm" = xyes])
1326
1327
1328 AC_ARG_ENABLE([schedutils],
1329 AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
1330 [], [enable_schedutils=yes]
1331 )
1332 UL_BUILD_INIT([schedutils])
1333 AM_CONDITIONAL([BUILD_SCHEDUTILS], [test "x$build_schedutils" = xyes])
1334
1335 UL_BUILD_INIT([ionice], [check])
1336 UL_REQUIRES_BUILD([ionice], [schedutils])
1337 UL_REQUIRES_SYSCALL_CHECK([ionice],
1338 [UL_CHECK_SYSCALL([ioprio_set],
1339 [alpha], [442],
1340 [i*86], [289],
1341 [ia64*], [1274],
1342 [powerpc*], [273],
1343 [s390*], [282],
1344 [sparc*], [196],
1345 [sh*], [288],
1346 [x86_64*], [251])],
1347 [ioprio_set])
1348
1349 UL_REQUIRES_SYSCALL_CHECK([ionice],
1350 [UL_CHECK_SYSCALL([ioprio_get],
1351 [alpha], [443],
1352 [i*86], [290],
1353 [ia64*], [1275],
1354 [powerpc*], [274],
1355 [s390*], [283],
1356 [sparc*], [218],
1357 [sh*], [289],
1358 [x86_64*], [252])],
1359 [ioprio_get])
1360
1361 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
1362
1363 UL_BUILD_INIT([taskset], [check])
1364 UL_REQUIRES_BUILD([taskset], [schedutils])
1365 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
1366 UL_REQUIRES_SYSCALL_CHECK([taskset],
1367 [UL_CHECK_SYSCALL([sched_getaffinity])],
1368 [sched_getaffinity])
1369 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
1370
1371
1372 AC_ARG_ENABLE([wall],
1373 AS_HELP_STRING([--disable-wall], [do not build wall]),
1374 [], [enable_wall=yes]
1375 )
1376 UL_BUILD_INIT([wall])
1377 AM_CONDITIONAL([BUILD_WALL], [test "x$build_wall" = xyes])
1378
1379
1380 AC_ARG_ENABLE([write],
1381 AS_HELP_STRING([--enable-write], [build write]),
1382 [], [enable_write=no]
1383 )
1384 UL_BUILD_INIT([write])
1385 AM_CONDITIONAL([BUILD_WRITE], [test "x$build_write" = xyes])
1386
1387
1388 AC_ARG_ENABLE([socket-activation],
1389 AS_HELP_STRING([--enable-socket-activation], [build uuidd with support for systemd socket activation]),
1390 [], [enable_socket_activation=no]
1391 )
1392
1393 AM_CONDITIONAL([USE_SOCKET_ACTIVATION], [test "x$enable_socket_activation" = xyes])
1394
1395 AS_IF([test "x$enable_socket_activation" = xyes], [
1396 AC_DEFINE([USE_SOCKET_ACTIVATION], [1], [Should uuidd support socket activation?])
1397 ])
1398
1399 AC_ARG_WITH([systemdsystemunitdir],
1400 AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [directory for systemd service files]),
1401 [], [with_systemdsystemunitdir=`$PKG_CONFIG --variable=systemdsystemunitdir systemd`])
1402
1403 AS_IF([test "x$with_systemdsystemunitdir" != "xno"], [
1404 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
1405 ])
1406
1407 AM_CONDITIONAL([HAVE_SYSTEMD], [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != "xno" ])
1408
1409
1410 AC_ARG_WITH([bashcompletiondir],
1411 AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
1412 [],
1413 [AS_IF([`$PKG_CONFIG --exists bash-completion`], [
1414 with_bashcompletiondir=`$PKG_CONFIG --variable=completionsdir bash-completion`
1415 ], [
1416 with_bashcompletiondir=${datadir}/bash-completion/completions
1417 ])
1418 ])
1419 AC_SUBST([bashcompletiondir], [$with_bashcompletiondir])
1420
1421 AC_ARG_ENABLE([bash-completion],
1422 AS_HELP_STRING([--disable-bash-completion], [do not install bash completion files]),
1423 [], [enable_bash_completion=yes]
1424 )
1425
1426 AM_CONDITIONAL([BUILD_BASH_COMPLETION], [test "x$enable_bash_completion" = xyes])
1427
1428
1429 AC_ARG_WITH([python],
1430 AS_HELP_STRING([--with-python], [generate python bindings, use --with-python={2,3} to force version]),
1431 [], [with_python=no]
1432 )
1433
1434 have_python=no
1435 AS_IF([test "x$with_python" != xno], [
1436 # We follow distributions default and look for PKG module name "python"
1437 # (minimal version is 2) but if major version is explicitly specified by
1438 # --with-python=2 or --with-python=3 then we look for PKG module "python2" or
1439 # "python3".
1440 AS_IF([test "x$withval" != xno -a "x$withval" != xyes],
1441 [pymajor="$withval"; PYTHON=python${pymajor}], [pymajor="2"])
1442 AM_PATH_PYTHON([$pymajor], [have_python=yes], [have_python=no])
1443 AS_CASE([$with_python:$have_python],
1444 [yes:no],
1445 [AC_MSG_ERROR([python selected but libpython not found])]
1446 )
1447 PKG_CHECK_MODULES([PYTHON], [python-$PYTHON_VERSION])
1448
1449 UL_BUILD_INIT([pylibmount], [check])
1450 UL_REQUIRES_HAVE([pylibmount], [python], [libpython])
1451 UL_REQUIRES_BUILD([pylibmount], [libmount])
1452 ])
1453
1454 AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"])
1455
1456
1457 AC_ARG_ENABLE([pg-bell],
1458 AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]),
1459 [], [enable_pg_bell=yes]
1460 )
1461
1462 AS_IF([test "x$enable_pg_bell" = xyes], [
1463 AC_DEFINE([PG_BELL], [1], [Should pg ring the bell on invalid keys?])
1464 ])
1465
1466
1467 AC_DEFUN([FS_PATHS_DEFAULT], [/sbin:/sbin/fs.d:/sbin/fs])
1468 AC_ARG_ENABLE([fs-paths-default],
1469 AS_HELP_STRING([--enable-fs-paths-default=paths], [default search path for fs helpers @<:@FS_PATHS_DEFAULT@:>@]),
1470 [AS_CASE([$enableval],
1471 [yes], [fs_paths_defaults="FS_PATHS_DEFAULT"],
1472 [no], [fs_paths_defaults=""],
1473 [fs_paths_defaults="$enableval"]
1474 )],
1475 [fs_paths_defaults="FS_PATHS_DEFAULT"]
1476 )
1477 AC_ARG_ENABLE([fs-paths-extra],
1478 AS_HELP_STRING([--enable-fs-paths-extra=paths], [additional search paths for fs helpers]),
1479 [AS_CASE([$enableval],
1480 [yes|no], [fs_paths_extra=""],
1481 [fs_paths_extra="$enableval"]
1482 )],
1483 [fs_paths_extra=""]
1484 )
1485 fs_paths="$fs_paths_defaults"
1486 AS_IF([test "x$fs_paths_extra" != "x"], [
1487 AS_IF([test "x$fs_paths" != "x"], [
1488 fs_paths="${fs_paths}:"
1489 ])
1490 fs_paths="${fs_paths}${fs_paths_extra}"
1491 ])
1492 AC_DEFINE_UNQUOTED([FS_SEARCH_PATH], "$fs_paths", [search path for fs helpers])
1493
1494
1495 AC_ARG_ENABLE([use-tty-group],
1496 AS_HELP_STRING([--disable-use-tty-group], [do not install wall and write setgid tty]),
1497 [], [enable_use_tty_group=yes]
1498 )
1499 AM_CONDITIONAL([USE_TTY_GROUP], [test "x$enable_use_tty_group" = xyes])
1500
1501 AS_IF([test "x$enable_use_tty_group" = xyes], [
1502 AC_DEFINE([USE_TTY_GROUP], [1], [Should wall and write be installed setgid tty?])
1503 ])
1504
1505
1506 AC_ARG_ENABLE([sulogin-emergency-mount],
1507 AS_HELP_STRING([--enable-sulogin-emergency-mount],
1508 [use emergency mount of /dev and /proc for sulogin]),
1509 [], [enable_sulogin_emergency_mount=no]
1510 )
1511
1512 AS_IF([test "x$enable_sulogin_emergency_mount" = xyes], [
1513 AC_DEFINE([USE_SULOGIN_EMERGENCY_MOUNT], [1],
1514 [Should sulogin use a emergency mount of /dev and /proc?])
1515 ])
1516
1517
1518 AC_ARG_ENABLE([makeinstall-chown],
1519 AS_HELP_STRING([--disable-makeinstall-chown], [do not do chown-like operations during "make install"]),
1520 [], [enable_makeinstall_chown=yes]
1521 )
1522 AM_CONDITIONAL([MAKEINSTALL_DO_CHOWN], [test "x$enable_makeinstall_chown" = xyes])
1523
1524 AC_ARG_ENABLE([makeinstall-setuid],
1525 AS_HELP_STRING([--disable-makeinstall-setuid], [do not do setuid chmod operations during "make install"]),
1526 [], [enable_makeinstall_setuid=yes]
1527 )
1528 AM_CONDITIONAL([MAKEINSTALL_DO_SETUID], [test "x$enable_makeinstall_setuid" = xyes])
1529
1530
1531 AC_ARG_VAR([SUID_CFLAGS],
1532 [CFLAGS used for binaries which are usually with the suid bit])
1533 AC_ARG_VAR([SUID_LDFLAGS],
1534 [LDFLAGS used for binaries which are usually with the suid bit])
1535
1536 AC_ARG_VAR([DAEMON_CFLAGS],
1537 [CFLAGS used for binaries which are usually executed as daemons])
1538 AC_ARG_VAR([DAEMON_LDFLAGS],
1539 [LDFLAGS used for binaries which are usually executed as daemons])
1540
1541 AC_ARG_VAR([SOLIB_CFLAGS],
1542 [CFLAGS used for shared libraries])
1543 AC_ARG_VAR([SOLIB_LDFLAGS],
1544 [LDFLAGS used for shared libraries])
1545
1546 LIBS=""
1547
1548
1549 AC_CONFIG_HEADERS([config.h])
1550
1551 #
1552 # Don't use configure.ac to replace install paths! See Makefile PATHFILES for
1553 # more details.
1554 #
1555 AC_CONFIG_FILES([
1556 Makefile
1557 libblkid/docs/Makefile
1558 libblkid/docs/version.xml
1559 libblkid/src/blkid.h
1560 libmount/docs/Makefile
1561 libmount/docs/version.xml
1562 libmount/src/libmount.h
1563 po/Makefile.in
1564 ])
1565
1566 AC_OUTPUT
1567
1568 AC_MSG_RESULT([
1569 ${PACKAGE} ${VERSION}
1570
1571 prefix: ${prefix}
1572 exec prefix: ${exec_prefix}
1573
1574 localstatedir: ${localstatedir}
1575 bindir: ${bindir}
1576 sbindir: ${sbindir}
1577 libdir: ${libdir}
1578 includedir: ${includedir}
1579 usrbin_execdir: ${usrbin_execdir}
1580 usrsbin_execdir: ${usrsbin_execdir}
1581 usrlib_execdir: ${usrlib_execdir}
1582
1583 compiler: ${CC}
1584 cflags: ${CFLAGS}
1585 suid cflags: ${SUID_CFLAGS}
1586 ldflags: ${LDFLAGS}
1587 suid ldflags: ${SUID_LDFLAGS}
1588
1589 Python: ${PYTHON}
1590 Python version: ${PYTHON_VERSION}
1591 Python libs: ${pyexecdir}
1592
1593 Bash completions: ${with_bashcompletiondir}
1594
1595 warnings:
1596
1597 ${WARN_CFLAGS}
1598 ])