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.91], 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(rockchip-experimental-api, 152 AS_HELP_STRING([--enable-rockchip-experimental-api], 153 [Enable support for rockchip's experimental API (default: disabled)]), 154 [ROCKCHIP=$enableval], [ROCKCHIP=no]) 155 156AC_ARG_ENABLE(vc4, 157 AS_HELP_STRING([--disable-vc4], 158 [Enable support for vc4's API (default: auto, enabled on arm)]), 159 [VC4=$enableval], [VC4=auto]) 160 161AC_ARG_ENABLE(etnaviv-experimental-api, 162 AS_HELP_STRING([--enable-etnaviv-experimental-api], 163 [Enable support for etnaviv's experimental API (default: disabled)]), 164 [ETNAVIV=$enableval], [ETNAVIV=no]) 165 166AC_ARG_ENABLE(install-test-programs, 167 AS_HELP_STRING([--enable-install-test-programs], 168 [Install test programs (default: no)]), 169 [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) 170 171dnl =========================================================================== 172dnl check compiler flags 173AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ 174 AC_MSG_CHECKING([whether $CC supports $1]) 175 176 libdrm_save_CFLAGS="$CFLAGS" 177 CFLAGS="$CFLAGS $1" 178 179 AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no]) 180 CFLAGS="$libdrm_save_CFLAGS" 181 182 if test "x$libdrm_cc_flag" = "xyes"; then 183 ifelse([$2], , :, [$2]) 184 else 185 ifelse([$3], , :, [$3]) 186 fi 187 AC_MSG_RESULT([$libdrm_cc_flag]) 188]) 189 190dnl We use clock_gettime to check for timeouts in drmWaitVBlank 191 192AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=], 193 [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt], 194 [AC_MSG_ERROR([Couldn't find clock_gettime])])]) 195AC_SUBST([CLOCK_LIB]) 196 197AC_CHECK_FUNCS([open_memstream], 198 [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])], 199 [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)]) 200 201dnl Use lots of warning flags with with gcc and compatible compilers 202 203dnl Note: if you change the following variable, the cache is automatically 204dnl skipped and all flags rechecked. So there's no need to do anything 205dnl else. If for any reason you need to force a recheck, just change 206dnl MAYBE_WARN in an ignorable way (like adding whitespace) 207 208MAYBE_WARN="-Wall -Wextra -Werror=undef \ 209-Wsign-compare -Werror-implicit-function-declaration \ 210-Wpointer-arith -Wwrite-strings -Wstrict-prototypes \ 211-Wmissing-prototypes -Wmissing-declarations -Wnested-externs \ 212-Wpacked -Wswitch-enum -Wmissing-format-attribute \ 213-Wstrict-aliasing=2 -Winit-self \ 214-Wdeclaration-after-statement -Wold-style-definition \ 215-Wno-unused-parameter \ 216-Wno-attributes -Wno-long-long -Winline -Wshadow \ 217-Wno-missing-field-initializers" 218 219# invalidate cached value if MAYBE_WARN has changed 220if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then 221 unset libdrm_cv_warn_cflags 222fi 223AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [ 224 echo 225 WARN_CFLAGS="" 226 227 # Some warning options are not supported by all versions of 228 # gcc, so test all desired options against the current 229 # compiler. 230 # 231 # Note that there are some order dependencies 232 # here. Specifically, an option that disables a warning will 233 # have no net effect if a later option then enables that 234 # warnings, (perhaps implicitly). So we put some grouped 235 # options (-Wall and -Wextra) up front and the -Wno options 236 # last. 237 238 for W in $MAYBE_WARN; do 239 LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"]) 240 done 241 242 libdrm_cv_warn_cflags=$WARN_CFLAGS 243 libdrm_cv_warn_maybe=$MAYBE_WARN 244 245 AC_MSG_CHECKING([which warning flags were supported])]) 246WARN_CFLAGS="$libdrm_cv_warn_cflags" 247 248# Check for atomic intrinsics 249AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [ 250 drm_cv_atomic_primitives="none" 251 252 AC_LINK_IFELSE([AC_LANG_PROGRAM([[ 253 int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); } 254 int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); } 255 ]],[[]])], [drm_cv_atomic_primitives="Intel"],[]) 256 257 if test "x$drm_cv_atomic_primitives" = "xnone"; then 258 AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops") 259 fi 260 261 # atomic functions defined in <atomic.h> & libc on Solaris 262 if test "x$drm_cv_atomic_primitives" = "xnone"; then 263 AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris") 264 fi 265]) 266 267if test "x$drm_cv_atomic_primitives" = xIntel; then 268 AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1, 269 [Enable if your compiler supports the Intel __sync_* atomic primitives]) 270else 271 AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0) 272fi 273if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then 274 AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed]) 275else 276 AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0) 277fi 278 279dnl Print out the approapriate message considering the value set be the 280dnl respective in $1. 281dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ... 282dnl $2 - libdrm shortname. Eg. intel, freedreno, ... 283dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ... 284dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ... 285AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [ 286 case "x$1" in 287 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]) ;; 288 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.]) ;; 289 *) ;; 290 esac 291]) 292 293if test "x$drm_cv_atomic_primitives" = "xnone"; then 294 LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel) 295 INTEL=no 296 297 LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon) 298 RADEON=no 299 300 LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu) 301 AMDGPU=no 302 303 LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau) 304 NOUVEAU=no 305 306 LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api) 307 OMAP=no 308 309 LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno) 310 FREEDRENO=no 311 312 LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api) 313 TEGRA=no 314 315 LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api) 316 ETNAVIV=no 317else 318 if test "x$INTEL" = xauto; then 319 case $host_cpu in 320 i?86|x86_64) INTEL=yes ;; 321 *) INTEL=no ;; 322 esac 323 fi 324 if test "x$RADEON" = xauto; then 325 RADEON=yes 326 fi 327 if test "x$AMDGPU" = xauto; then 328 AMDGPU=yes 329 fi 330 if test "x$NOUVEAU" = xauto; then 331 NOUVEAU=yes 332 fi 333 if test "x$FREEDRENO" = xauto; then 334 case $host_cpu in 335 arm*|aarch64) FREEDRENO=yes ;; 336 *) FREEDRENO=no ;; 337 esac 338 fi 339 if test "x$VC4" = xauto; then 340 case $host_cpu in 341 arm*|aarch64) VC4=yes ;; 342 *) VC4=no ;; 343 esac 344 fi 345fi 346 347if test "x$INTEL" != "xno"; then 348 PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) 349fi 350AC_SUBST(PCIACCESS_CFLAGS) 351AC_SUBST(PCIACCESS_LIBS) 352 353if test "x$UDEV" = xyes; then 354 AC_DEFINE(UDEV, 1, [Have UDEV support]) 355else 356 AC_DEFINE(UDEV, 0) 357fi 358 359AC_CANONICAL_HOST 360if test "x$LIBKMS" = xauto ; then 361 case $host_os in 362 linux*) LIBKMS="yes" ;; 363 freebsd* | kfreebsd*-gnu) 364 LIBKMS="yes" ;; 365 dragonfly*) LIBKMS="yes" ;; 366 *) LIBKMS="no" ;; 367 esac 368fi 369 370AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes]) 371 372AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes]) 373if test "x$INTEL" = xyes; then 374 AC_DEFINE(HAVE_INTEL, 1, [Have intel support]) 375else 376 AC_DEFINE(HAVE_INTEL, 0) 377fi 378 379AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes]) 380if test "x$VMWGFX" = xyes; then 381 AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers]) 382else 383 AC_DEFINE(HAVE_VMWGFX, 0) 384fi 385 386AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) 387if test "x$NOUVEAU" = xyes; then 388 AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support]) 389else 390 AC_DEFINE(HAVE_NOUVEAU, 0) 391fi 392 393AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes]) 394 395AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes]) 396if test "x$EXYNOS" = xyes; then 397 AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support]) 398else 399 AC_DEFINE(HAVE_EXYNOS, 0) 400fi 401 402AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes]) 403 404if test "x$FREEDRENO_KGSL" = xyes; then 405 if test "x$FREEDRENO" != xyes; then 406 AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled]) 407 fi 408fi 409AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes]) 410if test "x$FREEDRENO_KGSL" = xyes; then 411 AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface]) 412else 413 AC_DEFINE(HAVE_FREEDRENO_KGSL, 0) 414fi 415 416AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes]) 417if test "x$RADEON" = xyes; then 418 AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) 419else 420 AC_DEFINE(HAVE_RADEON, 0) 421fi 422 423if test "x$AMDGPU" != xno; then 424 # Detect cunit library 425 PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no]) 426 # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We 427 # do this because Debian (Ubuntu) lacks pkg-config file for cunit. 428 # fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian 429 if test "x${have_cunit}" = "xno"; then 430 AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no]) 431 if test "x${have_cunit}" = "xyes"; then 432 CUNIT_LIBS="-lcunit" 433 CUNIT_CFLAGS="" 434 AC_SUBST([CUNIT_LIBS]) 435 AC_SUBST([CUNIT_CFLAGS]) 436 fi 437 fi 438else 439 have_cunit=no 440fi 441AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"]) 442 443AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes]) 444if test "x$AMDGPU" = xyes; then 445 AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support]) 446 447 if test "x$have_cunit" = "xno"; then 448 AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) 449 fi 450else 451 AC_DEFINE(HAVE_AMDGPU, 0) 452fi 453 454AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes]) 455 456AM_CONDITIONAL(HAVE_ROCKCHIP, [test "x$ROCKCHIP" = xyes]) 457if test "x$ROCKCHIP" = xyes; then 458 AC_DEFINE(HAVE_ROCKCHIP, 1, [Have ROCKCHIP support]) 459fi 460 461AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes]) 462if test "x$VC4" = xyes; then 463 AC_DEFINE(HAVE_VC4, 1, [Have VC4 support]) 464else 465 AC_DEFINE(HAVE_VC4, 0) 466fi 467 468AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes]) 469 470AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes]) 471 472AC_ARG_ENABLE([cairo-tests], 473 [AS_HELP_STRING([--enable-cairo-tests], 474 [Enable support for Cairo rendering in tests (default: auto)])], 475 [CAIRO=$enableval], [CAIRO=auto]) 476if test "x$CAIRO" != xno; then 477 PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no]) 478fi 479AC_MSG_CHECKING([whether to enable Cairo tests]) 480if test "x$CAIRO" = xauto; then 481 CAIRO="$HAVE_CAIRO" 482fi 483if test "x$CAIRO" = xyes; then 484 if ! test "x$HAVE_CAIRO" = xyes; then 485 AC_MSG_ERROR([Cairo support required but not present]) 486 fi 487 AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support]) 488else 489 AC_DEFINE(HAVE_CAIRO, 0) 490fi 491AC_MSG_RESULT([$CAIRO]) 492AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes]) 493 494# xsltproc for docbook manpages 495AC_ARG_ENABLE([manpages], 496 AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]), 497 [MANS=$enableval], [MANS=auto]) 498AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"]) 499 500# check for offline man-pages stylesheet 501AC_MSG_CHECKING([for docbook manpages stylesheet]) 502MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" 503AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc], 504 AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`], 505 [HAVE_MANPAGES_STYLESHEET=yes])) 506if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then 507 AC_SUBST(MANPAGES_STYLESHEET) 508 AC_MSG_RESULT([yes]) 509else 510 AC_MSG_RESULT([no]) 511fi 512AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"]) 513 514AC_ARG_ENABLE(valgrind, 515 [AS_HELP_STRING([--enable-valgrind], 516 [Build libdrm with valgrind support (default: auto)])], 517 [VALGRIND=$enableval], [VALGRIND=auto]) 518if test "x$VALGRIND" != xno; then 519 PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no]) 520fi 521AC_MSG_CHECKING([whether to enable Valgrind support]) 522if test "x$VALGRIND" = xauto; then 523 VALGRIND="$have_valgrind" 524fi 525 526if test "x$VALGRIND" = "xyes"; then 527 if ! test "x$have_valgrind" = xyes; then 528 AC_MSG_ERROR([Valgrind support required but not present]) 529 fi 530 AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings]) 531else 532 AC_DEFINE([HAVE_VALGRIND], 0) 533fi 534 535AC_MSG_RESULT([$VALGRIND]) 536 537AC_ARG_WITH([kernel-source], 538 [AS_HELP_STRING([--with-kernel-source], 539 [specify path to linux kernel source])], 540 [kernel_source="$with_kernel_source"]) 541AC_SUBST(kernel_source) 542 543AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))]) 544AC_LINK_IFELSE([AC_LANG_PROGRAM([ 545 int foo_hidden( void ) __attribute__((visibility("hidden"))); 546])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no])); 547 548if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then 549 AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))]) 550else 551 AC_DEFINE(HAVE_VISIBILITY, 0) 552fi 553 554CFLAGS="$CFLAGS -include config.h" 555 556AC_SUBST(WARN_CFLAGS) 557AC_CONFIG_FILES([ 558 Makefile 559 data/Makefile 560 libkms/Makefile 561 libkms/libkms.pc 562 intel/Makefile 563 intel/libdrm_intel.pc 564 radeon/Makefile 565 radeon/libdrm_radeon.pc 566 amdgpu/Makefile 567 amdgpu/libdrm_amdgpu.pc 568 nouveau/Makefile 569 nouveau/libdrm_nouveau.pc 570 omap/Makefile 571 omap/libdrm_omap.pc 572 exynos/Makefile 573 exynos/libdrm_exynos.pc 574 freedreno/Makefile 575 freedreno/libdrm_freedreno.pc 576 tegra/Makefile 577 tegra/libdrm_tegra.pc 578 rockchip/Makefile 579 rockchip/libdrm_rockchip.pc 580 vc4/Makefile 581 vc4/libdrm_vc4.pc 582 etnaviv/Makefile 583 etnaviv/libdrm_etnaviv.pc 584 tests/Makefile 585 tests/modeprint/Makefile 586 tests/modetest/Makefile 587 tests/kms/Makefile 588 tests/kmstest/Makefile 589 tests/proptest/Makefile 590 tests/radeon/Makefile 591 tests/amdgpu/Makefile 592 tests/vbltest/Makefile 593 tests/exynos/Makefile 594 tests/tegra/Makefile 595 tests/nouveau/Makefile 596 tests/planetest/Makefile 597 tests/etnaviv/Makefile 598 tests/util/Makefile 599 man/Makefile 600 libdrm.pc]) 601AC_OUTPUT 602 603echo "" 604echo "$PACKAGE_STRING will be compiled with:" 605echo "" 606echo " libkms $LIBKMS" 607echo " Intel API $INTEL" 608echo " vmwgfx API $VMWGFX" 609echo " Radeon API $RADEON" 610echo " AMDGPU API $AMDGPU" 611echo " Nouveau API $NOUVEAU" 612echo " OMAP API $OMAP" 613echo " EXYNOS API $EXYNOS" 614echo " Freedreno API $FREEDRENO (kgsl: $FREEDRENO_KGSL)" 615echo " Tegra API $TEGRA" 616echo " Rockchip API $ROCKCHIP" 617echo " VC4 API $VC4" 618echo " Etnaviv API $ETNAVIV" 619echo "" 620