OSDN Git Service

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