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