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