AC_PREREQ([2.64])
AC_INIT([systemd],
- [208],
+ [209],
[http://bugs.freedesktop.org/enter_bug.cgi?product=systemd],
[systemd],
[http://www.freedesktop.org/wiki/Software/systemd])
AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec])
+M4_DEFINES=
+
# gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.18],[--flavour no-tmpl])],
-Wold-style-definition \
-Wpointer-arith \
-Winit-self \
+ -Wdeclaration-after-statement \
-Wfloat-equal \
+ -Wsuggest-attribute=noreturn \
-Wmissing-prototypes \
-Wstrict-prototypes \
-Wredundant-decls \
-Wmissing-noreturn \
-Wshadow \
-Wendif-labels \
- -Wcast-align \
-Wstrict-aliasing=2 \
-Wwrite-strings \
-Wno-long-long \
-Wno-missing-field-initializers \
-Wno-unused-result \
-Werror=overflow \
+ -Wdate-time \
+ -Wnested-externs \
-ffast-math \
-fno-common \
-fdiagnostics-show-option \
-Wl,--no-undefined \
-Wl,--gc-sections \
-Wl,-z,relro \
- -Wl,-z,now])
+ -Wl,-z,now \
+ -Wl,-fuse-ld=gold])
AC_SUBST([OUR_LDFLAGS], "$with_ldflags $address_sanitizer_ldflags")
+AC_CHECK_SIZEOF(pid_t)
+AC_CHECK_SIZEOF(uid_t)
+
# ------------------------------------------------------------------------------
# we use python to build the man page index, and for systemd-python
have_python=no
AC_ARG_WITH([python],
[AS_HELP_STRING([--without-python], [Disable building the man page index and systemd-python (default: test)])])
+have_lxml=no
AS_IF([test "x$with_python" != "xno"], [
AM_PATH_PYTHON(,, [:])
- AS_IF([test "$PYTHON" != :], [have_python=yes])
+ AS_IF(["$PYTHON" -c 'import lxml' 2>/dev/null], [have_lxml=yes], [have_lxml=no])
+ AS_IF([test "$PYTHON" != : -a $have_lxml = yes], [have_python=yes])
])
AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = "xyes"])
AS_IF([test "x$PYTHON_BINARY" = "x"],
AC_CHECK_FUNCS([fanotify_init fanotify_mark])
AC_CHECK_FUNCS([__secure_getenv secure_getenv])
-AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at], [], [], [[#include <sys/types.h>
+AC_CHECK_DECLS([gettid, pivot_root, name_to_handle_at, setns], [], [], [[#include <sys/types.h>
#include <unistd.h>
#include <sys/mount.h>
-#include <fcntl.h>]])
+#include <fcntl.h>
+#include <sched.h>]])
# This makes sure pkg.m4 is available.
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
# ------------------------------------------------------------------------------
-PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.3.2], have_dbus=yes, have_dbus=no])
-AS_IF([test "$have_dbus" = "yes"], [ AC_DEFINE(HAVE_DBUS, [1], [Define if dbus-1 is available]) ])
+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"])
+# ------------------------------------------------------------------------------
+have_compat_libs=no
+AC_ARG_ENABLE([compat_libs], AS_HELP_STRING([--enable-compat-libs],[Enable creation of compatibility libraries]),
+ [case "${enableval}" in
+ yes) have_compat_libs=yes ;;
+ no) have_compat_libs=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-compat-libs) ;;
+ esac],
+ [have_compat_libs=no])
+AM_CONDITIONAL([ENABLE_COMPAT_LIBS], [test "$have_compat_libs" = "yes"])
+
# ------------------------------------------------------------------------------
have_coverage=no
AC_ARG_ENABLE(coverage, AS_HELP_STRING([--enable-coverage], [enable test coverage]))
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_ima=yes
AC_ARG_ENABLE([ima], AS_HELP_STRING([--disable-ima],[Disable optional IMA support]),
AC_ARG_ENABLE(selinux, AS_HELP_STRING([--disable-selinux], [Disable optional SELINUX support]))
if test "x$enable_selinux" != "xno"; then
PKG_CHECK_MODULES([SELINUX], [libselinux >= 2.1.9],
- [AC_DEFINE(HAVE_SELINUX, 1, [Define if SELinux is available]) have_selinux=yes], have_selinux=no)
+ [AC_DEFINE(HAVE_SELINUX, 1, [Define if SELinux is available])
+ have_selinux=yes
+ M4_DEFINES="$M4_DEFINES -DHAVE_SELINUX"],
+ [have_selinux=no])
if test "x$have_selinux" = xno -a "x$enable_selinux" = xyes; then
AC_MSG_ERROR([*** SELinux support requested but libraries not found])
fi
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_WITH(debug-shell,
AS_HELP_STRING([--with-debug-shell=PATH],
[Path to debug shell binary]),
fi
have_tcpwrap=no
else
+ M4_DEFINES="$M4_DEFINES -DHAVE_LIBWRAP"
have_tcpwrap=yes
fi
else
if test "x$have_pam" = xyes ; then
PAM_LIBS="-lpam -lpam_misc"
AC_DEFINE(HAVE_PAM, 1, [PAM available])
+ M4_DEFINES="$M4_DEFINES -DHAVE_PAM"
else
have_pam=no
fi
fi
else
if test "x${have_smack}" = xauto; then
+ M4_DEFINES="$M4_DEFINES -DHAVE_SMACK"
have_smack=yes
fi
fi
fi
AM_CONDITIONAL(ENABLE_MULTI_SEAT_X, [test "$have_multi_seat_x" = "yes"])
+# ------------------------------------------------------------------------------
+have_kdbus=no
+AC_ARG_ENABLE(kdbus, AS_HELP_STRING([--enable-kdbus], [do connect to kdbus by default]))
+if test "x$enable_kdbus" = "xyes"; then
+ AC_DEFINE(ENABLE_KDBUS, 1, [Define if kdbus support is to be enabled])
+ have_kdbus=yes
+ M4_DEFINES="$M4_DEFINES -DENABLE_KDBUS"
+fi
+AM_CONDITIONAL(ENABLE_KDBUS, [test "$have_kdbus" = "yes"])
+
# ------------------------------------------------------------------------------
AC_ARG_WITH(rc-local-script-path-start,
AS_HELP_STRING([--with-rc-local-script-path-start=PATH],
# Location of the init scripts as mandated by LSB
SYSTEM_SYSVINIT_PATH=/etc/init.d
SYSTEM_SYSVRCND_PATH=/etc/rc.d
-M4_DEFINES=
AC_ARG_WITH([sysvinit-path],
[AS_HELP_STRING([--with-sysvinit-path=PATH],
PAM: ${have_pam}
AUDIT: ${have_audit}
IMA: ${have_ima}
+ AppArmor: ${have_apparmor}
SELinux: ${have_selinux}
+ SECCOMP: ${have_seccomp}
SMACK: ${have_smack}
XZ: ${have_xz}
ACL: ${have_acl}
hostnamed: ${have_hostnamed}
timedated: ${have_timedated}
localed: ${have_localed}
+ networkd: ${have_networkd}
coredump: ${have_coredump}
polkit: ${have_polkit}
efi: ${have_efi}
kmod: ${have_kmod}
blkid: ${have_blkid}
+ dbus: ${have_dbus}
nss-myhostname: ${have_myhostname}
gudev: ${enable_gudev}
gintrospection: ${enable_introspection}
multi-seat-x: ${have_multi_seat_x}
+ kdbus: ${have_kdbus}
Python: ${have_python}
Python Headers: ${have_python_devel}
man pages: ${have_manpages}
test coverage: ${have_coverage}
Split /usr: ${enable_split_usr}
SysV compatibility: ${SYSTEM_SYSV_COMPAT}
+ compatibility libraries: ${have_compat_libs}
prefix: ${prefix}
rootprefix: ${with_rootprefix}