configure.ac revision de2362d3
1de2362d3Smrg# Copyright 2005 Adam Jackson. 2de2362d3Smrg# 3de2362d3Smrg# Permission is hereby granted, free of charge, to any person obtaining a 4de2362d3Smrg# copy of this software and associated documentation files (the "Software"), 5de2362d3Smrg# to deal in the Software without restriction, including without limitation 6de2362d3Smrg# on the rights to use, copy, modify, merge, publish, distribute, sub 7de2362d3Smrg# license, and/or sell copies of the Software, and to permit persons to whom 8de2362d3Smrg# the Software is furnished to do so, subject to the following conditions: 9de2362d3Smrg# 10de2362d3Smrg# The above copyright notice and this permission notice (including the next 11de2362d3Smrg# paragraph) shall be included in all copies or substantial portions of the 12de2362d3Smrg# Software. 13de2362d3Smrg# 14de2362d3Smrg# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15de2362d3Smrg# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16de2362d3Smrg# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 17de2362d3Smrg# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 18de2362d3Smrg# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19de2362d3Smrg# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20de2362d3Smrg# 21de2362d3Smrg# Process this file with autoconf to produce a configure script 22de2362d3Smrg 23de2362d3Smrg# Initialize Autoconf 24de2362d3SmrgAC_PREREQ([2.60]) 25de2362d3SmrgAC_INIT([xf86-video-ati], 26de2362d3Smrg [7.5.0], 27de2362d3Smrg [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], 28de2362d3Smrg [xf86-video-ati]) 29de2362d3Smrg 30de2362d3SmrgAC_CONFIG_SRCDIR([Makefile.am]) 31de2362d3SmrgAC_CONFIG_HEADERS([config.h]) 32de2362d3Smrg 33de2362d3SmrgAC_CONFIG_AUX_DIR(.) 34de2362d3Smrg 35de2362d3Smrg# Initialize Automake 36de2362d3SmrgAM_INIT_AUTOMAKE([foreign dist-bzip2]) 37de2362d3SmrgAC_SYS_LARGEFILE 38de2362d3Smrg 39de2362d3SmrgAM_MAINTAINER_MODE 40de2362d3Smrg 41de2362d3Smrg# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS 42de2362d3Smrgm4_ifndef([XORG_MACROS_VERSION], 43de2362d3Smrg [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) 44de2362d3SmrgXORG_MACROS_VERSION(1.8) 45de2362d3SmrgXORG_DEFAULT_OPTIONS 46de2362d3Smrg 47de2362d3Smrg# Initialize libtool 48de2362d3SmrgAC_DISABLE_STATIC 49de2362d3SmrgAC_PROG_LIBTOOL 50de2362d3Smrg 51de2362d3Smrg# Checks for programs. 52de2362d3SmrgAM_PROG_CC_C_O 53de2362d3Smrg 54de2362d3Smrgif test "x$GCC" = "xyes"; then 55de2362d3Smrg CPPFLAGS="$CPPFLAGS -Wall" 56de2362d3Smrgfi 57de2362d3Smrg 58de2362d3SmrgAH_TOP([#include "xorg-server.h"]) 59de2362d3Smrg 60de2362d3Smrg# Define a configure option for an alternate module directory 61de2362d3SmrgAC_ARG_WITH(xorg-module-dir, 62de2362d3Smrg AS_HELP_STRING([--with-xorg-module-dir=DIR], 63de2362d3Smrg [Default xorg module directory [[default=$libdir/xorg/modules]]]), 64de2362d3Smrg [moduledir="$withval"], 65de2362d3Smrg [moduledir="$libdir/xorg/modules"]) 66de2362d3Smrg 67de2362d3Smrg# Store the list of server defined optional extensions in REQUIRED_MODULES 68de2362d3SmrgXORG_DRIVER_CHECK_EXT(RANDR, randrproto) 69de2362d3SmrgXORG_DRIVER_CHECK_EXT(RENDER, renderproto) 70de2362d3SmrgXORG_DRIVER_CHECK_EXT(XV, videoproto) 71de2362d3SmrgXORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto) 72de2362d3Smrg 73de2362d3Smrg# Checks for libraries. 74de2362d3SmrgPKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.58]) 75de2362d3SmrgPKG_CHECK_MODULES(LIBDRM_RADEON, [libdrm_radeon]) 76de2362d3Smrg 77de2362d3Smrg# Obtain compiler/linker options for the driver dependencies 78de2362d3SmrgPKG_CHECK_MODULES(XORG, [xorg-server >= 1.7 xproto fontsproto xf86driproto $REQUIRED_MODULES]) 79de2362d3SmrgPKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], 80de2362d3Smrg HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), 81de2362d3Smrg HAVE_XEXTPROTO_71="no") 82de2362d3SmrgAM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) 83de2362d3Smrg 84de2362d3SmrgAC_ARG_ENABLE([udev], 85de2362d3Smrg AS_HELP_STRING([--disable-udev], [Disable libudev support [default=auto]]), 86de2362d3Smrg [enable_udev="$enableval"], 87de2362d3Smrg [enable_udev=auto]) 88de2362d3Smrgif test "x$enable_udev" != "xno"; then 89de2362d3Smrg PKG_CHECK_MODULES(LIBUDEV, [libudev], [LIBUDEV=yes], [LIBUDEV=no]) 90de2362d3Smrg if test "x$LIBUDEV" = xyes; then 91de2362d3Smrg AC_DEFINE(HAVE_LIBUDEV, 1,[libudev support]) 92de2362d3Smrg elif test "x$enable_udev" != "xauto"; then 93de2362d3Smrg AC_MSG_ERROR([Building with udev requested but libudev not found]) 94de2362d3Smrg fi 95de2362d3Smrgfi 96de2362d3SmrgAM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes) 97de2362d3Smrg 98de2362d3SmrgSAVE_CPPFLAGS="$CPPFLAGS" 99de2362d3SmrgCPPFLAGS="$CPPFLAGS $XORG_CFLAGS" 100de2362d3Smrg 101de2362d3SmrgAC_MSG_CHECKING([whether to include GLAMOR support]) 102de2362d3SmrgAC_ARG_ENABLE(glamor, 103de2362d3Smrg AS_HELP_STRING([--disable-glamor], 104de2362d3Smrg [Disable glamor, a new GL-based acceleration [default=enabled]]), 105de2362d3Smrg [GLAMOR="$enableval"], 106de2362d3Smrg [GLAMOR=yes]) 107de2362d3Smrg 108de2362d3Smrgif test "x$GLAMOR" != "xno"; then 109de2362d3Smrg AC_CHECK_HEADERS([glamor.h], [GLAMOR_H="yes"], [GLAMOR_H="no"], [#include "xorg-server.h"]) 110de2362d3Smrg 111de2362d3Smrg if test "x$GLAMOR_H" = xyes; then 112de2362d3Smrg AC_CHECK_DECL(GLAMOR_NO_DRI3, 113de2362d3Smrg [GLAMOR_XSERVER="yes"], [GLAMOR_XSERVER="no"], 114de2362d3Smrg [#include "xorg-server.h" 115de2362d3Smrg #include "glamor.h"]) 116de2362d3Smrg fi 117de2362d3Smrg 118de2362d3Smrg if test "x$GLAMOR_XSERVER" != xyes; then 119de2362d3Smrg PKG_CHECK_MODULES(LIBGLAMOR, [glamor >= 0.6.0]) 120de2362d3Smrg PKG_CHECK_MODULES(LIBGLAMOR_EGL, [glamor-egl]) 121de2362d3Smrg fi 122de2362d3Smrg AC_DEFINE(USE_GLAMOR, 1, [Enable glamor acceleration]) 123de2362d3Smrgelse 124de2362d3Smrg AC_MSG_RESULT([$GLAMOR]) 125de2362d3Smrgfi 126de2362d3SmrgAM_CONDITIONAL(GLAMOR, test x$GLAMOR != xno) 127de2362d3Smrg 128de2362d3SmrgAC_CHECK_HEADERS([list.h], 129de2362d3Smrg [have_list_h="yes"], [have_list_h="no"], 130de2362d3Smrg [#include <X11/Xdefs.h> 131de2362d3Smrg #include "xorg-server.h"]) 132de2362d3Smrg 133de2362d3Smrgif test "x$have_list_h" = xyes; then 134de2362d3Smrg AC_CHECK_DECL(xorg_list_init, 135de2362d3Smrg [AC_DEFINE(HAVE_XORG_LIST, 1, [Have xorg_list API])], [], 136de2362d3Smrg [#include <X11/Xdefs.h> 137de2362d3Smrg #include "xorg-server.h" 138de2362d3Smrg #include "list.h"]) 139de2362d3Smrgfi 140de2362d3Smrg 141de2362d3SmrgCPPFLAGS="$SAVE_CPPFLAGS" 142de2362d3Smrg 143de2362d3SmrgPKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0]) 144de2362d3SmrgXORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS" 145de2362d3Smrg 146de2362d3Smrg# Checks for headers/macros for byte swapping 147de2362d3Smrg# Known variants: 148de2362d3Smrg# <byteswap.h> bswap_16, bswap_32, bswap_64 (glibc) 149de2362d3Smrg# <sys/endian.h> __swap16, __swap32, __swap64 (OpenBSD) 150de2362d3Smrg# <sys/endian.h> bswap16, bswap32, bswap64 (other BSD's) 151de2362d3Smrg# and a fallback to local macros if none of the above are found 152de2362d3Smrg 153de2362d3Smrg# if <byteswap.h> is found, assume it's the correct version 154de2362d3SmrgAC_CHECK_HEADERS([byteswap.h]) 155de2362d3Smrg 156de2362d3Smrg# if <sys/endian.h> is found, have to check which version 157de2362d3SmrgAC_CHECK_HEADER([sys/endian.h], [HAVE_SYS_ENDIAN_H="yes"], [HAVE_SYS_ENDIAN_H="no"]) 158de2362d3Smrg 159de2362d3Smrgif test "x$HAVE_SYS_ENDIAN_H" = "xyes" ; then 160de2362d3Smrg AC_MSG_CHECKING([for __swap16 variant of <sys/endian.h> byteswapping macros]) 161de2362d3Smrg AC_LINK_IFELSE([AC_LANG_PROGRAM([ 162de2362d3Smrg#include <sys/types.h> 163de2362d3Smrg#include <sys/endian.h> 164de2362d3Smrg ], [ 165de2362d3Smrgint a = 1, b; 166de2362d3Smrgb = __swap16(a); 167de2362d3Smrg ]) 168de2362d3Smrg], [SYS_ENDIAN__SWAP='yes'], [SYS_ENDIAN__SWAP='no']) 169de2362d3Smrg AC_MSG_RESULT([$SYS_ENDIAN__SWAP]) 170de2362d3Smrg 171de2362d3Smrg AC_MSG_CHECKING([for bswap16 variant of <sys/endian.h> byteswapping macros]) 172de2362d3Smrg AC_LINK_IFELSE([AC_LANG_PROGRAM([ 173de2362d3Smrg#include <sys/types.h> 174de2362d3Smrg#include <sys/endian.h> 175de2362d3Smrg ], [ 176de2362d3Smrgint a = 1, b; 177de2362d3Smrgb = bswap16(a); 178de2362d3Smrg ]) 179de2362d3Smrg], [SYS_ENDIAN_BSWAP='yes'], [SYS_ENDIAN_BSWAP='no']) 180de2362d3Smrg AC_MSG_RESULT([$SYS_ENDIAN_BSWAP]) 181de2362d3Smrg 182de2362d3Smrg if test "$SYS_ENDIAN_BSWAP" = "yes" ; then 183de2362d3Smrg USE_SYS_ENDIAN_H=yes 184de2362d3Smrg BSWAP=bswap 185de2362d3Smrg else 186de2362d3Smrg if test "$SYS_ENDIAN__SWAP" = "yes" ; then 187de2362d3Smrg USE_SYS_ENDIAN_H=yes 188de2362d3Smrg BSWAP=__swap 189de2362d3Smrg else 190de2362d3Smrg USE_SYS_ENDIAN_H=no 191de2362d3Smrg fi 192de2362d3Smrg fi 193de2362d3Smrg 194de2362d3Smrg if test "$USE_SYS_ENDIAN_H" = "yes" ; then 195de2362d3Smrg AC_DEFINE([USE_SYS_ENDIAN_H], 1, 196de2362d3Smrg [Define to use byteswap macros from <sys/endian.h>]) 197de2362d3Smrg AC_DEFINE_UNQUOTED([bswap_16], ${BSWAP}16, 198de2362d3Smrg [Define to 16-bit byteswap macro]) 199de2362d3Smrg AC_DEFINE_UNQUOTED([bswap_32], ${BSWAP}32, 200de2362d3Smrg [Define to 32-bit byteswap macro]) 201de2362d3Smrg AC_DEFINE_UNQUOTED([bswap_64], ${BSWAP}64, 202de2362d3Smrg [Define to 64-bit byteswap macro]) 203de2362d3Smrg fi 204de2362d3Smrgfi 205de2362d3Smrg 206de2362d3SmrgAC_SUBST([moduledir]) 207de2362d3Smrg 208de2362d3SmrgDRIVER_NAME=ati 209de2362d3SmrgAC_SUBST([DRIVER_NAME]) 210de2362d3Smrg 211de2362d3SmrgAC_MSG_NOTICE( 212de2362d3Smrg[The atimisc sub-driver has been split out to xf86-video-mach64:] 213de2362d3Smrg[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-mach64] 214de2362d3Smrg[Please install that driver as well for mach64-based cards.] 215de2362d3Smrg) 216de2362d3Smrg 217de2362d3SmrgAC_MSG_NOTICE( 218de2362d3Smrg[The r128 sub-driver has been split out to xf86-video-r128:] 219de2362d3Smrg[ git://anongit.freedesktop.org/git/xorg/driver/xf86-video-r128] 220de2362d3Smrg[Please install that driver as well for rage128-based cards.] 221de2362d3Smrg) 222de2362d3Smrg 223de2362d3SmrgAC_CONFIG_FILES([ 224de2362d3Smrg Makefile 225de2362d3Smrg src/Makefile 226de2362d3Smrg man/Makefile 227de2362d3Smrg]) 228de2362d3SmrgAC_OUTPUT 229de2362d3Smrg 230de2362d3Smrgdnl 231de2362d3Smrgdnl Output some configuration info for the user 232de2362d3Smrgdnl 233de2362d3Smrgecho "" 234de2362d3Smrgecho " prefix: $prefix" 235de2362d3Smrgecho " exec_prefix: $exec_prefix" 236de2362d3Smrgecho " libdir: $libdir" 237de2362d3Smrgecho " includedir: $includedir" 238de2362d3Smrg 239de2362d3Smrgecho "" 240de2362d3Smrgecho " CFLAGS: $CFLAGS" 241de2362d3Smrgecho " CXXFLAGS: $CXXFLAGS" 242de2362d3Smrgecho " Macros: $DEFINES" 243de2362d3Smrg 244de2362d3Smrgecho "" 245de2362d3Smrgecho " Run '${MAKE-make}' to build xf86-video-ati" 246de2362d3Smrgecho "" 247