OSDN Git Service

RELEASING: update instructions to use meson instead of autotools
[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.99],
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 AC_PROG_NM
49
50 if test "x$ac_cv_prog_cc_c99" = xno; then
51         AC_MSG_ERROR([Building libdrm requires C99 enabled compiler])
52 fi
53
54 AC_USE_SYSTEM_EXTENSIONS
55 AC_SYS_LARGEFILE
56 AC_FUNC_ALLOCA
57
58 save_CFLAGS="$CFLAGS"
59 export CFLAGS="$CFLAGS -Werror"
60 AC_HEADER_MAJOR
61 CFLAGS="$save_CFLAGS"
62
63 AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
64
65 # Initialize libtool
66 LT_PREREQ([2.2])
67 LT_INIT([disable-static])
68
69 dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the
70 dnl project. Even then there's a notable issue as described in the project README
71 case "$host_os" in
72 linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*)
73     pthread_stubs_possible="no"
74     ;;
75 * )
76     pthread_stubs_possible="yes"
77     ;;
78 esac
79
80 if 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)
84 fi
85
86 pkgconfigdir=${libdir}/pkgconfig
87 AC_SUBST(pkgconfigdir)
88 libdrmdatadir=${datadir}/libdrm
89 AC_SUBST(libdrmdatadir)
90
91 AC_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
96 AC_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
101 AC_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
106 AC_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
111 AC_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
116 AC_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
121 AC_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
126 AC_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
131 AC_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
136 AC_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
141 AC_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
146 AC_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
151 AC_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
156 AC_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
161 AC_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
166 dnl ===========================================================================
167 dnl check compiler flags
168 AC_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
185 dnl We use clock_gettime to check for timeouts in drmWaitVBlank
186
187 AC_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])])])
190 AC_SUBST([CLOCK_LIB])
191
192 AC_CHECK_FUNCS([open_memstream],
193                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
194                [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
195
196 dnl Use lots of warning flags with with gcc and compatible compilers
197
198 dnl Note: if you change the following variable, the cache is automatically
199 dnl skipped and all flags rechecked.  So there's no need to do anything
200 dnl else.  If for any reason you need to force a recheck, just change
201 dnl MAYBE_WARN in an ignorable way (like adding whitespace)
202
203 MAYBE_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
215 if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then
216         unset libdrm_cv_warn_cflags
217 fi
218 AC_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])])
241 WARN_CFLAGS="$libdrm_cv_warn_cflags"
242
243 # Check for atomic intrinsics
244 AC_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
262 if 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])
265 else
266         AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0)
267 fi
268 if 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])
270 else
271         AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0)
272 fi
273
274 dnl Print out the approapriate message considering the value set be the
275 dnl respective in $1.
276 dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ...
277 dnl $2 - libdrm shortname. Eg. intel, freedreno, ...
278 dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ...
279 dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ...
280 AC_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
288 if 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
312 else
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
340 fi
341
342 if test "x$INTEL" != "xno"; then
343         PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
344 fi
345 AC_SUBST(PCIACCESS_CFLAGS)
346 AC_SUBST(PCIACCESS_LIBS)
347
348 if test "x$UDEV" = xyes; then
349         AC_DEFINE(UDEV, 1, [Have UDEV support])
350 else
351         AC_DEFINE(UDEV, 0)
352 fi
353
354 AC_CANONICAL_HOST
355 if 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
363 fi
364
365 AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
366
367 AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
368 if test "x$INTEL" = xyes; then
369         AC_DEFINE(HAVE_INTEL, 1, [Have intel support])
370 else
371         AC_DEFINE(HAVE_INTEL, 0)
372 fi
373
374 AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
375 if test "x$VMWGFX" = xyes; then
376         AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
377 else
378         AC_DEFINE(HAVE_VMWGFX, 0)
379 fi
380
381 AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
382 if test "x$NOUVEAU" = xyes; then
383         AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
384 else
385         AC_DEFINE(HAVE_NOUVEAU, 0)
386 fi
387
388 AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
389
390 AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
391 if test "x$EXYNOS" = xyes; then
392         AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
393 else
394         AC_DEFINE(HAVE_EXYNOS, 0)
395 fi
396
397 AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
398
399 if 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
403 fi
404 AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes])
405 if test "x$FREEDRENO_KGSL" = xyes; then
406         AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface])
407 else
408         AC_DEFINE(HAVE_FREEDRENO_KGSL, 0)
409 fi
410
411 AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
412 if test "x$RADEON" = xyes; then
413         AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
414 else
415         AC_DEFINE(HAVE_RADEON, 0)
416 fi
417
418 if 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
433 else
434         have_cunit=no
435 fi
436 AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"])
437
438 AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes])
439 if 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
445 else
446         AC_DEFINE(HAVE_AMDGPU, 0)
447 fi
448
449 AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes])
450
451 AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes])
452 if test "x$VC4" = xyes; then
453         AC_DEFINE(HAVE_VC4, 1, [Have VC4 support])
454 else
455         AC_DEFINE(HAVE_VC4, 0)
456 fi
457
458 AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes])
459
460 AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
461
462 AC_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])
466 if test "x$CAIRO" != xno; then
467         PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
468 fi
469 AC_MSG_CHECKING([whether to enable Cairo tests])
470 if test "x$CAIRO" = xauto; then
471         CAIRO="$HAVE_CAIRO"
472 fi
473 if 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])
478 else
479         AC_DEFINE(HAVE_CAIRO, 0)
480 fi
481 AC_MSG_RESULT([$CAIRO])
482 AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
483
484 # xsltproc for docbook manpages
485 AC_ARG_ENABLE([manpages],
486               AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
487               [MANS=$enableval], [MANS=auto])
488 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
489
490 # check for offline man-pages stylesheet
491 AC_MSG_CHECKING([for docbook manpages stylesheet])
492 MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
493 AC_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]))
496 if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then
497         AC_SUBST(MANPAGES_STYLESHEET)
498         AC_MSG_RESULT([yes])
499 else
500         AC_MSG_RESULT([no])
501 fi
502 AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
503
504 AC_ARG_ENABLE(valgrind,
505               [AS_HELP_STRING([--enable-valgrind],
506                              [Build libdrm with  valgrind support (default: auto)])],
507                              [VALGRIND=$enableval], [VALGRIND=auto])
508 if test "x$VALGRIND" != xno; then
509         PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
510 fi
511 AC_MSG_CHECKING([whether to enable Valgrind support])
512 if test "x$VALGRIND" = xauto; then
513         VALGRIND="$have_valgrind"
514 fi
515
516 if 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])
521 else
522         AC_DEFINE([HAVE_VALGRIND], 0)
523 fi
524
525 AC_MSG_RESULT([$VALGRIND])
526
527 AC_ARG_WITH([kernel-source],
528             [AS_HELP_STRING([--with-kernel-source],
529               [specify path to linux kernel source])],
530             [kernel_source="$with_kernel_source"])
531 AC_SUBST(kernel_source)
532
533 AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))])
534 AC_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
538 if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then
539     AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))])
540 else
541     AC_DEFINE(HAVE_VISIBILITY, 0)
542 fi
543
544 CPPFLAGS="$CPPFLAGS -include config.h"
545
546 AC_SUBST(WARN_CFLAGS)
547 AC_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])
588 AC_OUTPUT
589
590 echo ""
591 echo "$PACKAGE_STRING will be compiled with:"
592 echo ""
593 echo "  libkms         $LIBKMS"
594 echo "  Intel API      $INTEL"
595 echo "  vmwgfx API     $VMWGFX"
596 echo "  Radeon API     $RADEON"
597 echo "  AMDGPU API     $AMDGPU"
598 echo "  Nouveau API    $NOUVEAU"
599 echo "  OMAP API       $OMAP"
600 echo "  EXYNOS API     $EXYNOS"
601 echo "  Freedreno API  $FREEDRENO (kgsl: $FREEDRENO_KGSL)"
602 echo "  Tegra API      $TEGRA"
603 echo "  VC4 API        $VC4"
604 echo "  Etnaviv API    $ETNAVIV"
605 echo ""