configure.ac revision 08c70cfb
1#                                               -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4# Initialize Autoconf
5AC_PREREQ(2.57)
6AC_INIT([libxcb],
7        1.9.1,
8        [xcb@lists.freedesktop.org])
9AC_CONFIG_SRCDIR([xcb.pc.in])
10# Set common system defines for POSIX extensions, such as _GNU_SOURCE
11# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL)
12# to avoid autoconf errors.
13AC_USE_SYSTEM_EXTENSIONS
14
15# Initialize Automake
16AM_INIT_AUTOMAKE([foreign dist-bzip2])
17m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
18
19AM_PATH_PYTHON([2.6])
20
21PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no])
22AM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes)
23
24AC_CONFIG_HEADERS([src/config.h])
25
26AC_LIBTOOL_WIN32_DLL
27AC_PROG_LIBTOOL
28AC_PROG_CC
29
30AC_PATH_PROG(XSLTPROC, xsltproc, no)
31if test "$XSLTPROC" = "no"; then
32   AC_MSG_ERROR([XCB requires xsltproc.])
33fi
34
35HTML_CHECK_RESULT=false
36if test x"$HAVE_CHECK" = xyes; then
37	if test x"$XSLTPROC" != xno; then
38		HTML_CHECK_RESULT=true
39	fi
40fi
41AC_SUBST(HTML_CHECK_RESULT)
42
43# Checks for pkg-config packages
44PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.7)
45NEEDED="pthread-stubs xau >= 0.99.2"
46PKG_CHECK_MODULES(NEEDED, $NEEDED)
47
48have_xdmcp="no"
49PKG_CHECK_MODULES(XDMCP, xdmcp,
50	AC_CHECK_LIB(Xdmcp, XdmcpWrap,
51		[
52		AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols])
53		NEEDED="$NEEDED xdmcp"
54		have_xdmcp="yes"
55		],
56		[
57		XDMCP_CFLAGS=
58		XDMCP_LIBS=
59		], [$XDMCP_LIBS]),
60	[AC_MSG_RESULT(no)])
61
62AC_SUBST(NEEDED)
63
64# Find the xcb-proto protocol descriptions
65AC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR)
66XCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
67AC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
68AC_SUBST(XCBPROTO_XCBINCLUDEDIR)
69
70# Find the xcb-proto version
71XCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto`
72AC_SUBST(XCBPROTO_VERSION)
73
74# Find the xcbgen Python package
75AC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR)
76XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
77AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR)
78AC_SUBST(XCBPROTO_XCBPYTHONDIR)
79
80AC_HEADER_STDC
81AC_SEARCH_LIBS(getaddrinfo, socket)
82AC_SEARCH_LIBS(connect, socket)
83
84have_win32="no"
85lt_enable_auto_import=""
86case $host_os in
87mingw*)
88	have_win32="yes"
89	lt_enable_auto_import="-Wl,--enable-auto-import"
90 	;;
91linux*)
92	AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets])
93	;;
94esac
95
96AC_SUBST(lt_enable_auto_import)
97AM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"])
98
99dnl define buffer queue size
100AC_ARG_WITH([queue-size],
101            AC_HELP_STRING([--with-queue-size=SIZE],
102            [Set the XCB buffer queue size (default is 16384)]),
103            [xcb_queue_buffer_size="$withval"],
104            [xcb_queue_buffer_size=16384])
105AC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size],
106                   [XCB buffer queue size])
107
108dnl check for the sockaddr_un.sun_len member
109AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
110		[AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])],
111		[],
112		[ #include <sys/types.h>
113		  #include <sys/un.h>
114		])
115
116dnl check for support for Solaris Trusted Extensions
117AC_CHECK_HEADERS([tsol/label.h])
118AC_CHECK_FUNCS([is_system_labeled])
119
120dnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems
121AC_CHECK_DECL([IOV_MAX], [],
122	      [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])],
123					   [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])],
124					   [[#include <sys/uio.h>]])],
125	      [[#include <limits.h>]])
126
127xcbincludedir='${includedir}/xcb'
128AC_SUBST(xcbincludedir)
129
130if  test "x$GCC" = xyes ; then
131    CWARNFLAGS="-Wall -pedantic -Wpointer-arith \
132		-Wstrict-prototypes -Wmissing-declarations -Wnested-externs"
133else
134    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
135    if test "x$SUNCC" = "xyes"; then
136	CWARNFLAGS="-v"
137    fi
138fi
139AC_SUBST(CWARNFLAGS)
140
141XCB_CHECK_VISIBILITY()
142
143# htmldir is not defined prior to autoconf 2.59c, so on earlier versions
144# set an equivalent value.
145AC_PREREQ([2.59c], [], [AC_SUBST([htmldir], [m4_ifset([AC_PACKAGE_TARNAME],
146	  ['${datadir}/doc/${PACKAGE_TARNAME}'],
147	  ['${datadir}/doc/${PACKAGE}'])
148])])
149
150XCB_CHECK_DOXYGEN()
151
152AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], )
153
154case $host_os in
155	# darwin through Snow Leopard has poll() but can't be used to poll character devices.
156	darwin@<:@789@:>@*|darwin10*) ;;
157	darwin*)
158		_ac_xorg_macosx_version_min=""
159		if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then
160			_ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'`
161		else
162			_ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET
163		fi
164		case $_ac_xorg_macosx_version_min in
165			10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;;
166			*)
167				AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
168			;;
169		esac
170		unset _ac_xorg_macosx_version_min
171		;;
172	*)
173		AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
174	;;
175esac
176
177XCB_EXTENSION(Composite, "yes")
178XCB_EXTENSION(Damage, "yes")
179XCB_EXTENSION(DPMS, "yes")
180XCB_EXTENSION(DRI2, "yes")
181XCB_EXTENSION(GLX, "yes")
182XCB_EXTENSION(RandR, "yes")
183XCB_EXTENSION(Record, "yes")
184XCB_EXTENSION(Render, "yes")
185XCB_EXTENSION(Resource, "yes")
186XCB_EXTENSION(Screensaver, "yes")
187XCB_EXTENSION(Shape, "yes")
188XCB_EXTENSION(Shm, "yes")
189XCB_EXTENSION(Sync, "yes")
190XCB_EXTENSION(Xevie, "yes")
191XCB_EXTENSION(XFixes, "yes")
192XCB_EXTENSION(XFree86-DRI, "yes")
193XCB_EXTENSION(Xinerama, "yes")
194XCB_EXTENSION(XInput, "no")
195XCB_EXTENSION(XKB, "no")
196XCB_EXTENSION(Xprint, "yes")
197XCB_EXTENSION(SELinux, "no")
198XCB_EXTENSION(XTest, "yes")
199XCB_EXTENSION(Xv, "yes")
200XCB_EXTENSION(XvMC, "yes")
201
202AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
203if test "x$LAUNCHD" = xauto; then
204	unset LAUNCHD
205	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin])
206fi
207
208if test "x$LAUNCHD" = xyes ; then
209	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
210fi
211
212AC_CONFIG_FILES([
213Makefile
214doc/Makefile
215src/Makefile
216tests/Makefile
217])
218
219AC_CONFIG_FILES([
220xcb.pc
221xcb-composite.pc
222xcb-damage.pc
223xcb-dpms.pc
224xcb-dri2.pc
225xcb-glx.pc
226xcb-randr.pc
227xcb-record.pc
228xcb-render.pc
229xcb-res.pc
230xcb-screensaver.pc
231xcb-shape.pc
232xcb-shm.pc
233xcb-sync.pc
234xcb-xevie.pc
235xcb-xf86dri.pc
236xcb-xfixes.pc
237xcb-xinerama.pc
238xcb-xinput.pc
239xcb-xkb.pc
240xcb-xprint.pc
241xcb-xselinux.pc
242xcb-xtest.pc
243xcb-xv.pc
244xcb-xvmc.pc
245])
246
247AC_CONFIG_FILES([
248doc/xcb.doxygen
249])
250
251AC_OUTPUT
252
253dnl Configuration output
254
255echo ""
256echo "  Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}"
257echo ""
258echo "  Configuration"
259echo "    XDM support.........: ${have_xdmcp}"
260echo "    Build unit tests....: ${HAVE_CHECK}"
261echo "    XCB buffer size.....: ${xcb_queue_buffer_size}"
262echo ""
263echo "  X11 extensions"
264echo "    Composite...........: ${BUILD_COMPOSITE}"
265echo "    Damage..............: ${BUILD_DAMAGE}"
266echo "    Dpms................: ${BUILD_DPMS}"
267echo "    Dri2................: ${BUILD_DRI2}"
268echo "    Glx.................: ${BUILD_GLX}"
269echo "    Randr...............: ${BUILD_RANDR}"
270echo "    Record..............: ${BUILD_RECORD}"
271echo "    Render..............: ${BUILD_RENDER}"
272echo "    Resource............: ${BUILD_RESOURCE}"
273echo "    Screensaver.........: ${BUILD_SCREENSAVER}"
274echo "    selinux.............: ${BUILD_SELINUX}"
275echo "    Shape...............: ${BUILD_SHAPE}"
276echo "    Shm.................: ${BUILD_SHM}"
277echo "    Sync................: ${BUILD_SYNC}"
278echo "    Xevie...............: ${BUILD_XEVIE}"
279echo "    Xfixes..............: ${BUILD_XFIXES}"
280echo "    Xfree86-dri.........: ${BUILD_XFREE86_DRI}"
281echo "    xinerama............: ${BUILD_XINERAMA}"
282echo "    xinput..............: ${BUILD_XINPUT}"
283echo "    xkb.................: ${BUILD_XKB}"
284echo "    xprint..............: ${BUILD_XPRINT}"
285echo "    xtest...............: ${BUILD_XTEST}"
286echo "    xv..................: ${BUILD_XV}"
287echo "    xvmc................: ${BUILD_XVMC}"
288echo ""
289echo "  Used CFLAGS:"
290echo "    CPPFLAGS............: ${CPPFLAGS}"
291echo "    CFLAGS..............: ${CFLAGS}"
292echo "    Warning CFLAGS......: ${CWARNFLAGS}"
293echo ""
294echo "  Installation:"
295echo "    Prefix..............: ${prefix}"
296echo ""
297