You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
6.8 KiB
203 lines
6.8 KiB
AC_PREREQ([2.64]) |
|
|
|
m4_define([wayland_major_version], [1]) |
|
m4_define([wayland_minor_version], [12]) |
|
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 |
|
AM_PROG_AS |
|
|
|
# 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() |
|
|
|
AC_ARG_ENABLE([fatal-warnings], |
|
AC_HELP_STRING([--enable-fatal-warnings], |
|
[Build with -Werror]), |
|
[enable_fatal_warnings=$enableval], |
|
[enable_fatal_warnings=no]) |
|
AS_IF([test x"$enable_fatal_warnings" != "xno"], [ |
|
WERROR_CFLAGS="-Werror" |
|
]) |
|
|
|
if test "x$GCC" = "xyes"; then |
|
GCC_CFLAGS="$WERROR_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_ARG_ENABLE([libraries], |
|
[AC_HELP_STRING([--disable-libraries], |
|
[Disable compilation of wayland libraries])], |
|
[], |
|
[enable_libraries=yes]) |
|
|
|
AC_ARG_WITH([host-scanner], |
|
[AC_HELP_STRING([--with-host-scanner], |
|
[Use installed wayland-scanner from host PATH during build])], |
|
[], |
|
[with_host_scanner=no]) |
|
|
|
AC_ARG_ENABLE([documentation], |
|
[AC_HELP_STRING([--disable-documentation], |
|
[Disable building the documentation])], |
|
[], |
|
[enable_documentation=yes]) |
|
|
|
AC_ARG_ENABLE([dtd-validation], |
|
[AC_HELP_STRING([--disable-dtd-validation], |
|
[Disable DTD validation of the protocol])], |
|
[], |
|
[enable_dtd_validation=yes]) |
|
|
|
AM_CONDITIONAL(USE_HOST_SCANNER, test "x$with_host_scanner" = xyes) |
|
|
|
AM_CONDITIONAL(ENABLE_LIBRARIES, test "x$enable_libraries" = xyes) |
|
|
|
AC_ARG_WITH(icondir, [ --with-icondir=<dir> Look for cursor icons here], |
|
[ ICONDIR=$withval], |
|
[ ICONDIR=${datadir}/icons]) |
|
AC_SUBST([ICONDIR]) |
|
|
|
if test "x$enable_libraries" = "xyes"; then |
|
PKG_CHECK_MODULES(FFI, [libffi]) |
|
AC_CHECK_DECL(SFD_CLOEXEC,[], |
|
[AC_MSG_ERROR("SFD_CLOEXEC is needed to compile wayland libraries")], |
|
[[#include <sys/signalfd.h>]]) |
|
AC_CHECK_DECL(TFD_CLOEXEC,[], |
|
[AC_MSG_ERROR("TFD_CLOEXEC is needed to compile wayland libraries")], |
|
[[#include <sys/timerfd.h>]]) |
|
AC_CHECK_DECL(CLOCK_MONOTONIC,[], |
|
[AC_MSG_ERROR("CLOCK_MONOTONIC is needed to compile wayland libraries")], |
|
[[#include <time.h>]]) |
|
AC_CHECK_HEADERS([execinfo.h]) |
|
fi |
|
|
|
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) |
|
]) |
|
|
|
AM_CONDITIONAL([DTD_VALIDATION], [test "x$enable_dtd_validation" = "xyes"]) |
|
if test "x$enable_dtd_validation" = "xyes"; then |
|
PKG_CHECK_MODULES(LIBXML, [libxml-2.0]) |
|
AC_DEFINE(HAVE_LIBXML, 1, [libxml-2.0 is available]) |
|
AC_CONFIG_LINKS([src/wayland.dtd.embed:protocol/wayland.dtd]) |
|
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 -o ['[0-9]*\.[0-9]*\.[0-9]*']` |
|
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
|
|
|