configure.ac revision 0974d292
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 230974d292Smrg# Initialize Autoconf 240974d292SmrgAC_PREREQ([2.60]) 25209ff23fSmrgAC_INIT([xf86-video-ati], 260974d292Smrg [6.13.2], 27209ff23fSmrg [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], 280974d292Smrg [xf86-video-ati]) 29209ff23fSmrg 30209ff23fSmrgAC_CONFIG_SRCDIR([Makefile.am]) 310974d292SmrgAC_CONFIG_HEADERS([config.h]) 32ad43ddacSmrg 330974d292Smrg# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS 340974d292Smrgm4_ifndef([XORG_MACROS_VERSION], 350974d292Smrg [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) 360974d292SmrgXORG_MACROS_VERSION(1.8) 37ad43ddacSmrgXORG_DEFAULT_OPTIONS 38ad43ddacSmrg 39209ff23fSmrgAC_CONFIG_AUX_DIR(.) 40209ff23fSmrg 410974d292Smrg# Initialize Automake 42ad43ddacSmrgAM_INIT_AUTOMAKE([foreign dist-bzip2]) 43ad43ddacSmrgAC_SYS_LARGEFILE 44209ff23fSmrg 45209ff23fSmrgAM_MAINTAINER_MODE 46209ff23fSmrg 470974d292Smrg# Initialize libtool 48209ff23fSmrgAC_DISABLE_STATIC 49209ff23fSmrgAC_PROG_LIBTOOL 500974d292Smrg 510974d292Smrg# Checks for programs. 520974d292SmrgAM_PROG_CC_C_O 53209ff23fSmrg 54209ff23fSmrgif test "x$GCC" = "xyes"; then 55209ff23fSmrg CPPFLAGS="$CPPFLAGS -Wall" 56209ff23fSmrgfi 57209ff23fSmrg 58209ff23fSmrgAH_TOP([#include "xorg-server.h"]) 59209ff23fSmrg 600974d292Smrg# Define a configure option for an alternate module directory 61209ff23fSmrgAC_ARG_WITH(xorg-module-dir, 620974d292Smrg AS_HELP_STRING([--with-xorg-module-dir=DIR], 63209ff23fSmrg [Default xorg module directory [[default=$libdir/xorg/modules]]]), 64209ff23fSmrg [moduledir="$withval"], 65209ff23fSmrg [moduledir="$libdir/xorg/modules"]) 66209ff23fSmrg 670974d292SmrgAC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri], 68209ff23fSmrg [Disable DRI support [[default=auto]]]), 69209ff23fSmrg [DRI="$enableval"], 70209ff23fSmrg [DRI=auto]) 71209ff23fSmrg 72209ff23fSmrgAC_ARG_ENABLE(exa, 730974d292Smrg AS_HELP_STRING([--disable-exa], 74209ff23fSmrg [Disable EXA support [[default=enabled]]]), 75209ff23fSmrg [EXA="$enableval"], 76209ff23fSmrg [EXA=yes]) 77209ff23fSmrg 78ad43ddacSmrgAC_ARG_ENABLE(kms, 790974d292Smrg AS_HELP_STRING([--disable-kms], 80ad43ddacSmrg [Disable KMS support [[default=enabled]]]), 81ad43ddacSmrg [DRM_MODE="$enableval"], 82ad43ddacSmrg [DRM_MODE=yes]) 83ad43ddacSmrg 840974d292Smrg# Store the list of server defined optional extensions in REQUIRED_MODULES 85209ff23fSmrgXORG_DRIVER_CHECK_EXT(RANDR, randrproto) 86209ff23fSmrgXORG_DRIVER_CHECK_EXT(RENDER, renderproto) 87209ff23fSmrgXORG_DRIVER_CHECK_EXT(XV, videoproto) 88209ff23fSmrgXORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) 89209ff23fSmrg 900974d292Smrg# Obtain compiler/linker options for the driver dependencies 910974d292SmrgPKG_CHECK_MODULES(XORG, [xorg-server >= 1.3 xproto fontsproto $REQUIRED_MODULES]) 92c503f109SmrgPKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], 93c503f109Smrg HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), 94c503f109Smrg HAVE_XEXTPROTO_71="no") 95c503f109SmrgAM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) 96209ff23fSmrg 97209ff23fSmrg# Checks for libraries. 98209ff23fSmrg 99209ff23fSmrg 100209ff23fSmrgif test "$DRI" != no; then 101ad43ddacSmrg PKG_CHECK_MODULES(DRI, [libdrm >= 2.2 xf86driproto]) 102ad43ddacSmrg save_CPPFLAGS="$CPPFLAGS" 103ad43ddacSmrg CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS" 104ad43ddacSmrg AC_CHECK_HEADER([dri.h], 105ad43ddacSmrg [have_dri_h="yes"], [have_dri_h="no"],[-]) 106ad43ddacSmrg AC_CHECK_HEADER([sarea.h], 107ad43ddacSmrg [have_sarea_h="yes"], [have_sarea_h="no"],[-]) 108ad43ddacSmrg AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 109ad43ddacSmrg#include <xorg-server.h> 110ad43ddacSmrg#include <dristruct.h> 111ad43ddacSmrg ]])], 112ad43ddacSmrg [have_dristruct_h="yes"], [have_dristruct_h="no"],[-]) 113ad43ddacSmrg AC_CHECK_HEADER([damage.h], 114ad43ddacSmrg [have_damage_h="yes"], [have_damage_h="no"],[-]) 115ad43ddacSmrg CPPFLAGS="$save_CPPFLAGS" 116209ff23fSmrgfi 117209ff23fSmrg 118209ff23fSmrgAC_MSG_CHECKING([whether to include DRI support]) 119209ff23fSmrgif test x$DRI = xauto; then 120209ff23fSmrg if test "$have_dri_h" = yes -a \ 121209ff23fSmrg "$have_sarea_h" = yes -a \ 122209ff23fSmrg "$have_dristruct_h" = yes; then 123209ff23fSmrg DRI="yes" 124209ff23fSmrg else 125209ff23fSmrg DRI="no" 126209ff23fSmrg fi 127209ff23fSmrgfi 128209ff23fSmrgAC_MSG_RESULT([$DRI]) 129209ff23fSmrg 130209ff23fSmrgAM_CONDITIONAL(DRI, test x$DRI = xyes) 131209ff23fSmrgif test "$DRI" = yes; then 132209ff23fSmrg AC_DEFINE(XF86DRI,1,[Enable DRI driver support]) 133209ff23fSmrg AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support]) 134209ff23fSmrg if test "$have_damage_h" = yes; then 135209ff23fSmrg AC_DEFINE(DAMAGE,1,[Use Damage extension]) 136209ff23fSmrg fi 137ad43ddacSmrg 138ad43ddacSmrg save_CFLAGS="$CFLAGS" 139ad43ddacSmrg CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $CFLAGS" 140ad43ddacSmrg if test "$DRM_MODE" = yes; then 141ad43ddacSmrg AC_CHECK_HEADER(xf86drmMode.h,[DRM_MODE=yes],[DRM_MODE=no],[#include <stdint.h> 142ad43ddacSmrg#include <stdlib.h>]) 143ad43ddacSmrg if test "x$DRM_MODE" = xyes; then 144ad43ddacSmrg PKG_CHECK_MODULES(LIBDRM_RADEON, [xorg-server >= 1.6.2 libdrm_radeon], 145ad43ddacSmrg [LIBDRM_RADEON=yes], [LIBDRM_RADEON=no]) 146ad43ddacSmrg 147ad43ddacSmrg if test "x$LIBDRM_RADEON" = xyes; then 148ad43ddacSmrg AC_DEFINE(XF86DRM_MODE,1,[DRM kernel modesetting]) 149ad43ddacSmrg AC_DEFINE(RADEON_DRI2, 1,[Enable DRI2 code]) 150ad43ddacSmrg else 151ad43ddacSmrg DRM_MODE=no 152ad43ddacSmrg fi 1532f39173dSmrg PKG_CHECK_MODULES(LIBUDEV, [libudev], [LIBUDEV=yes], [LIBUDEV=no]) 1542f39173dSmrg if test "x$LIBUDEV" = xyes; then 1552f39173dSmrg AC_DEFINE(HAVE_LIBUDEV, 1,[libudev support]) 1562f39173dSmrg fi 157ad43ddacSmrg fi 158ad43ddacSmrg fi 159ad43ddacSmrg CFLAGS="$save_CFLAGS" 160ad43ddacSmrgelse 161ad43ddacSmrg DRM_MODE=no 162209ff23fSmrgfi 163ad43ddacSmrgAM_CONDITIONAL(DRM_MODE, test x$DRM_MODE = xyes) 1642f39173dSmrgAM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes) 165209ff23fSmrg 166209ff23fSmrgAC_DEFINE(USE_XAA, 1, [Build support for XAA]) 167209ff23fSmrg 168209ff23fSmrg# Properly handle EXA. 169209ff23fSmrgAC_MSG_CHECKING([whether to enable EXA support]) 170209ff23fSmrgif test "x$EXA" = xyes; then 171209ff23fSmrg AC_MSG_RESULT(yes) 172209ff23fSmrg 173209ff23fSmrg SAVE_CPPFLAGS="$CPPFLAGS" 174209ff23fSmrg CPPFLAGS="$CPPFLAGS $XORG_CFLAGS" 175209ff23fSmrg AC_CHECK_HEADER(exa.h, 176209ff23fSmrg [have_exa_h="yes"], [have_exa_h="no"]) 177209ff23fSmrg CPPFLAGS="$SAVE_CPPFLAGS" 178209ff23fSmrgelse 179209ff23fSmrg AC_MSG_RESULT(no) 180209ff23fSmrgfi 181209ff23fSmrg 182209ff23fSmrgSAVE_CPPFLAGS="$CPPFLAGS" 183209ff23fSmrgCPPFLAGS="$CPPFLAGS $XORG_CFLAGS" 184209ff23fSmrgif test "x$have_exa_h" = xyes; then 185209ff23fSmrg AC_MSG_CHECKING([whether EXA version is at least 2.0.0]) 186209ff23fSmrg AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[ 187209ff23fSmrg#include "exa.h" 188209ff23fSmrg#if EXA_VERSION_MAJOR < 2 189209ff23fSmrg#error OLD EXA! 190209ff23fSmrg#endif 191209ff23fSmrg ]])], 192209ff23fSmrg [USE_EXA=yes], 193209ff23fSmrg [USE_EXA=no]) 194209ff23fSmrg AC_MSG_RESULT($USE_EXA) 195209ff23fSmrg 196209ff23fSmrg if test "x$USE_EXA" = xyes; then 197209ff23fSmrg AC_DEFINE(USE_EXA, 1, [Build support for Exa]) 198209ff23fSmrg fi 199209ff23fSmrgfi 200209ff23fSmrg 201209ff23fSmrgAC_CHECK_DECL(xf86XVFillKeyHelperDrawable, 202209ff23fSmrg [AC_DEFINE(HAVE_XV_DRAWABLE_HELPER, 1, [Have xf86XVFillKeyHelperDrawable prototype])], 203209ff23fSmrg [], 204209ff23fSmrg [#include <xf86xv.h>]) 205209ff23fSmrg 206209ff23fSmrgAC_CHECK_DECL(xf86ModeBandwidth, 207209ff23fSmrg [AC_DEFINE(HAVE_XF86MODEBANDWIDTH, 1, [Have xf86ModeBandwidth prototype])], 208209ff23fSmrg [], 209209ff23fSmrg [#include "xorg-server.h" 210209ff23fSmrg #include "xf86Modes.h"]) 211209ff23fSmrg 212209ff23fSmrgAC_CHECK_DECL(xf86_crtc_clip_video_helper, 213209ff23fSmrg [AC_DEFINE(HAVE_XF86CRTCCLIPVIDEOHELPER, 1, [Have xf86_crtc_clip_video_helper prototype])], 214209ff23fSmrg [], 215209ff23fSmrg [#include <X11/Xmd.h> 216209ff23fSmrg #include "xorg-server.h" 217209ff23fSmrg #include "xf86i2c.h" 218209ff23fSmrg #include "xf86Crtc.h"]) 219209ff23fSmrg 220209ff23fSmrgAC_CHECK_DECL(xf86RotateFreeShadow, 221209ff23fSmrg [AC_DEFINE(HAVE_FREE_SHADOW, 1, [have new FreeShadow API])], 222209ff23fSmrg [], 223209ff23fSmrg [#include <xorg-server.h> 224209ff23fSmrg #include <windowstr.h> 225209ff23fSmrg #include <xf86Crtc.h>]) 226209ff23fSmrg 227209ff23fSmrgAC_CHECK_DECL(pci_device_enable, 228209ff23fSmrg [AC_DEFINE(HAVE_PCI_DEVICE_ENABLE, 1, [Have pci_device_enable prototype])], 229209ff23fSmrg [], 230209ff23fSmrg [#include <pciaccess.h>]) 231209ff23fSmrg 232209ff23fSmrgAC_CHECK_DECL(XSERVER_LIBPCIACCESS, 233209ff23fSmrg [XSERVER_LIBPCIACCESS=yes],[XSERVER_LIBPCIACCESS=no], 234209ff23fSmrg [#include "xorg-server.h"]) 235209ff23fSmrg 236209ff23fSmrgCPPFLAGS="$SAVE_CPPFLAGS" 237209ff23fSmrg 238209ff23fSmrgAM_CONDITIONAL(USE_EXA, test "x$USE_EXA" = xyes) 239209ff23fSmrg 240ad43ddacSmrgAM_CONDITIONAL(XF86DRM_MODE, test "x$LIBDRM_RADEON" = xyes) 241ad43ddacSmrg 242209ff23fSmrgif test "x$XSERVER_LIBPCIACCESS" = xyes; then 243209ff23fSmrg PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) 244209ff23fSmrg XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS" 245209ff23fSmrgfi 246209ff23fSmrgAM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes) 247209ff23fSmrg 248209ff23fSmrg# Checks for headers/macros for byte swapping 249209ff23fSmrg# Known variants: 250209ff23fSmrg# <byteswap.h> bswap_16, bswap_32, bswap_64 (glibc) 251209ff23fSmrg# <sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD) 252209ff23fSmrg# <sys/endian.h> bswap16, bswap32, bswap64 (other BSD's) 253209ff23fSmrg# and a fallback to local macros if none of the above are found 254209ff23fSmrg 255209ff23fSmrg# if <byteswap.h> is found, assume it's the correct version 256209ff23fSmrgAC_CHECK_HEADERS([byteswap.h]) 257209ff23fSmrg 258209ff23fSmrg# if <sys/endian.h> is found, have to check which version 259209ff23fSmrgAC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"]) 260209ff23fSmrg 261209ff23fSmrgif test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then 262209ff23fSmrg AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping macros]) 263209ff23fSmrg AC_LINK_IFELSE([AC_LANG_PROGRAM([ 264209ff23fSmrg#include <sys/types.h> 265209ff23fSmrg#include <sys/endian.h> 266209ff23fSmrg ], [ 267209ff23fSmrgint a = 1, b; 268209ff23fSmrgb = __swap16(a); 269209ff23fSmrg ]) 270209ff23fSmrg], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no']) 271209ff23fSmrg AC_MSG_RESULT([$SYS_ENDIAN__SWAP]) 272209ff23fSmrg 273209ff23fSmrg AC_MSG_CHECKING([for bswap16 variant of <sys/endian.h> byteswapping macros]) 274209ff23fSmrg AC_LINK_IFELSE([AC_LANG_PROGRAM([ 275209ff23fSmrg#include <sys/types.h> 276209ff23fSmrg#include <sys/endian.h> 277209ff23fSmrg ], [ 278209ff23fSmrgint a = 1, b; 279209ff23fSmrgb = bswap16(a); 280209ff23fSmrg ]) 281209ff23fSmrg], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no']) 282209ff23fSmrg AC_MSG_RESULT([$SYS_ENDIAN_BSWAP]) 283209ff23fSmrg 284209ff23fSmrg if test "$SYS_ENDIAN_BSWAP" = "yes" ; then 285209ff23fSmrg USE_SYS_ENDIAN_H=yes 286209ff23fSmrg BSWAP=bswap 287209ff23fSmrg else 288209ff23fSmrg if test "$SYS_ENDIAN__SWAP" = "yes" ; then 289209ff23fSmrg USE_SYS_ENDIAN_H=yes 290209ff23fSmrg BSWAP=__swap 291209ff23fSmrg else 292209ff23fSmrg USE_SYS_ENDIAN_H=no 293209ff23fSmrg fi 294209ff23fSmrg fi 295209ff23fSmrg 296209ff23fSmrg if test "$USE_SYS_ENDIAN_H" = "yes" ; then 297209ff23fSmrg AC_DEFINE([USE_SYS_ENDIAN_H], 1, 298209ff23fSmrg [Define to use byteswap macros from <sys/endian.h>]) 299209ff23fSmrg AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16, 300209ff23fSmrg [Define to 16-bit byteswap macro]) 301209ff23fSmrg AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32, 302209ff23fSmrg [Define to 32-bit byteswap macro]) 303209ff23fSmrg AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64, 304209ff23fSmrg [Define to 64-bit byteswap macro]) 305209ff23fSmrg fi 306209ff23fSmrgfi 307209ff23fSmrg 308209ff23fSmrgcase $host_os in 309209ff23fSmrg *linux*) 310209ff23fSmrg AC_DEFINE(FGL_LINUX, 1, [Use linux pragma pack]) ;; 311209ff23fSmrgesac 312209ff23fSmrg 313209ff23fSmrgAC_SUBST([moduledir]) 314209ff23fSmrg 315209ff23fSmrgDRIVER_NAME=ati 316209ff23fSmrgAC_SUBST([DRIVER_NAME]) 317209ff23fSmrg 318209ff23fSmrgAC_MSG_NOTICE( 319209ff23fSmrg[The atimisc sub-driver has been split out to xf86-video-mach64:] 320209ff23fSmrg[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-mach64] 321209ff23fSmrg[Please install that driver as well for mach64-based cards.] 322209ff23fSmrg) 323209ff23fSmrg 324209ff23fSmrgAC_MSG_NOTICE( 325209ff23fSmrg[The r128 sub-driver has been split out to xf86-video-r128:] 326209ff23fSmrg[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-r128] 327209ff23fSmrg[Please install that driver as well for rage128-based cards.] 328209ff23fSmrg) 329209ff23fSmrg 3300974d292SmrgAC_CONFIG_FILES([ 3310974d292Smrg Makefile 3320974d292Smrg src/Makefile 3330974d292Smrg man/Makefile 334209ff23fSmrg]) 3350974d292SmrgAC_OUTPUT 336ad43ddacSmrg 337ad43ddacSmrgdnl 338ad43ddacSmrgdnl Output some configuration info for the user 339ad43ddacSmrgdnl 340ad43ddacSmrgecho "" 341ad43ddacSmrgecho " prefix: $prefix" 342ad43ddacSmrgecho " exec_prefix: $exec_prefix" 343ad43ddacSmrgecho " libdir: $libdir" 344ad43ddacSmrgecho " includedir: $includedir" 345ad43ddacSmrg 346ad43ddacSmrg 347ad43ddacSmrgecho "" 348ad43ddacSmrgecho " Kernel modesetting: $DRM_MODE" 349ad43ddacSmrg 350ad43ddacSmrgecho "" 351ad43ddacSmrgecho " CFLAGS: $CFLAGS" 352ad43ddacSmrgecho " CXXFLAGS: $CXXFLAGS" 353ad43ddacSmrgecho " Macros: $DEFINES" 354ad43ddacSmrg 355ad43ddacSmrgecho "" 356ad43ddacSmrgecho " Run '${MAKE-make}' to build xf86-video-ati" 357ad43ddacSmrgecho "" 358