configure.ac revision ad43ddac
1# Copyright 2005 Adam Jackson. 2# 3# Permission is hereby granted, free of charge, to any person obtaining a 4# copy of this software and associated documentation files (the "Software"), 5# to deal in the Software without restriction, including without limitation 6# on the rights to use, copy, modify, merge, publish, distribute, sub 7# license, and/or sell copies of the Software, and to permit persons to whom 8# the Software is furnished to do so, subject to the following conditions: 9# 10# The above copyright notice and this permission notice (including the next 11# paragraph) shall be included in all copies or substantial portions of the 12# Software. 13# 14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 17# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 18# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20# 21# Process this file with autoconf to produce a configure script 22 23AC_PREREQ(2.57) 24AC_INIT([xf86-video-ati], 25 6.13.0, 26 [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], 27 xf86-video-ati) 28 29AC_CONFIG_SRCDIR([Makefile.am]) 30AM_CONFIG_HEADER([config.h]) 31 32# Require xorg-macros: XORG_DEFAULT_OPTIONS 33m4_ifndef([XORG_MACROS_VERSION], 34 [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) 35XORG_MACROS_VERSION(1.3) 36XORG_DEFAULT_OPTIONS 37 38AC_CONFIG_AUX_DIR(.) 39 40AM_INIT_AUTOMAKE([foreign dist-bzip2]) 41AC_SYS_LARGEFILE 42 43AM_MAINTAINER_MODE 44 45# Checks for programs. 46AC_DISABLE_STATIC 47AC_PROG_LIBTOOL 48AC_PROG_CC 49 50if test "x$GCC" = "xyes"; then 51 CPPFLAGS="$CPPFLAGS -Wall" 52fi 53 54AH_TOP([#include "xorg-server.h"]) 55 56AC_ARG_WITH(xorg-module-dir, 57 AC_HELP_STRING([--with-xorg-module-dir=DIR], 58 [Default xorg module directory [[default=$libdir/xorg/modules]]]), 59 [moduledir="$withval"], 60 [moduledir="$libdir/xorg/modules"]) 61 62AC_ARG_ENABLE(dri, AC_HELP_STRING([--disable-dri], 63 [Disable DRI support [[default=auto]]]), 64 [DRI="$enableval"], 65 [DRI=auto]) 66 67AC_ARG_ENABLE(exa, 68 AC_HELP_STRING([--disable-exa], 69 [Disable EXA support [[default=enabled]]]), 70 [EXA="$enableval"], 71 [EXA=yes]) 72 73AC_ARG_ENABLE(kms, 74 AC_HELP_STRING([--disable-kms], 75 [Disable KMS support [[default=enabled]]]), 76 [DRM_MODE="$enableval"], 77 [DRM_MODE=yes]) 78 79AC_ARG_WITH(xserver-source,AC_HELP_STRING([--with-xserver-source=XSERVER_SOURCE], 80 [Path to X server source tree]), 81 [ XSERVER_SOURCE="$withval" ], 82 [ XSERVER_SOURCE="" ]) 83 84# Checks for extensions 85XORG_DRIVER_CHECK_EXT(RANDR, randrproto) 86XORG_DRIVER_CHECK_EXT(RENDER, renderproto) 87XORG_DRIVER_CHECK_EXT(XV, videoproto) 88XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) 89 90# Checks for pkg-config packages 91PKG_CHECK_MODULES(XORG, [xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES]) 92PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], 93 HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), 94 HAVE_XEXTPROTO_71="no") 95AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) 96 97# Checks for libraries. 98 99# Checks for header files. 100AC_HEADER_STDC 101 102if test "$DRI" != no; then 103 PKG_CHECK_MODULES(DRI, [libdrm >= 2.2 xf86driproto]) 104 save_CPPFLAGS="$CPPFLAGS" 105 CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS" 106 AC_CHECK_HEADER([dri.h], 107 [have_dri_h="yes"], [have_dri_h="no"],[-]) 108 AC_CHECK_HEADER([sarea.h], 109 [have_sarea_h="yes"], [have_sarea_h="no"],[-]) 110 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 111#include <xorg-server.h> 112#include <dristruct.h> 113 ]])], 114 [have_dristruct_h="yes"], [have_dristruct_h="no"],[-]) 115 AC_CHECK_HEADER([damage.h], 116 [have_damage_h="yes"], [have_damage_h="no"],[-]) 117 CPPFLAGS="$save_CPPFLAGS" 118fi 119 120AC_MSG_CHECKING([whether to include DRI support]) 121if test x$DRI = xauto; then 122 if test "$have_dri_h" = yes -a \ 123 "$have_sarea_h" = yes -a \ 124 "$have_dristruct_h" = yes; then 125 DRI="yes" 126 else 127 DRI="no" 128 fi 129fi 130AC_MSG_RESULT([$DRI]) 131 132AM_CONDITIONAL(DRI, test x$DRI = xyes) 133if test "$DRI" = yes; then 134 AC_DEFINE(XF86DRI,1,[Enable DRI driver support]) 135 AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support]) 136 if test "$have_damage_h" = yes; then 137 AC_DEFINE(DAMAGE,1,[Use Damage extension]) 138 fi 139 140 save_CFLAGS="$CFLAGS" 141 CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $CFLAGS" 142 if test "$DRM_MODE" = yes; then 143 AC_CHECK_HEADER(xf86drmMode.h,[DRM_MODE=yes],[DRM_MODE=no],[#include <stdint.h> 144#include <stdlib.h>]) 145 if test "x$DRM_MODE" = xyes; then 146 PKG_CHECK_MODULES(LIBDRM_RADEON, [xorg-server >= 1.6.2 libdrm_radeon], 147 [LIBDRM_RADEON=yes], [LIBDRM_RADEON=no]) 148 149 if test "x$LIBDRM_RADEON" = xyes; then 150 AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting]) 151 AC_DEFINE(RADEON_DRI2, 1,[Enable DRI2 code]) 152 else 153 DRM_MODE=no 154 fi 155 fi 156 fi 157 CFLAGS="$save_CFLAGS" 158else 159 DRM_MODE=no 160fi 161AM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes) 162 163save_CFLAGS="$CFLAGS" 164CFLAGS="$XORG_CFLAGS" 165AC_CHECK_HEADER(xf86Modes.h,[XMODES=yes],[XMODES=no],[#include "xorg-server.h"]) 166CFLAGS="$save_CFLAGS" 167 168AC_DEFINE(USE_XAA, 1, [Build support for XAA]) 169 170# Properly handle EXA. 171AC_MSG_CHECKING([whether to enable EXA support]) 172if test "x$EXA" = xyes; then 173 AC_MSG_RESULT(yes) 174 175 SAVE_CPPFLAGS="$CPPFLAGS" 176 CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" 177 AC_CHECK_HEADER(exa.h, 178 [have_exa_h="yes"], [have_exa_h="no"]) 179 CPPFLAGS="$SAVE_CPPFLAGS" 180else 181 AC_MSG_RESULT(no) 182fi 183 184SAVE_CPPFLAGS="$CPPFLAGS" 185CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" 186if test "x$have_exa_h" = xyes; then 187 AC_MSG_CHECKING([whether EXA version is at least 2.0.0]) 188 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 189#include "exa.h" 190#if EXA_VERSION_MAJOR < 2 191#error OLD EXA! 192#endif 193 ]])], 194 [USE_EXA=yes], 195 [USE_EXA=no]) 196 AC_MSG_RESULT($USE_EXA) 197 198 if test "x$USE_EXA" = xyes; then 199 AC_DEFINE(USE_EXA, 1, [Build support for Exa]) 200 fi 201fi 202 203AC_CHECK_DECL(xf86XVFillKeyHelperDrawable, 204 [AC_DEFINE(HAVE_XV_DRAWABLE_HELPER, 1, [Have xf86XVFillKeyHelperDrawable prototype])], 205 [], 206 [#include <xf86xv.h>]) 207 208AC_CHECK_DECL(xf86ModeBandwidth, 209 [AC_DEFINE(HAVE_XF86MODEBANDWIDTH, 1, [Have xf86ModeBandwidth prototype])], 210 [], 211 [#include "xorg-server.h" 212 #include "xf86Modes.h"]) 213 214AC_CHECK_DECL(xf86_crtc_clip_video_helper, 215 [AC_DEFINE(HAVE_XF86CRTCCLIPVIDEOHELPER, 1, [Have xf86_crtc_clip_video_helper prototype])], 216 [], 217 [#include <X11/Xmd.h> 218 #include "xorg-server.h" 219 #include "xf86i2c.h" 220 #include "xf86Crtc.h"]) 221 222AC_CHECK_DECL(xf86RotateFreeShadow, 223 [AC_DEFINE(HAVE_FREE_SHADOW, 1, [have new FreeShadow API])], 224 [], 225 [#include <xorg-server.h> 226 #include <windowstr.h> 227 #include <xf86Crtc.h>]) 228 229AC_CHECK_DECL(pci_device_enable, 230 [AC_DEFINE(HAVE_PCI_DEVICE_ENABLE, 1, [Have pci_device_enable prototype])], 231 [], 232 [#include <pciaccess.h>]) 233 234AC_CHECK_DECL(XSERVER_LIBPCIACCESS, 235 [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no], 236 [#include "xorg-server.h"]) 237 238AM_CONDITIONAL(XMODES, test "x$XMODES" = xno) 239 240if test "x$XSERVER_SOURCE" = x; then 241 if test -d ../../xserver; then 242 XSERVER_SOURCE="`cd ../../xserver && pwd`" 243 fi 244fi 245 246if test -d "$XSERVER_SOURCE"; then 247 case "$XSERVER_SOURCE" in 248 /*) 249 ;; 250 *) 251 XSERVER_SOURCE="`cd $XSERVER_SOURCE && pwd`" 252 esac 253 if test -f src/modes/xf86Modes.h; then 254 : 255 else 256 ln -sf $XSERVER_SOURCE/hw/xfree86/modes src/modes 257 fi 258 259 if test -f src/parser/xf86Parser.h; then 260 : 261 else 262 ln -sf $XSERVER_SOURCE/hw/xfree86/parser src/parser 263 fi 264fi 265if test "x$XMODES" = xyes; then 266 AC_MSG_NOTICE([X server has new mode code]) 267 AC_DEFINE(XMODES, 1,[X server has built-in mode code]) 268 XMODES_CFLAGS= 269else 270 if test -f src/modes/xf86Modes.h -a -f src/parser/xf86Parser.h; then 271 AC_MSG_NOTICE([X server is missing new mode code, using local copy]) 272 else 273 AC_MSG_ERROR([Must have X server >= 1.3 source tree for mode setting code. Please specify --with-xserver-source]) 274 fi 275 XMODES_CFLAGS='-DXF86_MODES_RENAME -I$(top_srcdir)/src -I$(top_srcdir)/src/modes -I$(top_srcdir)/src/parser' 276fi 277 278AC_SUBST([XMODES_CFLAGS]) 279 280CPPFLAGS="$SAVE_CPPFLAGS" 281 282AM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes) 283 284AM_CONDITIONAL(XF86DRM_MODE, test "x$LIBDRM_RADEON" = xyes) 285 286if test "x$XSERVER_LIBPCIACCESS" = xyes; then 287 PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) 288 XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS" 289fi 290AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) 291 292# Checks for headers/macros for byte swapping 293# Known variants: 294# <byteswap.h> bswap_16, bswap_32, bswap_64 (glibc) 295# <sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD) 296# <sys/endian.h> bswap16, bswap32, bswap64 (other BSD's) 297# and a fallback to local macros if none of the above are found 298 299# if <byteswap.h> is found, assume it's the correct version 300AC_CHECK_HEADERS([byteswap.h]) 301 302# if <sys/endian.h> is found, have to check which version 303AC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"]) 304 305if test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then 306 AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping macros]) 307 AC_LINK_IFELSE([AC_LANG_PROGRAM([ 308#include <sys/types.h> 309#include <sys/endian.h> 310 ], [ 311int a = 1, b; 312b = __swap16(a); 313 ]) 314], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no']) 315 AC_MSG_RESULT([$SYS_ENDIAN__SWAP]) 316 317 AC_MSG_CHECKING([for bswap16 variant of <sys/endian.h> byteswapping macros]) 318 AC_LINK_IFELSE([AC_LANG_PROGRAM([ 319#include <sys/types.h> 320#include <sys/endian.h> 321 ], [ 322int a = 1, b; 323b = bswap16(a); 324 ]) 325], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no']) 326 AC_MSG_RESULT([$SYS_ENDIAN_BSWAP]) 327 328 if test "$SYS_ENDIAN_BSWAP" = "yes" ; then 329 USE_SYS_ENDIAN_H=yes 330 BSWAP=bswap 331 else 332 if test "$SYS_ENDIAN__SWAP" = "yes" ; then 333 USE_SYS_ENDIAN_H=yes 334 BSWAP=__swap 335 else 336 USE_SYS_ENDIAN_H=no 337 fi 338 fi 339 340 if test "$USE_SYS_ENDIAN_H" = "yes" ; then 341 AC_DEFINE([USE_SYS_ENDIAN_H], 1, 342 [Define to use byteswap macros from <sys/endian.h>]) 343 AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16, 344 [Define to 16-bit byteswap macro]) 345 AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32, 346 [Define to 32-bit byteswap macro]) 347 AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64, 348 [Define to 64-bit byteswap macro]) 349 fi 350fi 351 352case $host_os in 353 *linux*) 354 AC_DEFINE(FGL_LINUX, 1, [Use linux pragma pack]) ;; 355esac 356 357AC_SUBST([XORG_CFLAGS]) 358AC_SUBST([DRI_CFLAGS]) 359AC_SUBST([LIBDRM_RADEON_CFLAGS]) 360AC_SUBST([LIBDRM_RADEON_LIBS]) 361AC_SUBST([moduledir]) 362 363DRIVER_NAME=ati 364AC_SUBST([DRIVER_NAME]) 365 366AC_MSG_NOTICE( 367[The atimisc sub-driver has been split out to xf86-video-mach64:] 368[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-mach64] 369[Please install that driver as well for mach64-based cards.] 370) 371 372AC_MSG_NOTICE( 373[The r128 sub-driver has been split out to xf86-video-r128:] 374[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-r128] 375[Please install that driver as well for rage128-based cards.] 376) 377 378AC_OUTPUT([ 379 Makefile 380 src/Makefile 381 man/Makefile 382]) 383 384dnl 385dnl Output some configuration info for the user 386dnl 387echo "" 388echo " prefix: $prefix" 389echo " exec_prefix: $exec_prefix" 390echo " libdir: $libdir" 391echo " includedir: $includedir" 392 393 394echo "" 395echo " Kernel modesetting: $DRM_MODE" 396 397echo "" 398echo " CFLAGS: $CFLAGS" 399echo " CXXFLAGS: $CXXFLAGS" 400echo " Macros: $DEFINES" 401 402echo "" 403echo " Run '${MAKE-make}' to build xf86-video-ati" 404echo "" 405