OSDN Git Service

Export drmDevicesEqual
[android-x86/external-libdrm.git] / configure.ac
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
21 AC_PREREQ([2.63])
22 AC_INIT([libdrm],
23         [2.4.80],
24         [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
25         [libdrm])
26
27 AC_CONFIG_HEADERS([config.h])
28 AC_CONFIG_SRCDIR([Makefile.am])
29 AC_CONFIG_MACRO_DIR([m4])
30 AC_CONFIG_AUX_DIR([build-aux])
31 PKG_PROG_PKG_CONFIG
32
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
40 AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
41
42 # Enable quiet compiles on automake 1.11.
43 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
44
45 # Check for programs
46 AC_PROG_CC
47 AC_PROG_CC_C99
48
49 if test "x$ac_cv_prog_cc_c99" = xno; then
50         AC_MSG_ERROR([Building libdrm requires C99 enabled compiler])
51 fi
52
53 AC_USE_SYSTEM_EXTENSIONS
54 AC_SYS_LARGEFILE
55 AC_FUNC_ALLOCA
56
57 AC_HEADER_MAJOR
58 AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
59
60 # Initialize libtool
61 LT_PREREQ([2.2])
62 LT_INIT([disable-static])
63
64 dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the
65 dnl project. Even then there's a notable issue as described in the project README
66 case "$host_os" in
67 linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
68     pthread_stubs_possible="no"
69     ;;
70 * )
71     pthread_stubs_possible="yes"
72     ;;
73 esac
74
75 if test "x$pthread_stubs_possible" = xyes; then
76     PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4)
77     AC_SUBST(PTHREADSTUBS_CFLAGS)
78     AC_SUBST(PTHREADSTUBS_LIBS)
79 fi
80
81 pkgconfigdir=${libdir}/pkgconfig
82 AC_SUBST(pkgconfigdir)
83 AC_ARG_ENABLE([udev],
84               [AS_HELP_STRING([--enable-udev],
85                               [Enable support for using udev instead of mknod (default: disabled)])],
86               [UDEV=$enableval], [UDEV=no])
87
88 AC_ARG_ENABLE(libkms,
89               AS_HELP_STRING([--disable-libkms],
90               [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]),
91               [LIBKMS=$enableval], [LIBKMS=auto])
92
93 AC_ARG_ENABLE(intel,
94               AS_HELP_STRING([--disable-intel],
95               [Enable support for intel's KMS API (default: auto, enabled on x86)]),
96               [INTEL=$enableval], [INTEL=auto])
97
98 AC_ARG_ENABLE(radeon,
99               AS_HELP_STRING([--disable-radeon],
100               [Enable support for radeon's KMS API (default: auto)]),
101               [RADEON=$enableval], [RADEON=auto])
102
103 AC_ARG_ENABLE(amdgpu,
104               AS_HELP_STRING([--disable-amdgpu],
105               [Enable support for amdgpu's KMS API (default: auto)]),
106               [AMDGPU=$enableval], [AMDGPU=auto])
107
108 AC_ARG_ENABLE(nouveau,
109               AS_HELP_STRING([--disable-nouveau],
110               [Enable support for nouveau's KMS API (default: auto)]),
111               [NOUVEAU=$enableval], [NOUVEAU=auto])
112
113 AC_ARG_ENABLE(vmwgfx,
114               AS_HELP_STRING([--disable-vmwgfx],
115               [Enable support for vmwgfx's KMS API (default: yes)]),
116               [VMWGFX=$enableval], [VMWGFX=yes])
117
118 AC_ARG_ENABLE(omap-experimental-api,
119               AS_HELP_STRING([--enable-omap-experimental-api],
120               [Enable support for OMAP's experimental API (default: disabled)]),
121               [OMAP=$enableval], [OMAP=no])
122
123 AC_ARG_ENABLE(exynos-experimental-api,
124               AS_HELP_STRING([--enable-exynos-experimental-api],
125               [Enable support for EXYNOS's experimental API (default: disabled)]),
126               [EXYNOS=$enableval], [EXYNOS=no])
127
128 AC_ARG_ENABLE(freedreno,
129               AS_HELP_STRING([--disable-freedreno],
130               [Enable support for freedreno's KMS API (default: auto, enabled on arm)]),
131               [FREEDRENO=$enableval], [FREEDRENO=auto])
132
133 AC_ARG_ENABLE(freedreno-kgsl,
134               AS_HELP_STRING([--enable-freedreno-kgsl],
135               [Enable support for freedreno's to use downstream android kernel API (default: disabled)]),
136               [FREEDRENO_KGSL=$enableval], [FREEDRENO_KGSL=no])
137
138 AC_ARG_ENABLE(tegra-experimental-api,
139               AS_HELP_STRING([--enable-tegra-experimental-api],
140               [Enable support for Tegra's experimental API (default: disabled)]),
141               [TEGRA=$enableval], [TEGRA=no])
142
143 AC_ARG_ENABLE(vc4,
144               AS_HELP_STRING([--disable-vc4],
145               [Enable support for vc4's API (default: auto, enabled on arm)]),
146               [VC4=$enableval], [VC4=auto])
147
148 AC_ARG_ENABLE(etnaviv-experimental-api,
149               AS_HELP_STRING([--enable-etnaviv-experimental-api],
150               [Enable support for etnaviv's experimental API (default: disabled)]),
151               [ETNAVIV=$enableval], [ETNAVIV=no])
152
153 AC_ARG_ENABLE(install-test-programs,
154                   AS_HELP_STRING([--enable-install-test-programs],
155                   [Install test programs (default: no)]),
156                   [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
157
158 dnl ===========================================================================
159 dnl check compiler flags
160 AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
161   AC_MSG_CHECKING([whether $CC supports $1])
162
163   libdrm_save_CFLAGS="$CFLAGS"
164   CFLAGS="$CFLAGS $1"
165
166   AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no])
167   CFLAGS="$libdrm_save_CFLAGS"
168
169   if test "x$libdrm_cc_flag" = "xyes"; then
170     ifelse([$2], , :, [$2])
171   else
172     ifelse([$3], , :, [$3])
173   fi
174   AC_MSG_RESULT([$libdrm_cc_flag])
175 ])
176
177 dnl We use clock_gettime to check for timeouts in drmWaitVBlank
178
179 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
180                [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
181                              [AC_MSG_ERROR([Couldn't find clock_gettime])])])
182 AC_SUBST([CLOCK_LIB])
183
184 AC_CHECK_FUNCS([open_memstream], [HAVE_OPEN_MEMSTREAM=yes])
185
186 dnl Use lots of warning flags with with gcc and compatible compilers
187
188 dnl Note: if you change the following variable, the cache is automatically
189 dnl skipped and all flags rechecked.  So there's no need to do anything
190 dnl else.  If for any reason you need to force a recheck, just change
191 dnl MAYBE_WARN in an ignorable way (like adding whitespace)
192
193 MAYBE_WARN="-Wall -Wextra \
194 -Wsign-compare -Werror-implicit-function-declaration \
195 -Wpointer-arith -Wwrite-strings -Wstrict-prototypes \
196 -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
197 -Wpacked -Wswitch-enum -Wmissing-format-attribute \
198 -Wstrict-aliasing=2 -Winit-self \
199 -Wdeclaration-after-statement -Wold-style-definition \
200 -Wno-unused-parameter \
201 -Wno-attributes -Wno-long-long -Winline -Wshadow \
202 -Wno-missing-field-initializers"
203
204 # invalidate cached value if MAYBE_WARN has changed
205 if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then
206         unset libdrm_cv_warn_cflags
207 fi
208 AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [
209         echo
210         WARN_CFLAGS=""
211
212         # Some warning options are not supported by all versions of
213         # gcc, so test all desired options against the current
214         # compiler.
215         #
216         # Note that there are some order dependencies
217         # here. Specifically, an option that disables a warning will
218         # have no net effect if a later option then enables that
219         # warnings, (perhaps implicitly). So we put some grouped
220         # options (-Wall and -Wextra) up front and the -Wno options
221         # last.
222
223         for W in $MAYBE_WARN; do
224                 LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"])
225         done
226
227         libdrm_cv_warn_cflags=$WARN_CFLAGS
228         libdrm_cv_warn_maybe=$MAYBE_WARN
229
230         AC_MSG_CHECKING([which warning flags were supported])])
231 WARN_CFLAGS="$libdrm_cv_warn_cflags"
232
233 # Check for atomic intrinsics
234 AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [
235         drm_cv_atomic_primitives="none"
236
237         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
238         int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
239         int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
240                                           ]],[[]])], [drm_cv_atomic_primitives="Intel"],[])
241
242         if test "x$drm_cv_atomic_primitives" = "xnone"; then
243                 AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
244         fi
245
246         # atomic functions defined in <atomic.h> & libc on Solaris
247         if test "x$drm_cv_atomic_primitives" = "xnone"; then
248                 AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris")
249         fi
250 ])
251
252 if test "x$drm_cv_atomic_primitives" = xIntel; then
253         AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1,
254                 [Enable if your compiler supports the Intel __sync_* atomic primitives])
255 fi
256 if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
257         AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
258 fi
259
260 dnl Print out the approapriate message considering the value set be the
261 dnl respective in $1.
262 dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ...
263 dnl $2 - libdrm shortname. Eg. intel, freedreno, ...
264 dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ...
265 dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ...
266 AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [
267         case "x$1" in
268                 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]) ;;
269                 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.]) ;;
270                 *)      ;;
271         esac
272 ])
273
274 if test "x$drm_cv_atomic_primitives" = "xnone"; then
275         LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel)
276         INTEL=no
277
278         LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon)
279         RADEON=no
280
281         LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu)
282         AMDGPU=no
283
284         LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau)
285         NOUVEAU=no
286
287         LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api)
288         OMAP=no
289
290         LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno)
291         FREEDRENO=no
292
293         LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api)
294         TEGRA=no
295
296         LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api)
297         ETNAVIV=no
298 else
299         if test "x$INTEL" = xauto; then
300                 case $host_cpu in
301                         i?86|x86_64)    INTEL=yes ;;
302                         *)              INTEL=no ;;
303                 esac
304         fi
305         if test "x$RADEON" = xauto; then
306                 RADEON=yes
307         fi
308         if test "x$AMDGPU" = xauto; then
309                 AMDGPU=yes
310         fi
311         if test "x$NOUVEAU" = xauto; then
312                 NOUVEAU=yes
313         fi
314         if test "x$FREEDRENO" = xauto; then
315                 case $host_cpu in
316                         arm*|aarch64)   FREEDRENO=yes ;;
317                         *)              FREEDRENO=no ;;
318                 esac
319         fi
320         if test "x$VC4" = xauto; then
321                 case $host_cpu in
322                         arm*|aarch64)   VC4=yes ;;
323                         *)              VC4=no ;;
324                 esac
325         fi
326 fi
327
328 if test "x$INTEL" != "xno"; then
329         PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
330 fi
331 AC_SUBST(PCIACCESS_CFLAGS)
332 AC_SUBST(PCIACCESS_LIBS)
333
334 if test "x$UDEV" = xyes; then
335         AC_DEFINE(UDEV, 1, [Have UDEV support])
336 fi
337
338 AC_CANONICAL_HOST
339 if test "x$LIBKMS" = xauto ; then
340         case $host_os in
341                 linux*)         LIBKMS="yes" ;;
342                 freebsd* | kfreebsd*-gnu)
343                                 LIBKMS="yes" ;;
344                 dragonfly*)     LIBKMS="yes" ;;
345                 *)              LIBKMS="no" ;;
346         esac
347 fi
348
349 AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
350
351 AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
352 if test "x$INTEL" = xyes; then
353         AC_DEFINE(HAVE_INTEL, 1, [Have intel support])
354 fi
355
356 AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
357 if test "x$VMWGFX" = xyes; then
358         AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
359 fi
360
361 AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
362 if test "x$NOUVEAU" = xyes; then
363         AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
364 fi
365
366 AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
367 if test "x$OMAP" = xyes; then
368         AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support])
369 fi
370
371 AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
372 if test "x$EXYNOS" = xyes; then
373         AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
374 fi
375
376 AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
377 if test "x$FREEDRENO" = xyes; then
378         AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support])
379 fi
380
381 if test "x$FREEDRENO_KGSL" = xyes; then
382         if test "x$FREEDRENO" != xyes; then
383                 AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled])
384         fi
385 fi
386 AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes])
387 if test "x$FREEDRENO_KGSL" = xyes; then
388         AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface])
389 fi
390
391 AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
392 if test "x$RADEON" = xyes; then
393         AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
394 fi
395
396 if test "x$AMDGPU" != xno; then
397         # Detect cunit library
398         PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no])
399         # If pkg-config does not find cunit, check it using AC_CHECK_LIB.  We
400         # do this because Debian (Ubuntu) lacks pkg-config file for cunit.
401         # fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian
402         if test "x${have_cunit}" = "xno"; then
403                 AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no])
404                 if test "x${have_cunit}" = "xyes"; then
405                         CUNIT_LIBS="-lcunit"
406                         CUNIT_CFLAGS=""
407                         AC_SUBST([CUNIT_LIBS])
408                         AC_SUBST([CUNIT_CFLAGS])
409                 fi
410         fi
411 else
412         have_cunit=no
413 fi
414 AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"])
415
416 AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes])
417 if test "x$AMDGPU" = xyes; then
418         AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support])
419
420         AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"], [Enable CUNIT Have amdgpu support])
421
422         if test "x$have_cunit" = "xno"; then
423                 AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
424         fi
425 fi
426
427 AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes])
428 if test "x$TEGRA" = xyes; then
429         AC_DEFINE(HAVE_TEGRA, 1, [Have Tegra support])
430 fi
431
432 AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes])
433 if test "x$VC4" = xyes; then
434         AC_DEFINE(HAVE_VC4, 1, [Have VC4 support])
435 fi
436
437 AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes])
438 if test "x$ETNAVIV" = xyes; then
439         AC_DEFINE(HAVE_ETNAVIV, 1, [Have etnaviv support])
440 fi
441
442 AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
443 if test "x$INSTALL_TESTS" = xyes; then
444         AC_DEFINE(HAVE_INSTALL_TESTS, 1, [Install test programs])
445 fi
446
447 AC_ARG_ENABLE([cairo-tests],
448               [AS_HELP_STRING([--enable-cairo-tests],
449                               [Enable support for Cairo rendering in tests (default: auto)])],
450               [CAIRO=$enableval], [CAIRO=auto])
451 if test "x$CAIRO" != xno; then
452         PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
453 fi
454 AC_MSG_CHECKING([whether to enable Cairo tests])
455 if test "x$CAIRO" = xauto; then
456         CAIRO="$HAVE_CAIRO"
457 fi
458 if test "x$CAIRO" = xyes; then
459         if ! test "x$HAVE_CAIRO" = xyes; then
460                 AC_MSG_ERROR([Cairo support required but not present])
461         fi
462         AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support])
463 fi
464 AC_MSG_RESULT([$CAIRO])
465 AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
466
467 # xsltproc for docbook manpages
468 AC_ARG_ENABLE([manpages],
469               AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
470               [MANS=$enableval], [MANS=auto])
471 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
472
473 # check for offline man-pages stylesheet
474 AC_MSG_CHECKING([for docbook manpages stylesheet])
475 MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
476 AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
477                             AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`],
478                                   [HAVE_MANPAGES_STYLESHEET=yes]))
479 if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then
480         AC_SUBST(MANPAGES_STYLESHEET)
481         AC_MSG_RESULT([yes])
482 else
483         AC_MSG_RESULT([no])
484 fi
485 AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
486
487 AC_ARG_ENABLE(valgrind,
488               [AS_HELP_STRING([--enable-valgrind],
489                              [Build libdrm with  valgrind support (default: auto)])],
490                              [VALGRIND=$enableval], [VALGRIND=auto])
491 if test "x$VALGRIND" != xno; then
492         PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
493 fi
494 AC_MSG_CHECKING([whether to enable Valgrind support])
495 if test "x$VALGRIND" = xauto; then
496         VALGRIND="$have_valgrind"
497 fi
498
499 if test "x$VALGRIND" = "xyes"; then
500         if ! test "x$have_valgrind" = xyes; then
501                 AC_MSG_ERROR([Valgrind support required but not present])
502         fi
503         AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
504 fi
505
506 AC_MSG_RESULT([$VALGRIND])
507
508 AC_ARG_WITH([kernel-source],
509             [AS_HELP_STRING([--with-kernel-source],
510               [specify path to linux kernel source])],
511             [kernel_source="$with_kernel_source"])
512 AC_SUBST(kernel_source)
513
514 AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))])
515 AC_LINK_IFELSE([AC_LANG_PROGRAM([
516     int foo_hidden( void ) __attribute__((visibility("hidden")));
517 ])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]));
518
519 if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then
520     AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))])
521 fi
522
523 AC_SUBST(WARN_CFLAGS)
524 AC_CONFIG_FILES([
525         Makefile
526         libkms/Makefile
527         libkms/libkms.pc
528         intel/Makefile
529         intel/libdrm_intel.pc
530         radeon/Makefile
531         radeon/libdrm_radeon.pc
532         amdgpu/Makefile
533         amdgpu/libdrm_amdgpu.pc
534         nouveau/Makefile
535         nouveau/libdrm_nouveau.pc
536         omap/Makefile
537         omap/libdrm_omap.pc
538         exynos/Makefile
539         exynos/libdrm_exynos.pc
540         freedreno/Makefile
541         freedreno/libdrm_freedreno.pc
542         tegra/Makefile
543         tegra/libdrm_tegra.pc
544         vc4/Makefile
545         vc4/libdrm_vc4.pc
546         etnaviv/Makefile
547         etnaviv/libdrm_etnaviv.pc
548         tests/Makefile
549         tests/modeprint/Makefile
550         tests/modetest/Makefile
551         tests/kms/Makefile
552         tests/kmstest/Makefile
553         tests/proptest/Makefile
554         tests/radeon/Makefile
555         tests/amdgpu/Makefile
556         tests/vbltest/Makefile
557         tests/exynos/Makefile
558         tests/tegra/Makefile
559         tests/nouveau/Makefile
560         tests/etnaviv/Makefile
561         tests/util/Makefile
562         man/Makefile
563         libdrm.pc])
564 AC_OUTPUT
565
566 echo ""
567 echo "$PACKAGE_STRING will be compiled with:"
568 echo ""
569 echo "  libkms         $LIBKMS"
570 echo "  Intel API      $INTEL"
571 echo "  vmwgfx API     $VMWGFX"
572 echo "  Radeon API     $RADEON"
573 echo "  AMDGPU API     $AMDGPU"
574 echo "  Nouveau API    $NOUVEAU"
575 echo "  OMAP API       $OMAP"
576 echo "  EXYNOS API     $EXYNOS"
577 echo "  Freedreno API  $FREEDRENO (kgsl: $FREEDRENO_KGSL)"
578 echo "  Tegra API      $TEGRA"
579 echo "  VC4 API        $VC4"
580 echo "  Etnaviv API    $ETNAVIV"
581 echo ""