configure.ac revision 209ff23f
1209ff23fSmrg#  Copyright 2005 Adam Jackson.
2209ff23fSmrg#
3209ff23fSmrg#  Permission is hereby granted, free of charge, to any person obtaining a
4209ff23fSmrg#  copy of this software and associated documentation files (the "Software"),
5209ff23fSmrg#  to deal in the Software without restriction, including without limitation
6209ff23fSmrg#  on the rights to use, copy, modify, merge, publish, distribute, sub
7209ff23fSmrg#  license, and/or sell copies of the Software, and to permit persons to whom
8209ff23fSmrg#  the Software is furnished to do so, subject to the following conditions:
9209ff23fSmrg#
10209ff23fSmrg#  The above copyright notice and this permission notice (including the next
11209ff23fSmrg#  paragraph) shall be included in all copies or substantial portions of the
12209ff23fSmrg#  Software.
13209ff23fSmrg#
14209ff23fSmrg#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15209ff23fSmrg#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16209ff23fSmrg#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
17209ff23fSmrg#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
18209ff23fSmrg#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19209ff23fSmrg#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20209ff23fSmrg#
21209ff23fSmrg# Process this file with autoconf to produce a configure script
22209ff23fSmrg
23209ff23fSmrgAC_PREREQ(2.57)
24209ff23fSmrgAC_INIT([xf86-video-ati],
25209ff23fSmrg        6.9.0,
26209ff23fSmrg        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
27209ff23fSmrg        xf86-video-ati)
28209ff23fSmrg
29209ff23fSmrgAC_CONFIG_SRCDIR([Makefile.am])
30209ff23fSmrgAM_CONFIG_HEADER([config.h])
31209ff23fSmrgAC_CONFIG_AUX_DIR(.)
32209ff23fSmrg
33209ff23fSmrgAM_INIT_AUTOMAKE([dist-bzip2])
34209ff23fSmrg
35209ff23fSmrgAM_MAINTAINER_MODE
36209ff23fSmrg
37209ff23fSmrg# Checks for programs.
38209ff23fSmrgAC_DISABLE_STATIC
39209ff23fSmrgAC_PROG_LIBTOOL
40209ff23fSmrgAC_PROG_CC
41209ff23fSmrg
42209ff23fSmrgif test "x$GCC" = "xyes"; then
43209ff23fSmrg	CPPFLAGS="$CPPFLAGS -Wall"
44209ff23fSmrgfi
45209ff23fSmrg
46209ff23fSmrgAH_TOP([#include "xorg-server.h"])
47209ff23fSmrg
48209ff23fSmrgAC_ARG_WITH(xorg-module-dir,
49209ff23fSmrg            AC_HELP_STRING([--with-xorg-module-dir=DIR],
50209ff23fSmrg                           [Default xorg module directory [[default=$libdir/xorg/modules]]]),
51209ff23fSmrg            [moduledir="$withval"],
52209ff23fSmrg            [moduledir="$libdir/xorg/modules"])
53209ff23fSmrg
54209ff23fSmrgAC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri],
55209ff23fSmrg                                  [Disable DRI support [[default=auto]]]),
56209ff23fSmrg              [DRI="$enableval"],
57209ff23fSmrg              [DRI=auto])
58209ff23fSmrg
59209ff23fSmrgAC_ARG_ENABLE(exa,
60209ff23fSmrg              AC_HELP_STRING([--disable-exa],
61209ff23fSmrg                             [Disable EXA support [[default=enabled]]]),
62209ff23fSmrg              [EXA="$enableval"],
63209ff23fSmrg              [EXA=yes])
64209ff23fSmrg
65209ff23fSmrgAC_ARG_WITH(xserver-source,AC_HELP_STRING([--with-xserver-source=XSERVER_SOURCE],
66209ff23fSmrg                                          [Path to X server source tree]),
67209ff23fSmrg                           [ XSERVER_SOURCE="$withval" ],
68209ff23fSmrg                           [ XSERVER_SOURCE="" ])
69209ff23fSmrg
70209ff23fSmrg# Checks for extensions
71209ff23fSmrgXORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
72209ff23fSmrgXORG_DRIVER_CHECK_EXT(RANDR, randrproto)
73209ff23fSmrgXORG_DRIVER_CHECK_EXT(RENDER, renderproto)
74209ff23fSmrgXORG_DRIVER_CHECK_EXT(XV, videoproto)
75209ff23fSmrgXORG_DRIVER_CHECK_EXT(XF86MISC, xf86miscproto)
76209ff23fSmrgXORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
77209ff23fSmrg
78209ff23fSmrg# Checks for pkg-config packages
79209ff23fSmrgPKG_CHECK_MODULES(XORG, [xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES])
80209ff23fSmrgsdkdir=$(pkg-config --variable=sdkdir xorg-server)
81209ff23fSmrg
82209ff23fSmrg# Checks for libraries.
83209ff23fSmrg
84209ff23fSmrg# Checks for header files.
85209ff23fSmrgAC_HEADER_STDC
86209ff23fSmrg
87209ff23fSmrgif test "$DRI" != no; then
88209ff23fSmrg	AC_CHECK_FILE([${sdkdir}/dri.h],
89209ff23fSmrg                      [have_dri_h="yes"], [have_dri_h="no"])
90209ff23fSmrg	AC_CHECK_FILE([${sdkdir}/sarea.h],
91209ff23fSmrg                      [have_sarea_h="yes"], [have_sarea_h="no"])
92209ff23fSmrg	AC_CHECK_FILE([${sdkdir}/dristruct.h],
93209ff23fSmrg                      [have_dristruct_h="yes"], [have_dristruct_h="no"])
94209ff23fSmrg	AC_CHECK_FILE([${sdkdir}/damage.h],
95209ff23fSmrg                      [have_damage_h="yes"], [have_damage_h="no"])
96209ff23fSmrgfi
97209ff23fSmrg
98209ff23fSmrgAC_MSG_CHECKING([whether to include DRI support])
99209ff23fSmrgif test x$DRI = xauto; then
100209ff23fSmrg	if test "$have_dri_h" = yes -a \
101209ff23fSmrg                "$have_sarea_h" = yes -a \
102209ff23fSmrg                "$have_dristruct_h" = yes; then
103209ff23fSmrg		DRI="yes"
104209ff23fSmrg	else
105209ff23fSmrg		DRI="no"
106209ff23fSmrg	fi
107209ff23fSmrgfi
108209ff23fSmrgAC_MSG_RESULT([$DRI])
109209ff23fSmrg
110209ff23fSmrgAM_CONDITIONAL(DRI, test x$DRI = xyes)
111209ff23fSmrgif test "$DRI" = yes; then
112209ff23fSmrg	PKG_CHECK_MODULES(DRI, [libdrm >= 2.2 xf86driproto])
113209ff23fSmrg        AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
114209ff23fSmrg        AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
115209ff23fSmrg	if test "$have_damage_h" = yes; then
116209ff23fSmrg		AC_DEFINE(DAMAGE,1,[Use Damage extension])
117209ff23fSmrg	fi
118209ff23fSmrgfi
119209ff23fSmrg
120209ff23fSmrgsave_CFLAGS="$CFLAGS"
121209ff23fSmrgCFLAGS="$XORG_CFLAGS"
122209ff23fSmrgAC_CHECK_HEADER(xf86Modes.h,[XMODES=yes],[XMODES=no],[#include "xorg-server.h"])
123209ff23fSmrgCFLAGS="$save_CFLAGS"
124209ff23fSmrg
125209ff23fSmrgAC_DEFINE(USE_XAA, 1, [Build support for XAA])
126209ff23fSmrg
127209ff23fSmrg# Properly handle EXA.
128209ff23fSmrgAC_MSG_CHECKING([whether to enable EXA support])
129209ff23fSmrgif test "x$EXA" = xyes; then
130209ff23fSmrg        AC_MSG_RESULT(yes)
131209ff23fSmrg
132209ff23fSmrg        SAVE_CPPFLAGS="$CPPFLAGS"
133209ff23fSmrg        CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
134209ff23fSmrg        AC_CHECK_HEADER(exa.h,
135209ff23fSmrg                       [have_exa_h="yes"], [have_exa_h="no"])
136209ff23fSmrg        CPPFLAGS="$SAVE_CPPFLAGS"
137209ff23fSmrgelse
138209ff23fSmrg        AC_MSG_RESULT(no)
139209ff23fSmrgfi 
140209ff23fSmrg
141209ff23fSmrgSAVE_CPPFLAGS="$CPPFLAGS"
142209ff23fSmrgCPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
143209ff23fSmrgif test "x$have_exa_h" = xyes; then
144209ff23fSmrg        AC_MSG_CHECKING([whether EXA version is at least 2.0.0])
145209ff23fSmrg        AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
146209ff23fSmrg#include "exa.h"
147209ff23fSmrg#if EXA_VERSION_MAJOR < 2
148209ff23fSmrg#error OLD EXA!
149209ff23fSmrg#endif
150209ff23fSmrg                          ]])],
151209ff23fSmrg                          [USE_EXA=yes],
152209ff23fSmrg                          [USE_EXA=no])
153209ff23fSmrg        AC_MSG_RESULT($USE_EXA)
154209ff23fSmrg
155209ff23fSmrg        if test "x$USE_EXA" = xyes; then
156209ff23fSmrg                AC_DEFINE(USE_EXA, 1, [Build support for Exa])
157209ff23fSmrg        fi
158209ff23fSmrgfi
159209ff23fSmrg
160209ff23fSmrgAC_CHECK_DECL(xf86XVFillKeyHelperDrawable,
161209ff23fSmrg	      [AC_DEFINE(HAVE_XV_DRAWABLE_HELPER, 1, [Have xf86XVFillKeyHelperDrawable prototype])],
162209ff23fSmrg	      [],
163209ff23fSmrg	      [#include <xf86xv.h>])
164209ff23fSmrg
165209ff23fSmrgAC_CHECK_DECL(xf86ModeBandwidth,
166209ff23fSmrg	      [AC_DEFINE(HAVE_XF86MODEBANDWIDTH, 1, [Have xf86ModeBandwidth prototype])],
167209ff23fSmrg	      [],
168209ff23fSmrg	      [#include "xorg-server.h"
169209ff23fSmrg	       #include "xf86Modes.h"])
170209ff23fSmrg
171209ff23fSmrgAC_CHECK_DECL(xf86_crtc_clip_video_helper,
172209ff23fSmrg	      [AC_DEFINE(HAVE_XF86CRTCCLIPVIDEOHELPER, 1, [Have xf86_crtc_clip_video_helper prototype])],
173209ff23fSmrg	      [],
174209ff23fSmrg	      [#include <X11/Xmd.h>
175209ff23fSmrg	       #include "xorg-server.h"
176209ff23fSmrg	       #include "xf86i2c.h"
177209ff23fSmrg	       #include "xf86Crtc.h"])
178209ff23fSmrg
179209ff23fSmrgAC_CHECK_DECL(xf86RotateFreeShadow,
180209ff23fSmrg	      [AC_DEFINE(HAVE_FREE_SHADOW, 1, [have new FreeShadow API])],
181209ff23fSmrg	      [],
182209ff23fSmrg	      [#include <xorg-server.h>
183209ff23fSmrg               #include <windowstr.h>
184209ff23fSmrg	       #include <xf86Crtc.h>])
185209ff23fSmrg
186209ff23fSmrgAC_CHECK_DECL(pci_device_enable,
187209ff23fSmrg	      [AC_DEFINE(HAVE_PCI_DEVICE_ENABLE, 1, [Have pci_device_enable prototype])],
188209ff23fSmrg	      [],
189209ff23fSmrg	      [#include <pciaccess.h>])
190209ff23fSmrg
191209ff23fSmrgAC_CHECK_DECL(XSERVER_LIBPCIACCESS,
192209ff23fSmrg	      [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no],
193209ff23fSmrg	      [#include "xorg-server.h"])
194209ff23fSmrg
195209ff23fSmrgAM_CONDITIONAL(XMODES, test "x$XMODES" = xno)
196209ff23fSmrg
197209ff23fSmrgif test "x$XSERVER_SOURCE" = x; then
198209ff23fSmrg        if test -d ../../xserver; then
199209ff23fSmrg                XSERVER_SOURCE="`cd ../../xserver && pwd`"
200209ff23fSmrg        fi
201209ff23fSmrgfi
202209ff23fSmrg
203209ff23fSmrgif test -d "$XSERVER_SOURCE"; then
204209ff23fSmrg        case "$XSERVER_SOURCE" in
205209ff23fSmrg        /*)
206209ff23fSmrg                ;;
207209ff23fSmrg        *)
208209ff23fSmrg                XSERVER_SOURCE="`cd $XSERVER_SOURCE && pwd`"
209209ff23fSmrg        esac
210209ff23fSmrg        if test -f src/modes/xf86Modes.h; then
211209ff23fSmrg                :
212209ff23fSmrg        else
213209ff23fSmrg                ln -sf $XSERVER_SOURCE/hw/xfree86/modes src/modes
214209ff23fSmrg        fi
215209ff23fSmrg
216209ff23fSmrg        if test -f src/parser/xf86Parser.h; then
217209ff23fSmrg                :
218209ff23fSmrg        else
219209ff23fSmrg                ln -sf $XSERVER_SOURCE/hw/xfree86/parser src/parser
220209ff23fSmrg        fi
221209ff23fSmrgfi
222209ff23fSmrgif test "x$XMODES" = xyes; then
223209ff23fSmrg        AC_MSG_NOTICE([X server has new mode code])
224209ff23fSmrg        AC_DEFINE(XMODES, 1,[X server has built-in mode code])
225209ff23fSmrg        XMODES_CFLAGS=
226209ff23fSmrgelse
227209ff23fSmrg        if test -f src/modes/xf86Modes.h -a -f src/parser/xf86Parser.h; then
228209ff23fSmrg                AC_MSG_NOTICE([X server is missing new mode code, using local copy])
229209ff23fSmrg        else
230209ff23fSmrg                AC_MSG_ERROR([Must have X server >= 1.3 source tree for mode setting code. Please specify --with-xserver-source])
231209ff23fSmrg        fi
232209ff23fSmrg        XMODES_CFLAGS='-DXF86_MODES_RENAME -I$(top_srcdir)/src -I$(top_srcdir)/src/modes -I$(top_srcdir)/src/parser'
233209ff23fSmrgfi
234209ff23fSmrg
235209ff23fSmrgAC_SUBST([XMODES_CFLAGS])
236209ff23fSmrg
237209ff23fSmrgCPPFLAGS="$SAVE_CPPFLAGS"
238209ff23fSmrg
239209ff23fSmrgAM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes)
240209ff23fSmrg
241209ff23fSmrgif test "x$XSERVER_LIBPCIACCESS" = xyes; then
242209ff23fSmrg    PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
243209ff23fSmrg    XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
244209ff23fSmrgfi
245209ff23fSmrgAM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
246209ff23fSmrg
247209ff23fSmrg# Checks for headers/macros for byte swapping
248209ff23fSmrg# Known variants:
249209ff23fSmrg#	<byteswap.h> bswap_16, bswap_32, bswap_64  (glibc)
250209ff23fSmrg#	<sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD)
251209ff23fSmrg#	<sys/endian.h> bswap16, bswap32, bswap64 (other BSD's)
252209ff23fSmrg#	and a fallback to local macros if none of the above are found
253209ff23fSmrg
254209ff23fSmrg# if <byteswap.h> is found, assume it's the correct version
255209ff23fSmrgAC_CHECK_HEADERS([byteswap.h])
256209ff23fSmrg
257209ff23fSmrg# if <sys/endian.h> is found, have to check which version
258209ff23fSmrgAC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"])
259209ff23fSmrg
260209ff23fSmrgif test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then
261209ff23fSmrg	AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping macros])
262209ff23fSmrg	AC_LINK_IFELSE([AC_LANG_PROGRAM([
263209ff23fSmrg#include <sys/types.h>
264209ff23fSmrg#include <sys/endian.h>
265209ff23fSmrg ], [
266209ff23fSmrgint a = 1, b;
267209ff23fSmrgb = __swap16(a);
268209ff23fSmrg ])
269209ff23fSmrg], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no'])
270209ff23fSmrg	AC_MSG_RESULT([$SYS_ENDIAN__SWAP])
271209ff23fSmrg
272209ff23fSmrg	AC_MSG_CHECKING([for bswap16 variant of <sys/endian.h> byteswapping macros])
273209ff23fSmrg	AC_LINK_IFELSE([AC_LANG_PROGRAM([
274209ff23fSmrg#include <sys/types.h>
275209ff23fSmrg#include <sys/endian.h>
276209ff23fSmrg ], [
277209ff23fSmrgint a = 1, b;
278209ff23fSmrgb = bswap16(a);
279209ff23fSmrg ])
280209ff23fSmrg], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no'])
281209ff23fSmrg	AC_MSG_RESULT([$SYS_ENDIAN_BSWAP])
282209ff23fSmrg
283209ff23fSmrg    	if test "$SYS_ENDIAN_BSWAP" = "yes" ; then
284209ff23fSmrg		USE_SYS_ENDIAN_H=yes
285209ff23fSmrg		BSWAP=bswap
286209ff23fSmrg	else	
287209ff23fSmrg	    	if test "$SYS_ENDIAN__SWAP" = "yes" ; then
288209ff23fSmrg			USE_SYS_ENDIAN_H=yes
289209ff23fSmrg			BSWAP=__swap
290209ff23fSmrg		else
291209ff23fSmrg			USE_SYS_ENDIAN_H=no
292209ff23fSmrg		fi
293209ff23fSmrg	fi
294209ff23fSmrg
295209ff23fSmrg	if test "$USE_SYS_ENDIAN_H" = "yes" ; then
296209ff23fSmrg	    AC_DEFINE([USE_SYS_ENDIAN_H], 1, 
297209ff23fSmrg		[Define to use byteswap macros from <sys/endian.h>])
298209ff23fSmrg	    AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16, 
299209ff23fSmrg			[Define to 16-bit byteswap macro])
300209ff23fSmrg	    AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32, 
301209ff23fSmrg			[Define to 32-bit byteswap macro])
302209ff23fSmrg	    AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64, 
303209ff23fSmrg			[Define to 64-bit byteswap macro])
304209ff23fSmrg	fi
305209ff23fSmrgfi
306209ff23fSmrg
307209ff23fSmrgcase $host_os in
308209ff23fSmrg  *linux*)
309209ff23fSmrg  AC_DEFINE(FGL_LINUX, 1, [Use linux pragma pack]) ;;
310209ff23fSmrgesac
311209ff23fSmrg
312209ff23fSmrgAC_SUBST([XORG_CFLAGS])
313209ff23fSmrgAC_SUBST([DRI_CFLAGS])
314209ff23fSmrgAC_SUBST([moduledir])
315209ff23fSmrg
316209ff23fSmrgDRIVER_NAME=ati
317209ff23fSmrgAC_SUBST([DRIVER_NAME])
318209ff23fSmrg
319209ff23fSmrgXORG_MANPAGE_SECTIONS
320209ff23fSmrgXORG_RELEASE_VERSION
321209ff23fSmrgXORG_CHECK_LINUXDOC
322209ff23fSmrg
323209ff23fSmrgAC_MSG_NOTICE(
324209ff23fSmrg[The atimisc sub-driver has been split out to xf86-video-mach64:]
325209ff23fSmrg[    git://anongit.freedesktop.org/git/xorg/driver/xf86-video-mach64]
326209ff23fSmrg[Please install that driver as well for mach64-based cards.]
327209ff23fSmrg)
328209ff23fSmrg
329209ff23fSmrgAC_MSG_NOTICE(
330209ff23fSmrg[The r128 sub-driver has been split out to xf86-video-r128:]
331209ff23fSmrg[    git://anongit.freedesktop.org/git/xorg/driver/xf86-video-r128]
332209ff23fSmrg[Please install that driver as well for rage128-based cards.]
333209ff23fSmrg)
334209ff23fSmrg
335209ff23fSmrgAC_OUTPUT([
336209ff23fSmrg	Makefile
337209ff23fSmrg	src/Makefile
338209ff23fSmrg	man/Makefile
339209ff23fSmrg])
340