configure.ac 6.08 KB
Newer Older
1
AC_PREREQ([2.64])
2

3
m4_define([wayland_major_version], [1])
4
m4_define([wayland_minor_version], [8])
5
m4_define([wayland_micro_version],  [90])
6 7 8
m4_define([wayland_version],
          [wayland_major_version.wayland_minor_version.wayland_micro_version])

9
AC_INIT([wayland],
10
        [wayland_version],
11
        [https://bugs.freedesktop.org/enter_bug.cgi?product=Wayland&component=wayland&version=wayland_version],
12 13 14
        [wayland],
        [http://wayland.freedesktop.org/])

15 16 17 18 19
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])

20
AC_CONFIG_HEADERS([config.h])
21 22
AC_CONFIG_MACRO_DIR([m4])

23
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz subdir-objects])
24

Kristian Høgsberg's avatar
Kristian Høgsberg committed
25
AM_SILENT_RULES([yes])
26

27 28
# Check for programs
AC_PROG_CC
Mariusz Ceier's avatar
Mariusz Ceier committed
29
AC_PROG_CXX
30
AC_PROG_GREP
Mariusz Ceier's avatar
Mariusz Ceier committed
31 32 33 34 35 36 37 38 39 40 41

# 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")
42 43 44 45 46

# Initialize libtool
LT_PREREQ([2.2])
LT_INIT

47 48 49
PKG_PROG_PKG_CONFIG()
PKG_CHECK_MODULES(FFI, [libffi])

Dylan Noblesmith's avatar
Dylan Noblesmith committed
50
if test "x$GCC" = "xyes"; then
51
	GCC_CFLAGS="-Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden"
52 53 54
fi
AC_SUBST(GCC_CFLAGS)

55
AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate])
56

57 58 59 60 61
AC_ARG_ENABLE([libraries],
	      [AC_HELP_STRING([--disable-libraries],
			      [Disable compilation of wayland libraries])],
	      [],
	      [enable_libraries=yes])
62

63 64
AC_ARG_ENABLE([scanner],
              [AC_HELP_STRING([--disable-scanner],
65
                              [Disable compilation of wayland-scanner])],
66 67 68
              [],
              [enable_scanner=yes])

69 70 71 72 73 74
AC_ARG_ENABLE([documentation],
	      [AC_HELP_STRING([--disable-documentation],
		              [Disable building the documentation])],
	      [],
	      [enable_documentation=yes])

75 76
AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes)

77 78
AM_CONDITIONAL(ENABLE_LIBRARIES, test "x$enable_libraries" = xyes)

79 80 81 82 83
AC_ARG_WITH(icondir, [  --with-icondir=<dir>    Look for cursor icons here],
		     [  ICONDIR=$withval],
		     [  ICONDIR=${datadir}/icons])
AC_SUBST([ICONDIR])

84 85 86 87 88 89 90 91 92 93 94 95 96
if test "x$enable_libraries" = "xyes"; then
	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

97
if test "x$enable_scanner" = "xyes"; then
98 99 100 101 102 103 104 105 106 107
	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)
		])
108
fi
109

110
AC_PATH_PROG(XSLTPROC, xsltproc)
111
AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
112

113 114 115 116 117 118 119 120 121 122 123 124 125 126
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

127
AM_CONDITIONAL(BUILD_DOCS, [test x$enable_documentation = xyes])
128
if test "x$enable_documentation" = "xyes"; then
129 130 131 132 133 134
	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

135 136 137 138 139 140 141 142
	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])])

143
	AC_PATH_PROG(XMLTO, xmlto)
144

145 146
	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])
147 148
	fi

149 150 151 152 153
	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])
154
	dot_version=`$DOT -V 2>&1|$GREP -o ['[0-9]*\.[0-9]*\.[0-9]*']`
155 156 157 158 159 160
	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])])

161 162 163 164
	AC_CONFIG_FILES([
	doc/doxygen/wayland.doxygen
	])

165
fi
166
AM_CONDITIONAL([HAVE_XMLTO], [test "x$XMLTO" != "x"])
167

168
AC_CONFIG_FILES([Makefile
169
		 cursor/wayland-cursor.pc
170
		 cursor/wayland-cursor-uninstalled.pc
171
		 doc/Makefile
172
		 doc/publican/Makefile
173
		 doc/doxygen/Makefile
174
		 doc/man/Makefile
175 176
		 src/wayland-server-uninstalled.pc
		 src/wayland-client-uninstalled.pc
Daiki Ueno's avatar
Daiki Ueno committed
177
		 src/wayland-scanner-uninstalled.pc
178
		 src/wayland-server.pc
179
		 src/wayland-client.pc
Daiki Ueno's avatar
Daiki Ueno committed
180
		 src/wayland-scanner.pc
181
		 src/wayland-version.h])
182
AC_OUTPUT