AC_PREREQ([2.64]) m4_define([wayland_major_version], [1]) m4_define([wayland_minor_version], [7]) m4_define([wayland_micro_version], [90]) m4_define([wayland_version], [wayland_major_version.wayland_minor_version.wayland_micro_version]) AC_INIT([wayland], [wayland_version], [https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=wayland&version=wayland_version], [wayland], [http://wayland.freedesktop.org/]) AC_SUBST([WAYLAND_VERSION_MAJOR], [wayland_major_version]) AC_SUBST([WAYLAND_VERSION_MINOR], [wayland_minor_version]) AC_SUBST([WAYLAND_VERSION_MICRO], [wayland_micro_version]) AC_SUBST([WAYLAND_VERSION], [wayland_version]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz subdir-objects]) AM_SILENT_RULES([yes]) # Check for programs AC_PROG_CC AC_PROG_CXX AC_PROG_GREP # check if we have C++ compiler. This is hacky workaround, # for a reason why it is this way see # http://lists.gnu.org/archive/html/bug-autoconf/2010-05/msg00001.html have_cpp_compiler=yes if ! which "$CXX" &>/dev/null; then have_cpp_compiler=no fi AM_CONDITIONAL(ENABLE_CPP_TEST, test "x$have_cpp_compiler" = "xyes") # Initialize libtool LT_PREREQ([2.2]) LT_INIT PKG_PROG_PKG_CONFIG() PKG_CHECK_MODULES(FFI, [libffi]) if test "x$GCC" = "xyes"; then GCC_CFLAGS="-Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden" fi AC_SUBST(GCC_CFLAGS) AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate]) AC_CHECK_DECL(SFD_CLOEXEC,[], [AC_MSG_ERROR("SFD_CLOEXEC is needed to compile wayland")], [[#include ]]) AC_CHECK_DECL(TFD_CLOEXEC,[], [AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland")], [[#include ]]) AC_CHECK_DECL(CLOCK_MONOTONIC,[], [AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland")], [[#include ]]) AC_CHECK_HEADERS([execinfo.h]) AC_ARG_ENABLE([scanner], [AC_HELP_STRING([--disable-scanner], [Disable compilation of wayland-scanner])], [], [enable_scanner=yes]) AC_ARG_ENABLE([documentation], [AC_HELP_STRING([--disable-documentation], [Disable building the documentation])], [], [enable_documentation=yes]) AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes) AC_ARG_WITH(icondir, [ --with-icondir= Look for cursor icons here], [ ICONDIR=$withval], [ ICONDIR=${datadir}/icons]) AC_SUBST([ICONDIR]) if test "x$enable_scanner" = "xyes"; then PKG_CHECK_MODULES(EXPAT, [expat], [], [AC_CHECK_HEADERS(expat.h, [], [AC_MSG_ERROR([Can't find expat.h. Please install expat.])]) SAVE_LIBS="$LIBS" AC_SEARCH_LIBS(XML_ParserCreate, expat, [], [AC_MSG_ERROR([Can't find expat library. Please install expat.])]) EXPAT_LIBS="$LIBS" LIBS="$SAVE_LIBS" AC_SUBST(EXPAT_LIBS) ]) fi AC_PATH_PROG(XSLTPROC, xsltproc) AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"]) AC_MSG_CHECKING([for docbook manpages stylesheet]) MANPAGES_STYLESHEET=http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], [HAVE_MANPAGES_STYLESHEET=yes])) if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], true) AC_SUBST(MANPAGES_STYLESHEET) AC_MSG_RESULT([yes]) else AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], false) AC_MSG_RESULT([no]) fi AM_CONDITIONAL(BUILD_DOCS, [test x$enable_documentation = xyes]) if test "x$enable_documentation" = "xyes"; then AC_PATH_PROG(DOXYGEN, doxygen) if test "x$DOXYGEN" = "x"; then AC_MSG_ERROR([Documentation build requested but doxygen not found. Install doxygen or disable the documentation using --disable-documentation]) fi AC_MSG_CHECKING([for compatible doxygen version]) doxygen_version=`$DOXYGEN --version` AS_VERSION_COMPARE([$doxygen_version], [1.6.0], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Doxygen $doxygen_version too old. Doxygen 1.6+ required for documentation build. Install required doxygen version or disable the documentation using --disable-documentation])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([yes])]) AC_PATH_PROG(XMLTO, xmlto) if test "x$XMLTO" = "x"; then AC_MSG_ERROR([Documentation build requested but xmlto not found. Install xmlto or disable the documentation using --disable-documentation]) fi AC_PATH_PROG(DOT, dot) if test "x$DOT" = "x"; then AC_MSG_ERROR([Documentation build requested but graphviz's dot not found. Install graphviz or disable the documentation using --disable-documentation]) fi AC_MSG_CHECKING([for compatible dot version]) dot_version=`$DOT -V 2>&1|$GREP -oP '(?<=version\W)@<:@0-9.@:>@*(?=\W(.*))'` AS_VERSION_COMPARE([$dot_version], [2.26.0], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Graphviz dot $dot_version too old. Graphviz 2.26+ required for documentation build. Install required graphviz version or disable the documentation using --disable-documentation])], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([yes])]) AC_CONFIG_FILES([ doc/doxygen/wayland.doxygen ]) fi AM_CONDITIONAL([HAVE_XMLTO], [test "x$XMLTO" != "x"]) AC_CONFIG_FILES([Makefile cursor/wayland-cursor.pc cursor/wayland-cursor-uninstalled.pc doc/Makefile doc/publican/Makefile doc/doxygen/Makefile doc/man/Makefile src/wayland-server-uninstalled.pc src/wayland-client-uninstalled.pc src/wayland-scanner-uninstalled.pc src/wayland-server.pc src/wayland-client.pc src/wayland-scanner.pc src/wayland-version.h]) AC_OUTPUT