OSDN Git Service

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