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 21AC_PREREQ([2.63]) 22AC_INIT([libdrm], 23 [2.4.99], 24 [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI], 25 [libdrm]) 26 27AC_CONFIG_HEADERS([config.h]) 28AC_CONFIG_SRCDIR([Makefile.am]) 29AC_CONFIG_MACRO_DIR([m4]) 30AC_CONFIG_AUX_DIR([build-aux]) 31PKG_PROG_PKG_CONFIG 32 33# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC 34m4_ifndef([XORG_MACROS_VERSION], 35 [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) 36XORG_MACROS_VERSION(1.12) 37XORG_WITH_XSLTPROC 38XORG_MANPAGE_SECTIONS 39 40AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2]) 41 42# Enable quiet compiles on automake 1.11. 43m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 44 45# Check for programs 46AC_PROG_CC 47AC_PROG_CC_C99 48AC_PROG_NM 49 50if test "x$ac_cv_prog_cc_c99" = xno; then 51 AC_MSG_ERROR([Building libdrm requires C99 enabled compiler]) 52fi 53 54AC_USE_SYSTEM_EXTENSIONS 55AC_SYS_LARGEFILE 56AC_FUNC_ALLOCA 57 58save_CFLAGS="$CFLAGS" 59export CFLAGS="$CFLAGS -Werror" 60AC_HEADER_MAJOR 61CFLAGS="$save_CFLAGS" 62 63AC_CHECK_HEADERS([sys/sysctl.h sys/select.h]) 64 65# Initialize libtool 66LT_PREREQ([2.2]) 67LT_INIT([disable-static]) 68 69dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the 70dnl project. Even then there's a notable issue as described in the project README 71case "$host_os" in 72linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*) 73 pthread_stubs_possible="no" 74 ;; 75* ) 76 pthread_stubs_possible="yes" 77 ;; 78esac 79 80if 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) 84fi 85 86pkgconfigdir=${libdir}/pkgconfig 87AC_SUBST(pkgconfigdir) 88libdrmdatadir=${datadir}/libdrm 89AC_SUBST(libdrmdatadir) 90 91AC_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]) 95 96AC_ARG_ENABLE(libkms, 97 AS_HELP_STRING([--disable-libkms], 98 [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]), 99 [LIBKMS=$enableval], [LIBKMS=auto]) 100 101AC_ARG_ENABLE(intel, 102 AS_HELP_STRING([--disable-intel], 103 [Enable support for intel's KMS API (default: auto, enabled on x86)]), 104 [INTEL=$enableval], [INTEL=auto]) 105 106AC_ARG_ENABLE(radeon, 107 AS_HELP_STRING([--disable-radeon], 108 [Enable support for radeon's KMS API (default: auto)]), 109 [RADEON=$enableval], [RADEON=auto]) 110 111AC_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 116AC_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 121AC_ARG_ENABLE(vmwgfx, 122 AS_HELP_STRING([--disable-vmwgfx], 123 [Enable support for vmwgfx's KMS API (default: yes)]), 124 [VMWGFX=$enableval], [VMWGFX=yes]) 125 126AC_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]) 130 131AC_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 136AC_ARG_ENABLE(freedreno, 137 AS_HELP_STRING([--disable-freedreno], 138 [Enable support for freedreno's KMS API (default: auto, enabled on arm)]), 139 [FREEDRENO=$enableval], [FREEDRENO=auto]) 140 141AC_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 146AC_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 151AC_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 156AC_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 161AC_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 166dnl =========================================================================== 167dnl check compiler flags 168AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ 169 AC_MSG_CHECKING([whether $CC supports $1]) 170 171 libdrm_save_CFLAGS="$CFLAGS" 172 CFLAGS="$CFLAGS $1" 173 174 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) 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 185dnl We use clock_gettime to check for timeouts in drmWaitVBlank 186 187AC_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])])]) 190AC_SUBST([CLOCK_LIB]) 191 192AC_CHECK_FUNCS([open_memstream], 193 [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])], 194 [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)]) 195 196dnl Use lots of warning flags with with gcc and compatible compilers 197 198dnl Note: if you change the following variable, the cache is automatically 199dnl skipped and all flags rechecked. So there's no need to do anything 200dnl else. If for any reason you need to force a recheck, just change 201dnl MAYBE_WARN in an ignorable way (like adding whitespace) 202 203MAYBE_WARN="-Wall -Wextra -Werror=undef \ 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 \ 208-Wstrict-aliasing=2 -Winit-self \ 209-Wdeclaration-after-statement -Wold-style-definition \ 210-Wno-unused-parameter \ 211-Wno-attributes -Wno-long-long -Winline -Wshadow \ 212-Wno-missing-field-initializers" 213 214# invalidate cached value if MAYBE_WARN has changed 215if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then 216 unset libdrm_cv_warn_cflags 217fi 218AC_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])]) 241WARN_CFLAGS="$libdrm_cv_warn_cflags" 242 243# Check for atomic intrinsics 244AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [ 245 drm_cv_atomic_primitives="none" 246 247 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 248 int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); } 249 int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); } 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 262if 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]) 265else 266 AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0) 267fi 268if 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]) 270else 271 AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0) 272fi 273 274dnl Print out the approapriate message considering the value set be the 275dnl respective in $1. 276dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ... 277dnl $2 - libdrm shortname. Eg. intel, freedreno, ... 278dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ... 279dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ... 280AC_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 288if 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 295 LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu) 296 AMDGPU=no 297 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 309 310 LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api) 311 ETNAVIV=no 312else 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 322 if test "x$AMDGPU" = xauto; then 323 AMDGPU=yes 324 fi 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 333 fi 334 if test "x$VC4" = xauto; then 335 case $host_cpu in 336 arm*|aarch64) VC4=yes ;; 337 *) VC4=no ;; 338 esac 339 fi 340fi 341 342if test "x$INTEL" != "xno"; then 343 PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) 344fi 345AC_SUBST(PCIACCESS_CFLAGS) 346AC_SUBST(PCIACCESS_LIBS) 347 348if test "x$UDEV" = xyes; then 349 AC_DEFINE(UDEV, 1, [Have UDEV support]) 350else 351 AC_DEFINE(UDEV, 0) 352fi 353 354AC_CANONICAL_HOST 355if test "x$LIBKMS" = xauto ; then 356 case $host_os in 357 linux*) LIBKMS="yes" ;; 358 freebsd* | kfreebsd*-gnu) 359 LIBKMS="yes" ;; 360 dragonfly*) LIBKMS="yes" ;; 361 *) LIBKMS="no" ;; 362 esac 363fi 364 365AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes]) 366 367AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes]) 368if test "x$INTEL" = xyes; then 369 AC_DEFINE(HAVE_INTEL, 1, [Have intel support]) 370else 371 AC_DEFINE(HAVE_INTEL, 0) 372fi 373 374AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes]) 375if test "x$VMWGFX" = xyes; then 376 AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers]) 377else 378 AC_DEFINE(HAVE_VMWGFX, 0) 379fi 380 381AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) 382if test "x$NOUVEAU" = xyes; then 383 AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) 384else 385 AC_DEFINE(HAVE_NOUVEAU, 0) 386fi 387 388AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) 389 390AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) 391if test "x$EXYNOS" = xyes; then 392 AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) 393else 394 AC_DEFINE(HAVE_EXYNOS, 0) 395fi 396 397AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) 398 399if 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 403fi 404AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes]) 405if test "x$FREEDRENO_KGSL" = xyes; then 406 AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface]) 407else 408 AC_DEFINE(HAVE_FREEDRENO_KGSL, 0) 409fi 410 411AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes]) 412if test "x$RADEON" = xyes; then 413 AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) 414else 415 AC_DEFINE(HAVE_RADEON, 0) 416fi 417 418if 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 432 fi 433else 434 have_cunit=no 435fi 436AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"]) 437 438AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes]) 439if test "x$AMDGPU" = xyes; then 440 AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support]) 441 442 if test "x$have_cunit" = "xno"; then 443 AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) 444 fi 445else 446 AC_DEFINE(HAVE_AMDGPU, 0) 447fi 448 449AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes]) 450 451AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes]) 452if test "x$VC4" = xyes; then 453 AC_DEFINE(HAVE_VC4, 1, [Have VC4 support]) 454else 455 AC_DEFINE(HAVE_VC4, 0) 456fi 457 458AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes]) 459 460AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes]) 461 462AC_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]) 466if test "x$CAIRO" != xno; then 467 PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) 468fi 469AC_MSG_CHECKING([whether to enable Cairo tests]) 470if test "x$CAIRO" = xauto; then 471 CAIRO="$HAVE_CAIRO" 472fi 473if 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]) 478else 479 AC_DEFINE(HAVE_CAIRO, 0) 480fi 481AC_MSG_RESULT([$CAIRO]) 482AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) 483 484# xsltproc for docbook manpages 485AC_ARG_ENABLE([manpages], 486 AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]), 487 [MANS=$enableval], [MANS=auto]) 488AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) 489 490# check for offline man-pages stylesheet 491AC_MSG_CHECKING([for docbook manpages stylesheet]) 492MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" 493AC_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])) 496if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then 497 AC_SUBST(MANPAGES_STYLESHEET) 498 AC_MSG_RESULT([yes]) 499else 500 AC_MSG_RESULT([no]) 501fi 502AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) 503 504AC_ARG_ENABLE(valgrind, 505 [AS_HELP_STRING([--enable-valgrind], 506 [Build libdrm with valgrind support (default: auto)])], 507 [VALGRIND=$enableval], [VALGRIND=auto]) 508if test "x$VALGRIND" != xno; then 509 PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) 510fi 511AC_MSG_CHECKING([whether to enable Valgrind support]) 512if test "x$VALGRIND" = xauto; then 513 VALGRIND="$have_valgrind" 514fi 515 516if 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 520 AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) 521else 522 AC_DEFINE([HAVE_VALGRIND], 0) 523fi 524 525AC_MSG_RESULT([$VALGRIND]) 526 527AC_ARG_WITH([kernel-source], 528 [AS_HELP_STRING([--with-kernel-source], 529 [specify path to linux kernel source])], 530 [kernel_source="$with_kernel_source"]) 531AC_SUBST(kernel_source) 532 533AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))]) 534AC_LINK_IFELSE([AC_LANG_PROGRAM([ 535 int foo_hidden( void ) __attribute__((visibility("hidden"))); 536])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])); 537 538if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then 539 AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))]) 540else 541 AC_DEFINE(HAVE_VISIBILITY, 0) 542fi 543 544CPPFLAGS="$CPPFLAGS -include config.h" 545 546AC_SUBST(WARN_CFLAGS) 547AC_CONFIG_FILES([ 548 Makefile 549 data/Makefile 550 libkms/Makefile 551 libkms/libkms.pc 552 intel/Makefile 553 intel/libdrm_intel.pc 554 radeon/Makefile 555 radeon/libdrm_radeon.pc 556 amdgpu/Makefile 557 amdgpu/libdrm_amdgpu.pc 558 nouveau/Makefile 559 nouveau/libdrm_nouveau.pc 560 omap/Makefile 561 omap/libdrm_omap.pc 562 exynos/Makefile 563 exynos/libdrm_exynos.pc 564 freedreno/Makefile 565 freedreno/libdrm_freedreno.pc 566 tegra/Makefile 567 tegra/libdrm_tegra.pc 568 vc4/Makefile 569 vc4/libdrm_vc4.pc 570 etnaviv/Makefile 571 etnaviv/libdrm_etnaviv.pc 572 tests/Makefile 573 tests/modeprint/Makefile 574 tests/modetest/Makefile 575 tests/kms/Makefile 576 tests/kmstest/Makefile 577 tests/proptest/Makefile 578 tests/radeon/Makefile 579 tests/amdgpu/Makefile 580 tests/vbltest/Makefile 581 tests/exynos/Makefile 582 tests/tegra/Makefile 583 tests/nouveau/Makefile 584 tests/etnaviv/Makefile 585 tests/util/Makefile 586 man/Makefile 587 libdrm.pc]) 588AC_OUTPUT 589 590echo "" 591echo "$PACKAGE_STRING will be compiled with:" 592echo "" 593echo " libkms $LIBKMS" 594echo " Intel API $INTEL" 595echo " vmwgfx API $VMWGFX" 596echo " Radeon API $RADEON" 597echo " AMDGPU API $AMDGPU" 598echo " Nouveau API $NOUVEAU" 599echo " OMAP API $OMAP" 600echo " EXYNOS API $EXYNOS" 601echo " Freedreno API $FREEDRENO (kgsl: $FREEDRENO_KGSL)" 602echo " Tegra API $TEGRA" 603echo " VC4 API $VC4" 604echo " Etnaviv API $ETNAVIV" 605echo "" 606