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], |
Rob Clark | 85ae22a | 2018-03-05 15:55:51 -0500 | [diff] [blame] | 23 | [2.4.91], |
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 | b983b05 | 2017-03-23 12:07:03 -0400 | [diff] [blame] | 31 | PKG_PROG_PKG_CONFIG |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 32 | |
Emil Velikov | e2b5318 | 2015-04-06 19:02:38 +0100 | [diff] [blame] | 33 | # Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC |
| 34 | m4_ifndef([XORG_MACROS_VERSION], |
| 35 | [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) |
| 36 | XORG_MACROS_VERSION(1.12) |
| 37 | XORG_WITH_XSLTPROC |
| 38 | XORG_MANPAGE_SECTIONS |
| 39 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 40 | AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 41 | |
Eric Anholt | 607e228 | 2010-05-25 20:13:37 -0700 | [diff] [blame] | 42 | # Enable quiet compiles on automake 1.11. |
| 43 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) |
| 44 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 45 | # Check for programs |
| 46 | AC_PROG_CC |
Emil Velikov | e59f00f | 2015-04-05 16:40:11 +0100 | [diff] [blame] | 47 | AC_PROG_CC_C99 |
Heiko Becker | 4f08bfe | 2018-02-19 15:13:15 +0000 | [diff] [blame] | 48 | AC_PROG_NM |
Emil Velikov | e59f00f | 2015-04-05 16:40:11 +0100 | [diff] [blame] | 49 | |
| 50 | if test "x$ac_cv_prog_cc_c99" = xno; then |
| 51 | AC_MSG_ERROR([Building libdrm requires C99 enabled compiler]) |
| 52 | fi |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 53 | |
| 54 | AC_USE_SYSTEM_EXTENSIONS |
| 55 | AC_SYS_LARGEFILE |
| 56 | AC_FUNC_ALLOCA |
| 57 | |
Adam Jackson | 7040fea | 2017-05-04 12:25:01 -0400 | [diff] [blame] | 58 | save_CFLAGS="$CFLAGS" |
| 59 | export CFLAGS="$CFLAGS -Werror" |
Mike Frysinger | 8c8d5dd | 2016-06-21 12:18:15 -0400 | [diff] [blame] | 60 | AC_HEADER_MAJOR |
Adam Jackson | 7040fea | 2017-05-04 12:25:01 -0400 | [diff] [blame] | 61 | CFLAGS="$save_CFLAGS" |
| 62 | |
Mike Frysinger | 8c8d5dd | 2016-06-21 12:18:15 -0400 | [diff] [blame] | 63 | AC_CHECK_HEADERS([sys/sysctl.h sys/select.h]) |
Alan Coopersmith | 0e1135d | 2015-03-07 11:44:32 -0800 | [diff] [blame] | 64 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 65 | # Initialize libtool |
| 66 | LT_PREREQ([2.2]) |
| 67 | LT_INIT([disable-static]) |
| 68 | |
Jonathan Gray | 9eb6c8a | 2018-02-20 17:09:14 +1100 | [diff] [blame] | 69 | dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the |
Emil Velikov | 6312017 | 2017-03-30 18:01:12 +0100 | [diff] [blame] | 70 | dnl project. Even then there's a notable issue as described in the project README |
| 71 | case "$host_os" in |
Jonathan Gray | 9eb6c8a | 2018-02-20 17:09:14 +1100 | [diff] [blame] | 72 | linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*) |
Emil Velikov | 6312017 | 2017-03-30 18:01:12 +0100 | [diff] [blame] | 73 | pthread_stubs_possible="no" |
| 74 | ;; |
| 75 | * ) |
| 76 | pthread_stubs_possible="yes" |
| 77 | ;; |
| 78 | esac |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 79 | |
Emil Velikov | 6312017 | 2017-03-30 18:01:12 +0100 | [diff] [blame] | 80 | if test "x$pthread_stubs_possible" = xyes; then |
| 81 | PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4) |
| 82 | AC_SUBST(PTHREADSTUBS_CFLAGS) |
| 83 | AC_SUBST(PTHREADSTUBS_LIBS) |
| 84 | fi |
Eric Anholt | 6df7b07 | 2008-06-12 23:22:26 -0700 | [diff] [blame] | 85 | |
Adam Jackson | 5a5478d | 2005-07-13 00:13:12 +0000 | [diff] [blame] | 86 | pkgconfigdir=${libdir}/pkgconfig |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 87 | AC_SUBST(pkgconfigdir) |
Xiaojie Yuan | 7e6bf88 | 2017-05-31 16:22:50 -0400 | [diff] [blame] | 88 | libdrmdatadir=${datadir}/libdrm |
| 89 | AC_SUBST(libdrmdatadir) |
| 90 | |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 91 | AC_ARG_ENABLE([udev], |
| 92 | [AS_HELP_STRING([--enable-udev], |
| 93 | [Enable support for using udev instead of mknod (default: disabled)])], |
| 94 | [UDEV=$enableval], [UDEV=no]) |
Adam Jackson | 07d23f9 | 2005-07-10 22:42:42 +0000 | [diff] [blame] | 95 | |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 96 | AC_ARG_ENABLE(libkms, |
Jakob Bornecrantz | 97003c5 | 2010-02-18 13:27:29 +0100 | [diff] [blame] | 97 | AS_HELP_STRING([--disable-libkms], |
Emil Velikov | 6485085 | 2015-03-17 00:19:26 +0000 | [diff] [blame] | 98 | [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]), |
Alan Coopersmith | 3c7ae8a | 2010-04-16 10:12:37 -0700 | [diff] [blame] | 99 | [LIBKMS=$enableval], [LIBKMS=auto]) |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 100 | |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 101 | AC_ARG_ENABLE(intel, |
| 102 | AS_HELP_STRING([--disable-intel], |
Emil Velikov | 6485085 | 2015-03-17 00:19:26 +0000 | [diff] [blame] | 103 | [Enable support for intel's KMS API (default: auto, enabled on x86)]), |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 104 | [INTEL=$enableval], [INTEL=auto]) |
Chris Wilson | ab3300c | 2009-10-03 22:56:04 +0100 | [diff] [blame] | 105 | |
Dave Airlie | 520c658 | 2010-02-02 10:58:50 +1000 | [diff] [blame] | 106 | AC_ARG_ENABLE(radeon, |
| 107 | AS_HELP_STRING([--disable-radeon], |
Pauli Nieminen | 966c990 | 2009-08-29 12:08:57 +0300 | [diff] [blame] | 108 | [Enable support for radeon's KMS API (default: auto)]), |
| 109 | [RADEON=$enableval], [RADEON=auto]) |
Dave Airlie | 520c658 | 2010-02-02 10:58:50 +1000 | [diff] [blame] | 110 | |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 111 | AC_ARG_ENABLE(amdgpu, |
| 112 | AS_HELP_STRING([--disable-amdgpu], |
| 113 | [Enable support for amdgpu's KMS API (default: auto)]), |
| 114 | [AMDGPU=$enableval], [AMDGPU=auto]) |
| 115 | |
Ben Skeggs | 292da61 | 2011-12-09 16:11:06 +1000 | [diff] [blame] | 116 | AC_ARG_ENABLE(nouveau, |
| 117 | AS_HELP_STRING([--disable-nouveau], |
| 118 | [Enable support for nouveau's KMS API (default: auto)]), |
| 119 | [NOUVEAU=$enableval], [NOUVEAU=auto]) |
| 120 | |
Jakob Bornecrantz | 7080bfd | 2012-08-13 13:35:07 +0200 | [diff] [blame] | 121 | AC_ARG_ENABLE(vmwgfx, |
| 122 | AS_HELP_STRING([--disable-vmwgfx], |
| 123 | [Enable support for vmwgfx's KMS API (default: yes)]), |
| 124 | [VMWGFX=$enableval], [VMWGFX=yes]) |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 125 | |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 126 | AC_ARG_ENABLE(omap-experimental-api, |
| 127 | AS_HELP_STRING([--enable-omap-experimental-api], |
| 128 | [Enable support for OMAP's experimental API (default: disabled)]), |
| 129 | [OMAP=$enableval], [OMAP=no]) |
Dave Airlie | 2fa2db1 | 2009-06-17 17:47:42 +1000 | [diff] [blame] | 130 | |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 131 | AC_ARG_ENABLE(exynos-experimental-api, |
| 132 | AS_HELP_STRING([--enable-exynos-experimental-api], |
| 133 | [Enable support for EXYNOS's experimental API (default: disabled)]), |
| 134 | [EXYNOS=$enableval], [EXYNOS=no]) |
| 135 | |
Rob Clark | a5003c6 | 2015-01-13 11:00:09 -0500 | [diff] [blame] | 136 | AC_ARG_ENABLE(freedreno, |
| 137 | AS_HELP_STRING([--disable-freedreno], |
Emil Velikov | 9244d98 | 2015-03-10 17:57:59 +0000 | [diff] [blame] | 138 | [Enable support for freedreno's KMS API (default: auto, enabled on arm)]), |
Maarten Lankhorst | d5bfbdc | 2015-01-21 11:46:04 +0100 | [diff] [blame] | 139 | [FREEDRENO=$enableval], [FREEDRENO=auto]) |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 140 | |
Rob Clark | 28662b7 | 2015-01-13 10:53:42 -0500 | [diff] [blame] | 141 | AC_ARG_ENABLE(freedreno-kgsl, |
| 142 | AS_HELP_STRING([--enable-freedreno-kgsl], |
| 143 | [Enable support for freedreno's to use downstream android kernel API (default: disabled)]), |
| 144 | [FREEDRENO_KGSL=$enableval], [FREEDRENO_KGSL=no]) |
| 145 | |
Thierry Reding | d6a4c2c | 2012-12-01 10:30:38 +0100 | [diff] [blame] | 146 | AC_ARG_ENABLE(tegra-experimental-api, |
| 147 | AS_HELP_STRING([--enable-tegra-experimental-api], |
| 148 | [Enable support for Tegra's experimental API (default: disabled)]), |
| 149 | [TEGRA=$enableval], [TEGRA=no]) |
| 150 | |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 151 | AC_ARG_ENABLE(vc4, |
| 152 | AS_HELP_STRING([--disable-vc4], |
| 153 | [Enable support for vc4's API (default: auto, enabled on arm)]), |
| 154 | [VC4=$enableval], [VC4=auto]) |
| 155 | |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 156 | AC_ARG_ENABLE(etnaviv-experimental-api, |
| 157 | AS_HELP_STRING([--enable-etnaviv-experimental-api], |
| 158 | [Enable support for etnaviv's experimental API (default: disabled)]), |
| 159 | [ETNAVIV=$enableval], [ETNAVIV=no]) |
| 160 | |
Benjamin Gaignard | 62d8866 | 2013-01-30 14:34:00 +0100 | [diff] [blame] | 161 | AC_ARG_ENABLE(install-test-programs, |
| 162 | AS_HELP_STRING([--enable-install-test-programs], |
| 163 | [Install test programs (default: no)]), |
| 164 | [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) |
| 165 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 166 | dnl =========================================================================== |
| 167 | dnl check compiler flags |
| 168 | AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ |
| 169 | AC_MSG_CHECKING([whether $CC supports $1]) |
| 170 | |
| 171 | libdrm_save_CFLAGS="$CFLAGS" |
| 172 | CFLAGS="$CFLAGS $1" |
| 173 | |
Emil Velikov | bf4a7cd | 2013-09-19 17:21:01 +0100 | [diff] [blame] | 174 | AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 175 | CFLAGS="$libdrm_save_CFLAGS" |
| 176 | |
| 177 | if test "x$libdrm_cc_flag" = "xyes"; then |
| 178 | ifelse([$2], , :, [$2]) |
| 179 | else |
| 180 | ifelse([$3], , :, [$3]) |
| 181 | fi |
| 182 | AC_MSG_RESULT([$libdrm_cc_flag]) |
| 183 | ]) |
| 184 | |
Jesse Barnes | badc634 | 2009-01-07 11:47:52 -0800 | [diff] [blame] | 185 | dnl We use clock_gettime to check for timeouts in drmWaitVBlank |
| 186 | |
| 187 | AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=], |
| 188 | [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt], |
| 189 | [AC_MSG_ERROR([Couldn't find clock_gettime])])]) |
| 190 | AC_SUBST([CLOCK_LIB]) |
| 191 | |
Eric Engestrom | 1a44bba | 2018-01-26 17:04:28 +0000 | [diff] [blame] | 192 | AC_CHECK_FUNCS([open_memstream], |
| 193 | [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])], |
| 194 | [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)]) |
Eric Anholt | ccbc403 | 2012-01-03 12:33:37 -0800 | [diff] [blame] | 195 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 196 | dnl Use lots of warning flags with with gcc and compatible compilers |
| 197 | |
| 198 | dnl Note: if you change the following variable, the cache is automatically |
| 199 | dnl skipped and all flags rechecked. So there's no need to do anything |
| 200 | dnl else. If for any reason you need to force a recheck, just change |
| 201 | dnl MAYBE_WARN in an ignorable way (like adding whitespace) |
| 202 | |
Eric Engestrom | ba17673 | 2018-01-26 11:18:03 +0000 | [diff] [blame] | 203 | MAYBE_WARN="-Wall -Wextra -Werror=undef \ |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 204 | -Wsign-compare -Werror-implicit-function-declaration \ |
| 205 | -Wpointer-arith -Wwrite-strings -Wstrict-prototypes \ |
| 206 | -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ |
| 207 | -Wpacked -Wswitch-enum -Wmissing-format-attribute \ |
Eric Anholt | 71ebcf4 | 2012-08-02 11:25:57 -0700 | [diff] [blame] | 208 | -Wstrict-aliasing=2 -Winit-self \ |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 209 | -Wdeclaration-after-statement -Wold-style-definition \ |
Emil Velikov | 7faedc9 | 2015-08-15 17:00:37 +0100 | [diff] [blame] | 210 | -Wno-unused-parameter \ |
Marek Olšák | 5198f2b | 2016-01-12 22:09:24 +0100 | [diff] [blame] | 211 | -Wno-attributes -Wno-long-long -Winline -Wshadow \ |
| 212 | -Wno-missing-field-initializers" |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 213 | |
| 214 | # invalidate cached value if MAYBE_WARN has changed |
| 215 | if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then |
| 216 | unset libdrm_cv_warn_cflags |
| 217 | fi |
| 218 | AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [ |
| 219 | echo |
| 220 | WARN_CFLAGS="" |
| 221 | |
| 222 | # Some warning options are not supported by all versions of |
| 223 | # gcc, so test all desired options against the current |
| 224 | # compiler. |
| 225 | # |
| 226 | # Note that there are some order dependencies |
| 227 | # here. Specifically, an option that disables a warning will |
| 228 | # have no net effect if a later option then enables that |
| 229 | # warnings, (perhaps implicitly). So we put some grouped |
| 230 | # options (-Wall and -Wextra) up front and the -Wno options |
| 231 | # last. |
| 232 | |
| 233 | for W in $MAYBE_WARN; do |
| 234 | LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"]) |
| 235 | done |
| 236 | |
| 237 | libdrm_cv_warn_cflags=$WARN_CFLAGS |
| 238 | libdrm_cv_warn_maybe=$MAYBE_WARN |
| 239 | |
| 240 | AC_MSG_CHECKING([which warning flags were supported])]) |
| 241 | WARN_CFLAGS="$libdrm_cv_warn_cflags" |
| 242 | |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 243 | # Check for atomic intrinsics |
| 244 | AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [ |
| 245 | drm_cv_atomic_primitives="none" |
| 246 | |
| 247 | AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
Emil Velikov | 8913cd9 | 2015-11-16 13:51:01 +0000 | [diff] [blame] | 248 | int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); } |
Jonathan Gray | f4b83bf | 2015-08-29 17:32:50 +1000 | [diff] [blame] | 249 | int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); } |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 250 | ]],[[]])], [drm_cv_atomic_primitives="Intel"],[]) |
| 251 | |
| 252 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
| 253 | AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops") |
| 254 | fi |
| 255 | |
| 256 | # atomic functions defined in <atomic.h> & libc on Solaris |
| 257 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
| 258 | AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris") |
| 259 | fi |
| 260 | ]) |
| 261 | |
| 262 | if test "x$drm_cv_atomic_primitives" = xIntel; then |
| 263 | AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1, |
| 264 | [Enable if your compiler supports the Intel __sync_* atomic primitives]) |
Eric Engestrom | 0db36bd | 2018-01-05 15:25:31 +0000 | [diff] [blame] | 265 | else |
| 266 | AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0) |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 267 | fi |
| 268 | if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then |
| 269 | AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed]) |
Eric Engestrom | 0db36bd | 2018-01-05 15:25:31 +0000 | [diff] [blame] | 270 | else |
| 271 | AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0) |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 272 | fi |
| 273 | |
Emil Velikov | 0e4d5a3 | 2015-03-17 00:19:25 +0000 | [diff] [blame] | 274 | dnl Print out the approapriate message considering the value set be the |
| 275 | dnl respective in $1. |
| 276 | dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ... |
| 277 | dnl $2 - libdrm shortname. Eg. intel, freedreno, ... |
| 278 | dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ... |
| 279 | dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ... |
| 280 | AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [ |
| 281 | case "x$1" in |
| 282 | xyes) AC_MSG_ERROR([libdrm_$2 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 $3 GPUs by passing --disable-$4 to ./configure]) ;; |
| 283 | xauto) AC_MSG_WARN([Disabling $2. 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.]) ;; |
| 284 | *) ;; |
| 285 | esac |
| 286 | ]) |
| 287 | |
| 288 | if test "x$drm_cv_atomic_primitives" = "xnone"; then |
| 289 | LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel) |
| 290 | INTEL=no |
| 291 | |
| 292 | LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon) |
| 293 | RADEON=no |
| 294 | |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 295 | LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu) |
| 296 | AMDGPU=no |
| 297 | |
Emil Velikov | 0e4d5a3 | 2015-03-17 00:19:25 +0000 | [diff] [blame] | 298 | LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau) |
| 299 | NOUVEAU=no |
| 300 | |
| 301 | LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api) |
| 302 | OMAP=no |
| 303 | |
| 304 | LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno) |
| 305 | FREEDRENO=no |
| 306 | |
| 307 | LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api) |
| 308 | TEGRA=no |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 309 | |
| 310 | LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api) |
| 311 | ETNAVIV=no |
Emil Velikov | 0e4d5a3 | 2015-03-17 00:19:25 +0000 | [diff] [blame] | 312 | else |
| 313 | if test "x$INTEL" = xauto; then |
| 314 | case $host_cpu in |
| 315 | i?86|x86_64) INTEL=yes ;; |
| 316 | *) INTEL=no ;; |
| 317 | esac |
| 318 | fi |
| 319 | if test "x$RADEON" = xauto; then |
| 320 | RADEON=yes |
| 321 | fi |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 322 | if test "x$AMDGPU" = xauto; then |
| 323 | AMDGPU=yes |
| 324 | fi |
Emil Velikov | 0e4d5a3 | 2015-03-17 00:19:25 +0000 | [diff] [blame] | 325 | if test "x$NOUVEAU" = xauto; then |
| 326 | NOUVEAU=yes |
| 327 | fi |
| 328 | if test "x$FREEDRENO" = xauto; then |
| 329 | case $host_cpu in |
| 330 | arm*|aarch64) FREEDRENO=yes ;; |
| 331 | *) FREEDRENO=no ;; |
| 332 | esac |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 333 | fi |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 334 | if test "x$VC4" = xauto; then |
| 335 | case $host_cpu in |
| 336 | arm*|aarch64) VC4=yes ;; |
| 337 | *) VC4=no ;; |
| 338 | esac |
| 339 | fi |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 340 | fi |
| 341 | |
| 342 | if test "x$INTEL" != "xno"; then |
| 343 | PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) |
| 344 | fi |
| 345 | AC_SUBST(PCIACCESS_CFLAGS) |
| 346 | AC_SUBST(PCIACCESS_LIBS) |
| 347 | |
Dave Airlie | 9101a02 | 2008-08-24 16:54:43 +1000 | [diff] [blame] | 348 | if test "x$UDEV" = xyes; then |
| 349 | AC_DEFINE(UDEV, 1, [Have UDEV support]) |
Eric Engestrom | 0758520 | 2018-03-16 17:04:50 +0000 | [diff] [blame] | 350 | else |
| 351 | AC_DEFINE(UDEV, 0) |
Dave Airlie | 9101a02 | 2008-08-24 16:54:43 +1000 | [diff] [blame] | 352 | fi |
| 353 | |
Alan Coopersmith | 3c7ae8a | 2010-04-16 10:12:37 -0700 | [diff] [blame] | 354 | AC_CANONICAL_HOST |
| 355 | if test "x$LIBKMS" = xauto ; then |
| 356 | case $host_os in |
| 357 | linux*) LIBKMS="yes" ;; |
Robert Millan | cbb31f2 | 2014-01-23 14:46:05 +0000 | [diff] [blame] | 358 | freebsd* | kfreebsd*-gnu) |
| 359 | LIBKMS="yes" ;; |
François Tigeot | 1d86869 | 2014-02-17 10:07:54 +0100 | [diff] [blame] | 360 | dragonfly*) LIBKMS="yes" ;; |
Alan Coopersmith | 3c7ae8a | 2010-04-16 10:12:37 -0700 | [diff] [blame] | 361 | *) LIBKMS="no" ;; |
| 362 | esac |
| 363 | fi |
| 364 | |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 365 | AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes]) |
| 366 | |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 367 | AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes]) |
Emil Velikov | f3fd11b | 2014-09-07 17:54:39 +0100 | [diff] [blame] | 368 | if test "x$INTEL" = xyes; then |
| 369 | AC_DEFINE(HAVE_INTEL, 1, [Have intel support]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 370 | else |
| 371 | AC_DEFINE(HAVE_INTEL, 0) |
Emil Velikov | f3fd11b | 2014-09-07 17:54:39 +0100 | [diff] [blame] | 372 | fi |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 373 | |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 374 | AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes]) |
Jakob Bornecrantz | 5dbc1b3 | 2010-01-05 20:55:02 +0100 | [diff] [blame] | 375 | if test "x$VMWGFX" = xyes; then |
| 376 | AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 377 | else |
| 378 | AC_DEFINE(HAVE_VMWGFX, 0) |
Jakob Bornecrantz | 5dbc1b3 | 2010-01-05 20:55:02 +0100 | [diff] [blame] | 379 | fi |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 380 | |
Pekka Paalanen | 4a0d19e | 2009-02-22 12:40:47 +0200 | [diff] [blame] | 381 | AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) |
Marcin Kościelnicki | afd74ec | 2010-02-27 15:04:37 +0000 | [diff] [blame] | 382 | if test "x$NOUVEAU" = xyes; then |
| 383 | AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 384 | else |
| 385 | AC_DEFINE(HAVE_NOUVEAU, 0) |
Marcin Kościelnicki | afd74ec | 2010-02-27 15:04:37 +0000 | [diff] [blame] | 386 | fi |
Ben Skeggs | 7e5c512 | 2009-02-11 14:18:03 +1000 | [diff] [blame] | 387 | |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 388 | AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 389 | |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 390 | AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) |
| 391 | if test "x$EXYNOS" = xyes; then |
| 392 | AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 393 | else |
| 394 | AC_DEFINE(HAVE_EXYNOS, 0) |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 395 | fi |
| 396 | |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 397 | AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 398 | |
Emil Velikov | d20413a | 2015-03-17 00:19:27 +0000 | [diff] [blame] | 399 | if test "x$FREEDRENO_KGSL" = xyes; then |
| 400 | if test "x$FREEDRENO" != xyes; then |
| 401 | AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled]) |
| 402 | fi |
| 403 | fi |
Rob Clark | 28662b7 | 2015-01-13 10:53:42 -0500 | [diff] [blame] | 404 | AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes]) |
| 405 | if test "x$FREEDRENO_KGSL" = xyes; then |
| 406 | AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface]) |
Eric Engestrom | ec53f48 | 2018-01-26 15:19:03 +0000 | [diff] [blame] | 407 | else |
| 408 | AC_DEFINE(HAVE_FREEDRENO_KGSL, 0) |
Rob Clark | 28662b7 | 2015-01-13 10:53:42 -0500 | [diff] [blame] | 409 | fi |
| 410 | |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 411 | AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes]) |
| 412 | if test "x$RADEON" = xyes; then |
| 413 | AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 414 | else |
| 415 | AC_DEFINE(HAVE_RADEON, 0) |
Emil Velikov | be7d297 | 2014-09-07 17:39:46 +0100 | [diff] [blame] | 416 | fi |
| 417 | |
Marcin Ślusarz | 798022b | 2016-01-24 13:17:34 +0100 | [diff] [blame] | 418 | if test "x$AMDGPU" != xno; then |
| 419 | # Detect cunit library |
| 420 | PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no]) |
| 421 | # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We |
| 422 | # do this because Debian (Ubuntu) lacks pkg-config file for cunit. |
| 423 | # fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian |
| 424 | if test "x${have_cunit}" = "xno"; then |
| 425 | AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no]) |
| 426 | if test "x${have_cunit}" = "xyes"; then |
| 427 | CUNIT_LIBS="-lcunit" |
| 428 | CUNIT_CFLAGS="" |
| 429 | AC_SUBST([CUNIT_LIBS]) |
| 430 | AC_SUBST([CUNIT_CFLAGS]) |
| 431 | fi |
Alex Deucher | e1f31d9 | 2015-08-06 13:38:31 -0400 | [diff] [blame] | 432 | fi |
Marcin Ślusarz | 798022b | 2016-01-24 13:17:34 +0100 | [diff] [blame] | 433 | else |
| 434 | have_cunit=no |
Alex Deucher | e1f31d9 | 2015-08-06 13:38:31 -0400 | [diff] [blame] | 435 | fi |
Alex Deucher | 11a390e | 2015-08-06 11:13:48 -0400 | [diff] [blame] | 436 | AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"]) |
Alex Deucher | b93594b | 2015-08-06 11:19:55 -0400 | [diff] [blame] | 437 | |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 438 | AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes]) |
| 439 | if test "x$AMDGPU" = xyes; then |
| 440 | AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support]) |
Alex Deucher | 3c5fe78 | 2015-04-20 12:15:23 -0400 | [diff] [blame] | 441 | |
Alex Deucher | 3c5fe78 | 2015-04-20 12:15:23 -0400 | [diff] [blame] | 442 | if test "x$have_cunit" = "xno"; then |
| 443 | AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) |
| 444 | fi |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 445 | else |
| 446 | AC_DEFINE(HAVE_AMDGPU, 0) |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 447 | fi |
| 448 | |
Thierry Reding | d6a4c2c | 2012-12-01 10:30:38 +0100 | [diff] [blame] | 449 | AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes]) |
Thierry Reding | d6a4c2c | 2012-12-01 10:30:38 +0100 | [diff] [blame] | 450 | |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 451 | AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes]) |
| 452 | if test "x$VC4" = xyes; then |
| 453 | AC_DEFINE(HAVE_VC4, 1, [Have VC4 support]) |
Eric Engestrom | ee47329 | 2018-01-26 16:21:30 +0000 | [diff] [blame] | 454 | else |
| 455 | AC_DEFINE(HAVE_VC4, 0) |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 456 | fi |
| 457 | |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 458 | AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes]) |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 459 | |
Benjamin Gaignard | 62d8866 | 2013-01-30 14:34:00 +0100 | [diff] [blame] | 460 | AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes]) |
Benjamin Gaignard | 62d8866 | 2013-01-30 14:34:00 +0100 | [diff] [blame] | 461 | |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 462 | AC_ARG_ENABLE([cairo-tests], |
| 463 | [AS_HELP_STRING([--enable-cairo-tests], |
| 464 | [Enable support for Cairo rendering in tests (default: auto)])], |
| 465 | [CAIRO=$enableval], [CAIRO=auto]) |
Marcin Ślusarz | 798022b | 2016-01-24 13:17:34 +0100 | [diff] [blame] | 466 | if test "x$CAIRO" != xno; then |
| 467 | PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) |
| 468 | fi |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 469 | AC_MSG_CHECKING([whether to enable Cairo tests]) |
| 470 | if test "x$CAIRO" = xauto; then |
| 471 | CAIRO="$HAVE_CAIRO" |
Kristian Høgsberg | 7a389aa | 2009-02-03 15:03:41 -0500 | [diff] [blame] | 472 | fi |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 473 | if test "x$CAIRO" = xyes; then |
| 474 | if ! test "x$HAVE_CAIRO" = xyes; then |
| 475 | AC_MSG_ERROR([Cairo support required but not present]) |
| 476 | fi |
| 477 | AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support]) |
Eric Engestrom | d2b0a4e | 2018-01-26 15:15:29 +0000 | [diff] [blame] | 478 | else |
| 479 | AC_DEFINE(HAVE_CAIRO, 0) |
Daniel Stone | 14db948 | 2012-10-04 01:21:57 +0000 | [diff] [blame] | 480 | fi |
| 481 | AC_MSG_RESULT([$CAIRO]) |
| 482 | AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) |
Kristian Høgsberg | 7a389aa | 2009-02-03 15:03:41 -0500 | [diff] [blame] | 483 | |
David Herrmann | 08cb5c1 | 2013-01-16 19:35:25 +0100 | [diff] [blame] | 484 | # xsltproc for docbook manpages |
| 485 | AC_ARG_ENABLE([manpages], |
Emil Velikov | e2b5318 | 2015-04-06 19:02:38 +0100 | [diff] [blame] | 486 | AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]), |
David Herrmann | 08cb5c1 | 2013-01-16 19:35:25 +0100 | [diff] [blame] | 487 | [MANS=$enableval], [MANS=auto]) |
David Herrmann | 08cb5c1 | 2013-01-16 19:35:25 +0100 | [diff] [blame] | 488 | AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) |
| 489 | |
| 490 | # check for offline man-pages stylesheet |
| 491 | AC_MSG_CHECKING([for docbook manpages stylesheet]) |
| 492 | MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" |
| 493 | AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], |
| 494 | AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], |
| 495 | [HAVE_MANPAGES_STYLESHEET=yes])) |
| 496 | if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then |
| 497 | AC_SUBST(MANPAGES_STYLESHEET) |
| 498 | AC_MSG_RESULT([yes]) |
| 499 | else |
| 500 | AC_MSG_RESULT([no]) |
| 501 | fi |
| 502 | AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) |
David Herrmann | 6b7e45c | 2012-09-28 23:44:19 +0200 | [diff] [blame] | 503 | |
Matt Turner | 47a2de2 | 2015-06-22 09:56:33 -0700 | [diff] [blame] | 504 | AC_ARG_ENABLE(valgrind, |
| 505 | [AS_HELP_STRING([--enable-valgrind], |
| 506 | [Build libdrm with valgrind support (default: auto)])], |
Emil Velikov | 676c806 | 2015-06-30 14:01:14 +0100 | [diff] [blame] | 507 | [VALGRIND=$enableval], [VALGRIND=auto]) |
Marcin Ślusarz | 798022b | 2016-01-24 13:17:34 +0100 | [diff] [blame] | 508 | if test "x$VALGRIND" != xno; then |
| 509 | PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) |
| 510 | fi |
Matt Turner | 47a2de2 | 2015-06-22 09:56:33 -0700 | [diff] [blame] | 511 | AC_MSG_CHECKING([whether to enable Valgrind support]) |
| 512 | if test "x$VALGRIND" = xauto; then |
| 513 | VALGRIND="$have_valgrind" |
| 514 | fi |
| 515 | |
| 516 | if test "x$VALGRIND" = "xyes"; then |
| 517 | if ! test "x$have_valgrind" = xyes; then |
| 518 | AC_MSG_ERROR([Valgrind support required but not present]) |
| 519 | fi |
Chris Wilson | ced219e | 2012-02-13 00:19:17 +0000 | [diff] [blame] | 520 | AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) |
Eric Engestrom | 1d7bbf8 | 2018-01-26 15:08:39 +0000 | [diff] [blame] | 521 | else |
| 522 | AC_DEFINE([HAVE_VALGRIND], 0) |
Chris Wilson | ced219e | 2012-02-13 00:19:17 +0000 | [diff] [blame] | 523 | fi |
Chris Wilson | 90b23cc | 2012-02-09 10:23:10 +0000 | [diff] [blame] | 524 | |
Matt Turner | 47a2de2 | 2015-06-22 09:56:33 -0700 | [diff] [blame] | 525 | AC_MSG_RESULT([$VALGRIND]) |
| 526 | |
Kristian Høgsberg | a996803 | 2009-11-17 09:23:52 -0500 | [diff] [blame] | 527 | AC_ARG_WITH([kernel-source], |
| 528 | [AS_HELP_STRING([--with-kernel-source], |
| 529 | [specify path to linux kernel source])], |
| 530 | [kernel_source="$with_kernel_source"]) |
| 531 | AC_SUBST(kernel_source) |
Chris Wilson | fc8f6be | 2009-10-12 23:58:47 +0100 | [diff] [blame] | 532 | |
Emil Velikov | 0f8da82 | 2015-03-31 22:32:11 +0100 | [diff] [blame] | 533 | AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))]) |
Emil Velikov | 40902b9 | 2015-03-09 12:18:32 +0000 | [diff] [blame] | 534 | AC_LINK_IFELSE([AC_LANG_PROGRAM([ |
Emil Velikov | 40902b9 | 2015-03-09 12:18:32 +0000 | [diff] [blame] | 535 | int foo_hidden( void ) __attribute__((visibility("hidden"))); |
| 536 | ])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])); |
| 537 | |
| 538 | if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then |
Emil Velikov | 0f8da82 | 2015-03-31 22:32:11 +0100 | [diff] [blame] | 539 | AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))]) |
Eric Engestrom | e8d3d88 | 2018-03-16 17:07:08 +0000 | [diff] [blame] | 540 | else |
| 541 | AC_DEFINE(HAVE_VISIBILITY, 0) |
Emil Velikov | 40902b9 | 2015-03-09 12:18:32 +0000 | [diff] [blame] | 542 | fi |
| 543 | |
Eric Anholt | c485742 | 2008-06-03 10:20:49 -0700 | [diff] [blame] | 544 | AC_SUBST(WARN_CFLAGS) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 545 | AC_CONFIG_FILES([ |
Eric Anholt | d7cf298 | 2007-07-19 04:59:59 -0700 | [diff] [blame] | 546 | Makefile |
Xiaojie Yuan | 7e6bf88 | 2017-05-31 16:22:50 -0400 | [diff] [blame] | 547 | data/Makefile |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 548 | libkms/Makefile |
| 549 | libkms/libkms.pc |
Kristian Høgsberg | 4f57abf | 2009-11-17 11:14:54 -0500 | [diff] [blame] | 550 | intel/Makefile |
| 551 | intel/libdrm_intel.pc |
| 552 | radeon/Makefile |
| 553 | radeon/libdrm_radeon.pc |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 554 | amdgpu/Makefile |
| 555 | amdgpu/libdrm_amdgpu.pc |
Kristian Høgsberg | 4f57abf | 2009-11-17 11:14:54 -0500 | [diff] [blame] | 556 | nouveau/Makefile |
| 557 | nouveau/libdrm_nouveau.pc |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 558 | omap/Makefile |
| 559 | omap/libdrm_omap.pc |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 560 | exynos/Makefile |
| 561 | exynos/libdrm_exynos.pc |
Rob Clark | 41fc2cc | 2012-10-07 18:57:31 -0500 | [diff] [blame] | 562 | freedreno/Makefile |
| 563 | freedreno/libdrm_freedreno.pc |
Thierry Reding | d6a4c2c | 2012-12-01 10:30:38 +0100 | [diff] [blame] | 564 | tegra/Makefile |
| 565 | tegra/libdrm_tegra.pc |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 566 | vc4/Makefile |
| 567 | vc4/libdrm_vc4.pc |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 568 | etnaviv/Makefile |
| 569 | etnaviv/libdrm_etnaviv.pc |
Eric Anholt | d7cf298 | 2007-07-19 04:59:59 -0700 | [diff] [blame] | 570 | tests/Makefile |
Eric Anholt | 06ab2f6 | 2008-12-17 10:41:21 -0800 | [diff] [blame] | 571 | tests/modeprint/Makefile |
| 572 | tests/modetest/Makefile |
Thierry Reding | c13c504 | 2015-12-09 18:37:42 +0100 | [diff] [blame] | 573 | tests/kms/Makefile |
Jakob Bornecrantz | d207a38 | 2010-01-08 15:34:44 +0000 | [diff] [blame] | 574 | tests/kmstest/Makefile |
Paulo Zanoni | 8f66c98 | 2012-05-15 18:38:30 -0300 | [diff] [blame] | 575 | tests/proptest/Makefile |
Jerome Glisse | ca49712 | 2011-11-10 16:47:10 -0500 | [diff] [blame] | 576 | tests/radeon/Makefile |
Alex Deucher | 3c5fe78 | 2015-04-20 12:15:23 -0400 | [diff] [blame] | 577 | tests/amdgpu/Makefile |
Jesse Barnes | c42d1a1 | 2010-04-27 15:43:20 -0400 | [diff] [blame] | 578 | tests/vbltest/Makefile |
Inki Dae | bbf6e3d | 2013-02-18 21:51:00 +0900 | [diff] [blame] | 579 | tests/exynos/Makefile |
Thierry Reding | 93035cf | 2014-02-19 14:48:31 +0100 | [diff] [blame] | 580 | tests/tegra/Makefile |
Maarten Lankhorst | 5ea6f1c | 2015-02-26 11:54:03 +0100 | [diff] [blame] | 581 | tests/nouveau/Makefile |
The etnaviv authors | 0659558 | 2016-09-06 18:16:02 +0200 | [diff] [blame] | 582 | tests/etnaviv/Makefile |
Thierry Reding | 1ec3c44 | 2015-12-09 18:37:39 +0100 | [diff] [blame] | 583 | tests/util/Makefile |
Jesse Barnes | 2426a6a | 2012-09-06 16:16:50 -0700 | [diff] [blame] | 584 | man/Makefile |
Julien Cristau | 89cc98c | 2009-10-31 02:25:44 +0100 | [diff] [blame] | 585 | libdrm.pc]) |
Javier Jardón | fd3ed34 | 2011-02-09 13:28:20 +0000 | [diff] [blame] | 586 | AC_OUTPUT |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 587 | |
| 588 | echo "" |
| 589 | echo "$PACKAGE_STRING will be compiled with:" |
| 590 | echo "" |
Jakob Bornecrantz | 8c0571a | 2009-11-24 17:54:10 +0100 | [diff] [blame] | 591 | echo " libkms $LIBKMS" |
Kristian Høgsberg | 863e39b | 2009-11-23 12:38:40 -0500 | [diff] [blame] | 592 | echo " Intel API $INTEL" |
Jakob Bornecrantz | 6d3b8bb | 2010-01-05 19:53:10 +0100 | [diff] [blame] | 593 | echo " vmwgfx API $VMWGFX" |
Kristian Høgsberg | 863e39b | 2009-11-23 12:38:40 -0500 | [diff] [blame] | 594 | echo " Radeon API $RADEON" |
Alex Deucher | 0936139 | 2015-04-20 12:04:22 -0400 | [diff] [blame] | 595 | echo " AMDGPU API $AMDGPU" |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 596 | echo " Nouveau API $NOUVEAU" |
Rob Clark | ef1b958 | 2012-03-28 14:39:43 -0500 | [diff] [blame] | 597 | echo " OMAP API $OMAP" |
Inki Dae | e07b650 | 2012-05-04 19:13:14 +0900 | [diff] [blame] | 598 | echo " EXYNOS API $EXYNOS" |
Rob Clark | 28662b7 | 2015-01-13 10:53:42 -0500 | [diff] [blame] | 599 | echo " Freedreno API $FREEDRENO (kgsl: $FREEDRENO_KGSL)" |
Thierry Reding | d6a4c2c | 2012-12-01 10:30:38 +0100 | [diff] [blame] | 600 | echo " Tegra API $TEGRA" |
Eric Anholt | 3c717f6 | 2016-01-25 10:16:56 -0800 | [diff] [blame] | 601 | echo " VC4 API $VC4" |
The etnaviv authors | 95e2cc6 | 2016-09-06 18:15:53 +0200 | [diff] [blame] | 602 | echo " Etnaviv API $ETNAVIV" |
Kristian Høgsberg | 696fdb1 | 2009-11-23 11:41:15 -0500 | [diff] [blame] | 603 | echo "" |