mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	Inspired by Heiko Becker and Eric's work in libdrm and Mesa respectively. Cc: Eric Engestrom <eric.engestrom@imgtec.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
		
			
				
	
	
		
			206 lines
		
	
	
	
		
			6.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			206 lines
		
	
	
	
		
			6.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
AC_PREREQ([2.64])
 | 
						|
 | 
						|
m4_define([wayland_major_version],  [1])
 | 
						|
m4_define([wayland_minor_version], [14])
 | 
						|
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
 | 
						|
AC_PROG_NM
 | 
						|
 | 
						|
# 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
 | 
						|
		 egl/wayland-egl.pc
 | 
						|
		 egl/wayland-egl-backend.pc
 | 
						|
		 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
 |