configure.ac 28.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#  Copyright 2005 Adam Jackson.
#
#  Permission is hereby granted, free of charge, to any person obtaining a
#  copy of this software and associated documentation files (the "Software"),
#  to deal in the Software without restriction, including without limitation
#  on the rights to use, copy, modify, merge, publish, distribute, sub
#  license, and/or sell copies of the Software, and to permit persons to whom
#  the Software is furnished to do so, subject to the following conditions:
#
#  The above copyright notice and this permission notice (including the next
#  paragraph) shall be included in all copies or substantial portions of the
#  Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Process this file with autoconf to produce a configure script

23
# Initialize Autoconf
24
AC_PREREQ([2.60])
25
AC_INIT([xf86-video-intel],
Chris Wilson's avatar
Chris Wilson committed
26
        [2.99.917],
27
        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
28
        [xf86-video-intel])
29
AC_CONFIG_SRCDIR([Makefile.am])
30
AC_CONFIG_HEADERS([config.h])
31
AC_CONFIG_MACRO_DIR([m4])
32
AC_CONFIG_AUX_DIR(.)
33

34
# Initialize Automake
35
AM_INIT_AUTOMAKE([foreign dist-bzip2])
36

37
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
38 39
m4_ifndef([XORG_MACROS_VERSION],
          [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen.
40 41 42
  Hint: either install from source, git://anongit.freedesktop.org/xorg/util/macros or,
  depending on you distribution, try package 'xutils-dev' or 'xorg-x11-util-macros'])])

43
XORG_MACROS_VERSION(1.8)
44 45
XORG_DEFAULT_OPTIONS

46
# And disable a few very noisy warnings
47
m4_ifdef([XORG_TESTSET_CFLAG], [
48 49
XORG_TESTSET_CFLAG([NOWARNFLAGS], [-Wno-cast-qual])
XORG_TESTSET_CFLAG([NOWARNFLAGS], [-Wno-redundant-decls])
50
XORG_TESTSET_CFLAG([NOWARNFLAGS], [-Wno-maybe-uninitialized])
51
])
52 53
AC_SUBST(NOWARNFLAGS)

54 55 56
# Require X.Org server macros (i.e. XORG_DRIVER_CHECK_EXT) to check for required modules 
m4_ifndef([XORG_DRIVER_CHECK_EXT],
          [m4_fatal([must install xorg-server macros before running autoconf/autogen.
57 58
  Hint: either install from source, git://anongit.freedesktop.org/xorg/xserver or,
  depending on your distribution, try package 'xserver-xorg-dev' or 'xorg-x11-server-devel'])])
59

60
# Initialize libtool
61 62
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
63
AC_SYS_LARGEFILE
64

65 66 67
# Check for common libc routines redefined by os.h
AC_CHECK_FUNCS([strlcpy strlcat strndup], [], [])

68 69 70 71 72 73 74
# Platform specific settings
case $host_os in
  *linux*)
    backlight_helper=yes
    ;;
esac

75 76 77 78 79 80 81 82 83
AC_ARG_ENABLE(backlight,
              AS_HELP_STRING([--disable-backlight],
			     [Enable control over the backlight [default=yes]]),
              [backlight="$enableval"],
              [backlight="yes"])
if test "x$backlight" = "xyes"; then
	AC_DEFINE(USE_BACKLIGHT, 1, [Enable control of the backlight])
fi

84 85 86 87
AC_ARG_ENABLE(backlight-helper,
              AS_HELP_STRING([--disable-backlight-helper],
			     [Enable building the backlight helper executable for running X under a normal user [default=auto]]),
              [backlight_helper="$enableval"],)
88
AM_CONDITIONAL(BUILD_BACKLIGHT_HELPER, [test "x$backlight" = "xyes" -a "x$backlight_helper" = "xyes"])
89 90 91 92 93
if test "x$backlight_helper" = "xyes"; then
	tools_msg="$tools_msg xf86-video-intel-backlight-helper"
	AC_DEFINE(USE_BACKLIGHT_HELPER, 1, [Enable use of the backlight helper interfaces])
fi

94 95 96 97 98 99
# Are we in a git checkout?
dot_git=no
if test -e .git; then
	AC_DEFINE(HAVE_DOT_GIT, 1, [Are we in a git checkout?])
	dot_git=yes
fi
100
AM_CONDITIONAL(HAVE_DOT_GIT, test "x$dot_git" = "xyes")
101

102 103 104 105 106 107 108 109 110 111 112
# If so, we include the git description in our logs for sanity checking.
#
# However, for people not running their own drivers this is just noise.
# So we copy the xserver's builderstring idiom to allow for this to be
# overridden and perhaps replaced with something more useful.
AC_ARG_WITH(builderstring,
	    AS_HELP_STRING([--with-builderstring=BUILDERSTRING],
			   [Additional builder string (default: use git describe)]),
	    [BUILDERSTRING="$withval"],
	    [BUILDERSTRING="x-magic-git-describe"])

113
if test "x$BUILDERSTRING" = "xx-magic-git-describe" -a "x$dot_git" = "xyes"; then
114 115
	AC_DEFINE(USE_GIT_DESCRIBE, 1, [Use automagic builder description])
else
116
  if test "x$BUILDERSTRING" != x -a "x$BUILDERSTRING" != "xno" -a "x$BUILDERSTRING" != xx-magic-git-describe; then
117 118 119 120
	  AC_DEFINE_UNQUOTED(BUILDER_DESCRIPTION, ["$BUILDERSTRING"], [Builder description])
  fi
fi

121 122 123 124
AC_ARG_ENABLE(gen4asm,
              AS_HELP_STRING([--enable-gen4asm],
			     [Enable rebuilding the gen4 assembly files [default=no]]),
              [ASM="$enableval"],
125
              [ASM="no"])
126

127
gen4asm=no
128
if test "x$ASM" != "xno"; then
129 130
	AC_ARG_WITH(gen4asm,
		    AS_HELP_STRING([--with-gen4asm=PATH],
131
				   [Path to intel-gen4asm binary]),
132 133 134 135 136 137 138 139 140
		    [path="$withval"],
		    [path=""])
	if test -n "$path" ; then
		gen4asm=yes
	else
		PKG_CHECK_MODULES(GEN4ASM, [intel-gen4asm >= 1.2], [gen4asm=yes], [gen4asm=no])
		if test "x$ASM" = "xyes" -a "x$gen4asm" != "xyes"; then
			AC_MSG_ERROR([intel-gen4asm support requested but not found])
		fi
141
	fi
142
	if test "x$gen4asm" = "xyes"; then
143
		AC_MSG_CHECKING([path to use for intel-gen4asm])
144 145 146 147 148
		if test -n "$path" ; then
			INTEL_GEN4ASM="$path"
		else
			INTEL_GEN4ASM="`pkg-config intel-gen4asm --variable=exec_prefix`/bin/intel-gen4asm"
		fi
149 150 151 152 153 154
		if ! test -e "$INTEL_GEN4ASM"; then
			AC_MSG_ERROR([intel-gen4asm enabled, but not found. Tried '$INTEL_GEN4ASM'.])
		fi
		AC_MSG_RESULT([$INTEL_GEN4ASM])
		AC_SUBST([INTEL_GEN4ASM])
	fi
155
fi
156
AM_CONDITIONAL(HAVE_GEN4ASM, test "x$gen4asm" = "xyes")
157

158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
# Check for atomic intrinsics
AC_CACHE_CHECK([for native atomic primitives], intel_cv_atomic_primitives,
[
    intel_cv_atomic_primitives="none"

    AC_LINK_IFELSE([AC_LANG_PROGRAM([[
int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); }
				    ]],[[]])],
		   [intel_cv_atomic_primitives="Intel"],[])

    if test "x$intel_cv_atomic_primitives" = "xnone"; then
	    AC_CHECK_HEADER([atomic_ops.h], intel_cv_atomic_primitives="libatomic-ops")
    fi

    # atomic functions defined in <atomic.h> & libc on Solaris
    if test "x$intel_cv_atomic_primitives" = "xnone"; then
	    AC_CHECK_FUNC([atomic_cas_uint],
			  intel_cv_atomic_primitives="Solaris")
    fi

])
180
if test "x$intel_cv_atomic_primitives" = "xIntel"; then
181 182 183 184 185 186 187 188 189 190 191
    AC_DEFINE(HAVE_ATOMIC_PRIMITIVES, 1,
	      [Enable if your compiler supports the Intel __sync_* atomic primitives])
fi
if test "x$intel_cv_atomic_primitives" = "xlibatomic-ops"; then
    AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
fi

if test "x$intel_cv_atomic_primitives" = "xnone"; then
		AC_MSG_ERROR([xf86-video-intel depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.])
fi

192 193 194 195 196 197
AC_ARG_ENABLE(udev,
              AS_HELP_STRING([--disable-udev],
                             [Disable udev-based monitor hotplug detection [default=auto]]),
              [UDEV="$enableval"],
              [UDEV=auto])

198
udev_msg=" disabled"
199 200
if test "x$UDEV" != "xno"; then
	PKG_CHECK_MODULES(UDEV, [libudev], [udev="yes"], [udev="no"])
201
	AC_CHECK_HEADERS([sys/stat.h], [], [udev="no"])
202
	if test "x$UDEV" = "xyes" -a "x$udev" != "xyes"; then
203 204
		AC_MSG_ERROR([udev support requested but not found (libudev)])
	fi
205
	if test "x$udev" = "xyes"; then
206
		AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
207 208 209
		udev_msg=" yes"
	else
		udev_msg=" no"
210
	fi
211 212
fi

213
PKG_CHECK_MODULES(X11, [x11 x11-xcb xcb-dri2 xcomposite xdamage xrender xrandr xext xfixes cairo cairo-xlib-xrender pixman-1 libpng], [x11="yes"], [x11="no"])
214
AM_CONDITIONAL(HAVE_X11, test "x$x11" = "xyes")
215
echo X11_CLFAGS="$X11_CLFAGS" X11_LIBS="$X11_LIBS"
216

217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
cpuid="yes"
AC_TRY_LINK([
	#include <cpuid.h>
	#include <stddef.h>
	],
	[
	int eax, ebx, ecx, edx;
	if (__get_cpuid_max(0, NULL) < 4)
		return 0;
	__cpuid_count(4, 0, eax, ebx, ecx, edx);
	],
	[cpuid="yes"],
	[cpuid="no"]
)
if test "x$cpuid" = "xyes"; then
	AC_DEFINE(HAVE_CPUID_H,1,[Found a useable cpuid.h])
fi

235 236 237 238 239 240 241 242 243 244 245 246 247
shm=yes
AC_CHECK_HEADERS([sys/ipc.h sys/ipc.h], [], [shm="no"])
AC_CHECK_HEADERS([X11/extensions/XShm.h], [], [shm="no"], [
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
])
AC_CHECK_HEADERS([X11/extensions/shmproto.h X11/extensions/shmstr.h], [], [], [
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
])
if test "x$ac_cv_header_X11_extensions_shmproto_h" != "xyes" -a "x$ac_cv_header_X11_extensions_shmstr_h" != "xyes"; then
	shm="no"
fi
248

249
if test "x$shm" = "xyes"; then
250
	AC_DEFINE([HAVE_MIT_SHM], 1, [Define to 1 if MIT-SHM is available])
251
fi
252

253
PKG_CHECK_MODULES(X11_DRI3, [xcb-dri3 xcb-sync xcb-xfixes xcb-present x11-xcb xshmfence x11 xcomposite xdamage xrender xrandr xxf86vm xext libdrm], [x11_dri3="yes"], [x11_dri3="no"])
254
AM_CONDITIONAL(X11_DRI3, test "x$x11_dri3" = "xyes" -a "x$shm" = "xyes")
255
AM_CONDITIONAL(X11_SHM, test "x$shm" = "xyes")
256

257 258 259
PKG_CHECK_MODULES(X11_VM, [xxf86vm], [x11_vm="yes"], [x11_vm="no"])
AM_CONDITIONAL(X11_VM, test "x$x11_vm" = "xyes")

260 261 262 263 264 265 266 267 268 269 270
AC_ARG_ENABLE(tools,
              AS_HELP_STRING([--disable-tools],
			     [Enable building and installing the miscellaneous tools [default=auto]]),
              [tools="$enableval"], [tools="auto"])
if test "x$shm" != "xyes"; then
	if test "x$tools" = "xyes"; then
		AC_MSG_ERROR([Incomplete requirements for extra tools, X11 MIT-SHM extension required])
	fi
	tools="no"
fi
if test "x$tools" != "xno"; then
271
	ivo_requires="xrandr xdamage xfixes xcursor xtst xrender xscrnsaver xext x11 pixman-1"
272 273 274 275 276 277 278 279 280 281 282 283
	extra_cflags=""

	ignore="xinerama"
	PKG_CHECK_MODULES(IVO_EXTRA, [$ignore],
			  [AC_CHECK_HEADERS([X11/extensions/Xinerama.h], [ivo_requires="$ignore $ivo_requires"], [],
					    [#include <X11/Xlibint.h>
					     #include <X11/Xproto.h>
					    ])], [ignore=""])

	ignore="xcb-dri3 xcb-sync x11-xcb xshmfence x11"
	PKG_CHECK_MODULES(IVO_EXTRA, [$ignore], [ivo_requires="$ivo_requires $ignore"; extra_cflags="-DDRI3"], [ignore=""])

284 285 286 287 288 289 290 291
	PKG_CHECK_MODULES(IVO, [$ivo_requires], [ivo="yes"], [ivo="no"])
	AC_CHECK_HEADER([sys/timerfd.h], [], [ivo="no"])
	if test "x$ivo" = "xno"; then
		if test "x$tools" = "xyes"; then
			AC_MSG_ERROR([Incomplete requirements for intel-virtual-output, requires $ivo_requires])
		fi
		tools="no"
	fi
292

293 294
	PKG_CHECK_MODULES(TOOL_CURSOR, [xfixes x11 libpng], [cursor="yes"], [ivo="no"])

295
	IVO_CFLAGS="$IVO_CFLAGS $extra_cflags"
296 297
fi
if test "x$tools" != "xno"; then
298
      tools_msg="$tools_msg intel-virtual-output"
299
fi
300 301 302
AC_MSG_CHECKING([whether to build additional tools])
AC_MSG_RESULT([$tools])
AM_CONDITIONAL(BUILD_TOOLS, test "x$tools" != "xno")
303
AM_CONDITIONAL(BUILD_TOOL_CURSOR, test "x$cursor" = "xyes")
304

305
# Define a configure option for an alternate module directory
306
AC_ARG_WITH(xorg-module-dir,
307
            AS_HELP_STRING([--with-xorg-module-dir=DIR],
308 309 310 311
                           [Default xorg module directory [[default=$libdir/xorg/modules]]]),
            [moduledir="$withval"],
            [moduledir="$libdir/xorg/modules"])

312 313
AC_ARG_ENABLE(dri,
	      AS_HELP_STRING([--disable-dri],
314 315 316
			     [Disable DRI support [[default=auto]]]),
	      [DRI=$enableval],
	      [DRI=auto])
317 318
AC_ARG_ENABLE(dri1,
	      AS_HELP_STRING([--disable-dri1],
319
			     [Disable DRI1 support [[default=auto]]]),
320
	      [DRI1=$enableval],
321
	      [DRI1=auto])
322 323 324 325 326 327
AC_ARG_ENABLE(dri2,
	      AS_HELP_STRING([--disable-dri2],
			     [Disable DRI2 support [[default=yes]]]),
	      [DRI2=$enableval],
	      [DRI2=yes])
AC_ARG_ENABLE(dri3,
328 329
	      AS_HELP_STRING([--disable-dri3],
			     [Disable DRI3 support [[default=yes]]]),
330
	      [DRI3=$enableval],
331 332 333 334 335 336 337 338 339 340 341
	      [DRI3=yes])
AC_ARG_WITH(default-dri,
	    AS_HELP_STRING([--with-default-dri],
			   [Select the default maximum DRI level [default 2]]),
	      [DRI_DEFAULT=$withval],
	      [DRI_DEFAULT=2])
if test "x$DRI_DEFAULT" = "x0"; then
	AC_DEFINE(DEFAULT_DRI_LEVEL, 0,[Default DRI level])
else
	AC_DEFINE(DEFAULT_DRI_LEVEL, ~0, [Default DRI level])
fi
342

343
AC_ARG_ENABLE(xvmc, AS_HELP_STRING([--disable-xvmc],
Haihao Xiang's avatar
Haihao Xiang committed
344 345
                                  [Disable XvMC support [[default=yes]]]),
              [XVMC="$enableval"],
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369
              [XVMC="yes"])

AC_ARG_ENABLE(kms,
	      AS_HELP_STRING([--enable-kms],
			     [Assume KMS support [[default=yes]]]),
              [KMS="$enableval"],
              [KMS="yes"])
AC_ARG_ENABLE(ums,
	      AS_HELP_STRING([--enable-ums],
			     [Assume UMS support [[default=auto]]]),
              [UMS="$enableval"],
              [UMS="auto"])

AC_ARG_ENABLE(kms-only,
	      AS_HELP_STRING([--enable-kms-only],
			     [Only assume KMS support (no UMS) [[default=no]]]),
              [ONLY_KMS="$enableval"],
              [ONLY_KMS="no"])

AC_ARG_ENABLE(ums-only,
	      AS_HELP_STRING([--enable-ums-only],
			     [Only assume UMS support (no KMS) [[default=no]]]),
              [ONLY_UMS="$enableval"],
              [ONLY_UMS="no"])
Jesse Barnes's avatar
Jesse Barnes committed
370

371
required_xorg_server_version=1.6
372
required_pixman_version=0.16
373

374 375 376 377 378 379
PKG_CHECK_EXISTS([pixman-1 >= 0.24.0],
		 AC_DEFINE([HAS_PIXMAN_TRIANGLES], 1, [Enable pixman triangle rasterisation])
		 [])
PKG_CHECK_EXISTS([pixman-1 >= 0.27.1],
		 [AC_DEFINE([HAS_PIXMAN_GLYPHS], 1, [Enable pixman glyph cache])],
		 [])
380 381 382 383 384 385 386 387 388
# Store the list of server defined optional extensions in REQUIRED_MODULES
XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)

# Obtain compiler/linker options for the driver dependencies
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.20]) # libdrm_intel is checked separately
PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])

389 390
AC_ARG_ENABLE(sna,
	      AS_HELP_STRING([--enable-sna],
Zdenek Kabelac's avatar
Zdenek Kabelac committed
391
			     [Enable SandyBridge\'s New Acceleration (SNA) [default=auto]]),
392
	      [SNA="$enableval"],
393 394
	      [SNA=auto])

Chris Wilson's avatar
Chris Wilson committed
395 396
AC_CHECK_HEADERS([dev/wscons/wsconsio.h])
AC_FUNC_ALLOCA
397
AC_HEADER_MAJOR
398

399 400
if test "x$SNA" != "xno"; then
	AC_DEFINE(USE_SNA, 1, [Enable SNA support])
401
	AC_CHECK_HEADERS([sys/sysinfo.h], AC_CHECK_MEMBERS([struct sysinfo.totalram], [], [], [[#include <sys/sysinfo.h>]]))
402 403
fi

404
uxa_requires_libdrm=2.4.52
405 406
uxa_requires_pixman=0.24.0

407 408
AC_ARG_ENABLE(uxa,
	      AS_HELP_STRING([--enable-uxa],
409
			     [Enable Unified Acceleration Architecture (UXA) [default=auto]]),
410
	      [UXA="$enableval"],
411 412
	      [UXA=auto])
if test "x$UXA" = "xauto"; then
413
	PKG_CHECK_EXISTS([libdrm_intel >= $uxa_requires_libdrm pixman-1 >= $uxa_requires_pixman], [], [UXA=no])
414
fi
415 416
if test "x$UXA" != "xno"; then
	AC_DEFINE(USE_UXA, 1, [Enable UXA support])
417
	PKG_CHECK_MODULES(DRMINTEL, [libdrm_intel >= $uxa_requires_libdrm])
418
	required_pixman_version=0.24
419
	UXA=yes
420
fi
421

422
PKG_CHECK_MODULES(XORG, [xorg-server >= $required_xorg_server_version xproto fontsproto damageproto pixman-1 >= $required_pixman_version $REQUIRED_MODULES])
423
ABI_VERSION=`$PKG_CONFIG --variable=abi_videodrv xorg-server`
424
XSERVER_VERSION=`$PKG_CONFIG --modversion xorg-server`
425
PIXMAN_VERSION=`$PKG_CONFIG --modversion pixman-1`
426

427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478
if test "x$ONLY_UMS" = "xyes"; then
	UMS="yes"
	KMS="no"
fi

if test "x$ONLY_KMS" = "xyes"; then
	UMS="no"
	KMS="yes"
fi

save_CPPFLAGS=$CPPFLAGS
CPPFLAGS=$XORG_CFLAGS
AC_CHECK_HEADERS([vgaHW.h], legacy="yes", legacy="no")
CPPFLAGS=$save_CPPFLAGS
if test "x$UMS" = "xauto"; then
	UMS="$legacy"
fi
if test "x$UMS" = "xyes" -a "x$legacy" = "xno"; then
	AC_MSG_ERROR([vgaHW support required for UMS (i810) driver])
fi

if test "x$UMS" = "xyes"; then
	AC_ARG_ENABLE(xaa,
		      AS_HELP_STRING([--enable-xaa],
				     [Enable legacy X Acceleration Architecture (XAA) for i810 chipsets [default=auto]]),
		      [XAA="$enableval"],
		      [XAA="auto"])
	if test "x$XAA" != "xno"; then
		save_CPPFLAGS=$CPPFLAGS
		CPPFLAGS=$XORG_CFLAGS
		AC_CHECK_HEADERS([xaa.h], XAA="yes", XAA="no")
		CPPFLAGS=$save_CPPFLAGS
	fi
	AC_MSG_CHECKING([whether to include XAA support])
	AC_MSG_RESULT([$XAA])

	AC_ARG_ENABLE(dga,
		      AS_HELP_STRING([--enable-dga],
				     [Enable legacy Direct Graphics Access (DGA) for i810 chipsets [default=auto]]),
		      [DGA="$enableval"],
		      [DGA="auto"])
	if test "x$DGA" != "xno"; then
		save_CFLAGS=$CFLAGS
		CFLAGS=$XORG_CFLAGS
		AC_CHECK_HEADERS([dgaproc.h], DGA="yes", DGA="no", [#include <dixstruct.h>])
		CFLAGS=$save_CFLAGS
	fi
	AC_MSG_CHECKING([whether to include DGA support])
	AC_MSG_RESULT([$DGA])
fi
AM_CONDITIONAL(DGA, test "x$DGA" = "xyes")
AM_CONDITIONAL(XAA, test "x$XAA" = "xyes")
Daniel Stone's avatar
Daniel Stone committed
479

480 481 482 483 484 485 486 487 488
AM_CONDITIONAL(KMS, test "x$KMS" = "xyes")
if test "x$KMS" = "xyes"; then
	AC_DEFINE(KMS,1,[Assume KMS support])
fi
AM_CONDITIONAL(UMS, test "x$UMS" = "xyes")
if test "x$UMS" = "xyes"; then
	AC_DEFINE(UMS,1,[Assume UMS support])
fi

489
have_dri1=no
490
XORG_DRIVER_CHECK_EXT(XF86DRI, xf86driproto)
491 492
if test "x$_EXT_CHECK" != "xno" -a "x$DRI" != "xno" -a "x$DRI1" != "xno" -a "x$UMS" = "xyes"; then
	PKG_CHECK_MODULES(DRI1, [xf86driproto], [have_dri1=$DRI], [have_dri1=no])
493 494
        save_CFLAGS="$CFLAGS"
        save_CPPFLAGS="$CPPFLAGS"
495 496
        CFLAGS="$CFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS"
        CPPFLAGS="$CPPFLAGS $XORG_CFLAGS $DRI1_CFLAGS $DRM_CFLAGS"
497
        AC_CHECK_HEADERS([dri.h sarea.h dristruct.h], [], [have_dri1=no],
498 499 500 501 502 503 504 505 506 507 508
                [/* for dri.h */
                 #include <xf86str.h>
                 /* for dristruct.h */
                 #include <xorg-server.h>
                 #ifdef HAVE_DRI_H
                 # include <dri.h>
                 #endif
                 #ifdef HAVE_SAREA_H
                 # include <sarea.h>
                 #endif
                ])
509
        CFLAGS="$save_CFLAGS"
510 511 512 513
        CPPFLAGS="$save_CPPFLAGS"
fi

AC_MSG_CHECKING([whether to include DRI1 support])
514
AC_MSG_RESULT([$have_dri1])
515

516 517
AM_CONDITIONAL(DRI1, test "x$have_dri1" != "xno")
if test "x$have_dri1" != "xno"; then
518
        AC_DEFINE(HAVE_DRI1,1,[Enable DRI1 driver support])
519 520 521 522 523 524
	str="DRI1"
	if test "x$DRI_DEFAULT" = "x1"; then
		AC_DEFINE(DEFAULT_DRI_LEVEL,1,[Default DRI level])
		str="*$str"
	fi
	dri_msg="$dri_msg $str"
525 526 527 528
else
        DRI1_CFLAGS=""
        DRI1_LIBS=""

529
        if test "x$DRI" = "xyes" -a "x$UMS" = "xyes" -a "x$DRI1" != "xno"; then
530 531 532 533
                AC_MSG_ERROR([DRI1 requested but prerequisites not found])
        fi
fi

534 535
have_dri2=no
have_dri3=no
536
if test "x$DRI" != "xno"; then
537
	if test "x$DRI2" != "xno"; then
Chris Wilson's avatar
Chris Wilson committed
538
		PKG_CHECK_MODULES(DRI2, [dri2proto >= 2.6], [have_dri2=$DRI], [have_dri2=no])
539 540
	fi
	if test "x$have_dri2" != "xno"; then
541
		save_CFLAGS=$CFLAGS
542
		CFLAGS="$XORG_CFLAGS $DRM_CFLAGS $DRI1_CFLAGS $DRI2_CFLAGS"
543
		AC_CHECK_HEADERS([dri2.h], [], [have_dri2=no], [
544 545
#include <dixstruct.h>
#include <drm.h>
546 547 548
])
		CFLAGS=$save_CFLAGS
	fi
549 550 551 552 553 554
	if test "x$have_dri2" != "xno"; then
		dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri`
		if test "x$dridriverdir" = "x"; then
			dridriverdir="$libdir/dri"
		fi
		AC_DEFINE_DIR(DRI_DRIVER_PATH, dridriverdir, [Default have_dri2 driver path])
555
	fi
556

557
	if test "x$DRI3" != "xno"; then
558 559 560 561 562 563
		XORG_DRIVER_CHECK_EXT(DRI3, dri3proto)
		if test "x$_EXT_CHECK" != "xno"; then
			PKG_CHECK_MODULES(DRI3, [dri3proto], [have_dri3=$DRI], [])
		fi
	fi
	if test "x$have_dri3" != "xno"; then
564 565
		save_CFLAGS=$CFLAGS
		CFLAGS="$XORG_CFLAGS $DRI3_CFLAGS"
566 567
		AC_CHECK_DECL(DRI3, [], [have_dri3=no], [#include <xorg-server.h>])
		AC_CHECK_HEADERS([misyncstr.h misyncshm.h], [], [have_dri3=no], [
568 569 570
#include <xorg-server.h>
#include <xf86str.h>
#include <misync.h>
571
])
572 573 574
		CFLAGS=$save_CFLAGS
	fi
fi
575

576
AC_MSG_CHECKING([whether to include DRI2 support])
577 578 579
AM_CONDITIONAL(DRI2, test "x$have_dri2" != "xno")
AC_MSG_RESULT([$have_dri2])
if test "x$have_dri2" != "xno"; then
580
        AC_DEFINE(HAVE_DRI2,1,[Enable DRI2 driver support])
581 582 583 584 585 586
	str="DRI2"
	if test "x$DRI_DEFAULT" = "x2"; then
		AC_DEFINE(DEFAULT_DRI_LEVEL,2,[Default DRI level])
		str="*$str"
	fi
	dri_msg="$dri_msg $str"
587
else
588
	if test "x$DRI" = "xyes" -a "x$DRI2" != "xno" -a "x$KMS" = "xyes"; then
589 590 591
		AC_MSG_ERROR([DRI2 requested but prerequisites not found])
	fi

592 593 594 595
	# UXA doesn't build without DRI2 headers, too late to fix
	UXA=no
fi

596
AC_MSG_CHECKING([whether to include DRI3 support])
597 598 599
AM_CONDITIONAL(DRI3, test "x$have_dri3" != "xno")
AC_MSG_RESULT([$have_dri3])
if test "x$have_dri3" != "xno"; then
600
        AC_DEFINE(HAVE_DRI3,1,[Enable DRI3 driver support])
601 602 603 604 605 606
	str="DRI3"
	if test "x$DRI_DEFAULT" = "x3"; then
		AC_DEFINE(DEFAULT_DRI_LEVEL,3,[Default DRI level])
		str="*$str"
	fi
	dri_msg="$dri_msg $str"
607
else
608
	if test "x$DRI" = "xyes" -a "x$DRI3" != "xno" -a "x$KMS" = "xyes"; then
609 610 611 612
		AC_MSG_ERROR([DRI3 requested but prerequisites not found])
	fi
fi

613 614 615
AC_MSG_CHECKING([default DRI support])
AC_MSG_RESULT([$DEFAULT_DRI_DEFAULT])

616 617
AC_CHECK_HEADERS([X11/extensions/dpmsconst.h])

618
PRESENT="no"
619 620
XORG_DRIVER_CHECK_EXT(PRESENT, presentproto)
if test "x$_EXT_CHECK" != "xno"; then
621 622 623
	PKG_CHECK_MODULES(PRESENT, [presentproto], [PRESENT="yes"], [])
fi
if test "x$PRESENT" != "xno"; then
624
	save_CFLAGS=$CFLAGS
625 626
	CFLAGS="$XORG_CFLAGS $PRESENT_CFLAGS"
	AC_CHECK_HEADERS([present.h], [], [PRESENT="no"], [
627 628 629 630 631 632
#include <xorg-server.h>
#include <xf86str.h>
])
	CFLAGS=$save_CFLAGS
fi
AC_MSG_CHECKING([whether to include PRESENT support])
633 634 635
AM_CONDITIONAL(PRESENT, test "x$PRESENT" != "xno")
AC_MSG_RESULT([$PRESENT])
if test "x$PRESENT" != "xno"; then
636 637 638 639
        AC_DEFINE(HAVE_PRESENT,1,[Enable PRESENT driver support])
	dri_msg="$dri_msg Present"
fi

640 641 642 643 644 645 646 647
AC_MSG_CHECKING([whether to include UXA support])
AC_MSG_RESULT([$UXA])
AM_CONDITIONAL(UXA, test "x$UXA" != "xno")

AC_MSG_CHECKING([whether to include SNA support])
AM_CONDITIONAL(SNA, test "x$SNA" != "xno")
AC_MSG_RESULT([$SNA])

648
if test "$XVMC" = "yes"; then
649
	PKG_CHECK_MODULES(XVMCLIB, [xvmc dri2proto x11 x11-xcb xcb-dri2 xcb-aux libdrm_intel], [], [XVMC="no"])
650 651 652 653 654 655 656 657 658 659 660 661
fi
AC_MSG_CHECKING([whether to include XvMC support])
AC_MSG_RESULT([$XVMC])
AM_CONDITIONAL(XVMC, test "x$XVMC" = "xyes")
if test "x$XVMC" = "xyes"; then
	AC_DEFINE(ENABLE_XVMC,1,[Enable XvMC support])
	xvmc_msg=" yes"
else
	xvmc_msg=" no"
fi


662 663
AC_ARG_WITH(default-accel,
	    AS_HELP_STRING([--with-default-accel],
664
			   [Select the default acceleration method out of none, sna, or uxa  [default is sna if enabled, otherwise uxa]]),
665
			   [accel="$withval"],
666 667
			   [accel="auto"])
if test "x$accel" = "xyes"; then
668 669 670
	AC_MSG_WARN([No default acceleration specified, choosing automatic selection])
	accel="auto"
fi
671 672

AC_MSG_CHECKING([which acceleration method to use by default])
673
if test "x$accel" = "xauto"; then
674 675
	if test "x$SNA" != "xno"; then
		accel="sna"
676
	else
677 678
		if test "x$UXA" != "xno"; then
			accel="uxa"
679 680
		fi
	fi
681
	if test "x$accel" = "xauto" -a "x$KMS" = "xyes"; then
682 683 684 685
		AC_MSG_ERROR([No default acceleration option])
	fi
fi

686 687
have_accel="none"
if test "x$accel" = "xsna"; then
688 689
	if test "x$SNA" != "xno"; then
		AC_DEFINE(DEFAULT_ACCEL_METHOD, SNA, [Default acceleration method])
690
		have_accel="yes"
691 692 693 694 695
	else
		AC_MSG_ERROR([SNA requested as default, but is not enabled])
	fi
fi

696
if test "x$accel" = "xuxa"; then
697 698
	if test "x$UXA" != "xno"; then
		AC_DEFINE(DEFAULT_ACCEL_METHOD, UXA, [Default acceleration method])
699
		have_accel="yes"
700 701 702 703
	else
		AC_MSG_ERROR([UXA requested as default, but is not enabled])
	fi
fi
704 705 706

if test "x$have_accel" = "xnone"; then
	if test "x$KMS" = "xyes"; then
707
		if test "x$SNA" != "xno" -o "x$UXA" != "xno"; then
708
			AC_DEFINE(DEFAULT_ACCEL_METHOD, NOACCEL, [Default acceleration method])
709 710 711
		else
			AC_MSG_ERROR([Invalid default acceleration option])
		fi
712 713 714 715 716
	fi
	accel="none"
fi
AC_MSG_RESULT($accel)

717 718
xp_msg=""

719 720 721 722 723 724 725 726 727 728
AC_ARG_ENABLE(tear-free,
	      AS_HELP_STRING([--enable-tear-free],
			     [Enable use of TearFree by default [default=no]]),
	      [TEARFREE="$enableval"],
	      [TEARFREE="no"])
if test "x$TEARFREE" = "xyes"; then
	AC_DEFINE(TEARFREE,1,[Enable "TearFree" by default])
	xp_msg="$xp_msg TearFree"
fi

729 730 731 732
AC_ARG_ENABLE(create2,
	      AS_HELP_STRING([--enable-create2],
			     [Enable use of create2 ioctl (experimental) [default=no]]),
	      [CREATE2="$enableval"],
733 734 735
	      [CREATE2="no"])
AM_CONDITIONAL(USE_CREATE2, test "x$CREATE2" = "xyes")
if test "x$CREATE2" = "xyes"; then
736
	AC_DEFINE(USE_CREATE2,1,[Assume "create2" support])
737
	xp_msg="$xp_msg create2"
738 739
fi

740 741 742 743
AC_ARG_ENABLE(async-swap,
	      AS_HELP_STRING([--enable-async-swap],
			     [Enable use of asynchronous swaps (experimental) [default=no]]),
	      [ASYNC_SWAP="$enableval"],
744 745 746
	      [ASYNC_SWAP="no"])
AM_CONDITIONAL(USE_ASYNC_SWAP, test "x$ASYNC_SWAP" = "xyes")
if test "x$ASYNC_SWAP" = "xyes"; then
747
	AC_DEFINE(USE_ASYNC_SWAP,1,[Assume asynchronous swap support])
748
	xp_msg="$xp_msg async-swap"
749
fi
750

751 752
AC_ARG_ENABLE(debug,
	      AS_HELP_STRING([--enable-debug],
753
			     [Enables internal debugging [default=no]]),
754
              [DEBUG="$enableval"],
755
              [DEBUG="no"])
756 757 758 759
AC_ARG_ENABLE(valgrind,
	      AS_HELP_STRING([--enable-valgrind],
			     [Enables valgrindified ioctls for debugging [default=no]]),
              [VG="$enableval"],
760
              [VG="no"])
761

762 763 764 765
LIBS=""
AC_SEARCH_LIBS(clock_gettime, rt, [CLOCK_GETTIME_LIBS=$LIBS])
AC_SUBST(CLOCK_GETTIME_LIBS)

766
sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
767

768 769 770
AM_CONDITIONAL(DEBUG, test "x$DEBUG" != "xno")
AM_CONDITIONAL(FULL_DEBUG, test "x$DEBUG" = "xfull")
if test "x$DEBUG" = "xno"; then
771
	AC_DEFINE(NDEBUG,1,[Disable internal debugging])
772
else
773
	if test "x$VG" != "xyes"; then
774 775
		VG=auto
	fi
776
fi
777
debug_msg=""
778 779 780
have_valgrind="no"
if test "x$VG" != "xno"; then
	PKG_CHECK_MODULES(VALGRIND, [valgrind], have_valgrind="yes", have_valgrind="no")
781
	AC_MSG_CHECKING([whether to include valgrind support])
782
	if test "x$have_valgrind" = "xyes"; then
783
		AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
784
	else
785
		if test "x$VG" = "xyes"; then
786 787
			AC_MSG_ERROR([valgrind support requested, but valgrind-dev headers not found])
		fi
788
	fi
789
	AC_MSG_RESULT([$have_valgrind ($VG)])
790
fi
791 792
AM_CONDITIONAL(VALGRIND, test "x$have_valgrind" = "xyes")
if test "x$have_valgrind" = "xyes"; then
793 794
	debug_msg="$debug_msg valgrind"
fi
795
if test "x$DEBUG" = "xsync"; then
796
	AC_DEFINE(DEBUG_SYNC,1,[Enable synchronous rendering for debugging])
797
	debug_msg="$debug_msg sync"
798
fi
799
if test "x$DEBUG" = "xmemory"; then
800
	AC_DEFINE(DEBUG_MEMORY,1,[Enable memory debugging])
801
	debug_msg="$debug_msg memory"
802
fi
803
if test "x$DEBUG" = "xpixmap"; then
804
	AC_DEFINE(DEBUG_PIXMAP,1,[Enable pixmap debugging])
805
	debug_msg="$debug_msg pixmaps"
806
fi
807
if test "x$DEBUG" = "xfull"; then
808
	AC_DEFINE(DEBUG_MEMORY,1,[Enable memory debugging])
809
	AC_DEFINE(DEBUG_PIXMAP,1,[Enable pixmap debugging])
810
	AC_DEFINE(HAS_DEBUG_FULL,1,[Enable all debugging])
811
        CFLAGS="$CFLAGS -O0 -ggdb3"
812 813
	debug_msg=" full"
fi
814
if test "x$debug_msg" = "x"; then
815
	debug_msg=" none"
816
fi
817

818 819 820
AC_CONFIG_LIBOBJ_DIR(libobj)
AC_REPLACE_FUNCS(getline)

821
DRIVER_NAME="intel"
822
AC_SUBST([DRIVER_NAME])
823
AC_SUBST([moduledir])
824
AC_DEFINE_DIR([PREFIX_PATH], prefix, [installation prefix])
825
AC_DEFINE_DIR([LIBEXEC_PATH], libexecdir, [libexec directory])
826

827 828
AC_CONFIG_FILES([
                Makefile
829
                man/Makefile
830
		libobj/Makefile
831 832 833 834
                src/Makefile
                src/legacy/Makefile
                src/legacy/i810/Makefile
                src/legacy/i810/xvmc/Makefile
835
                src/render_program/Makefile
836
                src/sna/Makefile
837
                src/sna/brw/Makefile
Chris Wilson's avatar
Chris Wilson committed
838
                src/sna/fb/Makefile
839 840 841 842 843
                src/uxa/Makefile
                xvmc/Makefile
                xvmc/shader/Makefile
                xvmc/shader/mc/Makefile
                xvmc/shader/vld/Makefile
844
		test/Makefile
845
		benchmarks/Makefile
846
		tools/Makefile
847
		tools/org.x.xf86-video-intel.backlight-helper.policy
848
])
849
AC_OUTPUT
850

851 852
echo ""
echo ""
853
cat $srcdir/README
854

855 856
accel_msg=""
if test "x$SNA" != "xno"; then
857 858 859 860 861
	if test "$accel" = "none"; then
		accel_msg="$accel_msg *none"
	else
		accel_msg="$accel_msg none"
	fi
862 863 864 865 866 867 868
	if test "$accel" = "sna"; then
		accel_msg="$accel_msg *sna"
	else
		accel_msg="$accel_msg sna"
	fi
fi
if test "x$UXA" != "xno"; then
869 870 871 872 873 874 875
	if test "x$SNA" = "xno"; then
		if test "$accel" = "none"; then
			accel_msg="$accel_msg *none"
		else
			accel_msg="$accel_msg none"
		fi
	fi
876 877 878 879 880 881 882
	if test "$accel" = "uxa"; then
		accel_msg="$accel_msg *uxa"
	else
		accel_msg="$accel_msg uxa"
	fi
fi

883
if test "x$dri_msg" = "x"; then
884 885 886
	dri_msg=" none"
fi

887
if test "x$tools_msg" = "x"; then
888 889 890
	tools_msg=" none"
fi

891 892
echo ""
echo "AC_PACKAGE_STRING will be compiled with:"
893
echo "  Xorg Video ABI version: $ABI_VERSION (xorg-server-$XSERVER_VERSION)"
894
echo "  pixman version: pixman-1-$PIXMAN_VERSION"
895 896
echo "  Acceleration backends:$accel_msg"
echo "  Additional debugging support?$debug_msg"
897 898
echo "  Support for Kernel Mode Setting? $KMS"
echo "  Support for legacy User Mode Setting (for i810)? $UMS"
899 900
echo "  Support for Direct Rendering Infrastructure:$dri_msg"
echo "  Support for Xv motion compensation (XvMC and libXvMC):$xvmc_msg"
901
echo "  Support for display hotplug notifications (udev):$udev_msg"
902
echo "  Build additional tools and utilities?$tools_msg"
903 904 905
if test -n "$xp_msg"; then
echo "  Experimental support:$xp_msg"
fi
906
echo ""