ipptest: add fimc and rotator test applications
[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.58],
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
32 AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
33 AM_MAINTAINER_MODE([enable])
34
35 # Enable quiet compiles on automake 1.11.
36 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
37
38 # Check for programs
39 AC_PROG_CC
40
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_SYS_LARGEFILE
43 AC_FUNC_ALLOCA
44
45 # Initialize libtool
46 LT_PREREQ([2.2])
47 LT_INIT([disable-static])
48
49
50 PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
51 AC_SUBST(PTHREADSTUBS_CFLAGS)
52 AC_SUBST(PTHREADSTUBS_LIBS)
53
54 pkgconfigdir=${libdir}/pkgconfig
55 AC_SUBST(pkgconfigdir)
56 AC_ARG_ENABLE([udev],
57               [AS_HELP_STRING([--enable-udev],
58                               [Enable support for using udev instead of mknod (default: disabled)])],
59               [UDEV=$enableval], [UDEV=no])
60
61 AC_ARG_ENABLE(libkms,
62               AS_HELP_STRING([--disable-libkms],
63               [Disable KMS mm abstraction library (default: auto)]),
64               [LIBKMS=$enableval], [LIBKMS=auto])
65
66 AC_ARG_ENABLE(intel,
67               AS_HELP_STRING([--disable-intel],
68               [Enable support for intel's KMS API (default: auto)]),
69               [INTEL=$enableval], [INTEL=auto])
70
71 AC_ARG_ENABLE(radeon,
72               AS_HELP_STRING([--disable-radeon],
73               [Enable support for radeon's KMS API (default: auto)]),
74               [RADEON=$enableval], [RADEON=auto])
75
76 AC_ARG_ENABLE(nouveau,
77               AS_HELP_STRING([--disable-nouveau],
78               [Enable support for nouveau's KMS API (default: auto)]),
79               [NOUVEAU=$enableval], [NOUVEAU=auto])
80
81 AC_ARG_ENABLE(vmwgfx,
82               AS_HELP_STRING([--disable-vmwgfx],
83               [Enable support for vmwgfx's KMS API (default: yes)]),
84               [VMWGFX=$enableval], [VMWGFX=yes])
85
86 AC_ARG_ENABLE(omap-experimental-api,
87               AS_HELP_STRING([--enable-omap-experimental-api],
88               [Enable support for OMAP's experimental API (default: disabled)]),
89               [OMAP=$enableval], [OMAP=no])
90
91 AC_ARG_ENABLE(exynos-experimental-api,
92               AS_HELP_STRING([--enable-exynos-experimental-api],
93               [Enable support for EXYNOS's experimental API (default: disabled)]),
94               [EXYNOS=$enableval], [EXYNOS=no])
95
96 AC_ARG_ENABLE(freedreno-experimental-api,
97               AS_HELP_STRING([--enable-freedreno-experimental-api],
98               [Enable support for freedreno's experimental API (default: disabled)]),
99               [FREEDRENO=$enableval], [FREEDRENO=no])
100
101 AC_ARG_ENABLE(vigs,
102              AS_HELP_STRING([--disable-vigs],
103              [Enable support for VIGS's API (default: enabled)]),
104              [VIGS=$enableval], [VIGS=yes])
105
106 AC_ARG_ENABLE(install-test-programs,
107                   AS_HELP_STRING([--enable-install-test-programs],
108                   [Install test programs (default: no)]),
109                   [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
110
111 dnl ===========================================================================
112 dnl check compiler flags
113 AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
114   AC_MSG_CHECKING([whether $CC supports $1])
115
116   libdrm_save_CFLAGS="$CFLAGS"
117   CFLAGS="$CFLAGS $1"
118
119   AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no])
120   CFLAGS="$libdrm_save_CFLAGS"
121
122   if test "x$libdrm_cc_flag" = "xyes"; then
123     ifelse([$2], , :, [$2])
124   else
125     ifelse([$3], , :, [$3])
126   fi
127   AC_MSG_RESULT([$libdrm_cc_flag])
128 ])
129
130 dnl We use clock_gettime to check for timeouts in drmWaitVBlank
131
132 AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
133                [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
134                              [AC_MSG_ERROR([Couldn't find clock_gettime])])])
135 AC_SUBST([CLOCK_LIB])
136
137 AC_CHECK_FUNCS([open_memstream], [HAVE_OPEN_MEMSTREAM=yes])
138
139 dnl Use lots of warning flags with with gcc and compatible compilers
140
141 dnl Note: if you change the following variable, the cache is automatically
142 dnl skipped and all flags rechecked.  So there's no need to do anything
143 dnl else.  If for any reason you need to force a recheck, just change
144 dnl MAYBE_WARN in an ignorable way (like adding whitespace)
145
146 MAYBE_WARN="-Wall -Wextra \
147 -Wsign-compare -Werror-implicit-function-declaration \
148 -Wpointer-arith -Wwrite-strings -Wstrict-prototypes \
149 -Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
150 -Wpacked -Wswitch-enum -Wmissing-format-attribute \
151 -Wstrict-aliasing=2 -Winit-self \
152 -Wdeclaration-after-statement -Wold-style-definition \
153 -Wno-missing-field-initializers -Wno-unused-parameter \
154 -Wno-attributes -Wno-long-long -Winline"
155
156 # invalidate cached value if MAYBE_WARN has changed
157 if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then
158         unset libdrm_cv_warn_cflags
159 fi
160 AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [
161         echo
162         WARN_CFLAGS=""
163
164         # Some warning options are not supported by all versions of
165         # gcc, so test all desired options against the current
166         # compiler.
167         #
168         # Note that there are some order dependencies
169         # here. Specifically, an option that disables a warning will
170         # have no net effect if a later option then enables that
171         # warnings, (perhaps implicitly). So we put some grouped
172         # options (-Wall and -Wextra) up front and the -Wno options
173         # last.
174
175         for W in $MAYBE_WARN; do
176                 LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"])
177         done
178
179         libdrm_cv_warn_cflags=$WARN_CFLAGS
180         libdrm_cv_warn_maybe=$MAYBE_WARN
181
182         AC_MSG_CHECKING([which warning flags were supported])])
183 WARN_CFLAGS="$libdrm_cv_warn_cflags"
184
185 # Check for atomic intrinsics
186 AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [
187         drm_cv_atomic_primitives="none"
188
189         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
190         int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
191         int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); }
192                                           ]],[[]])], [drm_cv_atomic_primitives="Intel"],[])
193
194         if test "x$drm_cv_atomic_primitives" = "xnone"; then
195                 AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
196         fi
197
198         # atomic functions defined in <atomic.h> & libc on Solaris
199         if test "x$drm_cv_atomic_primitives" = "xnone"; then
200                 AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris")
201         fi
202 ])
203
204 if test "x$drm_cv_atomic_primitives" = xIntel; then
205         AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1,
206                 [Enable if your compiler supports the Intel __sync_* atomic primitives])
207 fi
208 if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
209         AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
210 fi
211
212 if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno"; then
213         if test "x$drm_cv_atomic_primitives" = "xnone"; then
214                 if test "x$INTEL" != "xauto"; then
215                         if test "x$INTEL" != "xno"; then
216                                 AC_MSG_ERROR([libdrm_intel 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 Intel GPUs by passing --disable-intel to ./configure])
217                         fi
218                 else
219                         AC_MSG_WARN([Disabling libdrm_intel. 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.])
220                         INTEL=no
221                 fi
222                 if test "x$RADEON" != "xauto"; then
223                         if test "x$RADEON" != "xno"; then
224                                 AC_MSG_ERROR([libdrm_radeon 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 Radeon GPUs by passing --disable-radeon to ./configure])
225                         fi
226                 else
227                         AC_MSG_WARN([Disabling libdrm_radeon. 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.])
228                         RADEON=no
229                 fi
230                 if test "x$NOUVEAU" != "xauto"; then
231                         if test "x$NOUVEAU" != "xno"; then
232                                 AC_MSG_ERROR([libdrm_nouveau 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 NVIDIA GPUs by passing --disable-nouveau to ./configure])
233                         fi
234                 else
235                         AC_MSG_WARN([Disabling libdrm_nouveau. 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.])
236                         NOUVEAU=no
237                 fi
238         else
239                 if test "x$INTEL" != "xno"; then
240                         case $host_cpu in
241                                 i?86|x86_64) INTEL=yes ;;
242                                 *) INTEL=no ;;
243                         esac
244                 fi
245                 if test "x$RADEON" != "xno"; then
246                         RADEON=yes
247                 fi
248                 if test "x$NOUVEAU" != "xno"; then
249                         NOUVEAU=yes
250                 fi
251         fi
252 fi
253
254 if test "x$INTEL" != "xno"; then
255         PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
256 fi
257 AC_SUBST(PCIACCESS_CFLAGS)
258 AC_SUBST(PCIACCESS_LIBS)
259
260 if test "x$UDEV" = xyes; then
261         AC_DEFINE(UDEV, 1, [Have UDEV support])
262 fi
263
264 AC_CANONICAL_HOST
265 if test "x$LIBKMS" = xauto ; then
266         case $host_os in
267                 linux*)         LIBKMS="yes" ;;
268                 freebsd* | kfreebsd*-gnu)
269                                 LIBKMS="yes" ;;
270                 dragonfly*)     LIBKMS="yes" ;;
271                 *)              LIBKMS="no" ;;
272         esac
273 fi
274
275 AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
276
277 AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
278 if test "x$INTEL" = xyes; then
279         AC_DEFINE(HAVE_INTEL, 1, [Have intel support])
280 fi
281
282 AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
283 if test "x$VMWGFX" = xyes; then
284         AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
285 fi
286
287 AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
288 if test "x$NOUVEAU" = xyes; then
289         AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
290 fi
291
292 AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
293 if test "x$OMAP" = xyes; then
294         AC_DEFINE(HAVE_OMAP, 1, [Have OMAP support])
295 fi
296
297 AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
298 if test "x$EXYNOS" = xyes; then
299         AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
300 fi
301
302 AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
303 if test "x$FREEDRENO" = xyes; then
304         AC_DEFINE(HAVE_FREEDRENO, 1, [Have freedreno support])
305 fi
306
307 AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
308 if test "x$RADEON" = xyes; then
309         AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
310 fi
311
312 AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
313 if test "x$INSTALL_TESTS" = xyes; then
314         AC_DEFINE(HAVE_INSTALL_TESTS, 1, [Install test programs])
315 fi
316
317 AC_ARG_ENABLE([cairo-tests],
318               [AS_HELP_STRING([--enable-cairo-tests],
319                               [Enable support for Cairo rendering in tests (default: auto)])],
320               [CAIRO=$enableval], [CAIRO=auto])
321 PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
322 AC_MSG_CHECKING([whether to enable Cairo tests])
323 if test "x$CAIRO" = xauto; then
324         CAIRO="$HAVE_CAIRO"
325 fi
326 if test "x$CAIRO" = xyes; then
327         if ! test "x$HAVE_CAIRO" = xyes; then
328                 AC_MSG_ERROR([Cairo support required but not present])
329         fi
330         AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support])
331 fi
332 AC_MSG_RESULT([$CAIRO])
333 AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
334
335 # For enumerating devices in test case
336 PKG_CHECK_MODULES(LIBUDEV, libudev, [HAVE_LIBUDEV=yes], [HAVE_LIBUDEV=no])
337 if test "x$HAVE_LIBUDEV" = xyes; then
338         AC_DEFINE(HAVE_LIBUDEV, 1, [Have libudev support])
339 fi
340 AM_CONDITIONAL(HAVE_LIBUDEV, [test "x$HAVE_LIBUDEV" = xyes])
341
342 # xsltproc for docbook manpages
343 AC_ARG_ENABLE([manpages],
344               AS_HELP_STRING([--disable-manpages], [disable manpages @<:@default=enabled@:>@]),
345               [MANS=$enableval], [MANS=auto])
346 AC_PATH_PROG(XSLTPROC, xsltproc)
347 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
348
349 # check for offline man-pages stylesheet
350 AC_MSG_CHECKING([for docbook manpages stylesheet])
351 MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
352 AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
353                             AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`],
354                                   [HAVE_MANPAGES_STYLESHEET=yes]))
355 if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then
356         AC_SUBST(MANPAGES_STYLESHEET)
357         AC_MSG_RESULT([yes])
358 else
359         AC_MSG_RESULT([no])
360 fi
361 AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
362
363 if test "x$INTEL" != "xno" -o "x$RADEON" != "xno" -o "x$NOUVEAU" != "xno" -o "x$OMAP" != "xno" -o "x$FREEDRENO" != "xno" -o "x$VIGS" != "xno"; then
364     # Check for atomic intrinsics
365     AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives,
366     [
367             drm_cv_atomic_primitives="none"
368
369             AC_LINK_IFELSE([AC_LANG_PROGRAM([[
370     int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); }
371     int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); }
372                                             ]],[[]])],
373                            [drm_cv_atomic_primitives="Intel"],[])
374
375             if test "x$drm_cv_atomic_primitives" = "xnone"; then
376                     AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
377             fi
378
379             # atomic functions defined in <atomic.h> & libc on Solaris
380             if test "x$drm_cv_atomic_primitives" = "xnone"; then
381                     AC_CHECK_FUNC([atomic_cas_uint],
382                                   drm_cv_atomic_primitives="Solaris")
383             fi
384
385     ])
386     if test "x$drm_cv_atomic_primitives" = xIntel; then
387             AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1,
388                       [Enable if your compiler supports the Intel __sync_* atomic primitives])
389     fi
390     if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
391             AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
392     fi
393
394     if test "x$drm_cv_atomic_primitives" = "xnone"; then
395            if test "x$INTEL" != "xauto"; then
396                    if test "x$INTEL" != "xno"; then
397                         AC_MSG_ERROR([libdrm_intel 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 Intel GPUs by passing --disable-intel to ./configure])
398                    fi
399            else
400                    AC_MSG_WARN([Disabling libdrm_intel. 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.])
401                    INTEL=no
402            fi
403            if test "x$RADEON" != "xauto"; then
404                    if test "x$RADEON" != "xno"; then
405                         AC_MSG_ERROR([libdrm_radeon 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 Radeon support by passing --disable-radeon to ./configure])
406                    fi
407            else
408                    AC_MSG_WARN([Disabling libdrm_radeon. 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.])
409                    RADEON=no
410            fi
411            if test "x$NOUVEAU" != "xauto"; then
412                    if test "x$NOUVEAU" != "xno"; then
413                         AC_MSG_ERROR([libdrm_nouveau 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 NVIDIA GPUs by passing --disable-nouveau to ./configure])
414                    fi
415            else
416                    AC_MSG_WARN([Disabling libdrm_nouveau. 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.])
417                    NOUVEAU=no
418            fi
419     else
420            if test "x$INTEL" != "xno"; then
421                    case $host_cpu in
422                            i?86|x86_64) INTEL=yes ;;
423                            *) INTEL=no ;;
424                    esac
425            fi
426            if test "x$RADEON" != "xno"; then
427                    RADEON=yes
428            fi
429            if test "x$NOUVEAU" != "xno"; then
430                    NOUVEAU=yes
431            fi
432     fi
433 fi
434
435 if test "x$VIGS" != "xno"; then
436         AC_DEFINE(HAVE_VIGS, 1, [Have VIGS])
437 fi
438
439 if test "x$INTEL" != "xno"; then
440         PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
441 fi
442 AC_SUBST(PCIACCESS_CFLAGS)
443 AC_SUBST(PCIACCESS_LIBS)
444
445 PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
446 if test "x$have_valgrind" = "xyes"; then
447         AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
448 fi
449
450 AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" != "xno"])
451 AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" != "xno"])
452 AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" != "xno"])
453 if test "x$RADEON" = xyes; then
454         AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
455 fi
456 AM_CONDITIONAL(HAVE_VIGS, [test "x$VIGS" != "xno"])
457
458 AC_ARG_WITH([kernel-source],
459             [AS_HELP_STRING([--with-kernel-source],
460               [specify path to linux kernel source])],
461             [kernel_source="$with_kernel_source"])
462 AC_SUBST(kernel_source)
463
464 dnl Add flags for gcc and g++
465 if test "x$GCC" = xyes; then
466     # Enable -fvisibility=hidden if using a gcc that supports it
467     save_CFLAGS="$CFLAGS"
468     AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
469     VISIBILITY_CFLAGS="-fvisibility=hidden"
470     CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
471     AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
472                    [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
473
474     # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
475     CFLAGS=$save_CFLAGS
476
477     if test "x$VISIBILITY_CFLAGS" != x; then
478         AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler has -fvisibility support])
479     fi
480
481     AC_SUBST([VISIBILITY_CFLAGS])
482 fi
483
484 AC_SUBST(WARN_CFLAGS)
485 AC_CONFIG_FILES([
486         Makefile
487         libkms/Makefile
488         libkms/libkms.pc
489         intel/Makefile
490         intel/libdrm_intel.pc
491         radeon/Makefile
492         radeon/libdrm_radeon.pc
493         nouveau/Makefile
494         nouveau/libdrm_nouveau.pc
495         omap/Makefile
496         omap/libdrm_omap.pc
497         exynos/Makefile
498         exynos/libdrm_exynos.pc
499         freedreno/Makefile
500         freedreno/libdrm_freedreno.pc
501         vigs/Makefile
502         vigs/libdrm_vigs.pc
503         tests/Makefile
504         tests/modeprint/Makefile
505         tests/modetest/Makefile
506         tests/kmstest/Makefile
507         tests/radeon/Makefile
508         tests/vbltest/Makefile
509         tests/exynos/Makefile
510         tests/ipptest/Makefile
511         tests/rottest/Makefile
512         include/Makefile
513         include/drm/Makefile
514         man/Makefile
515         libdrm.pc])
516 AC_OUTPUT
517
518 echo ""
519 echo "$PACKAGE_STRING will be compiled with:"
520 echo ""
521 echo "  libkms         $LIBKMS"
522 echo "  Intel API      $INTEL"
523 echo "  vmwgfx API     $VMWGFX"
524 echo "  Radeon API     $RADEON"
525 echo "  Nouveau API    $NOUVEAU"
526 echo "  OMAP API       $OMAP"
527 echo "  EXYNOS API     $EXYNOS"
528 echo "  Freedreno API  $FREEDRENO"
529 echo "  VIGS API       $VIGS"
530 echo ""