Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 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 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 21 | AC_PREREQ([2.63]) |
| 22 | AC_INIT([libdrm], |
Maarten Lankhorst | 183b5f2 | 2013-02-05 14:08:41 +0100 | [diff] [blame] | 23 | [2.4.42], |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 24 | [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], |
| 25 | [libdrm]) |
| 26 | |
| 27 | AC_CONFIG_HEADERS([config.h]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 28 | AC_CONFIG_SRCDIR([Makefile.am]) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 29 | AC_CONFIG_MACRO_DIR([m4]) |
| 30 | AC_CONFIG_AUX_DIR([build-aux]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 31 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 32 | AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) |
| 33 | AM_MAINTAINER_MODE([enable]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 34 | |
Eric Anholt | 607e228 | 2010-05-25 20:13:37 -0700 | [diff] [blame] | 35 | # Enable quiet compiles on automake 1.11. |
| 36 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) |
| 37 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 38 | # Check for programs |
| 39 | AC_PROG_CC |
| 40 | |
| 41 | AC_USE_SYSTEM_EXTENSIONS |
| 42 | AC_SYS_LARGEFILE |
| 43 | AC_FUNC_ALLOCA |
| 44 | |
| 45 | # Initialize libtool |
| 46 | LT_PREREQ([2.2]) |
| 47 | LT_INIT([disable-static]) |
| 48 | |
| 49 | |
Eric Anholt | 6df7b07 | 2008-06-12 23:22:26 -0700 | [diff] [blame] | 50 | PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) |
| 51 | AC_SUBST(PTHREADSTUBS_CFLAGS) |
| 52 | AC_SUBST(PTHREADSTUBS_LIBS) |
| 53 | |
Adam Jackson | 5a5478d | 2005-07-13 00:13:12 +0000 | [diff] [blame] | 54 | pkgconfigdir=${libdir}/pkgconfig |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 55 | AC_SUBST(pkgconfigdir) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 56 | AC_ARG_ENABLE([udev], |
| 57 | [AS_HELP_STRING([--enable-udev], |
| 58 | [Enable support for using udev instead of mknod (default: disabled)])], |
| 59 | [UDEV=$enableval], [UDEV=no]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 60 | |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 61 | AC_ARG_ENABLE(libkms, |
Jakob Bornecrantz | 97003c5 | 2010-02-18 13:27:29 +0100 | [diff] [blame] | 62 | AS_HELP_STRING([--disable-libkms], |
Alan Coopersmith | 3c7ae8a | 2010-04-16 10:12:37 -0700 | [diff] [blame] | 63 | [Disable KMS mm abstraction library (default: auto)]), |
| 64 | [LIBKMS=$enableval], [LIBKMS=auto]) |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 65 | |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 66 | AC_ARG_ENABLE(intel, |
| 67 | AS_HELP_STRING([--disable-intel], |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 68 | [Enable support for intel's KMS API (default: auto)]), |
| 69 | [INTEL=$enableval], [INTEL=auto]) |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 70 | |
Dave Airlie | 520c658 | 2010-02-02 10:58:50 +1000 | [diff] [blame] | 71 | AC_ARG_ENABLE(radeon, |
| 72 | AS_HELP_STRING([--disable-radeon], |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 73 | [Enable support for radeon's KMS API (default: auto)]), |
| 74 | [RADEON=$enableval], [RADEON=auto]) |
Dave Airlie | 520c658 | 2010-02-02 10:58:50 +1000 | [diff] [blame] | 75 | |
Ben Skeggs | 292da61 | 2011-12-09 16:11:06 +1000 | [diff] [blame] | 76 | AC_ARG_ENABLE(nouveau, |
| 77 | AS_HELP_STRING([--disable-nouveau], |
| 78 | [Enable support for nouveau's KMS API (default: auto)]), |
| 79 | [NOUVEAU=$enableval], [NOUVEAU=auto]) |
| 80 | |
Jakob Bornecrantz | 7080bfd | 2012-08-13 13:35:07 +0200 | [diff] [blame] | 81 | AC_ARG_ENABLE(vmwgfx, |
| 82 | AS_HELP_STRING([--disable-vmwgfx], |
| 83 | [Enable support for vmwgfx's KMS API (default: yes)]), |
| 84 | [VMWGFX=$enableval], [VMWGFX=yes]) |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 85 | |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 86 | AC_ARG_ENABLE(omap-experimental-api, |
| 87 | AS_HELP_STRING([--enable-omap-experimental-api], |
| 88 | [Enable support for OMAP's experimental API (default: disabled)]), |
| 89 | [OMAP=$enableval], [OMAP=no]) |
Dave Airlie | 2fa2db1 | 2009-06-17 17:47:42 +1000 | [diff] [blame] | 90 | |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 91 | AC_ARG_ENABLE(exynos-experimental-api, |
| 92 | AS_HELP_STRING([--enable-exynos-experimental-api], |
| 93 | [Enable support for EXYNOS's experimental API (default: disabled)]), |
| 94 | [EXYNOS=$enableval], [EXYNOS=no]) |
| 95 | |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 96 | AC_ARG_ENABLE(freedreno-experimental-api, |
| 97 | AS_HELP_STRING([--enable-freedreno-experimental-api], |
| 98 | [Enable support for freedreno's experimental API (default: disabled)]), |
| 99 | [FREEDRENO=$enableval], [FREEDRENO=no]) |
| 100 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 101 | dnl =========================================================================== |
| 102 | dnl check compiler flags |
| 103 | AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ |
| 104 | AC_MSG_CHECKING([whether $CC supports $1]) |
| 105 | |
| 106 | libdrm_save_CFLAGS="$CFLAGS" |
| 107 | CFLAGS="$CFLAGS $1" |
| 108 | |
| 109 | AC_COMPILE_IFELSE([ ], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) |
| 110 | CFLAGS="$libdrm_save_CFLAGS" |
| 111 | |
| 112 | if test "x$libdrm_cc_flag" = "xyes"; then |
| 113 | ifelse([$2], , :, [$2]) |
| 114 | else |
| 115 | ifelse([$3], , :, [$3]) |
| 116 | fi |
| 117 | AC_MSG_RESULT([$libdrm_cc_flag]) |
| 118 | ]) |
| 119 | |
Jesse Barnes | badc634 | 2009-01-07 11:47:52 -0800 | [diff] [blame] | 120 | dnl We use clock_gettime to check for timeouts in drmWaitVBlank |
| 121 | |
| 122 | AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=], |
| 123 | [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt], |
| 124 | [AC_MSG_ERROR([Couldn't find clock_gettime])])]) |
| 125 | AC_SUBST([CLOCK_LIB]) |
| 126 | |
Eric Anholt | ccbc403 | 2012-01-03 12:33:37 -0800 | [diff] [blame] | 127 | AC_CHECK_FUNCS([open_memstream], [HAVE_OPEN_MEMSTREAM=yes]) |
| 128 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 129 | dnl Use lots of warning flags with with gcc and compatible compilers |
| 130 | |
| 131 | dnl Note: if you change the following variable, the cache is automatically |
| 132 | dnl skipped and all flags rechecked. So there's no need to do anything |
| 133 | dnl else. If for any reason you need to force a recheck, just change |
| 134 | dnl MAYBE_WARN in an ignorable way (like adding whitespace) |
| 135 | |
| 136 | MAYBE_WARN="-Wall -Wextra \ |
| 137 | -Wsign-compare -Werror-implicit-function-declaration \ |
| 138 | -Wpointer-arith -Wwrite-strings -Wstrict-prototypes \ |
| 139 | -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ |
| 140 | -Wpacked -Wswitch-enum -Wmissing-format-attribute \ |
Eric Anholt | 71ebcf4 | 2012-08-02 11:25:57 -0700 | [diff] [blame] | 141 | -Wstrict-aliasing=2 -Winit-self \ |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 142 | -Wdeclaration-after-statement -Wold-style-definition \ |
| 143 | -Wno-missing-field-initializers -Wno-unused-parameter \ |
| 144 | -Wno-attributes -Wno-long-long -Winline" |
| 145 | |
| 146 | # invalidate cached value if MAYBE_WARN has changed |
| 147 | if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then |
| 148 | unset libdrm_cv_warn_cflags |
| 149 | fi |
| 150 | AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [ |
| 151 | echo |
| 152 | WARN_CFLAGS="" |
| 153 | |
| 154 | # Some warning options are not supported by all versions of |
| 155 | # gcc, so test all desired options against the current |
| 156 | # compiler. |
| 157 | # |
| 158 | # Note that there are some order dependencies |
| 159 | # here. Specifically, an option that disables a warning will |
| 160 | # have no net effect if a later option then enables that |
| 161 | # warnings, (perhaps implicitly). So we put some grouped |
| 162 | # options (-Wall and -Wextra) up front and the -Wno options |
| 163 | # last. |
| 164 | |
| 165 | for W in $MAYBE_WARN; do |
| 166 | LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"]) |
| 167 | done |
| 168 | |
| 169 | libdrm_cv_warn_cflags=$WARN_CFLAGS |
| 170 | libdrm_cv_warn_maybe=$MAYBE_WARN |
| 171 | |
| 172 | AC_MSG_CHECKING([which warning flags were supported])]) |
| 173 | WARN_CFLAGS="$libdrm_cv_warn_cflags" |
| 174 | |
Dave Airlie | 9101a02 | 2008-08-24 16:54:43 +1000 | [diff] [blame] | 175 | if test "x$UDEV" = xyes; then |
| 176 | AC_DEFINE(UDEV, 1, [Have UDEV support]) |
| 177 | fi |
| 178 | |
Alan Coopersmith | 3c7ae8a | 2010-04-16 10:12:37 -0700 | [diff] [blame] | 179 | AC_CANONICAL_HOST |
| 180 | if test "x$LIBKMS" = xauto ; then |
| 181 | case $host_os in |
| 182 | linux*) LIBKMS="yes" ;; |
| 183 | *) LIBKMS="no" ;; |
| 184 | esac |
| 185 | fi |
| 186 | |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 187 | AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes]) |
| 188 | |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 189 | AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes]) |
Jakob Bornecrantz | 5dbc1b3 | 2010-01-05 20:55:02 +0100 | [diff] [blame] | 190 | if test "x$VMWGFX" = xyes; then |
| 191 | AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers]) |
| 192 | fi |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 193 | |
Pekka Paalanen | 4a0d19e | 2009-02-22 12:40:47 +0200 | [diff] [blame] | 194 | AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) |
Marcin Kościelnicki | afd74ec | 2010-02-27 15:04:37 +0000 | [diff] [blame] | 195 | if test "x$NOUVEAU" = xyes; then |
| 196 | AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) |
| 197 | fi |
Ben Skeggs | 7e5c512 | 2009-02-11 14:18:03 +1000 | [diff] [blame] | 198 | |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 199 | AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) |
| 200 | if test "x$OMAP" = xyes; then |
| 201 | AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support]) |
| 202 | fi |
| 203 | |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 204 | AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) |
| 205 | if test "x$EXYNOS" = xyes; then |
| 206 | AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) |
| 207 | fi |
| 208 | |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 209 | AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) |
| 210 | if test "x$FREEDRENO" = xyes; then |
| 211 | AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support]) |
| 212 | fi |
| 213 | |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 214 | AC_ARG_ENABLE([cairo-tests], |
| 215 | [AS_HELP_STRING([--enable-cairo-tests], |
| 216 | [Enable support for Cairo rendering in tests (default: auto)])], |
| 217 | [CAIRO=$enableval], [CAIRO=auto]) |
Kristian Høgsberg | 7a389aa | 2009-02-03 15:03:41 -0500 | [diff] [blame] | 218 | PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 219 | AC_MSG_CHECKING([whether to enable Cairo tests]) |
| 220 | if test "x$CAIRO" = xauto; then |
| 221 | CAIRO="$HAVE_CAIRO" |
Kristian Høgsberg | 7a389aa | 2009-02-03 15:03:41 -0500 | [diff] [blame] | 222 | fi |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 223 | if test "x$CAIRO" = xyes; then |
| 224 | if ! test "x$HAVE_CAIRO" = xyes; then |
| 225 | AC_MSG_ERROR([Cairo support required but not present]) |
| 226 | fi |
| 227 | AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support]) |
| 228 | fi |
| 229 | AC_MSG_RESULT([$CAIRO]) |
| 230 | AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) |
Kristian Høgsberg | 7a389aa | 2009-02-03 15:03:41 -0500 | [diff] [blame] | 231 | |
Kristian Høgsberg | e9d6116 | 2009-04-06 17:13:01 -0400 | [diff] [blame] | 232 | # For enumerating devices in test case |
| 233 | PKG_CHECK_MODULES(LIBUDEV, libudev, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no]) |
| 234 | if test "x$HAVE_LIBUDEV" = xyes; then |
| 235 | AC_DEFINE(HAVE_LIBUDEV, 1, [Have libudev support]) |
| 236 | fi |
| 237 | AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes]) |
| 238 | |
David Herrmann | 08cb5c1 | 2013-01-16 19:35:25 +0100 | [diff] [blame] | 239 | # xsltproc for docbook manpages |
| 240 | AC_ARG_ENABLE([manpages], |
| 241 | AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]), |
| 242 | [MANS=$enableval], [MANS=auto]) |
David Herrmann | 6b7e45c | 2012-09-28 23:44:19 +0200 | [diff] [blame] | 243 | AC_PATH_PROG(XSLTPROC, xsltproc) |
David Herrmann | 08cb5c1 | 2013-01-16 19:35:25 +0100 | [diff] [blame] | 244 | AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) |
| 245 | |
| 246 | # check for offline man-pages stylesheet |
| 247 | AC_MSG_CHECKING([for docbook manpages stylesheet]) |
| 248 | MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" |
| 249 | AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], |
| 250 | AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], |
| 251 | [HAVE_MANPAGES_STYLESHEET=yes])) |
| 252 | if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then |
| 253 | AC_SUBST(MANPAGES_STYLESHEET) |
| 254 | AC_MSG_RESULT([yes]) |
| 255 | else |
| 256 | AC_MSG_RESULT([no]) |
| 257 | fi |
| 258 | AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) |
David Herrmann | 6b7e45c | 2012-09-28 23:44:19 +0200 | [diff] [blame] | 259 | |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 260 | if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno" -o "x$FREEDRENO" != "xno"; then |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 261 | # Check for atomic intrinsics |
| 262 | AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, |
| 263 | [ |
| 264 | drm_cv_atomic_primitives="none" |
| 265 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 266 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 267 | int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); } |
| 268 | int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); } |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 269 | ]],[[]])], |
| 270 | [drm_cv_atomic_primitives="Intel"],[]) |
Chris Wilson | 901bacd | 2009-10-13 15:13:00 +0100 | [diff] [blame] | 271 | |
| 272 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
| 273 | AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops") |
| 274 | fi |
| 275 | |
Alan Coopersmith | b1ce1e6 | 2010-01-16 19:28:50 -0800 | [diff] [blame] | 276 | # atomic functions defined in <atomic.h> & libc on Solaris |
| 277 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
| 278 | AC_CHECK_FUNC([atomic_cas_uint], |
| 279 | drm_cv_atomic_primitives="Solaris") |
| 280 | fi |
| 281 | |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 282 | ]) |
| 283 | if test "x$drm_cv_atomic_primitives" = xIntel; then |
Pauli Nieminen | 21105bc | 2010-03-10 13:35:59 +0200 | [diff] [blame] | 284 | AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1, |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 285 | [Enable if your compiler supports the Intel __sync_* atomic primitives]) |
| 286 | fi |
Chris Wilson | 901bacd | 2009-10-13 15:13:00 +0100 | [diff] [blame] | 287 | if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then |
| 288 | AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed]) |
| 289 | fi |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 290 | |
| 291 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 292 | if test "x$INTEL" != "xauto"; then |
Pauli Nieminen | 30ce1fd | 2010-03-17 14:34:53 +0200 | [diff] [blame] | 293 | if test "x$INTEL" != "xno"; then |
| 294 | AC_MSG_ERROR([libdrm_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, or, failing both of those, disable support for Intel GPUs by passing --disable-intel to ./configure]) |
| 295 | fi |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 296 | else |
| 297 | AC_MSG_WARN([Disabling libdrm_intel. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) |
| 298 | INTEL=no |
| 299 | fi |
| 300 | if test "x$RADEON" != "xauto"; then |
Pauli Nieminen | 30ce1fd | 2010-03-17 14:34:53 +0200 | [diff] [blame] | 301 | if test "x$RADEON" != "xno"; then |
| 302 | AC_MSG_ERROR([libdrm_radeon depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for Radeon support by passing --disable-radeon to ./configure]) |
| 303 | fi |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 304 | else |
| 305 | AC_MSG_WARN([Disabling libdrm_radeon. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) |
| 306 | RADEON=no |
| 307 | fi |
Ben Skeggs | 292da61 | 2011-12-09 16:11:06 +1000 | [diff] [blame] | 308 | if test "x$NOUVEAU" != "xauto"; then |
| 309 | if test "x$NOUVEAU" != "xno"; then |
| 310 | AC_MSG_ERROR([libdrm_nouveau depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for NVIDIA GPUs by passing --disable-nouveau to ./configure]) |
| 311 | fi |
| 312 | else |
| 313 | AC_MSG_WARN([Disabling libdrm_nouveau. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) |
| 314 | NOUVEAU=no |
| 315 | fi |
Kristian Høgsberg | 863e39b | 2009-11-23 12:38:40 -0500 | [diff] [blame] | 316 | else |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 317 | if test "x$INTEL" != "xno"; then |
Paul Berry | 82c6938 | 2012-01-31 14:44:14 -0800 | [diff] [blame] | 318 | case $host_cpu in |
| 319 | i?86|x86_64) INTEL=yes ;; |
Jeremy Huddleston | efd6e81 | 2012-01-30 15:20:04 -0800 | [diff] [blame] | 320 | *) INTEL=no ;; |
| 321 | esac |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 322 | fi |
| 323 | if test "x$RADEON" != "xno"; then |
| 324 | RADEON=yes |
| 325 | fi |
Ben Skeggs | 292da61 | 2011-12-09 16:11:06 +1000 | [diff] [blame] | 326 | if test "x$NOUVEAU" != "xno"; then |
| 327 | NOUVEAU=yes |
| 328 | fi |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 329 | fi |
Chris Wilson | 04495ee | 2009-10-02 04:39:22 +0100 | [diff] [blame] | 330 | fi |
| 331 | |
Matt Turner | be30d35 | 2012-03-01 12:19:59 -0500 | [diff] [blame] | 332 | if test "x$INTEL" != "xno"; then |
| 333 | PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) |
| 334 | fi |
| 335 | AC_SUBST(PCIACCESS_CFLAGS) |
| 336 | AC_SUBST(PCIACCESS_LIBS) |
| 337 | |
Chris Wilson | ced219e | 2012-02-13 00:19:17 +0000 | [diff] [blame] | 338 | PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) |
| 339 | if test "x$have_valgrind" = "xyes"; then |
| 340 | AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) |
| 341 | fi |
Chris Wilson | 90b23cc | 2012-02-09 10:23:10 +0000 | [diff] [blame] | 342 | |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 343 | AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" != "xno"]) |
Pauli Nieminen | df97370 | 2010-03-17 22:41:08 +0200 | [diff] [blame] | 344 | AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" != "xno"]) |
Ben Skeggs | 292da61 | 2011-12-09 16:11:06 +1000 | [diff] [blame] | 345 | AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" != "xno"]) |
Benjamin Franzke | c75fe3a | 2011-02-17 10:46:35 +0100 | [diff] [blame] | 346 | if test "x$RADEON" = xyes; then |
| 347 | AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) |
| 348 | fi |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 349 | |
Kristian Høgsberg | a996803 | 2009-11-17 09:23:52 -0500 | [diff] [blame] | 350 | AC_ARG_WITH([kernel-source], |
| 351 | [AS_HELP_STRING([--with-kernel-source], |
| 352 | [specify path to linux kernel source])], |
| 353 | [kernel_source="$with_kernel_source"]) |
| 354 | AC_SUBST(kernel_source) |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 355 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 356 | AC_SUBST(WARN_CFLAGS) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 357 | AC_CONFIG_FILES([ |
Eric Anholt | d7cf298 | 2007-07-19 04:59:59 -0700 | [diff] [blame] | 358 | Makefile |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 359 | libkms/Makefile |
| 360 | libkms/libkms.pc |
Kristian Høgsberg | 4f57abf | 2009-11-17 11:14:54 -0500 | [diff] [blame] | 361 | intel/Makefile |
| 362 | intel/libdrm_intel.pc |
| 363 | radeon/Makefile |
| 364 | radeon/libdrm_radeon.pc |
| 365 | nouveau/Makefile |
| 366 | nouveau/libdrm_nouveau.pc |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 367 | omap/Makefile |
| 368 | omap/libdrm_omap.pc |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 369 | exynos/Makefile |
| 370 | exynos/libdrm_exynos.pc |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 371 | freedreno/Makefile |
| 372 | freedreno/libdrm_freedreno.pc |
Eric Anholt | d7cf298 | 2007-07-19 04:59:59 -0700 | [diff] [blame] | 373 | tests/Makefile |
Eric Anholt | 06ab2f6 | 2008-12-17 10:41:21 -0800 | [diff] [blame] | 374 | tests/modeprint/Makefile |
| 375 | tests/modetest/Makefile |
Jakob Bornecrantz | d207a38 | 2010-01-08 15:34:44 +0000 | [diff] [blame] | 376 | tests/kmstest/Makefile |
Jerome Glisse | ca49712 | 2011-11-10 16:47:10 -0500 | [diff] [blame] | 377 | tests/radeon/Makefile |
Jesse Barnes | c42d1a1 | 2010-04-27 15:43:20 -0400 | [diff] [blame] | 378 | tests/vbltest/Makefile |
Kristian Høgsberg | 4f070d5 | 2009-11-20 19:42:59 -0500 | [diff] [blame] | 379 | include/Makefile |
| 380 | include/drm/Makefile |
Jesse Barnes | 2426a6a | 2012-09-06 16:16:50 -0700 | [diff] [blame] | 381 | man/Makefile |
Julien Cristau | 89cc98c | 2009-10-31 02:25:44 +0100 | [diff] [blame] | 382 | libdrm.pc]) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 383 | AC_OUTPUT |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 384 | |
| 385 | echo "" |
| 386 | echo "$PACKAGE_STRING will be compiled with:" |
| 387 | echo "" |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 388 | echo " libkms $LIBKMS" |
Kristian Høgsberg | 863e39b | 2009-11-23 12:38:40 -0500 | [diff] [blame] | 389 | echo " Intel API $INTEL" |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 390 | echo " vmwgfx API $VMWGFX" |
Kristian Høgsberg | 863e39b | 2009-11-23 12:38:40 -0500 | [diff] [blame] | 391 | echo " Radeon API $RADEON" |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 392 | echo " Nouveau API $NOUVEAU" |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 393 | echo " OMAP API $OMAP" |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 394 | echo " EXYNOS API $EXYNOS" |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 395 | echo " Freedreno API $FREEDRENO" |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 396 | echo "" |