configure.ac revision b20a2039
1602e473dSmrg#                                               -*- Autoconf -*-
2602e473dSmrg# Process this file with autoconf to produce a configure script.
3602e473dSmrg
4602e473dSmrgAC_PREREQ(2.57)
5602e473dSmrgAC_INIT([libxcb],
6b20a2039Smrg        1.7,
7602e473dSmrg        [xcb@lists.freedesktop.org])
8602e473dSmrgAC_CONFIG_SRCDIR([xcb.pc.in])
9602e473dSmrgAM_INIT_AUTOMAKE([foreign dist-bzip2])
10602e473dSmrg
11602e473dSmrgAM_PATH_PYTHON([2.5])
12602e473dSmrg
13602e473dSmrgPKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK=yes], [HAVE_CHECK=no])
14602e473dSmrgAM_CONDITIONAL(HAVE_CHECK, test x$HAVE_CHECK = xyes)
15602e473dSmrg
16602e473dSmrgAC_CONFIG_HEADERS([src/config.h])
17602e473dSmrg
18602e473dSmrgAC_PROG_LIBTOOL
19602e473dSmrgAC_PROG_CC
20602e473dSmrg
21602e473dSmrgAC_PATH_PROG(XSLTPROC, xsltproc, no)
22602e473dSmrgif test "$XSLTPROC" = "no"; then
23602e473dSmrg   AC_MSG_ERROR([XCB requires xsltproc.])
24602e473dSmrgfi
25602e473dSmrg
26602e473dSmrgHTML_CHECK_RESULT=false
27602e473dSmrgif test x"$HAVE_CHECK" = xyes; then
28602e473dSmrg	if test x"$XSLTPROC" != xno; then
29602e473dSmrg		HTML_CHECK_RESULT=true
30602e473dSmrg	fi
31602e473dSmrgfi
32602e473dSmrgAC_SUBST(HTML_CHECK_RESULT)
33602e473dSmrg
34602e473dSmrg# Checks for pkg-config packages
35602e473dSmrgPKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
36602e473dSmrgNEEDED="pthread-stubs xau >= 0.99.2"
37602e473dSmrgPKG_CHECK_MODULES(NEEDED, $NEEDED)
38602e473dSmrg
39602e473dSmrghave_xdmcp="no"
40602e473dSmrgPKG_CHECK_MODULES(XDMCP, xdmcp,
41602e473dSmrg	AC_CHECK_LIB(Xdmcp, XdmcpWrap,
42602e473dSmrg		[
43602e473dSmrg		AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols])
44602e473dSmrg		NEEDED="$NEEDED xdmcp"
45602e473dSmrg		have_xdmcp="yes"
46602e473dSmrg		],
47602e473dSmrg		[
48602e473dSmrg		XDMCP_CFLAGS=
49602e473dSmrg		XDMCP_LIBS=
50602e473dSmrg		], [$XDMCP_LIBS]),
51602e473dSmrg	[AC_MSG_RESULT(no)])
52602e473dSmrg
53602e473dSmrgAC_SUBST(NEEDED)
54602e473dSmrg
55602e473dSmrg# Find the xcb-proto protocol descriptions
56602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBINCLUDEDIR)
57602e473dSmrgXCBPROTO_XCBINCLUDEDIR=`$PKG_CONFIG --variable=xcbincludedir xcb-proto`
58602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBINCLUDEDIR)
59602e473dSmrgAC_SUBST(XCBPROTO_XCBINCLUDEDIR)
60602e473dSmrg
61602e473dSmrg# Find the xcb-proto version
62602e473dSmrgXCBPROTO_VERSION=`$PKG_CONFIG --modversion xcb-proto`
63602e473dSmrgAC_SUBST(XCBPROTO_VERSION)
64602e473dSmrg
65602e473dSmrg# Find the xcbgen Python package
66602e473dSmrgAC_MSG_CHECKING(XCBPROTO_XCBPYTHONDIR)
67602e473dSmrgXCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto`
68602e473dSmrgAC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR)
69602e473dSmrgAC_SUBST(XCBPROTO_XCBPYTHONDIR)
70602e473dSmrg
71602e473dSmrgAC_HEADER_STDC
72602e473dSmrgAC_SEARCH_LIBS(getaddrinfo, socket)
73602e473dSmrgAC_SEARCH_LIBS(connect, socket)
74602e473dSmrg
75602e473dSmrgcase $host_os in
76602e473dSmrglinux*)
77602e473dSmrg	AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets])
78602e473dSmrg	;;
79602e473dSmrgesac
80602e473dSmrg
81602e473dSmrgdnl define buffer queue size
82602e473dSmrgAC_ARG_WITH([queue-size],
83602e473dSmrg            AC_HELP_STRING([--with-queue-size=SIZE],
84602e473dSmrg            [Set the XCB buffer queue size (default is 16384)]),
85602e473dSmrg            [xcb_queue_buffer_size="$withval"],
86602e473dSmrg            [xcb_queue_buffer_size=16384])
87602e473dSmrgAC_DEFINE_UNQUOTED(XCB_QUEUE_BUFFER_SIZE, [$xcb_queue_buffer_size],
88602e473dSmrg                   [XCB buffer queue size])
89602e473dSmrg
90602e473dSmrgdnl check for the sockaddr_un.sun_len member
91602e473dSmrgAC_CHECK_MEMBER([struct sockaddr_un.sun_len],
92602e473dSmrg		[AC_DEFINE(HAVE_SOCKADDR_SUN_LEN,1,[Have the sockaddr_un.sun_len member.])],
93602e473dSmrg		[],
94602e473dSmrg		[ #include <sys/types.h>
95602e473dSmrg		  #include <sys/un.h>
96602e473dSmrg		])
97602e473dSmrg
98602e473dSmrgxcbincludedir='${includedir}/xcb'
99602e473dSmrgAC_SUBST(xcbincludedir)
100602e473dSmrg
101602e473dSmrgif  test "x$GCC" = xyes ; then
102602e473dSmrg    CWARNFLAGS="-Wall -pedantic -Wpointer-arith \
103602e473dSmrg		-Wstrict-prototypes -Wmissing-declarations -Wnested-externs"
104602e473dSmrgelse
105602e473dSmrg    AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
106602e473dSmrg    if test "x$SUNCC" = "xyes"; then
107602e473dSmrg	CWARNFLAGS="-v"
108602e473dSmrg    fi
109602e473dSmrgfi
110602e473dSmrgAC_SUBST(CWARNFLAGS)
111602e473dSmrg
112602e473dSmrgXCB_CHECK_VISIBILITY()
113602e473dSmrg
114602e473dSmrg# htmldir is not defined prior to autoconf 2.59c, so on earlier versions
115602e473dSmrg# set an equivalent value.
116602e473dSmrgAC_PREREQ([2.59c], [], [AC_SUBST([htmldir], [m4_ifset([AC_PACKAGE_TARNAME],
117602e473dSmrg	  ['${datadir}/doc/${PACKAGE_TARNAME}'],
118602e473dSmrg	  ['${datadir}/doc/${PACKAGE}'])
119602e473dSmrg])])
120602e473dSmrg
121602e473dSmrgXCB_CHECK_DOXYGEN()
122602e473dSmrg
123602e473dSmrgcase $host_os in
124602e473dSmrg	# darwin has poll() but can't be used to poll character devices (atleast through SnowLeopard)
125602e473dSmrg	darwin*) ;;
126602e473dSmrg	*)
127602e473dSmrg		AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
128602e473dSmrg	;;
129602e473dSmrgesac
130602e473dSmrg
131602e473dSmrgXCB_EXTENSION(Composite, "yes")
132602e473dSmrgXCB_EXTENSION(Damage, "yes")
133602e473dSmrgXCB_EXTENSION(DPMS, "yes")
134602e473dSmrgXCB_EXTENSION(DRI2, "yes")
135602e473dSmrgXCB_EXTENSION(GLX, "yes")
136602e473dSmrgXCB_EXTENSION(RandR, "yes")
137602e473dSmrgXCB_EXTENSION(Record, "yes")
138602e473dSmrgXCB_EXTENSION(Render, "yes")
139602e473dSmrgXCB_EXTENSION(Resource, "yes")
140602e473dSmrgXCB_EXTENSION(Screensaver, "yes")
141602e473dSmrgXCB_EXTENSION(Shape, "yes")
142602e473dSmrgXCB_EXTENSION(Shm, "yes")
143602e473dSmrgXCB_EXTENSION(Sync, "yes")
144602e473dSmrgXCB_EXTENSION(Xevie, "yes")
145602e473dSmrgXCB_EXTENSION(XFixes, "yes")
146602e473dSmrgXCB_EXTENSION(XFree86-DRI, "yes")
147602e473dSmrgXCB_EXTENSION(Xinerama, "yes")
148602e473dSmrgXCB_EXTENSION(XInput, "no")
149602e473dSmrgXCB_EXTENSION(Xprint, "yes")
150602e473dSmrgXCB_EXTENSION(SELinux, "no")
151602e473dSmrgXCB_EXTENSION(XTest, "yes")
152602e473dSmrgXCB_EXTENSION(Xv, "yes")
153602e473dSmrgXCB_EXTENSION(XvMC, "yes")
154602e473dSmrg
155602e473dSmrgAC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
156602e473dSmrgif test "x$LAUNCHD" = xauto; then
157602e473dSmrg	unset LAUNCHD
158b20a2039Smrg	AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin])
159602e473dSmrgfi
160602e473dSmrg
161602e473dSmrgif test "x$LAUNCHD" = xyes ; then
162602e473dSmrg	AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
163602e473dSmrgfi
164602e473dSmrg
165602e473dSmrgAC_CONFIG_FILES([
166602e473dSmrgMakefile
167602e473dSmrgdoc/Makefile
168602e473dSmrgsrc/Makefile
169602e473dSmrgtests/Makefile
170602e473dSmrg])
171602e473dSmrg
172602e473dSmrgAC_CONFIG_FILES([
173602e473dSmrgxcb.pc
174602e473dSmrgxcb-composite.pc
175602e473dSmrgxcb-damage.pc
176602e473dSmrgxcb-dpms.pc
177602e473dSmrgxcb-dri2.pc
178602e473dSmrgxcb-glx.pc
179602e473dSmrgxcb-randr.pc
180602e473dSmrgxcb-record.pc
181602e473dSmrgxcb-render.pc
182602e473dSmrgxcb-res.pc
183602e473dSmrgxcb-screensaver.pc
184602e473dSmrgxcb-shape.pc
185602e473dSmrgxcb-shm.pc
186602e473dSmrgxcb-sync.pc
187602e473dSmrgxcb-xevie.pc
188602e473dSmrgxcb-xf86dri.pc
189602e473dSmrgxcb-xfixes.pc
190602e473dSmrgxcb-xinerama.pc
191602e473dSmrgxcb-xinput.pc
192602e473dSmrgxcb-xprint.pc
193602e473dSmrgxcb-xselinux.pc
194602e473dSmrgxcb-xtest.pc
195602e473dSmrgxcb-xv.pc
196602e473dSmrgxcb-xvmc.pc
197602e473dSmrg])
198602e473dSmrg
199602e473dSmrgAC_CONFIG_FILES([
200602e473dSmrgdoc/xcb.doxygen
201602e473dSmrg])
202602e473dSmrg
203602e473dSmrgAC_OUTPUT
204602e473dSmrg
205602e473dSmrgdnl Configuration output
206602e473dSmrg
207602e473dSmrgecho ""
208602e473dSmrgecho "  Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}"
209602e473dSmrgecho ""
210602e473dSmrgecho "  Configuration"
211602e473dSmrgecho "    XDM support.........: ${have_xdmcp}"
212602e473dSmrgecho "    Build unit tests....: ${HAVE_CHECK}"
213602e473dSmrgecho "    XCB buffer size.....: ${xcb_queue_buffer_size}"
214602e473dSmrgecho ""
215b20a2039Smrgecho "  X11 extensions"
216b20a2039Smrgecho "    Composite...........: ${BUILD_COMPOSITE}"
217b20a2039Smrgecho "    Damage..............: ${BUILD_DAMAGE}"
218b20a2039Smrgecho "    Dpms................: ${BUILD_DPMS}"
219b20a2039Smrgecho "    Dri2................: ${BUILD_DRI2}"
220b20a2039Smrgecho "    Glx.................: ${BUILD_GLX}"
221b20a2039Smrgecho "    Randr...............: ${BUILD_RANDR}"
222b20a2039Smrgecho "    Record..............: ${BUILD_RECORD}"
223b20a2039Smrgecho "    Render..............: ${BUILD_RENDER}"
224b20a2039Smrgecho "    Resource............: ${BUILD_RESOURCE}"
225b20a2039Smrgecho "    Screensaver.........: ${BUILD_SCREENSAVER}"
226b20a2039Smrgecho "    selinux.............: ${BUILD_SELINUX}"
227b20a2039Smrgecho "    Shape...............: ${BUILD_SHAPE}"
228b20a2039Smrgecho "    Shm.................: ${BUILD_SHM}"
229b20a2039Smrgecho "    Sync................: ${BUILD_SYNC}"
230b20a2039Smrgecho "    Xevie...............: ${BUILD_XEVIE}"
231b20a2039Smrgecho "    Xfixes..............: ${BUILD_XFIXES}"
232b20a2039Smrgecho "    Xfree86-dri.........: ${BUILD_XFREE86_DRI}"
233b20a2039Smrgecho "    xinerama............: ${BUILD_XINERAMA}"
234b20a2039Smrgecho "    xinput..............: ${BUILD_XINPUT}"
235b20a2039Smrgecho "    xprint..............: ${BUILD_XPRINT}"
236b20a2039Smrgecho "    xtest...............: ${BUILD_XTEST}"
237b20a2039Smrgecho "    xv..................: ${BUILD_XV}"
238b20a2039Smrgecho "    xvmc................: ${BUILD_XVMC}"
239b20a2039Smrgecho ""
240602e473dSmrgecho "  Used CFLAGS:"
241602e473dSmrgecho "    CPPFLAGS............: ${CPPFLAGS}"
242602e473dSmrgecho "    CFLAGS..............: ${CFLAGS}"
243602e473dSmrgecho "    Warning CFLAGS......: ${CWARNFLAGS}"
244602e473dSmrgecho ""
245602e473dSmrgecho "  Installation:"
246602e473dSmrgecho "    Prefix..............: ${prefix}"
247602e473dSmrgecho ""
248