X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=configure.ac;h=8eb72842de950727ab9d42d3ca5510824482a994;hp=8c5168b1296dcff7185b85e7d72e579a0875b9d5;hb=6ff57d0bf5de38bfc4df718cc596d4a3a333f290;hpb=7f231684fd2943d4d5585022ec8595ea1b67cf8a diff --git a/configure.ac b/configure.ac index 8c5168b12..8eb72842d 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_PREREQ([2.64]) AC_INIT([elogind], - [223], + [226.1], [https://github.com/elogind/elogind/issues], [elogind], [https://github.com/elogind/elogind]) @@ -39,9 +39,14 @@ AM_SILENT_RULES([yes]) AC_CANONICAL_HOST AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) -AC_CHECK_TOOLS([AR], [gcc-ar ar], [:]) -AC_CHECK_TOOLS([NM], [gcc-nm nm], [:]) -AC_CHECK_TOOLS([RANLIB], [gcc-ranlib ranlib], [:]) +AC_PROG_CC_C99 + +AX_COMPILER_VENDOR +AS_IF([test "x$ax_cv_c_compiler_vendor" = "xgnu"], [ + AC_CHECK_TOOLS([AR], [gcc-ar ar], [:]) + AC_CHECK_TOOLS([NM], [gcc-nm nm], [:]) + AC_CHECK_TOOLS([RANLIB], [gcc-ranlib ranlib], [:]) +]) LT_PREREQ(2.2) LT_INIT([disable-static]) @@ -87,8 +92,6 @@ AC_PROG_SED AC_PROG_GREP AC_PROG_AWK -AC_PROG_CC_C99 - AC_PATH_PROG([M4], [m4]) AC_PATH_PROG([XSLTPROC], [xsltproc]) @@ -106,6 +109,16 @@ if test -z "$GPERF" ; then AC_MSG_ERROR([*** gperf not found]) fi + +# ------------------------------------------------------------------------------ +# Find running cgroup controller +with_cgroupctrl= +AS_IF( [test -f /proc/self/cgroup], + [with_cgroupctrl=`grep "^1:" /proc/self/cgroup | cut -d ':' -f 2`]) +AS_IF( [test -z "$with_cgroupctrl"], + AC_MSG_ERROR([No running cgroup controller found])) + + # ------------------------------------------------------------------------------ address_sanitizer_cflags= address_sanitizer_cppflags= @@ -186,11 +199,11 @@ AS_CASE([$CC], [*clang*], -Wno-gnu-variable-sized-type-not-at-end \ ])]) -AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], - [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ - -flto])], - [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) -AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") +dnl AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], +dnl [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ +dnl -flto])], +dnl [AC_MSG_RESULT([skipping -flto, optimization not enabled])]) +dnl AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\ @@ -229,11 +242,33 @@ AC_CHECK_SIZEOF(rlim_t,,[ #include ]) +GPERF_TEST="$(echo foo,bar | ${GPERF} -L ANSI-C)" + +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([ + #include + const char * in_word_set(const char *, size_t); + $GPERF_TEST] + )], + [GPERF_LEN_TYPE=size_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([ + #include + const char * in_word_set(const char *, unsigned); + $GPERF_TEST] + )], + [GPERF_LEN_TYPE=unsigned], + [AC_MSG_ERROR([** unable to determine gperf len type])] + )] +) + +AC_DEFINE_UNQUOTED([GPERF_LEN_TYPE], [$GPERF_LEN_TYPE], [gperf len type]) + # ------------------------------------------------------------------------------ # we use python to build the man page index have_python=no AC_ARG_WITH([python], - [AS_HELP_STRING([--without-python], [Disable building the man page index and systemd-python (default: test)])]) + [AS_HELP_STRING([--without-python], [Disable building the man page index (default: test)])]) have_lxml=no AS_IF([test "x$with_python" != "xno"], [ @@ -262,8 +297,8 @@ AC_CHECK_HEADERS([linux/btrfs.h], [], []) AC_CHECK_HEADERS([linux/memfd.h], [], []) # unconditionally pull-in librt with old glibc versions -AC_SEARCH_LIBS([clock_gettime], [rt], [], []) -AC_SEARCH_LIBS([mq_unlink], [rt], [], []) +dnl AC_SEARCH_LIBS([clock_gettime], [rt], [], []) +dnl AC_SEARCH_LIBS([mq_unlink], [rt], [], []) AC_ARG_WITH([libcap], AS_HELP_STRING([--with-libcap=DIR], [Prefix for libcap]), @@ -325,16 +360,6 @@ AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE, # This makes sure pkg.m4 is available. m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) -# ------------------------------------------------------------------------------ -have_dbus=no -AC_ARG_ENABLE(dbus, AS_HELP_STRING([--disable-dbus], [disable usage of dbus-1 in tests])) -AS_IF([test "x$enable_dbus" != "xno"], [ - PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.3.2], - [AC_DEFINE(HAVE_DBUS, 1, [Define if dbus-1 library is available]) have_dbus=yes], - [have_dbus=no]) - AS_IF([test "x$have_dbus" = "xno" -a "x$enable_dbus" = "xyes"], - [AC_MSG_ERROR([*** dbus-1 support requested but libraries not found])])]) -AM_CONDITIONAL(HAVE_DBUS, [test "$have_dbus" = "yes"]) # ------------------------------------------------------------------------------ PKG_CHECK_MODULES(UDEV, [libudev]) @@ -374,33 +399,6 @@ if test "x$enable_coverage" = "xyes" ; then fi AM_CONDITIONAL(ENABLE_COVERAGE, [test "$have_coverage" = "yes"]) -# ------------------------------------------------------------------------------ -have_blkid=no -AC_ARG_ENABLE(blkid, AS_HELP_STRING([--disable-blkid], [disable blkid support])) -if test "x$enable_blkid" != "xno"; then - PKG_CHECK_MODULES(BLKID, [ blkid >= 2.24 ], - [AC_DEFINE(HAVE_BLKID, 1, [Define if blkid is available]) have_blkid=yes], have_blkid=no) - if test "x$have_blkid" = xno -a "x$enable_blkid" = xyes; then - AC_MSG_ERROR([*** blkid support requested but libraries not found]) - fi -fi -AM_CONDITIONAL(HAVE_BLKID, [test "$have_blkid" = "yes"]) - -# ------------------------------------------------------------------------------ -have_seccomp=no -AC_ARG_ENABLE(seccomp, AS_HELP_STRING([--disable-seccomp], [Disable optional SECCOMP support])) -if test "x$enable_seccomp" != "xno"; then - PKG_CHECK_MODULES(SECCOMP, [libseccomp >= 1.0.0], - [AC_DEFINE(HAVE_SECCOMP, 1, [Define if seccomp is available]) - have_seccomp=yes - M4_DEFINES="$M4_DEFINES -DHAVE_SECCOMP"], - [have_seccomp=no]) - if test "x$have_seccomp" = "xno" -a "x$enable_seccomp" = "xyes"; then - AC_MSG_ERROR([*** seccomp support requested but libraries not found]) - fi -fi -AM_CONDITIONAL(HAVE_SECCOMP, [test "$have_seccomp" = "yes"]) - # ------------------------------------------------------------------------------ have_selinux=no AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [Disable optional SELINUX support])) @@ -416,20 +414,6 @@ if test "x$enable_selinux" != "xno"; then fi AM_CONDITIONAL(HAVE_SELINUX, [test "$have_selinux" = "yes"]) -have_apparmor=no -AC_ARG_ENABLE(apparmor, AS_HELP_STRING([--disable-apparmor], [Disable optional AppArmor support])) -if test "x$enable_apparmor" != "xno"; then - PKG_CHECK_MODULES([APPARMOR], [libapparmor], - [AC_DEFINE(HAVE_APPARMOR, 1, [Define if AppArmor is available]) - have_apparmor=yes - M4_DEFINES="$M4_DEFINES -DHAVE_APPARMOR"], - [have_apparmor=no]) - if test "x$have_apparmor" = xno -a "x$enable_apparmor" = xyes; then - AC_MSG_ERROR([*** AppArmor support requested but libraries not found]) - fi -fi -AM_CONDITIONAL(HAVE_APPARMOR, [test "$have_apparmor" = "yes"]) - # ------------------------------------------------------------------------------ AC_ARG_ENABLE([pam], AS_HELP_STRING([--disable-pam],[Disable optional PAM support]), @@ -540,15 +524,6 @@ fi AM_CONDITIONAL([HAVE_SMACK], [test "x$have_smack" = "xyes"]) -# ------------------------------------------------------------------------------ -have_logind=yes -#AC_ARG_ENABLE(logind, AS_HELP_STRING([--disable-logind], [disable login daemon])) -#if test "x$enable_logind" != "xno"; then -# have_logind=yes -#fi -AM_CONDITIONAL(ENABLE_LOGIND, [test "$have_logind" = "yes"]) -AS_IF([test "$have_logind" = "yes"], [ AC_DEFINE(HAVE_LOGIND, [1], [Logind support available]) ]) - # ------------------------------------------------------------------------------ AC_ARG_WITH(system-uid-max, AS_HELP_STRING([--with-system-uid-max=UID] @@ -625,11 +600,13 @@ AC_ARG_WITH([bashcompletiondir], ] , [ with_bashcompletiondir=${datadir}/bash-completion/completions ])]) +AM_CONDITIONAL(ENABLE_BASH_COMPLETION, [test "$with_bashcompletiondir" != "no"]) AX_NORMALIZE_PATH([with_bashcompletiondir]) AC_ARG_WITH([zshcompletiondir], AS_HELP_STRING([--with-zshcompletiondir=DIR], [Zsh completions directory]), [], [with_zshcompletiondir=${datadir}/zsh/site-functions]) +AM_CONDITIONAL(ENABLE_ZSH_COMPLETION, [test "$with_zshcompletiondir" != "no"]) AX_NORMALIZE_PATH([with_zshcompletiondir]) AC_ARG_WITH([rootprefix], @@ -687,14 +664,17 @@ AC_ARG_ENABLE(tests, AM_CONDITIONAL(ENABLE_TESTS, [test x$enable_tests = xyes]) AC_ARG_ENABLE(debug, - [AC_HELP_STRING([--enable-debug@<:@=LIST@:>@], [enable extra debugging (hashmap,mmap-cache)])], + [AC_HELP_STRING([--enable-debug@<:@=LIST@:>@], [enable extra debugging (elogind,hashmap,mmap-cache)])], [if test "x$enableval" = "xyes"; then - enableval="hashmap,mmap-cache" + enableval="elogind,hashmap,mmap-cache" fi saved_ifs="$IFS" IFS="$IFS$PATH_SEPARATOR," for name in $enableval; do case $name in + elogind) + enable_debug_elogind=yes + ;; hashmap) enable_debug_hashmap=yes ;; @@ -706,6 +686,10 @@ AC_ARG_ENABLE(debug, IFS="$saved_ifs"],[]) enable_debug="" +AS_IF([test x$enable_debug_elogind = xyes], [ + AC_DEFINE(ENABLE_DEBUG_ELOGIND, 1, [Define if elogind debugging is to be enabled]) + enable_debug="elogind $enable_debug" +]) AS_IF([test x$enable_debug_hashmap = xyes], [ AC_DEFINE(ENABLE_DEBUG_HASHMAP, 1, [Define if hashmap debugging is to be enabled]) enable_debug="hashmap $enable_debug" @@ -724,6 +708,7 @@ AC_SUBST([pamlibdir], [$with_pamlibdir]) AC_SUBST([pamconfdir], [$with_pamconfdir]) AC_SUBST([rootprefix], [$with_rootprefix]) AC_SUBST([rootlibdir], [$with_rootlibdir]) +AC_SUBST([cgroup_controller], [$with_cgroupctrl]) AC_CONFIG_FILES([ Makefile @@ -735,20 +720,17 @@ AC_MSG_RESULT([ $PACKAGE_NAME $VERSION PAM: ${have_pam} - AppArmor: ${have_apparmor} SELinux: ${have_selinux} - SECCOMP: ${have_seccomp} SMACK: ${have_smack} ACL: ${have_acl} polkit: ${have_polkit} - blkid: ${have_blkid} - dbus: ${have_dbus} kdbus: ${have_kdbus} Python: ${have_python} man pages: ${have_manpages} test coverage: ${have_coverage} Split /usr: ${enable_split_usr} extra debugging: ${enable_debug} + cgroup controller: ${with_cgroupctrl} prefix: ${prefix} rootprefix: ${with_rootprefix} @@ -757,7 +739,6 @@ AC_MSG_RESULT([ includedir: ${includedir} lib dir: ${libdir} rootlib dir: ${with_rootlibdir} - Build Python: ${PYTHON} PAM modules dir: ${with_pamlibdir} PAM configuration dir: ${with_pamconfdir} D-Bus policy dir: ${with_dbuspolicydir}