AC_PREREQ([2.64])
AC_INIT([systemd],
- [186],
+ [189],
[http://bugs.freedesktop.org/enter_bug.cgi?product=systemd],
[systemd],
[http://www.freedesktop.org/wiki/Software/systemd])
AC_PROG_GCC_TRADITIONAL
AC_PATH_PROG([M4], [m4])
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+
+AC_PATH_PROG([QUOTAON], [quotaon], [/sbin/quotaon])
+AC_PATH_PROG([QUOTACHECK], [quotacheck], [/sbin/quotacheck])
# 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])
], [AM_CONDITIONAL([ENABLE_GTK_DOC], [false])])
+AS_IF([test "x$enable_gtk_doc" = "xyes" -a "x$XSLTPROC" = x], [
+ AC_MSG_ERROR([*** GTK doc requested but xsltproc not found])
+])
+
m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
GOBJECT_INTROSPECTION_CHECK([1.31.1])
], [AM_CONDITIONAL([HAVE_INTROSPECTION], [false])])
-AC_CHECK_TOOL(OBJCOPY, objcopy)
-AC_CHECK_TOOL(STRINGS, strings)
-AC_CHECK_TOOL(GPERF, gperf)
+AC_PATH_TOOL(OBJCOPY, objcopy)
+AC_PATH_TOOL(STRINGS, strings)
+AC_PATH_TOOL(GPERF, gperf)
if test -z "$GPERF" ; then
AC_MSG_ERROR([*** gperf not found])
fi
+# we use python to build the man page index, and for systemd-python
+have_python=no
+have_python_devel=no
+AM_PATH_PYTHON(,, [:])
+if test "$PYTHON" != : ; then
+ have_python=yes
+ AC_PATH_PROG([PYTHON_CONFIG], python-config)
+
+ if test -n "$PYTHON_CONFIG" ; then
+ have_python_devel=yes
+ PYTHON_CFLAGS="`$PYTHON_CONFIG --cflags`"
+ PYTHON_LIBS="`$PYTHON_CONFIG --libs`"
+ AC_SUBST(PYTHON_CFLAGS)
+ AC_SUBST(PYTHON_LIBS)
+ fi
+fi
+AM_CONDITIONAL([HAVE_PYTHON], [test "$have_python" = "yes"])
+AM_CONDITIONAL([HAVE_PYTHON_DEVEL], [test "$have_python_devel" = "yes"])
+
CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
-pipe \
-Wall \
- -W \
-Wextra \
-Wno-inline \
- -Wvla \
-Wundef \
-Wformat=2 \
-Wlogical-op \
-Wno-missing-field-initializers \
-Wno-unused-result \
-Werror=overflow \
- -Wp,-D_FORTIFY_SOURCE=2 \
-ffast-math \
-fno-common \
-fdiagnostics-show-option \
-fno-strict-aliasing \
-fvisibility=hidden \
-ffunction-sections \
- -fdata-sections])
-AC_SUBST([WARNINGFLAGS], $with_cflags)
+ -fdata-sections \
+ -fstack-protector \
+ --param=ssp-buffer-size=4])
+AC_SUBST([OUR_CFLAGS], $with_cflags)
+
+CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
+ -Wp,-D_FORTIFY_SOURCE=2])
+AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
-Wl,--as-needed \
- -Wl,--gc-sections])
-AC_SUBST([GCLDFLAGS], $with_ldflags)
+ -Wl,--gc-sections \
+ -Wl,-z,relro \
+ -Wl,-z,now])
+AC_SUBST([OUR_LDFLAGS], $with_ldflags)
AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])])
AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
LIBS="$save_LIBS"
AC_SUBST(CAP_LIBS)
+AC_CHECK_FUNCS([fanotify_init fanotify_mark name_to_handle_at])
+AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+AC_CHECK_DECLS([gettid, pivot_root], [], [], [[#include <sys/types.h>
+#include <unistd.h>
+#include <sys/mount.h>]])
+
# This makes sure pkg.m4 is available.
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
AC_SUBST(ACL_LIBS)
AM_CONDITIONAL([HAVE_ACL], [test "x$have_acl" != xno])
+# ------------------------------------------------------------------------------
+AC_ARG_ENABLE([gcrypt],
+ AS_HELP_STRING([--disable-gcrypt],[Disable optional GCRYPT support]),
+ [case "${enableval}" in
+ yes) have_gcrypt=yes ;;
+ no) have_gcrypt=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-gcrypt) ;;
+ esac],
+ [have_gcrypt=auto])
+
+if test "x${have_gcrypt}" != xno ; then
+ AM_PATH_LIBGCRYPT(
+ [1.4.5],
+ [have_gcrypt=yes],
+ [if test "x$have_gcrypt" = xyes ; then
+ AC_MSG_ERROR([*** GCRYPT headers not found.])
+ fi])
+
+ if test "x$have_gcrypt" = xyes ; then
+ GCRYPT_LIBS="$LIBGCRYPT_LIBS"
+ GCRYPT_CFLAGS="$LIBGCRYPT_CFLAGS"
+ AC_DEFINE(HAVE_GCRYPT, 1, [GCRYPT available])
+ else
+ have_gcrypt=no
+ fi
+else
+ GCRYPT_LIBS=
+ GCRYPT_CFLAGS=
+fi
+AC_SUBST(GCRYPT_LIBS)
+AC_SUBST(GCRYPT_CFLAGS)
+AM_CONDITIONAL([HAVE_GCRYPT], [test "x$have_gcrypt" != xno])
+
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([audit],
AS_HELP_STRING([--disable-audit],[Disable optional AUDIT support]),
have_libcryptsetup=no
AC_ARG_ENABLE(libcryptsetup, AS_HELP_STRING([--disable-libcryptsetup], [disable libcryptsetup tools]))
if test "x$enable_libcryptsetup" != "xno"; then
- PKG_CHECK_MODULES(LIBCRYPTSETUP, [ libcryptsetup ],
+ PKG_CHECK_MODULES(LIBCRYPTSETUP, [ libcryptsetup >= 1.4.2 ],
[AC_DEFINE(HAVE_LIBCRYPTSETUP, 1, [Define if libcryptsetup is available]) have_libcryptsetup=yes], have_libcryptsetup=no)
if test "x$have_libcryptsetup" = xno -a "x$enable_libcryptsetup" = xyes; then
AC_MSG_ERROR([*** libcryptsetup support requested but libraries not found])
fi
AM_CONDITIONAL(HAVE_LIBCRYPTSETUP, [test "$have_libcryptsetup" = "yes"])
+# ------------------------------------------------------------------------------
+have_qrencode=no
+AC_ARG_ENABLE(qrencode, AS_HELP_STRING([--disable-qrencode], [disable qrencode support]))
+if test "x$enable_qrencode" != "xno"; then
+ PKG_CHECK_MODULES(QRENCODE, [ libqrencode ],
+ [AC_DEFINE(HAVE_QRENCODE, 1, [Define if qrencode is available]) have_qrencode=yes], have_qrencode=no)
+ if test "x$have_qrencode" = xno -a "x$enable_qrencode" = xyes; then
+ AC_MSG_ERROR([*** qrencode support requested but libraries not found])
+ fi
+fi
+AM_CONDITIONAL(HAVE_QRENCODE, [test "$have_qrencode" = "yes"])
+
# ------------------------------------------------------------------------------
have_binfmt=no
AC_ARG_ENABLE(binfmt, AS_HELP_STRING([--disable-binfmt], [disable binfmt tool]))
# ------------------------------------------------------------------------------
have_manpages=no
AC_ARG_ENABLE(manpages, AS_HELP_STRING([--disable-manpages], [disable manpages]))
-if test "x$enable_manpages" != "xno"; then
- have_manpages=yes
-fi
-AM_CONDITIONAL(ENABLE_MANPAGES, [test "$have_manpages" = "yes"])
+AS_IF([test "x$enable_manpages" != xno], [
+ AS_IF([test "x$enable_manpages" = xyes -a "x$XSLTPROC" = x], [
+ AC_MSG_ERROR([*** Manpages requested but xsltproc not found])
+ ])
+ AS_IF([test "x$XSLTPROC" != x], [have_manpages=yes])
+])
+AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"])
# ------------------------------------------------------------------------------
-AC_PATH_PROG([XSLTPROC], [xsltproc])
-AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, mandriva, meego, mageia, angstrom or other]))
+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware, altlinux, mandriva, mageia, angstrom or other]))
if test "z$with_distro" = "z"; then
if test "$cross_compiling" = yes; then
AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)])
else
- with_distro=$($GREP '^ID=' /etc/os-release | $SED 's/ID=//');
+ with_distro=$($GREP '^ID=' /etc/os-release 2>/dev/null | $SED 's/ID=//');
fi
if test "z$with_distro" = "z"; then
with_distro=other
AC_DEFINE(TARGET_MANDRIVA, [], [Target is Mandriva])
M4_DEFINES=-DTARGET_MANDRIVA=1
;;
- meego)
- SYSTEM_SYSVINIT_PATH=
- SYSTEM_SYSVRCND_PATH=
- AC_DEFINE(TARGET_MEEGO, [], [Target is MeeGo])
- M4_DEFINES=-DTARGET_MEEGO=1
- ;;
angstrom)
SYSTEM_SYSVRCND_PATH=/etc
AC_DEFINE(TARGET_ANGSTROM, [], [Target is Ångström])
AM_CONDITIONAL(TARGET_FRUGALWARE, test x"$with_distro" = xfrugalware)
AM_CONDITIONAL(TARGET_ALTLINUX, test x"$with_distro" = xaltlinux)
AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva)
-AM_CONDITIONAL(TARGET_MEEGO, test x"$with_distro" = xmeego)
AM_CONDITIONAL(TARGET_ANGSTROM, test x"$with_distro" = xangstrom)
AM_CONDITIONAL(TARGET_MAGEIA, test x"$with_distro" = xmageia)
SELinux: ${have_selinux}
XZ: ${have_xz}
ACL: ${have_acl}
+ GCRYPT: ${have_gcrypt}
+ QRENCODE: ${have_qrencode}
binfmt: ${have_binfmt}
vconsole: ${have_vconsole}
readahead: ${have_readahead}
gudev: ${enable_gudev}
gintrospection: ${enable_introspection}
keymap: ${enable_keymap}
+ Python: ${have_python}
+ Python Headers: ${have_python_devel}
prefix: ${prefix}
rootprefix: ${with_rootprefix}
D-Bus interfaces dir: ${with_dbusinterfacedir}
Split /usr: ${enable_split_usr}
man pages: ${have_manpages}
+ gtk-doc: ${enable_gtk_doc}
- CFLAGS: ${CFLAGS}
- CPPLAGS: ${CPPFLAGS}
- LDFLAGS: ${LDFLAGS}
+ CFLAGS: ${OUR_CFLAGS} ${CFLAGS}
+ CPPLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS}
+ LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS}
])