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