configure.ac revision 21298544
1602e473dSmrg#                                               -*- Autoconf -*-
2602e473dSmrg# Process this file with autoconf to produce a configure script.
3602e473dSmrg
421298544Smrg# Initialize Autoconf
5602e473dSmrgAC_PREREQ(2.57)
6602e473dSmrgAC_INIT([libxcb],
721298544Smrg        1.9,
8602e473dSmrg        [xcb@lists.freedesktop.org])
9602e473dSmrgAC_CONFIG_SRCDIR([xcb.pc.in])
1021298544Smrg# Set common system defines for POSIX extensions, such as _GNU_SOURCE
1121298544Smrg# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL)
1221298544Smrg# to avoid autoconf errors.
1321298544SmrgAC_USE_SYSTEM_EXTENSIONS
1421298544Smrg
1521298544Smrg# Initialize Automake
16602e473dSmrgAM_INIT_AUTOMAKE([foreign dist-bzip2])
1721298544Smrgm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
18602e473dSmrg
1921298544SmrgAM_PATH_PYTHON([2.6])
20602e473dSmrg
21602e473dSmrgPKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no])
22602e473dSmrgAM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes)
23602e473dSmrg
24602e473dSmrgAC_CONFIG_HEADERS([src/config.h])
25602e473dSmrg
2621298544SmrgAC_LIBTOOL_WIN32_DLL
27602e473dSmrgAC_PROG_LIBTOOL
28602e473dSmrgAC_PROG_CC
29602e473dSmrg
30602e473dSmrgAC_PATH_PROG(XSLTPROC, xsltproc, no)
31602e473dSmrgif test "$XSLTPROC" = "no"; then
32602e473dSmrg   AC_MSG_ERROR([XCB requires xsltproc.])
33602e473dSmrgfi
34602e473dSmrg
35602e473dSmrgHTML_CHECK_RESULT=false
36602e473dSmrgif test x"$HAVE_CHECK" = xyes; then
37602e473dSmrg	if test x"$XSLTPROC" != xno; then
38602e473dSmrg		HTML_CHECK_RESULT=true
39602e473dSmrg	fi
40602e473dSmrgfi
41602e473dSmrgAC_SUBST(HTML_CHECK_RESULT)
42602e473dSmrg
43602e473dSmrg# Checks for pkg-config packages
4421298544SmrgPKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.7)
45602e473dSmrgNEEDED="pthread-stubs xau >= 0.99.2"
46602e473dSmrgPKG_CHECK_MODULES(NEEDED, $NEEDED)
47602e473dSmrg
48602e473dSmrghave_xdmcp="no"
49602e473dSmrgPKG_CHECK_MODULES(XDMCP, xdmcp,
50602e473dSmrg	AC_CHECK_LIB(Xdmcp, XdmcpWrap,
51602e473dSmrg		[
52602e473dSmrg		AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols])
53602e473dSmrg		NEEDED="$NEEDED xdmcp"
54602e473dSmrg		have_xdmcp="yes"
55602e473dSmrg		],
56602e473dSmrg		[
57602e473dSmrg		XDMCP_CFLAGS=
58602e473dSmrg		XDMCP_LIBS=
59602e473dSmrg		], [$XDMCP_LIBS]),
60602e473dSmrg	[AC_MSG_RESULT(no)])
61602e473dSmrg
62602e473dSmrgAC_SUBST(NEEDED)
63602e473dSmrg
64602e473dSmrg# Find the xcb-proto protocol descriptions
65602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR)
66602e473dSmrgXCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
67602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
68602e473dSmrgAC_SUBST(XCBPROTO_XCBINCLUDEDIR)
69602e473dSmrg
70602e473dSmrg# Find the xcb-proto version
71602e473dSmrgXCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto`
72602e473dSmrgAC_SUBST(XCBPROTO_VERSION)
73602e473dSmrg
74602e473dSmrg# Find the xcbgen Python package
75602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR)
76602e473dSmrgXCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
77602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR)
78602e473dSmrgAC_SUBST(XCBPROTO_XCBPYTHONDIR)
79602e473dSmrg
80602e473dSmrgAC_HEADER_STDC
81602e473dSmrgAC_SEARCH_LIBS(getaddrinfo, socket)
82602e473dSmrgAC_SEARCH_LIBS(connect, socket)
83602e473dSmrg
8421298544Smrghave_win32="no"
8521298544Smrglt_enable_auto_import=""
86602e473dSmrgcase $host_os in
8721298544Smrgmingw*)
8821298544Smrg	have_win32="yes"
8921298544Smrg	lt_enable_auto_import="-Wl,--enable-auto-import"
9021298544Smrg 	;;
91602e473dSmrglinux*)
92602e473dSmrg	AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets])
93602e473dSmrg	;;
94602e473dSmrgesac
95602e473dSmrg
9621298544SmrgAC_SUBST(lt_enable_auto_import)
9721298544SmrgAM_CONDITIONAL([XCB_HAVE_WIN32], [test "x${have_win32}" = "xyes"])
9821298544Smrg
99602e473dSmrgdnl define buffer queue size
100602e473dSmrgAC_ARG_WITH([queue-size],
101602e473dSmrg            AC_HELP_STRING([--with-queue-size=SIZE],
102602e473dSmrg            [Set the XCB buffer queue size (default is 16384)]),
103602e473dSmrg            [xcb_queue_buffer_size="$withval"],
104602e473dSmrg            [xcb_queue_buffer_size=16384])
105602e473dSmrgAC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size],
106602e473dSmrg                   [XCB buffer queue size])
107602e473dSmrg
108602e473dSmrgdnl check for the sockaddr_un.sun_len member
109602e473dSmrgAC_CHECK_MEMBER([struct sockaddr_un.sun_len],
110602e473dSmrg		[AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])],
111602e473dSmrg		[],
112602e473dSmrg		[ #include <sys/types.h>
113602e473dSmrg		  #include <sys/un.h>
114602e473dSmrg		])
115602e473dSmrg
11621298544Smrgdnl check for support for Solaris Trusted Extensions
11721298544SmrgAC_CHECK_HEADERS([tsol/label.h])
11821298544SmrgAC_CHECK_FUNCS([is_system_labeled])
11921298544Smrg
12021298544Smrgdnl check for IOV_MAX, and fall back to UIO_MAXIOV on BSDish systems
12121298544SmrgAC_CHECK_DECL([IOV_MAX], [],
12221298544Smrg	      [AC_CHECK_DECL([UIO_MAXIOV], [AC_DEFINE([IOV_MAX], [UIO_MAXIOV])],
12321298544Smrg					   [AC_DEFINE([IOV_MAX], [16], [Define if not provided by <limits.h>])],
12421298544Smrg					   [[#include <sys/uio.h>]])],
12521298544Smrg	      [[#include <limits.h>]])
12621298544Smrg
127602e473dSmrgxcbincludedir='${includedir}/xcb'
128602e473dSmrgAC_SUBST(xcbincludedir)
129602e473dSmrg
130602e473dSmrgif  test "x$GCC" = xyes ; then
131602e473dSmrg    CWARNFLAGS="-Wall -pedantic -Wpointer-arith \
132602e473dSmrg		-Wstrict-prototypes -Wmissing-declarations -Wnested-externs"
133602e473dSmrgelse
134602e473dSmrg    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
135602e473dSmrg    if test "x$SUNCC" = "xyes"; then
136602e473dSmrg	CWARNFLAGS="-v"
137602e473dSmrg    fi
138602e473dSmrgfi
139602e473dSmrgAC_SUBST(CWARNFLAGS)
140602e473dSmrg
141602e473dSmrgXCB_CHECK_VISIBILITY()
142602e473dSmrg
143602e473dSmrg# htmldir is not defined prior to autoconf 2.59c, so on earlier versions
144602e473dSmrg# set an equivalent value.
145602e473dSmrgAC_PREREQ([2.59c], [], [AC_SUBST([htmldir], [m4_ifset([AC_PACKAGE_TARNAME],
146602e473dSmrg	  ['${datadir}/doc/${PACKAGE_TARNAME}'],
147602e473dSmrg	  ['${datadir}/doc/${PACKAGE}'])
148602e473dSmrg])])
149602e473dSmrg
150602e473dSmrgXCB_CHECK_DOXYGEN()
151602e473dSmrg
15221298544SmrgAC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [getaddrinfo() function is available])], )
15321298544Smrg
154602e473dSmrgcase $host_os in
15521298544Smrg	# darwin through Snow Leopard has poll() but can't be used to poll character devices.
15621298544Smrg	darwin@<:@789@:>@*|darwin10*) ;;
15721298544Smrg	darwin*)
15821298544Smrg		_ac_xorg_macosx_version_min=""
15921298544Smrg		if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then
16021298544Smrg			_ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'`
16121298544Smrg		else
16221298544Smrg			_ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET
16321298544Smrg		fi
16421298544Smrg		case $_ac_xorg_macosx_version_min in
16521298544Smrg			10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;;
16621298544Smrg			*)
16721298544Smrg				AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
16821298544Smrg			;;
16921298544Smrg		esac
17021298544Smrg		unset _ac_xorg_macosx_version_min
17121298544Smrg		;;
172602e473dSmrg	*)
173602e473dSmrg		AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
174602e473dSmrg	;;
175602e473dSmrgesac
176602e473dSmrg
177602e473dSmrgXCB_EXTENSION(Composite, "yes")
178602e473dSmrgXCB_EXTENSION(Damage, "yes")
179602e473dSmrgXCB_EXTENSION(DPMS, "yes")
180602e473dSmrgXCB_EXTENSION(DRI2, "yes")
181602e473dSmrgXCB_EXTENSION(GLX, "yes")
182602e473dSmrgXCB_EXTENSION(RandR, "yes")
183602e473dSmrgXCB_EXTENSION(Record, "yes")
184602e473dSmrgXCB_EXTENSION(Render, "yes")
185602e473dSmrgXCB_EXTENSION(Resource, "yes")
186602e473dSmrgXCB_EXTENSION(Screensaver, "yes")
187602e473dSmrgXCB_EXTENSION(Shape, "yes")
188602e473dSmrgXCB_EXTENSION(Shm, "yes")
189602e473dSmrgXCB_EXTENSION(Sync, "yes")
190602e473dSmrgXCB_EXTENSION(Xevie, "yes")
191602e473dSmrgXCB_EXTENSION(XFixes, "yes")
192602e473dSmrgXCB_EXTENSION(XFree86-DRI, "yes")
193602e473dSmrgXCB_EXTENSION(Xinerama, "yes")
194602e473dSmrgXCB_EXTENSION(XInput, "no")
19521298544SmrgXCB_EXTENSION(XKB, "no")
196602e473dSmrgXCB_EXTENSION(Xprint, "yes")
197602e473dSmrgXCB_EXTENSION(SELinux, "no")
198602e473dSmrgXCB_EXTENSION(XTest, "yes")
199602e473dSmrgXCB_EXTENSION(Xv, "yes")
200602e473dSmrgXCB_EXTENSION(XvMC, "yes")
201602e473dSmrg
202602e473dSmrgAC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
203602e473dSmrgif test "x$LAUNCHD" = xauto; then
204602e473dSmrg	unset LAUNCHD
205b20a2039Smrg	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin])
206602e473dSmrgfi
207602e473dSmrg
208602e473dSmrgif test "x$LAUNCHD" = xyes ; then
209602e473dSmrg	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
210602e473dSmrgfi
211602e473dSmrg
212602e473dSmrgAC_CONFIG_FILES([
213602e473dSmrgMakefile
214602e473dSmrgdoc/Makefile
215602e473dSmrgsrc/Makefile
216602e473dSmrgtests/Makefile
217602e473dSmrg])
218602e473dSmrg
219602e473dSmrgAC_CONFIG_FILES([
220602e473dSmrgxcb.pc
221602e473dSmrgxcb-composite.pc
222602e473dSmrgxcb-damage.pc
223602e473dSmrgxcb-dpms.pc
224602e473dSmrgxcb-dri2.pc
225602e473dSmrgxcb-glx.pc
226602e473dSmrgxcb-randr.pc
227602e473dSmrgxcb-record.pc
228602e473dSmrgxcb-render.pc
229602e473dSmrgxcb-res.pc
230602e473dSmrgxcb-screensaver.pc
231602e473dSmrgxcb-shape.pc
232602e473dSmrgxcb-shm.pc
233602e473dSmrgxcb-sync.pc
234602e473dSmrgxcb-xevie.pc
235602e473dSmrgxcb-xf86dri.pc
236602e473dSmrgxcb-xfixes.pc
237602e473dSmrgxcb-xinerama.pc
238602e473dSmrgxcb-xinput.pc
23921298544Smrgxcb-xkb.pc
240602e473dSmrgxcb-xprint.pc
241602e473dSmrgxcb-xselinux.pc
242602e473dSmrgxcb-xtest.pc
243602e473dSmrgxcb-xv.pc
244602e473dSmrgxcb-xvmc.pc
245602e473dSmrg])
246602e473dSmrg
247602e473dSmrgAC_CONFIG_FILES([
248602e473dSmrgdoc/xcb.doxygen
249602e473dSmrg])
250602e473dSmrg
251602e473dSmrgAC_OUTPUT
252602e473dSmrg
253602e473dSmrgdnl Configuration output
254602e473dSmrg
255602e473dSmrgecho ""
256602e473dSmrgecho "  Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}"
257602e473dSmrgecho ""
258602e473dSmrgecho "  Configuration"
259602e473dSmrgecho "    XDM support.........: ${have_xdmcp}"
260602e473dSmrgecho "    Build unit tests....: ${HAVE_CHECK}"
261602e473dSmrgecho "    XCB buffer size.....: ${xcb_queue_buffer_size}"
262602e473dSmrgecho ""
263b20a2039Smrgecho "  X11 extensions"
264b20a2039Smrgecho "    Composite...........: ${BUILD_COMPOSITE}"
265b20a2039Smrgecho "    Damage..............: ${BUILD_DAMAGE}"
266b20a2039Smrgecho "    Dpms................: ${BUILD_DPMS}"
267b20a2039Smrgecho "    Dri2................: ${BUILD_DRI2}"
268b20a2039Smrgecho "    Glx.................: ${BUILD_GLX}"
269b20a2039Smrgecho "    Randr...............: ${BUILD_RANDR}"
270b20a2039Smrgecho "    Record..............: ${BUILD_RECORD}"
271b20a2039Smrgecho "    Render..............: ${BUILD_RENDER}"
272b20a2039Smrgecho "    Resource............: ${BUILD_RESOURCE}"
273b20a2039Smrgecho "    Screensaver.........: ${BUILD_SCREENSAVER}"
274b20a2039Smrgecho "    selinux.............: ${BUILD_SELINUX}"
275b20a2039Smrgecho "    Shape...............: ${BUILD_SHAPE}"
276b20a2039Smrgecho "    Shm.................: ${BUILD_SHM}"
277b20a2039Smrgecho "    Sync................: ${BUILD_SYNC}"
278b20a2039Smrgecho "    Xevie...............: ${BUILD_XEVIE}"
279b20a2039Smrgecho "    Xfixes..............: ${BUILD_XFIXES}"
280b20a2039Smrgecho "    Xfree86-dri.........: ${BUILD_XFREE86_DRI}"
281b20a2039Smrgecho "    xinerama............: ${BUILD_XINERAMA}"
282b20a2039Smrgecho "    xinput..............: ${BUILD_XINPUT}"
28321298544Smrgecho "    xkb.................: ${BUILD_XKB}"
284b20a2039Smrgecho "    xprint..............: ${BUILD_XPRINT}"
285b20a2039Smrgecho "    xtest...............: ${BUILD_XTEST}"
286b20a2039Smrgecho "    xv..................: ${BUILD_XV}"
287b20a2039Smrgecho "    xvmc................: ${BUILD_XVMC}"
288b20a2039Smrgecho ""
289602e473dSmrgecho "  Used CFLAGS:"
290602e473dSmrgecho "    CPPFLAGS............: ${CPPFLAGS}"
291602e473dSmrgecho "    CFLAGS..............: ${CFLAGS}"
292602e473dSmrgecho "    Warning CFLAGS......: ${CWARNFLAGS}"
293602e473dSmrgecho ""
294602e473dSmrgecho "  Installation:"
295602e473dSmrgecho "    Prefix..............: ${prefix}"
296602e473dSmrgecho ""
297