blob: 712569444488323df27daea4665ce75d9e04e127 [file] [log] [blame]
Dan Nicholsondca1b792007-10-23 09:25:58 -07001dnl Process this file with autoconf to create configure.
2
Dan Nicholson297e16c2008-05-05 15:42:53 -07003AC_PREREQ([2.59])
Dan Nicholsondca1b792007-10-23 09:25:58 -07004
Dan Nicholson00994ac2008-04-30 15:06:00 -07005dnl Versioning - scrape the version from configs/default
6m4_define([mesa_version],
Vinson Lee48f8a762010-05-11 12:33:30 -07007 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
Dan Nicholson356f3112009-04-29 06:49:27 -07008m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070010
Dan Nicholsone97ab722008-07-01 08:55:42 -070011dnl Tell the user about autoconf.html in the --help output
12m4_divert_once([HELP_END], [
13See docs/autoconf.html for more details on the options for Mesa.])
14
Dan Nicholson00994ac2008-04-30 15:06:00 -070015AC_INIT([Mesa],[mesa_version],
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -080016 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
Dan Nicholson297e16c2008-05-05 15:42:53 -070017AC_CONFIG_AUX_DIR([bin])
Dan Nicholsondca1b792007-10-23 09:25:58 -070018AC_CANONICAL_HOST
19
Marcin Baczyńskiff2efdf2011-07-13 21:26:49 +020020dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
21USER_CFLAGS="$CFLAGS"
22USER_CXXFLAGS="$CXXFLAGS"
23
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070024dnl Versions for external dependencies
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000025LIBDRM_REQUIRED=2.4.24
26LIBDRM_RADEON_REQUIRED=2.4.24
27LIBDRM_INTEL_REQUIRED=2.4.24
Johannes Obermayr873379a2011-06-02 17:15:44 -060028LIBDRM_NOUVEAU_REQUIRED=0.6
Jesse Barnes1e39fc72011-05-05 13:09:16 -070029DRI2PROTO_REQUIRED=2.6
30GLPROTO_REQUIRED=1.4.14
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000031LIBDRM_XORG_REQUIRED=2.4.24
Jakob Bornecrantz683a0992010-03-11 19:23:15 +000032LIBKMS_XORG_REQUIRED=1.0.0
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070033
Dan Nicholsondca1b792007-10-23 09:25:58 -070034dnl Check for progs
35AC_PROG_CPP
36AC_PROG_CC
37AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070038AC_CHECK_PROGS([MAKE], [gmake make])
Kenneth Graunke3acc8262010-10-25 13:52:58 -070039AC_CHECK_PROGS([PYTHON2], [python2 python])
Dan Nicholson297e16c2008-05-05 15:42:53 -070040AC_PATH_PROG([MKDEP], [makedepend])
41AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080042
Luca Barbierif762f7b2010-09-24 10:10:09 +020043if test "x$MKDEP" = "x"; then
44 AC_MSG_ERROR([makedepend is required to build Mesa])
45fi
46
Brian Paulde1df262011-05-18 07:50:21 -060047AC_PATH_PROG([FLEX], [flex])
48test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
49
50AC_PATH_PROG([BISON], [bison])
51test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
52
Dan Nicholsonbc302b22009-05-22 09:39:02 -070053dnl Our fallback install-sh is a symlink to minstall. Use the existing
54dnl configuration in that case.
55AC_PROG_INSTALL
56test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
57
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070058dnl We need a POSIX shell for parts of the build. Assume we have one
59dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070060case "$host_os" in
61solaris*)
62 # Solaris /bin/sh is too old/non-POSIX compliant
63 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070064 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070065 ;;
66esac
67
nobled2a501872010-08-29 20:03:37 -040068dnl clang is mostly GCC-compatible, but its version is much lower,
69dnl so we have to check for it.
70AC_MSG_CHECKING([if compiling with clang])
71
72AC_COMPILE_IFELSE(
73[AC_LANG_PROGRAM([], [[
74#ifndef __clang__
75 not clang
76#endif
77]])],
78[CLANG=yes], [CLANG=no])
79
80AC_MSG_RESULT([$CLANG])
81
Ian Romanick9aa3aa72010-03-03 15:59:37 -080082dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
83dnl versions are explictly not supported.
nobled2a501872010-08-29 20:03:37 -040084if test "x$GCC" = xyes -a "x$CLANG" = xno; then
Ian Romanick9aa3aa72010-03-03 15:59:37 -080085 AC_MSG_CHECKING([whether gcc version is sufficient])
86 major=0
87 minor=0
88
89 GCC_VERSION=`$CC -dumpversion`
90 if test $? -eq 0; then
91 major=`echo $GCC_VERSION | cut -d. -f1`
Marcin Baczyńskifa013412011-07-13 21:26:50 +020092 minor=`echo $GCC_VERSION | cut -d. -f2`
Ian Romanick9aa3aa72010-03-03 15:59:37 -080093 fi
94
95 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
96 AC_MSG_RESULT([no])
97 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
98 else
99 AC_MSG_RESULT([yes])
100 fi
101fi
102
103
Dan Nicholsondb7fc632008-03-07 11:48:09 -0800104MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500105dnl Ask gcc where it's keeping its secret headers
106if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -0800107 for dir in include include-fixed; do
108 GCC_INCLUDES=`$CC -print-file-name=$dir`
109 if test "x$GCC_INCLUDES" != x && \
110 test "$GCC_INCLUDES" != "$dir" && \
111 test -d "$GCC_INCLUDES"; then
112 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
113 fi
114 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500115fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700116AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500117
Dan Nicholson41b00702007-12-12 08:48:30 -0800118dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -0700119m4_ifndef([PKG_PROG_PKG_CONFIG],
120 [m4_fatal([Could not locate the pkg-config autoconf macros.
121 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
122 are in a different location, try setting the environment variable
123 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700124PKG_PROG_PKG_CONFIG()
125
126dnl LIB_DIR - library basename
127LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -0700128AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700129
130dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
131_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700132AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
133AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700134
135dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
136_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700137AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
138AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700139
140dnl Compiler macros
141DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -0700142AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700143case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700144linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -0800145 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700146 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700147solaris*)
148 DEFINES="$DEFINES -DPTHREADS -DSVR4"
149 ;;
Brian Paul97988902010-02-18 12:46:12 -0700150cygwin*)
151 DEFINES="$DEFINES -DPTHREADS"
152 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -0700153esac
154
155dnl Add flags for gcc and g++
156if test "x$GCC" = xyes; then
Eric Anholta3c2bd42010-08-30 14:19:23 -0700157 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
158 if test "x$CLANG" = "xno"; then
159 CFLAGS="$CFLAGS -ffast-math"
160 fi
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800161
162 # Enable -fvisibility=hidden if using a gcc that supports it
163 save_CFLAGS="$CFLAGS"
Alan Coopersmithf8107a42010-01-21 16:42:58 -0800164 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100165 VISIBILITY_CFLAGS="-fvisibility=hidden"
166 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100168 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
169
170 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
171 CFLAGS=$save_CFLAGS
Dan Nicholson0c275b62008-01-15 22:52:25 -0800172
173 # Work around aliasing bugs - developers should comment this out
174 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700175fi
176if test "x$GXX" = xyes; then
177 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800178
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400179 # Enable -fvisibility=hidden if using a gcc that supports it
180 save_CXXFLAGS="$CXXFLAGS"
181 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100182 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
183 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
Jon TURNEY560f7622011-04-26 11:49:01 +0100184 AC_LANG_PUSH([C++])
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400185 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100186 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
Jon TURNEY560f7622011-04-26 11:49:01 +0100187 AC_LANG_POP([C++])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100188
189 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
190 CXXFLAGS=$save_CXXFLAGS
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400191
Dan Nicholson0c275b62008-01-15 22:52:25 -0800192 # Work around aliasing bugs - developers should comment this out
193 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700194fi
195
Jon TURNEYdb786432011-04-26 11:56:02 +0100196dnl even if the compiler appears to support it, using visibility attributes isn't
197dnl going to do anything useful currently on cygwin apart from emit lots of warnings
198case "$host_os" in
199cygwin*)
200 VISIBILITY_CFLAGS=""
201 VISIBILITY_CXXFLAGS=""
202 ;;
203esac
204
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100205AC_SUBST([VISIBILITY_CFLAGS])
206AC_SUBST([VISIBILITY_CXXFLAGS])
207
Dan Nicholsondca1b792007-10-23 09:25:58 -0700208dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700209AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700210 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700211AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700212 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700213AC_SUBST([OPT_FLAGS])
214AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700215
216dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600217dnl Hacks to enable 32 or 64 bit build
218dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700219AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600220 [AS_HELP_STRING([--enable-32-bit],
221 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700222 [enable_32bit="$enableval"],
223 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600224)
225if test "x$enable_32bit" = xyes; then
226 if test "x$GCC" = xyes; then
227 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700228 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600229 fi
230 if test "x$GXX" = xyes; then
231 CXXFLAGS="$CXXFLAGS -m32"
232 fi
233fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700234AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600235 [AS_HELP_STRING([--enable-64-bit],
236 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700237 [enable_64bit="$enableval"],
238 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600239)
240if test "x$enable_64bit" = xyes; then
241 if test "x$GCC" = xyes; then
242 CFLAGS="$CFLAGS -m64"
243 fi
244 if test "x$GXX" = xyes; then
245 CXXFLAGS="$CXXFLAGS -m64"
246 fi
247fi
248
249dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800250dnl shared/static libraries, mimic libtool options
251dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700252AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800253 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800254 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700255 [enable_static="$enableval"],
256 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800257)
258case "x$enable_static" in
259xyes|xno ) ;;
260x ) enable_static=no ;;
261* )
262 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
263 ;;
264esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700265AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800266 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800267 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700268 [enable_shared="$enableval"],
269 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800270)
271case "x$enable_shared" in
272xyes|xno ) ;;
273x ) enable_shared=yes ;;
274* )
275 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
276 ;;
277esac
278
279dnl Can't have static and shared libraries, default to static if user
280dnl explicitly requested. If both disabled, set to static since shared
281dnl was explicitly requirested.
282case "x$enable_static$enable_shared" in
283xyesyes )
284 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
285 enable_shared=no
286 ;;
287xnono )
288 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
289 enable_static=yes
290 ;;
291esac
292
293dnl
294dnl mklib options
295dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700296AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800297if test "$enable_static" = yes; then
298 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
299fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700300AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800301
Dan Nicholson23656c42007-12-12 09:02:31 -0800302dnl
303dnl other compiler options
304dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700305AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800306 [AS_HELP_STRING([--enable-debug],
307 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700308 [enable_debug="$enableval"],
309 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800310)
311if test "x$enable_debug" = xyes; then
312 DEFINES="$DEFINES -DDEBUG"
313 if test "x$GCC" = xyes; then
314 CFLAGS="$CFLAGS -g"
315 fi
316 if test "x$GXX" = xyes; then
317 CXXFLAGS="$CXXFLAGS -g"
318 fi
319fi
Dan Nicholson88586332007-11-15 08:59:57 -0800320
321dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700322dnl library names
323dnl
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100324LIB_PREFIX_GLOB='lib'
325LIB_VERSION_SEPARATOR='.'
Dan Nicholson88586332007-11-15 08:59:57 -0800326if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800327 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800328else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700329 case "$host_os" in
330 darwin* )
331 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100332 cygwin* )
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100333 dnl prefix can be 'cyg' or 'lib'
334 LIB_PREFIX_GLOB='???'
335 LIB_VERSION_SEPARATOR='-'
336 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700337 aix* )
338 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700339 * )
340 LIB_EXTENSION='so' ;;
341 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800342fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800343
Marek Olšák848f7d32011-04-01 01:12:41 +0200344dnl
345dnl potentially-infringing-but-nobody-knows-for-sure stuff
346dnl
347AC_ARG_ENABLE([texture-float],
348 [AS_HELP_STRING([--enable-texture-float],
349 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
350 [enable_texture_float="$enableval"],
351 [enable_texture_float=no]
352)
353if test "x$enable_texture_float" = xyes; then
354 AC_MSG_WARN([Floating-point textures enabled.])
355 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
356 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
357fi
358
Dan Nicholson8217f242009-02-11 15:16:00 -0800359GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
360GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
361GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
362GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
363OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800364EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500365GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
366GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
Chia-I Wu874ccd52010-05-04 22:43:05 +0800367VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800368GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100369WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200370GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
Dan Nicholson8217f242009-02-11 15:16:00 -0800371
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100372GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
373GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
374GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
375GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
376OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
377EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
378EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
379GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
380GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
381VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800382GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100383WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200384GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Dan Nicholson8217f242009-02-11 15:16:00 -0800385
Dan Nicholson297e16c2008-05-05 15:42:53 -0700386AC_SUBST([GL_LIB_NAME])
387AC_SUBST([GLU_LIB_NAME])
388AC_SUBST([GLUT_LIB_NAME])
389AC_SUBST([GLW_LIB_NAME])
390AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800391AC_SUBST([EGL_LIB_NAME])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500392AC_SUBST([GLESv1_CM_LIB_NAME])
393AC_SUBST([GLESv2_LIB_NAME])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800394AC_SUBST([VG_LIB_NAME])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800395AC_SUBST([GLAPI_LIB_NAME])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100396AC_SUBST([WAYLAND_EGL_LIB_NAME])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200397AC_SUBST([GBM_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700398
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700399AC_SUBST([GL_LIB_GLOB])
400AC_SUBST([GLU_LIB_GLOB])
401AC_SUBST([GLUT_LIB_GLOB])
402AC_SUBST([GLW_LIB_GLOB])
403AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800404AC_SUBST([EGL_LIB_GLOB])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500405AC_SUBST([GLESv1_CM_LIB_GLOB])
406AC_SUBST([GLESv2_LIB_GLOB])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800407AC_SUBST([VG_LIB_GLOB])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800408AC_SUBST([GLAPI_LIB_GLOB])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100409AC_SUBST([WAYLAND_EGL_LIB_GLOB])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200410AC_SUBST([GBM_LIB_GLOB])
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700411
Dan Nicholsondca1b792007-10-23 09:25:58 -0700412dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700413dnl Arch/platform-specific settings
414dnl
415AC_ARG_ENABLE([asm],
416 [AS_HELP_STRING([--disable-asm],
417 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
418 [enable_asm="$enableval"],
419 [enable_asm=yes]
420)
421asm_arch=""
422ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800423MESA_ASM_SOURCES=""
424GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700425AC_MSG_CHECKING([whether to enable assembly])
426test "x$enable_asm" = xno && AC_MSG_RESULT([no])
427# disable if cross compiling on x86/x86_64 since we must run gen_matypes
428if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
429 case "$host_cpu" in
430 i?86 | x86_64)
431 enable_asm=no
432 AC_MSG_RESULT([no, cross compiling])
433 ;;
434 esac
435fi
436# check for supported arches
437if test "x$enable_asm" = xyes; then
438 case "$host_cpu" in
439 i?86)
440 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700441 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700442 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
443 ;;
444 esac
445 ;;
446 x86_64)
447 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700448 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700449 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
450 ;;
451 esac
452 ;;
453 powerpc)
454 case "$host_os" in
455 linux*)
456 asm_arch=ppc
457 ;;
458 esac
459 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800460 sparc*)
461 case "$host_os" in
462 linux*)
463 asm_arch=sparc
464 ;;
465 esac
466 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700467 esac
468
469 case "$asm_arch" in
470 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800471 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800472 MESA_ASM_SOURCES='$(X86_SOURCES)'
473 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700474 AC_MSG_RESULT([yes, x86])
475 ;;
476 x86_64)
477 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800478 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
479 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700480 AC_MSG_RESULT([yes, x86_64])
481 ;;
482 ppc)
483 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800484 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700485 AC_MSG_RESULT([yes, ppc])
486 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800487 sparc)
488 ASM_FLAGS="-DUSE_SPARC_ASM"
489 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
490 GLAPI_ASM_SOURCES='$(SPARC_API)'
491 AC_MSG_RESULT([yes, sparc])
492 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700493 *)
494 AC_MSG_RESULT([no, platform not supported])
495 ;;
496 esac
497fi
498AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800499AC_SUBST([MESA_ASM_SOURCES])
500AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700501
502dnl PIC code macro
503MESA_PIC_FLAGS
504
505dnl Check to see if dlopen is in default libraries (like Solaris, which
506dnl has it in libc), or if libdl is needed to get it.
507AC_CHECK_FUNC([dlopen], [],
508 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Chia-I Wu08f4bc02010-07-16 20:09:29 +0800509AC_SUBST([DLOPEN_LIBS])
Dan Nicholson871125a2008-06-04 13:00:35 -0700510
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700511dnl See if posix_memalign is available
512AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
513
Dan Nicholson871125a2008-06-04 13:00:35 -0700514dnl SELinux awareness.
515AC_ARG_ENABLE([selinux],
516 [AS_HELP_STRING([--enable-selinux],
517 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
518 [MESA_SELINUX="$enableval"],
519 [MESA_SELINUX=no])
520if test "x$enable_selinux" = "xyes"; then
521 AC_CHECK_HEADER([selinux/selinux.h],[],
522 [AC_MSG_ERROR([SELinux headers not found])])
523 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
524 [AC_MSG_ERROR([SELinux library not found])])
525 SELINUX_LIBS="-lselinux"
526 DEFINES="$DEFINES -DMESA_SELINUX"
527fi
528
Marek Olšák440d71d2011-06-14 05:38:58 +0200529dnl Options for APIs
Chia-I Wube5f34a2010-10-27 16:14:27 +0800530AC_ARG_ENABLE([opengl],
531 [AS_HELP_STRING([--disable-opengl],
532 [disable support for standard OpenGL API @<:@default=no@:>@])],
533 [enable_opengl="$enableval"],
534 [enable_opengl=yes])
535AC_ARG_ENABLE([gles1],
536 [AS_HELP_STRING([--enable-gles1],
537 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
538 [enable_gles1="$enableval"],
539 [enable_gles1=no])
540AC_ARG_ENABLE([gles2],
541 [AS_HELP_STRING([--enable-gles2],
542 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
543 [enable_gles2="$enableval"],
544 [enable_gles2=no])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800545AC_ARG_ENABLE([openvg],
546 [AS_HELP_STRING([--enable-openvg],
547 [enable support for OpenVG API @<:@default=no@:>@])],
548 [enable_openvg="$enableval"],
549 [enable_openvg=no])
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900550
551AC_ARG_ENABLE([dri],
552 [AS_HELP_STRING([--enable-dri],
553 [enable DRI modules @<:@default=auto@:>@])],
554 [enable_dri="$enableval"],
555 [enable_dri=auto])
556AC_ARG_ENABLE([glx],
557 [AS_HELP_STRING([--enable-glx],
558 [enable GLX library @<:@default=auto@:>@])],
559 [enable_glx="$enableval"],
560 [enable_glx=auto])
561AC_ARG_ENABLE([osmesa],
562 [AS_HELP_STRING([--enable-osmesa],
563 [enable OSMesa library @<:@default=auto@:>@])],
564 [enable_osmesa="$enableval"],
565 [enable_osmesa=auto])
566AC_ARG_ENABLE([egl],
567 [AS_HELP_STRING([--disable-egl],
568 [disable EGL library @<:@default=enabled@:>@])],
569 [enable_egl="$enableval"],
570 [enable_egl=yes])
571
Marek Olšák440d71d2011-06-14 05:38:58 +0200572AC_ARG_ENABLE([xorg],
573 [AS_HELP_STRING([--enable-xorg],
574 [enable support for X.Org DDX API @<:@default=no@:>@])],
575 [enable_xorg="$enableval"],
576 [enable_xorg=no])
Thomas Hellstrom424b1212011-07-04 10:21:35 +0200577AC_ARG_ENABLE([xa],
578 [AS_HELP_STRING([--enable-xa],
579 [enable build of the XA X Acceleration API @<:@default=no@:>@])],
580 [enable_xa="$enableval"],
581 [enable_xa=no])
Marek Olšák440d71d2011-06-14 05:38:58 +0200582AC_ARG_ENABLE([d3d1x],
583 [AS_HELP_STRING([--enable-d3d1x],
584 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
585 [enable_d3d1x="$enableval"],
586 [enable_d3d1x=no])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200587AC_ARG_ENABLE([gbm],
588 [AS_HELP_STRING([--enable-gbm],
589 [enable gbm library @<:@default=auto@:>@])],
590 [enable_gbm="$enableval"],
591 [enable_gbm=auto])
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900592
Christian Königc3b22302011-07-04 15:04:41 +0200593AC_ARG_ENABLE([xvmc],
594 [AS_HELP_STRING([--enable-xvmc],
595 [enable xvmc library @<:@default=auto@:>@])],
596 [enable_xvmc="$enableval"],
597 [enable_xvmc=auto])
598AC_ARG_ENABLE([vdpau],
599 [AS_HELP_STRING([--enable-vdpau],
600 [enable vdpau library @<:@default=auto@:>@])],
601 [enable_vdpau="$enableval"],
602 [enable_vdpau=auto])
603AC_ARG_ENABLE([va],
604 [AS_HELP_STRING([--enable-va],
605 [enable va library @<:@default=auto@:>@])],
606 [enable_va="$enableval"],
607 [enable_va=auto])
608
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900609AC_ARG_ENABLE([xlib_glx],
610 [AS_HELP_STRING([--enable-xlib-glx],
611 [make GLX library Xlib-based instead of DRI-based @<:@default=disable@:>@])],
612 [enable_xlib_glx="$enableval"],
613 [enable_xlib_glx=auto])
Marek Olšák1251e1d2011-06-18 20:33:55 +0200614AC_ARG_ENABLE([gallium_egl],
615 [AS_HELP_STRING([--enable-gallium-egl],
616 [enable optional EGL state tracker (not required
617 for EGL support in Gallium with OpenGL and OpenGL ES)
618 @<:@default=disable@:>@])],
619 [enable_gallium_egl="$enableval"],
620 [enable_gallium_egl=no])
Benjamin Franzke48d4a002011-05-26 15:11:50 +0200621AC_ARG_ENABLE([gallium_gbm],
622 [AS_HELP_STRING([--enable-gallium-gbm],
623 [enable optional gbm state tracker (not required for
624 gbm support in Gallium)
Benjamin Franzkeb18b2992011-07-02 13:45:14 +0200625 @<:@default=auto@:>@])],
Benjamin Franzke48d4a002011-05-26 15:11:50 +0200626 [enable_gallium_gbm="$enableval"],
Benjamin Franzkeb18b2992011-07-02 13:45:14 +0200627 [enable_gallium_gbm=auto])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800628
Marek Olšák58b6a192011-06-14 07:46:59 +0200629# Option for Gallium drivers
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200630GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
Marek Olšák58b6a192011-06-14 07:46:59 +0200631
632AC_ARG_WITH([gallium-drivers],
633 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
634 [comma delimited Gallium drivers list, e.g.
635 "i915,i965,nouveau,r300,r600,svga,swrast"
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200636 @<:@default=r300,r600,swrast@:>@])],
Marek Olšák58b6a192011-06-14 07:46:59 +0200637 [with_gallium_drivers="$withval"],
638 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
Chia-I Wu156e9552010-10-30 14:26:01 +0800639
Ian Romanickdb311b42011-06-22 11:35:27 -0700640# Doing '--without-gallium-drivers' will set this variable to 'no'. Clear it
641# here so that the script doesn't choke on an unknown driver name later.
642case "$with_gallium_drivers" in
643 yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
644 no) with_gallium_drivers='' ;;
645esac
646
Chia-I Wube5f34a2010-10-27 16:14:27 +0800647if test "x$enable_opengl" = xno -a \
648 "x$enable_gles1" = xno -a \
649 "x$enable_gles2" = xno -a \
Marek Olšák440d71d2011-06-14 05:38:58 +0200650 "x$enable_openvg" = xno -a \
651 "x$enable_xorg" = xno -a \
Thomas Hellstrom424b1212011-07-04 10:21:35 +0200652 "x$enable_xa" = xno -a \
Christian Königc3b22302011-07-04 15:04:41 +0200653 "x$enable_d3d1x" = xno -a \
654 "x$enable_xvmc" = xno -a \
655 "x$enable_vdpau" = xno -a \
656 "x$enable_va" = xno; then
Chia-I Wube5f34a2010-10-27 16:14:27 +0800657 AC_MSG_ERROR([at least one API should be enabled])
658fi
659
660API_DEFINES=""
Chia-I Wube5f34a2010-10-27 16:14:27 +0800661if test "x$enable_opengl" = xno; then
662 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
663else
664 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
665fi
666if test "x$enable_gles1" = xyes; then
667 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
668fi
669if test "x$enable_gles2" = xyes; then
670 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
671fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800672AC_SUBST([API_DEFINES])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800673
Chia-I Wue8c7d752010-12-26 18:24:13 +0800674AC_ARG_ENABLE([shared-glapi],
675 [AS_HELP_STRING([--enable-shared-glapi],
676 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
677 [enable_shared_glapi="$enableval"],
678 [enable_shared_glapi=no])
679
680SHARED_GLAPI="0"
681if test "x$enable_shared_glapi" = xyes; then
682 SHARED_GLAPI="1"
683fi
684AC_SUBST([SHARED_GLAPI])
685
Dan Nicholson871125a2008-06-04 13:00:35 -0700686dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800687dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg43875802010-02-25 15:49:18 -0500688dnl More later: fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800689dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700690default_driver="xlib"
691
692case "$host_os" in
693linux*)
694 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700695 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700696 esac
697 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700698*freebsd* | dragonfly* | *netbsd*)
Eric Anholt711222b2008-04-18 15:03:01 -0700699 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500700 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700701 esac
702 ;;
703esac
704
Chia-I Wube5f34a2010-10-27 16:14:27 +0800705if test "x$enable_opengl" = xno; then
706 default_driver="no"
707fi
708
Dan Nicholson297e16c2008-05-05 15:42:53 -0700709AC_ARG_WITH([driver],
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900710 [AS_HELP_STRING([--with-driver=DRIVER], [DEPRECATED])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700711 [mesa_driver="$withval"],
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900712 [mesa_driver=auto])
Dan Nicholson44d99142007-12-05 18:47:01 -0800713dnl Check for valid option
714case "x$mesa_driver" in
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900715xxlib|xdri|xosmesa|xno)
716 if test "x$enable_dri" != xauto -o \
717 "x$enable_glx" != xauto -o \
718 "x$enable_osmesa" != xauto -o \
719 "x$enable_xlib_glx" != xauto; then
720 AC_MSG_ERROR([--with-driver=$mesa_driver is deprecated])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800721 fi
722 ;;
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900723xauto)
724 mesa_driver="$default_driver"
Dan Nicholson44d99142007-12-05 18:47:01 -0800725 ;;
726*)
727 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
728 ;;
729esac
730
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900731# map $mesa_driver to APIs
732if test "x$enable_dri" = xauto; then
733 case "x$mesa_driver" in
734 xdri) enable_dri=yes ;;
735 *) enable_dri=no ;;
736 esac
737fi
738
739if test "x$enable_glx" = xauto; then
740 case "x$mesa_driver" in
741 xdri|xxlib) enable_glx=yes ;;
742 *) enable_glx=no ;;
743 esac
744fi
745
746if test "x$enable_osmesa" = xauto; then
747 case "x$mesa_driver" in
748 xxlib|xosmesa) enable_osmesa=yes ;;
749 *) enable_osmesa=no ;;
750 esac
751fi
752
753if test "x$enable_xlib_glx" = xauto; then
754 case "x$mesa_driver" in
755 xxlib) enable_xlib_glx=yes ;;
756 *) enable_xlib_glx=no ;;
757 esac
758fi
759
760if test "x$enable_glx" = xno; then
761 enable_xlib_glx=no
762fi
763
Dan Nicholson44d99142007-12-05 18:47:01 -0800764dnl
765dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700766dnl
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800767
768dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wube5f34a2010-10-27 16:14:27 +0800769CORE_DIRS=""
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800770
Jakob Bornecrantz05281062010-06-05 13:33:58 +0200771SRC_DIRS=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700772GLU_DIRS="sgi"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100773GALLIUM_DIRS="auxiliary drivers state_trackers"
Keith Whitwell51bff092010-03-11 14:43:00 +0000774GALLIUM_TARGET_DIRS=""
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000775GALLIUM_WINSYS_DIRS="sw"
Marek Olšák02c8ee22011-06-27 08:02:31 +0200776GALLIUM_DRIVERS_DIRS="failover galahad trace rbug noop identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100777GALLIUM_STATE_TRACKERS_DIRS=""
778
Chia-I Wue8c7d752010-12-26 18:24:13 +0800779# build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
Jon TURNEYaa6a5cf2011-02-16 13:37:57 +0000780case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800781x*yes*)
782 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
783 ;;
784esac
785
Chia-I Wube5f34a2010-10-27 16:14:27 +0800786# build glapi if OpenGL is enabled
787if test "x$enable_opengl" = xyes; then
788 CORE_DIRS="$CORE_DIRS mapi/glapi"
789fi
790
Chia-I Wu12583172011-01-07 17:24:16 +0800791# build es1api if OpenGL ES 1.x is enabled
792if test "x$enable_gles1" = xyes; then
793 CORE_DIRS="$CORE_DIRS mapi/es1api"
794fi
795
796# build es2api if OpenGL ES 2.x is enabled
797if test "x$enable_gles2" = xyes; then
798 CORE_DIRS="$CORE_DIRS mapi/es2api"
799fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800800
Chia-I Wube5f34a2010-10-27 16:14:27 +0800801# build glsl and mesa if OpenGL or OpenGL ES is enabled
Chia-I Wu12583172011-01-07 17:24:16 +0800802case "x$enable_opengl$enable_gles1$enable_gles2" in
Chia-I Wube5f34a2010-10-27 16:14:27 +0800803x*yes*)
804 CORE_DIRS="$CORE_DIRS glsl mesa"
805 ;;
806esac
807
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900808case "x$enable_glx$enable_xlib_glx" in
809xyesyes)
810 DRIVER_DIRS="$DRIVER_DIRS x11"
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000811 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
Keith Whitwell51bff092010-03-11 14:43:00 +0000812 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
Marek Olšák440d71d2011-06-14 05:38:58 +0200813 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800814 ;;
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900815xyesno)
816 # DRI-based GLX
Kristian Høgsberg6e8897f2010-02-09 09:58:36 -0500817 SRC_DIRS="$SRC_DIRS glx"
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900818 ;;
819esac
820
821if test "x$enable_dri" = xyes; then
822 DRIVER_DIRS="$DRIVER_DIRS dri"
823
Emil Velikov4ef9c3d2011-07-11 15:58:29 +0100824 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
Marek Olšák440d71d2011-06-14 05:38:58 +0200825 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
826 HAVE_ST_DRI="yes"
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900827fi
828
829if test "x$enable_osmesa" = xyes; then
830 # the empty space matters for osmesa... (see src/mesa/Makefile)
831 if test -n "$DRIVER_DIRS"; then
832 DRIVER_DIRS="$DRIVER_DIRS osmesa"
833 else
834 DRIVER_DIRS="osmesa"
835 fi
836fi
837
Dan Nicholson297e16c2008-05-05 15:42:53 -0700838AC_SUBST([SRC_DIRS])
839AC_SUBST([GLU_DIRS])
840AC_SUBST([DRIVER_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100841AC_SUBST([GALLIUM_DIRS])
Keith Whitwell51bff092010-03-11 14:43:00 +0000842AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100843AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000844AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100845AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlie81fe1982010-04-22 14:59:29 +1000846AC_SUBST([MESA_LLVM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700847
Chia-I Wu94ec5fd2011-06-27 09:19:02 +0900848# Check for libdrm
849PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
850 [have_libdrm=yes], [have_libdrm=no])
851
852if test "x$enable_dri" = xyes; then
853 # DRI must be shared, I think
854 if test "$enable_static" = yes; then
855 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
856 fi
857
Chia-I Wu81239342011-07-02 09:49:17 +0900858 # not a hard requirement as swrast does not depend on it
859 if test "x$have_libdrm" = xyes; then
860 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Chia-I Wu94ec5fd2011-06-27 09:19:02 +0900861 fi
Chia-I Wu94ec5fd2011-06-27 09:19:02 +0900862fi
863
Dan Nicholsondca1b792007-10-23 09:25:58 -0700864dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700865dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700866dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700867dnl
868if test -n "$PKG_CONFIG"; then
869 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700870 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700871 x11_pkgconfig=yes
872 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700873 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700874 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700875 ])
876 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700877else
878 x11_pkgconfig=no
879fi
880dnl Use the autoconf macro if no pkg-config files
Jeff Smith8d86d392010-03-12 18:55:09 -0600881if test "$x11_pkgconfig" = yes; then
Dan Nicholsone725ef12010-03-15 20:53:56 -0700882 PKG_CHECK_MODULES([X11], [x11])
Jeff Smith8d86d392010-03-12 18:55:09 -0600883else
Dan Nicholsondca1b792007-10-23 09:25:58 -0700884 AC_PATH_XTRA
Dan Nicholsone725ef12010-03-15 20:53:56 -0700885 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
886 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
887 AC_SUBST([X11_CFLAGS])
888 AC_SUBST([X11_LIBS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700889fi
890
Dan Nicholson99803a42008-07-01 09:03:15 -0700891dnl Try to tell the user that the --x-* options are only used when
892dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
893m4_divert_once([HELP_BEGIN],
894[These options are only used when the X libraries cannot be found by the
895pkg-config utility.])
896
Dan Nicholson44d99142007-12-05 18:47:01 -0800897dnl We need X for xlib and dri, so bomb now if it's not found
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900898if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then
899 AC_MSG_ERROR([X11 development libraries needed for GLX])
900fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700901
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700902dnl XCB - this is only used for GLX right now
903AC_ARG_ENABLE([xcb],
904 [AS_HELP_STRING([--enable-xcb],
905 [use XCB for GLX @<:@default=disabled@:>@])],
906 [enable_xcb="$enableval"],
907 [enable_xcb=no])
908if test "x$enable_xcb" = xyes; then
909 DEFINES="$DEFINES -DUSE_XCB"
910else
911 enable_xcb=no
912fi
913
Samuel Thibault75856172011-03-14 22:08:21 +0000914dnl Direct rendering or just indirect rendering
noblede7d18ed2011-03-14 22:08:22 +0000915case "$host_os" in
916gnu*)
917 dnl Disable by default on GNU/Hurd
918 driglx_direct_default="no"
919 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +0000920cygwin*)
921 dnl Disable by default on cygwin
922 driglx_direct_default="no"
923 ;;
noblede7d18ed2011-03-14 22:08:22 +0000924*)
925 driglx_direct_default="yes"
926 ;;
927esac
Samuel Thibault75856172011-03-14 22:08:21 +0000928AC_ARG_ENABLE([driglx-direct],
929 [AS_HELP_STRING([--disable-driglx-direct],
930 [enable direct rendering in GLX and EGL for DRI \
noblede7d18ed2011-03-14 22:08:22 +0000931 @<:@default=auto@:>@])],
Samuel Thibault75856172011-03-14 22:08:21 +0000932 [driglx_direct="$enableval"],
noblede7d18ed2011-03-14 22:08:22 +0000933 [driglx_direct="$driglx_direct_default"])
Samuel Thibault75856172011-03-14 22:08:21 +0000934
Dan Nicholson44d99142007-12-05 18:47:01 -0800935dnl
936dnl libGL configuration per driver
937dnl
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900938case "x$enable_glx$enable_xlib_glx" in
939xyesyes)
940 # Xlib-based GLX
Dan Nicholson44d99142007-12-05 18:47:01 -0800941 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700942 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800943 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800944 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
945 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800946 else
947 # should check these...
948 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
949 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800950 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
951 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800952 fi
Kenneth Graunked1d812052011-01-16 16:01:54 -0800953 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
954 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800955
956 # if static, move the external libraries to the programs
957 # and empty the libraries for libGL
958 if test "$enable_static" = yes; then
959 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
960 GL_LIB_DEPS=""
961 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800962 ;;
Chia-I Wu9e7a4142011-06-26 13:24:32 +0900963xyesno)
964 # DRI-based GLX
Jesse Barnesf2f83d92010-01-11 17:28:10 -0500965 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
Samuel Thibault75856172011-03-14 22:08:21 +0000966 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
Samuel Thibault75856172011-03-14 22:08:21 +0000967 if test x"$driglx_direct" = xyes; then
Chia-I Wu94ec5fd2011-06-27 09:19:02 +0900968 if test "x$have_libdrm" != xyes; then
969 AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
970 fi
Samuel Thibault75856172011-03-14 22:08:21 +0000971 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
972 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
Samuel Thibault75856172011-03-14 22:08:21 +0000973 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800974
975 # find the DRI deps for libGL
976 if test "$x11_pkgconfig" = yes; then
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100977 dri_modules="x11 xext xdamage xfixes"
978
979 # add xf86vidmode if available
980 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
981 if test "$HAVE_XF86VIDMODE" = yes ; then
982 dri_modules="$dri_modules xxf86vm"
983 fi
984
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700985 # add xcb modules if necessary
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700986 if test "$enable_xcb" = yes; then
987 dri_modules="$dri_modules x11-xcb xcb-glx"
988 fi
989
990 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800991 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800992 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
993 GL_LIB_DEPS="$DRIGL_LIBS"
994 else
995 # should check these...
996 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
Alan Hourihane64799222011-06-28 17:40:24 +0100997 if test "x$HAVE_XF86VIDMODE" == xyes; then
998 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
999 else
1000 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXdamage -lXfixes"
1001 fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001002 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
1003 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -07001004
1005 # XCB can only be used from pkg-config
1006 if test "$enable_xcb" = yes; then
1007 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001008 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -07001009 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
1010 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
1011 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001012 fi
1013
1014 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001015 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1016 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -08001017 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001018esac
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001019
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001020GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1021GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1022GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
1023GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
1024
Dan Nicholson297e16c2008-05-05 15:42:53 -07001025AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001026AC_SUBST([GL_PC_REQ_PRIV])
1027AC_SUBST([GL_PC_LIB_PRIV])
1028AC_SUBST([GL_PC_CFLAGS])
1029AC_SUBST([DRI_PC_REQ_PRIV])
Li Pengc33c1912010-07-30 12:26:15 +08001030AC_SUBST([GLESv1_CM_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -04001031AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
Kristian Høgsberg9339c122010-03-05 19:01:43 -05001032AC_SUBST([GLESv2_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -04001033AC_SUBST([GLESv2_PC_LIB_PRIV])
1034
Chia-I Wu9767d3b2010-12-26 18:02:59 +08001035GLAPI_LIB_DEPS="-lpthread"
1036AC_SUBST([GLAPI_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001037
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001038
1039dnl Setup default DRI CFLAGS
1040DRI_CFLAGS='$(CFLAGS)'
1041DRI_CXXFLAGS='$(CXXFLAGS)'
1042DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
1043MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
1044
1045AC_ARG_ENABLE([shared-dricore],
1046 [AS_HELP_STRING([--enable-shared-dricore],
1047 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
1048 [enable_dricore="$enableval"],
1049 [enable_dricore=no])
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001050if test "x$enable_dri" = xyes ; then
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001051 if test "$enable_dricore" = yes ; then
1052 if test "$GCC$GXX" != yesyes ; then
1053 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
1054 enable_dricore=no
1055 else
1056 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
1057 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
1058 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
1059 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
1060 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1061 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
1062 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
1063 fi
1064 fi
1065fi
1066AC_SUBST([DRICORE_LIBS])
1067AC_SUBST([DRICORE_GLSL_LIBS])
1068AC_SUBST([DRICORE_LIB_DEPS])
1069AC_SUBST([DRI_CXXFLAGS])
1070AC_SUBST([DRI_CFLAGS])
1071AC_SUBST([MESA_MODULES])
1072
Jon TURNEY2b9dac32010-04-21 12:58:54 +01001073AC_SUBST([HAVE_XF86VIDMODE])
1074
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001075PKG_CHECK_MODULES([LIBDRM_RADEON],
Marek Olšákec96b0e2011-02-06 15:42:55 +01001076 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001077 HAVE_LIBDRM_RADEON=yes,
1078 HAVE_LIBDRM_RADEON=no)
1079
Dan Nicholsondca1b792007-10-23 09:25:58 -07001080dnl
Chia-I Wu5029ea42011-06-27 13:06:39 +09001081dnl More GLX setup
Dan Nicholsondca1b792007-10-23 09:25:58 -07001082dnl
Chia-I Wu5029ea42011-06-27 13:06:39 +09001083case "x$enable_glx$enable_xlib_glx" in
1084xyesyes)
Dan Nicholsondca1b792007-10-23 09:25:58 -07001085 DEFINES="$DEFINES -DUSE_XSHM"
Chia-I Wu5029ea42011-06-27 13:06:39 +09001086 ;;
1087xyesno)
1088 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1089 if test "x$driglx_direct" = xyes; then
1090 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1091 fi
1092 ;;
1093esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001094
1095dnl
Tom Fogal31351dc2010-12-05 17:58:32 -07001096dnl TLS detection
Dan Nicholson44d99142007-12-05 18:47:01 -08001097dnl
Tom Fogal31351dc2010-12-05 17:58:32 -07001098
Dan Nicholson297e16c2008-05-05 15:42:53 -07001099AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -08001100 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001101 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001102 [GLX_USE_TLS="$enableval"],
1103 [GLX_USE_TLS=no])
Tom Fogal31351dc2010-12-05 17:58:32 -07001104AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1105
Tom Fogal44842972011-02-21 22:32:18 -07001106AS_IF([test "x$GLX_USE_TLS" = xyes],
1107 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
1108
Tom Fogal31351dc2010-12-05 17:58:32 -07001109dnl
1110dnl More DRI setup
1111dnl
Dan Nicholson44d99142007-12-05 18:47:01 -08001112dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -07001113AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001114 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -07001115 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001116 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -07001117 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -07001118AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +08001119dnl Extra search path for DRI drivers
1120AC_ARG_WITH([dri-searchpath],
1121 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1122 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1123 [DRI_DRIVER_SEARCH_DIR="$withval"],
1124 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1125AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001126dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -07001127AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001128 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -07001129 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +02001130 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001131 [with_dri_drivers="$withval"],
1132 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001133if test "x$with_dri_drivers" = x; then
1134 with_dri_drivers=no
1135fi
1136
1137dnl If $with_dri_drivers is yes, directories will be added through
1138dnl platform checks
1139DRI_DIRS=""
1140case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001141no) ;;
1142yes)
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001143 # classic DRI drivers require FEATURE_GL to build
1144 if test "x$enable_opengl" = xyes; then
1145 DRI_DIRS="yes"
1146 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001147 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001148*)
1149 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -07001150 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001151 for driver in $dri_drivers; do
1152 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1153 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1154 done
1155 DRI_DIRS="$dri_drivers"
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001156 if test -n "$DRI_DIRS" -a "x$enable_opengl" != xyes; then
1157 AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1158 fi
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001159 ;;
1160esac
1161
Dan Nicholson44d99142007-12-05 18:47:01 -08001162dnl Set DRI_DIRS, DEFINES and LIB_DEPS
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001163if test "x$enable_dri" = xyes; then
Dan Nicholson44d99142007-12-05 18:47:01 -08001164 # Platform specific settings and drivers to build
1165 case "$host_os" in
1166 linux*)
1167 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Chia-I Wu5029ea42011-06-27 13:06:39 +09001168 DEFINES="$DEFINES -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001169
1170 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -08001171 x86_64)
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001172 # sis is missing because they have not be converted to use
1173 # the new interface. i810 are missing because there is no
1174 # x86-64 system where they could *ever* be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001175 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001176 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1177 radeon savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001178 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001179 ;;
1180 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -08001181 # Build only the drivers for cards that exist on PowerPC.
1182 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001183 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -04001184 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001185 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001186 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001187 sparc*)
1188 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001189 if test "x$DRI_DIRS" = "xyes"; then
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001190 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001191 fi
1192 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001193 esac
1194 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -07001195 freebsd* | dragonfly* | *netbsd*)
Dan Nicholson44d99142007-12-05 18:47:01 -08001196 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1197 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001198
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001199 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001200 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1201 radeon tdfx unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001202 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001203 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -07001204 gnu*)
1205 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Chia-I Wu5029ea42011-06-27 13:06:39 +09001206 DEFINES="$DEFINES -DHAVE_ALIAS"
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -07001207 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001208 solaris*)
1209 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001210 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +00001211 cygwin*)
1212 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Jon TURNEYc6e33ca2011-03-14 22:08:23 +00001213 if test "x$DRI_DIRS" = "xyes"; then
1214 DRI_DIRS="swrast"
1215 fi
1216 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001217 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -08001218
1219 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001220 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001221 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001222 savage sis tdfx unichrome swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -08001223 fi
1224
Dan Nicholson44d99142007-12-05 18:47:01 -08001225 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1226
1227 # Check for expat
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001228 if test "x$enable_dri" = xyes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001229 EXPAT_INCLUDES=""
1230 EXPAT_LIB=-lexpat
1231 AC_ARG_WITH([expat],
1232 [AS_HELP_STRING([--with-expat=DIR],
1233 [expat install directory])],[
1234 EXPAT_INCLUDES="-I$withval/include"
1235 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1236 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1237 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1238 ])
1239 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1240 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1241 [AC_MSG_ERROR([Expat required for DRI.])])
1242 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001243
Chia-I Wu81239342011-07-02 09:49:17 +09001244 # libdrm is required for all except swrast
1245 if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
1246 if test "x$have_libdrm" != xyes; then
1247 AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1248 fi
1249 fi
1250
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001251 # put all the necessary libs together, including possibly libdricore
1252 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001253fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001254AC_SUBST([DRI_DIRS])
1255AC_SUBST([EXPAT_INCLUDES])
1256AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -08001257
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001258case $DRI_DIRS in
1259*i915*|*i965*)
Tormod Volden903185b2011-01-25 13:25:18 -08001260 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001261 ;;
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001262esac
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001263
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001264case $DRI_DIRS in
Johannes Obermayr873379a2011-06-02 17:15:44 -06001265*nouveau*)
1266 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1267 ;;
1268esac
1269
1270case $DRI_DIRS in
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001271*radeon*|*r200*|*r300*|*r600*)
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001272 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001273 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1274 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1275 fi
1276 ;;
1277esac
1278AC_SUBST([RADEON_CFLAGS])
1279AC_SUBST([RADEON_LDFLAGS])
1280
1281
Dan Nicholson44d99142007-12-05 18:47:01 -08001282dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001283dnl OSMesa configuration
1284dnl
Dan Nicholson979ff512007-12-05 18:47:01 -08001285
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001286dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -07001287AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001288 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1289 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001290 [osmesa_bits="$withval"],
1291 [osmesa_bits=8])
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001292if test "x$osmesa_bits" != x8; then
1293 if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1294 AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1295 osmesa_bits=8
1296 fi
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001297fi
1298case "x$osmesa_bits" in
1299x8)
1300 OSMESA_LIB=OSMesa
1301 ;;
1302x16|x32)
1303 OSMESA_LIB="OSMesa$osmesa_bits"
1304 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1305 ;;
1306*)
1307 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1308 ;;
1309esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001310AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001311
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001312if test "x$enable_osmesa" = xyes; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001313 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -08001314 if test "$enable_static" = no; then
Kenneth Graunked1d812052011-01-16 16:01:54 -08001315 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -08001316 else
1317 OSMESA_LIB_DEPS=""
1318 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001319 OSMESA_MESA_DEPS=""
Kenneth Graunked1d812052011-01-16 16:01:54 -08001320 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001321fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001322AC_SUBST([OSMESA_LIB_DEPS])
1323AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001324AC_SUBST([OSMESA_PC_REQ])
1325AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001326
1327dnl
Dan Nicholson53b37342009-02-25 17:45:34 -08001328dnl EGL configuration
1329dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001330EGL_CLIENT_APIS=""
1331
Dan Nicholson66f97862009-04-29 12:11:43 -07001332if test "x$enable_egl" = xyes; then
1333 SRC_DIRS="$SRC_DIRS egl"
Tapani Pälli2758e652011-05-16 16:56:43 +03001334 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001335 EGL_DRIVERS_DIRS=""
Marek Olšákad50abba2011-06-14 05:14:27 +02001336
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001337 if test "$enable_static" != yes; then
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001338 # build egl_glx when libGL is built
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001339 if test "x$enable_glx" = xyes; then
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001340 EGL_DRIVERS_DIRS="glx"
1341 fi
1342
Benjamin Franzke184bb092011-04-30 11:18:23 +02001343 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1344 [have_libudev=yes],[have_libudev=no])
Benjamin Franzkea7cd65f2011-05-31 11:14:46 +02001345 if test "$have_libudev" = yes; then
1346 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1347 fi
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001348 if test "x$enable_dri" = xyes; then
Chia-I Wu39ae9652010-07-16 19:48:52 +08001349 # build egl_dri2 when xcb-dri2 is available
1350 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1351 [have_xcb_dri2=yes],[have_xcb_dri2=no])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001352
1353 if test "$have_xcb_dri2" = yes; then
1354 EGL_DRIVER_DRI2=dri2
1355 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
Benjamin Franzke4ca075a2011-03-02 21:23:04 +01001356 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1357 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1358 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001359 fi
1360 fi
Kristian Høgsberg2168b872010-06-02 22:48:06 -04001361
1362 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
Kristian Høgsberg42fa0092010-02-03 10:18:28 -05001363 fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001364fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001365AC_SUBST([EGL_LIB_DEPS])
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001366AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson53b37342009-02-25 17:45:34 -08001367
1368dnl
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +02001369dnl gbm configuration
1370dnl
1371if test "x$enable_gbm" = xauto; then
1372 case "$with_egl_platforms" in
1373 *drm*)
1374 enable_gbm=yes ;;
1375 *)
1376 enable_gbm=no ;;
1377 esac
1378fi
1379if test "x$enable_gbm" = xyes; then
1380 SRC_DIRS="$SRC_DIRS gbm"
1381 GBM_BACKEND_DIRS=""
1382
1383 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1384 AC_MSG_ERROR([gbm needs udev]))
1385 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
Benjamin Franzke2ff79702011-05-26 15:10:50 +02001386
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001387 if test "x$enable_dri" = xyes; then
Benjamin Franzke2ff79702011-05-26 15:10:50 +02001388 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1389 if test "$SHARED_GLAPI" -eq 0; then
1390 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1391 fi
1392 fi
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +02001393fi
1394AC_SUBST([GBM_LIB_DEPS])
1395AC_SUBST([GBM_BACKEND_DIRS])
1396GBM_PC_REQ_PRIV="libudev"
1397GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1398GBM_PC_CFLAGS=
1399AC_SUBST([GBM_PC_REQ_PRIV])
1400AC_SUBST([GBM_PC_LIB_PRIV])
1401AC_SUBST([GBM_PC_CFLAGS])
1402
1403dnl
Marek Olšák1251e1d2011-06-18 20:33:55 +02001404dnl EGL Gallium configuration
1405dnl
1406if test "x$enable_gallium_egl" = xyes; then
1407 if test "x$with_gallium_drivers" = x; then
1408 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1409 fi
1410 if test "x$enable_egl" = xno; then
1411 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1412 fi
Chia-I Wu94ec5fd2011-06-27 09:19:02 +09001413 if test "x$have_libdrm" != xyes; then
1414 AC_MSG_ERROR([egl_gallium requires libdrm >= $LIBDRM_REQUIRED])
1415 fi
Marek Olšák1251e1d2011-06-18 20:33:55 +02001416
1417 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
Chia-I Wub8f097f2011-06-20 12:01:39 +09001418 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl-static"
Marek Olšák1251e1d2011-06-18 20:33:55 +02001419 HAVE_ST_EGL="yes"
1420fi
1421
1422dnl
Benjamin Franzke48d4a002011-05-26 15:11:50 +02001423dnl gbm Gallium configuration
1424dnl
Benjamin Franzkeb18b2992011-07-02 13:45:14 +02001425if test "x$enable_gallium_gbm" = xauto; then
1426 case "$enable_gbm$HAVE_ST_EGL$with_egl_platforms" in
1427 yesyes*drm*)
1428 enable_gallium_gbm=yes ;;
1429 *)
1430 enable_gallium_gbm=no ;;
1431 esac
1432fi
Benjamin Franzke48d4a002011-05-26 15:11:50 +02001433if test "x$enable_gallium_gbm" = xyes; then
1434 if test "x$with_gallium_drivers" = x; then
1435 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1436 fi
1437 if test "x$enable_gbm" = xno; then
1438 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1439 fi
1440
1441 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1442 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1443 HAVE_ST_GBM="yes"
1444fi
1445
1446dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001447dnl X.Org DDX configuration
1448dnl
1449if test "x$enable_xorg" = xyes; then
1450 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1451 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1452 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1453 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1454 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1455 HAVE_XEXTPROTO_71="no")
1456 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1457 HAVE_ST_XORG=yes
1458fi
1459
1460dnl
Thomas Hellstrom424b1212011-07-04 10:21:35 +02001461dnl XA configuration
1462dnl
1463if test "x$enable_xa" = xyes; then
1464 GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS"
1465 HAVE_ST_XA=yes
1466fi
1467
1468dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001469dnl OpenVG configuration
1470dnl
1471VG_LIB_DEPS=""
1472
1473if test "x$enable_openvg" = xyes; then
1474 if test "x$enable_egl" = xno; then
1475 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1476 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02001477 if test "x$with_gallium_drivers" = x; then
Marek Olšák440d71d2011-06-14 05:38:58 +02001478 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1479 fi
Marek Olšák1251e1d2011-06-18 20:33:55 +02001480 if test "x$enable_gallium_egl" = xno; then
1481 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1482 fi
Marek Olšák440d71d2011-06-14 05:38:58 +02001483
1484 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1485 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1486 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1487 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1488 HAVE_ST_VEGA=yes
1489fi
1490
1491dnl
1492dnl D3D1X configuration
1493dnl
1494
1495if test "x$enable_d3d1x" = xyes; then
Marek Olšák58b6a192011-06-14 07:46:59 +02001496 if test "x$with_gallium_drivers" = x; then
1497 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1498 fi
1499
Marek Olšák440d71d2011-06-14 05:38:58 +02001500 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1501 HAVE_ST_D3D1X=yes
1502fi
1503
1504dnl
Christian Königc3b22302011-07-04 15:04:41 +02001505dnl Gallium G3DVL configuration
1506dnl
1507AC_ARG_ENABLE([gallium-g3dvl],
1508 [AS_HELP_STRING([--enable-gallium-g3dvl],
1509 [build gallium g3dvl @<:@default=disabled@:>@])],
1510 [enable_gallium_g3dvl="$enableval"],
1511 [enable_gallium_g3dvl=no])
1512if test "x$enable_gallium_g3dvl" = xyes; then
1513 if test "x$with_gallium_drivers" = x; then
1514 AC_MSG_ERROR([cannot enable G3DVL without Gallium])
1515 fi
1516
1517 if test "x$enable_xvmc" = xauto; then
Christian Königa8ae8cf2011-07-14 12:42:17 +02001518 PKG_CHECK_EXISTS([xvmc], [enable_xvmc=yes], [enable_xvmc=no])
Christian Königc3b22302011-07-04 15:04:41 +02001519 fi
1520
1521 if test "x$enable_vdpau" = xauto; then
Christian König33bf4102011-07-14 13:57:23 +02001522 PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no])
Christian Königc3b22302011-07-04 15:04:41 +02001523 fi
1524
1525 if test "x$enable_va" = xauto; then
Christian König8619aa52011-07-14 14:09:25 +02001526 #don't enable vaapi state tracker even if package exists
1527 #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no])
Christian Königc3b22302011-07-04 15:04:41 +02001528 enable_va=no
1529 fi
1530fi
1531
Christian Königc3b22302011-07-04 15:04:41 +02001532if test "x$enable_xvmc" = xyes; then
Christian Königa8ae8cf2011-07-14 12:42:17 +02001533 PKG_CHECK_MODULES([XVMC], [xvmc >= 1.0.6 xorg-server])
Christian Königc3b22302011-07-04 15:04:41 +02001534 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg/xvmc"
1535 HAVE_ST_XVMC="yes"
1536fi
1537
Christian Königc3b22302011-07-04 15:04:41 +02001538if test "x$enable_vdpau" = xyes; then
Christian König33bf4102011-07-14 13:57:23 +02001539 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.4.1])
Christian Königc3b22302011-07-04 15:04:41 +02001540 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vdpau"
1541 HAVE_ST_VDPAU="yes"
1542fi
1543
Christian Königc3b22302011-07-04 15:04:41 +02001544if test "x$enable_va" = xyes; then
Christian König8619aa52011-07-14 14:09:25 +02001545 PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1])
1546 AC_MSG_WARN([vaapi state tracker currently unmaintained])
Christian Königc3b22302011-07-04 15:04:41 +02001547 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va"
1548 HAVE_ST_VA="yes"
1549fi
1550
1551if test "x$enable_xvmc" = xyes ||
1552 test "x$enable_vdpau" = xyes ||
1553 test "x$enable_va" = xyes; then
1554 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS g3dvl/dri"
1555fi
1556
1557dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001558dnl GLU configuration
1559dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001560AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001561 [AS_HELP_STRING([--disable-glu],
1562 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001563 [enable_glu="$enableval"],
1564 [enable_glu=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001565
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001566if test "x$enable_glu" = xyes; then
1567 if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then
1568 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1569 enable_glu=no
1570 fi
Chia-I Wube5f34a2010-10-27 16:14:27 +08001571fi
1572
Dan Nicholsondca1b792007-10-23 09:25:58 -07001573if test "x$enable_glu" = xyes; then
1574 SRC_DIRS="$SRC_DIRS glu"
1575
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001576 if test "x$enable_glx" = xno; then
Dan Nicholson979ff512007-12-05 18:47:01 -08001577 # Link libGLU to libOSMesa instead of libGL
1578 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001579 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -08001580 if test "$enable_static" = no; then
1581 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1582 else
1583 GLU_MESA_DEPS=""
1584 fi
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001585 else
Dan Nicholson88586332007-11-15 08:59:57 -08001586 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -08001587 GLU_PC_REQ="gl"
1588 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -08001589 if test "$enable_static" = no; then
1590 GLU_LIB_DEPS="-lm"
1591 GLU_MESA_DEPS='-l$(GL_LIB)'
1592 else
1593 GLU_LIB_DEPS=""
1594 GLU_MESA_DEPS=""
1595 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1596 fi
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001597 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001598fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001599if test "$enable_static" = no; then
1600 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1601fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001602GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -07001603AC_SUBST([GLU_LIB_DEPS])
1604AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001605AC_SUBST([GLU_PC_REQ])
1606AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001607AC_SUBST([GLU_PC_LIB_PRIV])
1608AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001609
1610dnl
1611dnl GLw configuration
1612dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001613AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001614 [AS_HELP_STRING([--disable-glw],
1615 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001616 [enable_glw="$enableval"],
1617 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -08001618dnl Don't build GLw on osmesa
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001619if test "x$enable_glw" = xyes -a "x$enable_glx" = xno; then
1620 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1621 enable_glw=no
Dan Nicholson979ff512007-12-05 18:47:01 -08001622fi
Dan Nicholson776c60d2008-07-18 07:40:41 -07001623AC_ARG_ENABLE([motif],
1624 [AS_HELP_STRING([--enable-motif],
1625 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1626 [enable_motif="$enableval"],
1627 [enable_motif=no])
1628
Dan Nicholsondca1b792007-10-23 09:25:58 -07001629if test "x$enable_glw" = xyes; then
1630 SRC_DIRS="$SRC_DIRS glw"
1631 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001632 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001633 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001634 GLW_LIB_DEPS="$GLW_LIBS"
1635 else
1636 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -07001637 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001638 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1639 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001640 fi
1641
1642 GLW_SOURCES="GLwDrawA.c"
1643 MOTIF_CFLAGS=
1644 if test "x$enable_motif" = xyes; then
1645 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1646 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1647 if test "x$MOTIF_CONFIG" != xno; then
1648 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1649 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1650 else
1651 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1652 [AC_MSG_ERROR([Can't locate Motif headers])])
1653 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1654 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1655 fi
1656 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1657 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001658 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1659 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001660 fi
1661
Dan Nicholson88586332007-11-15 08:59:57 -08001662 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001663 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001664 if test "$enable_static" = no; then
1665 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001666 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001667 else
1668 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1669 GLW_LIB_DEPS=""
1670 GLW_MESA_DEPS=""
1671 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001672fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001673AC_SUBST([GLW_LIB_DEPS])
1674AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001675AC_SUBST([GLW_SOURCES])
1676AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001677AC_SUBST([GLW_PC_REQ_PRIV])
1678AC_SUBST([GLW_PC_LIB_PRIV])
1679AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001680
1681dnl
1682dnl GLUT configuration
1683dnl
1684if test -f "$srcdir/include/GL/glut.h"; then
1685 default_glut=yes
1686else
1687 default_glut=no
1688fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001689AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001690 [AS_HELP_STRING([--disable-glut],
1691 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001692 [enable_glut="$enableval"],
1693 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001694
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001695dnl Don't build glut without GLX
1696if test "x$enable_glut" = xyes -a "x$enable_glx" = xno; then
1697 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1698 enable_glut=no
Chia-I Wube5f34a2010-10-27 16:14:27 +08001699fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001700dnl Can't build glut if GLU not available
1701if test "x$enable_glu$enable_glut" = xnoyes; then
1702 AC_MSG_WARN([Disabling glut since GLU is disabled])
1703 enable_glut=no
1704fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001705
Dan Nicholsondca1b792007-10-23 09:25:58 -07001706if test "x$enable_glut" = xyes; then
1707 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001708 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001709 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001710 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001711 GLUT_LIB_DEPS="$GLUT_LIBS"
1712 else
1713 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001714 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001715 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1716 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001717 fi
John Hein96172542010-07-01 12:53:28 -07001718 if test "x$GCC" = xyes; then
1719 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1720 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001721 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1722 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001723
Dan Nicholson88586332007-11-15 08:59:57 -08001724 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1725 if test "$enable_static" = no; then
1726 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1727 else
1728 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1729 GLUT_LIB_DEPS=""
1730 GLUT_MESA_DEPS=""
1731 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001732fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001733AC_SUBST([GLUT_LIB_DEPS])
1734AC_SUBST([GLUT_MESA_DEPS])
1735AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001736AC_SUBST([GLUT_PC_REQ_PRIV])
1737AC_SUBST([GLUT_PC_LIB_PRIV])
1738AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001739
1740dnl
1741dnl Program library dependencies
1742dnl Only libm is added here if necessary as the libraries should
1743dnl be pulled in by the linker
1744dnl
1745if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001746 case "$host_os" in
1747 solaris*)
1748 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1749 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001750 cygwin*)
1751 APP_LIB_DEPS="-lX11"
1752 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001753 *)
1754 APP_LIB_DEPS="-lm"
1755 ;;
1756 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001757fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001758AC_SUBST([APP_LIB_DEPS])
1759AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001760
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001761dnl
1762dnl Gallium configuration
1763dnl
Marek Olšák58b6a192011-06-14 07:46:59 +02001764if test "x$with_gallium_drivers" != x; then
Jakob Bornecrantzbe38b322010-03-23 13:23:26 +00001765 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
Dave Airlie81fe1982010-04-22 14:59:29 +10001766 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
Cyril Brulebois9ba29072011-06-15 15:50:02 +02001767else
1768 LLVM_CONFIG=no
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001769fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001770
Dave Airlie81fe1982010-04-22 14:59:29 +10001771AC_SUBST([LLVM_CFLAGS])
1772AC_SUBST([LLVM_LIBS])
1773AC_SUBST([LLVM_LDFLAGS])
1774AC_SUBST([LLVM_VERSION])
1775
Chia-I Wube5f34a2010-10-27 16:14:27 +08001776case "x$enable_opengl$enable_gles1$enable_gles2" in
1777x*yes*)
1778 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1779 ;;
1780esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001781
Chia-I Wu874ccd52010-05-04 22:43:05 +08001782AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001783AC_SUBST([EGL_CLIENT_APIS])
1784
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001785AC_ARG_WITH([egl-platforms],
1786 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1787 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001788 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001789 [with_egl_platforms="$withval"],
1790 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001791
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001792EGL_PLATFORMS=""
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001793WAYLAND_EGL_LIB_DEPS=""
1794
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001795case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001796yes)
Chia-I Wu9e7a4142011-06-26 13:24:32 +09001797 if test "x$enable_egl" = xyes; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001798 EGL_PLATFORMS="x11"
Chia-I Wu49381d62010-01-11 01:23:01 +08001799 fi
1800 ;;
1801*)
1802 if test "x$enable_egl" != xyes; then
1803 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1804 fi
1805 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001806 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1807 for plat in $egl_platforms; do
1808 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
Kristian Høgsberg1a8899d2011-02-10 10:45:06 -05001809 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001810 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001811 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1812 fi
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001813 if test "$plat" = "wayland"; then
Benjamin Franzke6b369c42011-02-21 16:22:34 +01001814 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001815 [AC_MSG_ERROR([cannot find libwayland-client])])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001816 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
Benjamin Franzkeaaa3c0d2011-04-23 14:14:29 +02001817 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001818 fi
Benjamin Franzke9b8cd492011-07-02 13:46:09 +02001819 if test "$plat" = "drm" && test "x$enable_gbm" = "xno"; then
Benjamin Franzkee5fc4c82011-05-30 10:50:52 +02001820 AC_MSG_ERROR([EGL platform drm needs gbm])
1821 fi
Benjamin Franzke7ed18262011-07-02 13:46:42 +02001822 case "$plat$have_libudev" in
1823 waylandno|drmno)
1824 AC_MSG_ERROR([cannot build $plat platfrom without udev]) ;;
1825 esac
Chia-I Wu49381d62010-01-11 01:23:01 +08001826 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001827 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001828 ;;
1829esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001830AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001831
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001832AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1833WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1834WAYLAND_EGL_PC_LIB_PRIV=
1835WAYLAND_EGL_PC_CFLAGS=
1836
1837AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1838AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1839AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1840
1841
Chia-I Wu28c3e572010-01-23 20:18:43 +08001842AC_ARG_WITH([egl-driver-dir],
1843 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1844 [directory for EGL drivers [[default=${libdir}/egl]]])],
1845 [EGL_DRIVER_INSTALL_DIR="$withval"],
1846 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1847AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1848
Joel Bosveld8acca482009-03-06 08:46:08 +09001849AC_ARG_WITH([xorg-driver-dir],
1850 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1851 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1852 [XORG_DRIVER_INSTALL_DIR="$withval"],
1853 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1854AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1855
Tom Fogal7085dce2009-08-13 19:40:30 -06001856AC_ARG_WITH([max-width],
1857 [AS_HELP_STRING([--with-max-width=N],
1858 [Maximum framebuffer width (4096)])],
1859 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1860 AS_IF([test "${withval}" -gt "4096"],
1861 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1862)
1863AC_ARG_WITH([max-height],
1864 [AS_HELP_STRING([--with-max-height=N],
1865 [Maximum framebuffer height (4096)])],
1866 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1867 AS_IF([test "${withval}" -gt "4096"],
1868 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1869)
1870
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001871dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001872dnl Gallium LLVM
1873dnl
1874AC_ARG_ENABLE([gallium-llvm],
1875 [AS_HELP_STRING([--enable-gallium-llvm],
Marek Olšáka86fc712011-04-21 13:27:55 +02001876 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
Dave Airlie81fe1982010-04-22 14:59:29 +10001877 [enable_gallium_llvm="$enableval"],
1878 [enable_gallium_llvm=auto])
Marek Olšák58b6a192011-06-14 07:46:59 +02001879if test "x$with_gallium_drivers" = x; then
1880 enable_gallium_llvm=no
1881fi
Marek Olšáka86fc712011-04-21 13:27:55 +02001882if test "x$enable_gallium_llvm" = xauto; then
1883 case "$host_cpu" in
1884 i*86|x86_64) enable_gallium_llvm=yes;;
1885 esac
1886fi
Dave Airlie81fe1982010-04-22 14:59:29 +10001887if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001888 if test "x$LLVM_CONFIG" != xno; then
1889 LLVM_VERSION=`$LLVM_CONFIG --version`
Marek Olšákbe039d22011-07-11 14:33:21 +02001890 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags|sed 's/-DNDEBUG\>//g'`
José Fonseca202c3452011-03-14 19:58:22 +00001891 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001892
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001893 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
Marek Olšák67aba792011-06-27 08:25:09 +02001894 DEFINES="$DEFINES -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001895 MESA_LLVM=1
1896 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001897 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001898 fi
1899else
1900 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001901fi
1902
Thomas Balling Sørensen32999972010-07-14 00:34:56 +02001903dnl Directory for VDPAU libs
1904AC_ARG_WITH([vdpau-libdir],
1905 [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1906 [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1907 [VDPAU_LIB_INSTALL_DIR="$withval"],
1908 [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1909AC_SUBST([VDPAU_LIB_INSTALL_DIR])
Younes Manton40cd0822010-03-05 23:11:05 -05001910
Thomas Balling Sørensen501ac572010-10-24 19:27:29 +02001911dnl Directory for VA libs
1912AC_ARG_WITH([va-libdir],
1913 [AS_HELP_STRING([--with-va-libdir=DIR],
1914 [directory for the VA libraries @<:@default=${libdir}/va@:>@])],
1915 [VA_LIB_INSTALL_DIR="$withval"],
1916 [VA_LIB_INSTALL_DIR='${libdir}/va'])
1917AC_SUBST([VA_LIB_INSTALL_DIR])
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001918
Dave Airlie81fe1982010-04-22 14:59:29 +10001919dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001920dnl Gallium helper functions
1921dnl
1922gallium_check_st() {
Thomas Hellstrom9f2f5b32011-06-15 10:46:24 +02001923 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes ||
Christian Königc3b22302011-07-04 15:04:41 +02001924 test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes ||
1925 test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then
Chia-I Wu81239342011-07-02 09:49:17 +09001926 if test "x$have_libdrm" != xyes; then
1927 AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED])
1928 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001929 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1930 fi
1931 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1932 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1933 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001934 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001935 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1936 fi
Thomas Hellstrom9f2f5b32011-06-15 10:46:24 +02001937 if test "x$HAVE_ST_XA" = xyes && test "x$4" != x; then
1938 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $4"
1939 fi
Christian Königc3b22302011-07-04 15:04:41 +02001940 if test "x$HAVE_ST_XVMC" = xyes && test "x$5" != x; then
1941 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $5"
1942 fi
1943 if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then
1944 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6"
1945 fi
1946 if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then
1947 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
1948 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001949}
1950
Marek Olšákc17fb852011-06-14 04:03:17 +02001951gallium_require_llvm() {
1952 if test "x$MESA_LLVM" = x0; then
1953 case "$host_cpu" in
1954 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1955 esac
1956 fi
1957}
1958
Marek Olšák58b6a192011-06-14 07:46:59 +02001959dnl Gallium drivers
Marek Olšák02c8ee22011-06-27 08:02:31 +02001960dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
Marek Olšák58b6a192011-06-14 07:46:59 +02001961if test "x$with_gallium_drivers" != x; then
Marek Olšák58b6a192011-06-14 07:46:59 +02001962 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1963 for driver in $gallium_drivers; do
1964 case "x$driver" in
1965 xsvga)
Marek Olšák02c8ee22011-06-27 08:02:31 +02001966 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
Thomas Hellstrom424b1212011-07-04 10:21:35 +02001967 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
Marek Olšák58b6a192011-06-14 07:46:59 +02001968 ;;
1969 xi915)
Marek Olšák02c8ee22011-06-27 08:02:31 +02001970 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe"
1971 if test "x$MESA_LLVM" = x1; then
1972 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1973 fi
1974 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Marek Olšák58b6a192011-06-14 07:46:59 +02001975 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1976 ;;
1977 xi965)
Marek Olšák02c8ee22011-06-27 08:02:31 +02001978 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965 softpipe"
1979 if test "x$MESA_LLVM" = x1; then
1980 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
1981 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02001982 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1983 ;;
1984 xr300)
1985 gallium_require_llvm "Gallium R300"
Marek Olšák02c8ee22011-06-27 08:02:31 +02001986 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1987 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" "va-r300"
Marek Olšák58b6a192011-06-14 07:46:59 +02001988 ;;
1989 xr600)
1990 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
Christian Königc3b22302011-07-04 15:04:41 +02001991 gallium_check_st "r600/drm" "dri-r600" "" "" "xvmc-r600" "vdpau-r600" "va-r600"
Marek Olšák58b6a192011-06-14 07:46:59 +02001992 ;;
1993 xnouveau)
1994 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
Christian Königc3b22302011-07-04 15:04:41 +02001995 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau" "" "xvmc-nouveau"
Marek Olšák58b6a192011-06-14 07:46:59 +02001996 ;;
1997 xswrast)
1998 if test "x$HAVE_ST_DRI" = xyes; then
Marek Olšák02c8ee22011-06-27 08:02:31 +02001999 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS softpipe"
2000 if test "x$MESA_LLVM" = x1; then
2001 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
2002 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02002003 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
2004 fi
Christian Königc3b22302011-07-04 15:04:41 +02002005 if test "x$HAVE_ST_VDPAU" = xyes; then
2006 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS vdpau-softpipe"
2007 fi
2008 if test "x$HAVE_ST_XVMC" = xyes; then
2009 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe"
2010 fi
2011 if test "x$HAVE_ST_VA" = xyes; then
2012 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe"
2013 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02002014 ;;
2015 *)
2016 AC_MSG_ERROR([Unknown Gallium driver: $driver])
2017 ;;
2018 esac
2019 done
Chia-I Wua1306f42010-01-22 15:51:51 +08002020fi
2021
Chia-I Wu99a37ed2010-01-05 17:39:05 +08002022dnl prepend CORE_DIRS to SRC_DIRS
2023SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07002024
2025dnl Restore LDFLAGS and CPPFLAGS
2026LDFLAGS="$_SAVE_LDFLAGS"
2027CPPFLAGS="$_SAVE_CPPFLAGS"
2028
Marcin Baczyńskiff2efdf2011-07-13 21:26:49 +02002029dnl Add user CFLAGS and CXXFLAGS
2030CFLAGS="$CFLAGS $USER_CFLAGS"
2031CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2032
Dan Nicholsondca1b792007-10-23 09:25:58 -07002033dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08002034AC_CONFIG_FILES([configs/autoconf])
2035
Dan Nicholsondca1b792007-10-23 09:25:58 -07002036dnl Replace the configs/current symlink
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08002037AC_CONFIG_COMMANDS([configs],[
2038if test -f configs/current || test -L configs/current; then
2039 rm -f configs/current
2040fi
2041ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07002042])
2043
Marek Olšák618dbc82011-06-27 03:12:57 +02002044dnl Sort the dirs alphabetically
2045GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort|tr "\n" " "`
2046GALLIUM_WINSYS_DIRS=`echo $GALLIUM_WINSYS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2047GALLIUM_DRIVERS_DIRS=`echo $GALLIUM_DRIVERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2048GALLIUM_STATE_TRACKERS_DIRS=`echo $GALLIUM_STATE_TRACKERS_DIRS|tr " " "\n"|sort|tr "\n" " "`
2049
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07002050AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08002051
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002052dnl
2053dnl Output some configuration info for the user
2054dnl
2055echo ""
2056echo " prefix: $prefix"
2057echo " exec_prefix: $exec_prefix"
2058echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07002059echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002060
Chia-I Wu815faa42010-10-29 12:34:44 +08002061dnl API info
2062echo ""
2063echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08002064echo " OpenVG: $enable_openvg"
2065
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002066dnl Driver info
2067echo ""
Chia-I Wu9e7a4142011-06-26 13:24:32 +09002068if test "x$enable_osmesa" != xno; then
Chia-I Wu815faa42010-10-29 12:34:44 +08002069 echo " OSMesa: lib$OSMESA_LIB"
Chia-I Wu9e7a4142011-06-26 13:24:32 +09002070else
Chia-I Wu815faa42010-10-29 12:34:44 +08002071 echo " OSMesa: no"
Chia-I Wu9e7a4142011-06-26 13:24:32 +09002072fi
2073
2074if test "x$enable_dri" != xno; then
Chia-I Wu815faa42010-10-29 12:34:44 +08002075 # cleanup the drivers var
2076 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2077 if test "x$DRI_DIRS" = x; then
2078 echo " DRI drivers: no"
2079 else
2080 echo " DRI drivers: $dri_dirs"
2081 fi
2082 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11002083 echo " Shared dricore: $enable_dricore"
Dan Nicholson544ab202007-12-30 08:41:53 -08002084fi
Chia-I Wu9e7a4142011-06-26 13:24:32 +09002085
2086case "x$enable_glx$enable_xlib_glx" in
2087xyesyes)
2088 echo " GLX: Xlib-based"
2089 ;;
2090xyesno)
2091 echo " GLX: DRI-based"
2092 echo " Use XCB: $enable_xcb"
2093 ;;
2094*)
2095 echo " GLX: $enable_glx"
2096 ;;
2097esac
2098
Chia-I Wu815faa42010-10-29 12:34:44 +08002099echo ""
2100echo " GLU: $enable_glu"
2101echo " GLw: $enable_glw (Motif: $enable_motif)"
2102echo " glut: $enable_glut"
2103
2104dnl EGL
2105echo ""
2106echo " EGL: $enable_egl"
2107if test "$enable_egl" = yes; then
2108 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08002109
2110 egl_drivers=""
2111 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08002112 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08002113 done
2114
Marek Olšák1251e1d2011-06-18 20:33:55 +02002115 if test "x$HAVE_ST_EGL" = xyes; then
Chia-I Wu12300502010-10-31 21:01:54 +08002116 echo " EGL drivers: ${egl_drivers} egl_gallium"
2117 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08002118 else
Chia-I Wu12300502010-10-31 21:01:54 +08002119 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08002120 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01002121fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002122
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01002123echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07002124if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01002125 echo " llvm: yes"
2126 echo " llvm-config: $LLVM_CONFIG"
2127 echo " llvm-version: $LLVM_VERSION"
2128else
2129 echo " llvm: no"
2130fi
2131
2132echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01002133if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
2134 echo " Gallium: yes"
2135 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00002136 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01002137 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00002138 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01002139 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
2140else
2141 echo " Gallium: no"
2142fi
2143
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002144dnl Libraries
2145echo ""
2146echo " Shared libs: $enable_shared"
2147echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08002148
Dan Nicholson16a07fb2007-12-12 09:12:15 -08002149dnl Compiler options
2150# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2151cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2152 $SED 's/^ *//;s/ */ /;s/ *$//'`
2153cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
2154 $SED 's/^ *//;s/ */ /;s/ *$//'`
2155defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
2156echo ""
2157echo " CFLAGS: $cflags"
2158echo " CXXFLAGS: $cxxflags"
2159echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07002160echo ""
2161echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08002162
Dan Nicholsondca1b792007-10-23 09:25:58 -07002163echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07002164echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07002165echo ""