blob: 82ff9dae14c59fcc598308fee9575762d20d2ff1 [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
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070020dnl Versions for external dependencies
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000021LIBDRM_REQUIRED=2.4.24
22LIBDRM_RADEON_REQUIRED=2.4.24
23LIBDRM_INTEL_REQUIRED=2.4.24
Johannes Obermayr873379a2011-06-02 17:15:44 -060024LIBDRM_NOUVEAU_REQUIRED=0.6
Dave Airliedc4a3ed2011-05-05 16:23:46 +100025DRI2PROTO_REQUIRED=2.1
26GLPROTO_REQUIRED=1.4.11
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000027LIBDRM_XORG_REQUIRED=2.4.24
Jakob Bornecrantz683a0992010-03-11 19:23:15 +000028LIBKMS_XORG_REQUIRED=1.0.0
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070029
Dan Nicholsondca1b792007-10-23 09:25:58 -070030dnl Check for progs
31AC_PROG_CPP
32AC_PROG_CC
33AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070034AC_CHECK_PROGS([MAKE], [gmake make])
Kenneth Graunke3acc8262010-10-25 13:52:58 -070035AC_CHECK_PROGS([PYTHON2], [python2 python])
Dan Nicholson297e16c2008-05-05 15:42:53 -070036AC_PATH_PROG([MKDEP], [makedepend])
37AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080038
Luca Barbierif762f7b2010-09-24 10:10:09 +020039if test "x$MKDEP" = "x"; then
40 AC_MSG_ERROR([makedepend is required to build Mesa])
41fi
42
Brian Paulde1df262011-05-18 07:50:21 -060043AC_PATH_PROG([FLEX], [flex])
44test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
45
46AC_PATH_PROG([BISON], [bison])
47test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
48
Dan Nicholsonbc302b22009-05-22 09:39:02 -070049dnl Our fallback install-sh is a symlink to minstall. Use the existing
50dnl configuration in that case.
51AC_PROG_INSTALL
52test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
53
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070054dnl We need a POSIX shell for parts of the build. Assume we have one
55dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070056case "$host_os" in
57solaris*)
58 # Solaris /bin/sh is too old/non-POSIX compliant
59 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070060 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070061 ;;
62esac
63
nobled2a501872010-08-29 20:03:37 -040064dnl clang is mostly GCC-compatible, but its version is much lower,
65dnl so we have to check for it.
66AC_MSG_CHECKING([if compiling with clang])
67
68AC_COMPILE_IFELSE(
69[AC_LANG_PROGRAM([], [[
70#ifndef __clang__
71 not clang
72#endif
73]])],
74[CLANG=yes], [CLANG=no])
75
76AC_MSG_RESULT([$CLANG])
77
Ian Romanick9aa3aa72010-03-03 15:59:37 -080078dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
79dnl versions are explictly not supported.
nobled2a501872010-08-29 20:03:37 -040080if test "x$GCC" = xyes -a "x$CLANG" = xno; then
Ian Romanick9aa3aa72010-03-03 15:59:37 -080081 AC_MSG_CHECKING([whether gcc version is sufficient])
82 major=0
83 minor=0
84
85 GCC_VERSION=`$CC -dumpversion`
86 if test $? -eq 0; then
87 major=`echo $GCC_VERSION | cut -d. -f1`
88 minor=`echo $GCC_VERSION | cut -d. -f1`
89 fi
90
91 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
92 AC_MSG_RESULT([no])
93 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
94 else
95 AC_MSG_RESULT([yes])
96 fi
97fi
98
99
Dan Nicholsondb7fc632008-03-07 11:48:09 -0800100MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500101dnl Ask gcc where it's keeping its secret headers
102if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -0800103 for dir in include include-fixed; do
104 GCC_INCLUDES=`$CC -print-file-name=$dir`
105 if test "x$GCC_INCLUDES" != x && \
106 test "$GCC_INCLUDES" != "$dir" && \
107 test -d "$GCC_INCLUDES"; then
108 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
109 fi
110 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500111fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700112AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500113
Dan Nicholson41b00702007-12-12 08:48:30 -0800114dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -0700115m4_ifndef([PKG_PROG_PKG_CONFIG],
116 [m4_fatal([Could not locate the pkg-config autoconf macros.
117 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
118 are in a different location, try setting the environment variable
119 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700120PKG_PROG_PKG_CONFIG()
121
122dnl LIB_DIR - library basename
123LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -0700124AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700125
126dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
127_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700128AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
129AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700130
131dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
132_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700133AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
134AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700135
136dnl Compiler macros
137DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -0700138AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700139case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700140linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -0800141 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700142 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700143solaris*)
144 DEFINES="$DEFINES -DPTHREADS -DSVR4"
145 ;;
Brian Paul97988902010-02-18 12:46:12 -0700146cygwin*)
147 DEFINES="$DEFINES -DPTHREADS"
148 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -0700149esac
150
151dnl Add flags for gcc and g++
152if test "x$GCC" = xyes; then
Eric Anholta3c2bd42010-08-30 14:19:23 -0700153 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
154 if test "x$CLANG" = "xno"; then
155 CFLAGS="$CFLAGS -ffast-math"
156 fi
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800157
158 # Enable -fvisibility=hidden if using a gcc that supports it
159 save_CFLAGS="$CFLAGS"
Alan Coopersmithf8107a42010-01-21 16:42:58 -0800160 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100161 VISIBILITY_CFLAGS="-fvisibility=hidden"
162 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800163 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100164 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
165
166 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
167 CFLAGS=$save_CFLAGS
Dan Nicholson0c275b62008-01-15 22:52:25 -0800168
169 # Work around aliasing bugs - developers should comment this out
170 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700171fi
172if test "x$GXX" = xyes; then
173 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800174
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400175 # Enable -fvisibility=hidden if using a gcc that supports it
176 save_CXXFLAGS="$CXXFLAGS"
177 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100178 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
179 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400180 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100181 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
182
183 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
184 CXXFLAGS=$save_CXXFLAGS
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400185
Dan Nicholson0c275b62008-01-15 22:52:25 -0800186 # Work around aliasing bugs - developers should comment this out
187 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700188fi
189
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100190AC_SUBST([VISIBILITY_CFLAGS])
191AC_SUBST([VISIBILITY_CXXFLAGS])
192
Dan Nicholsondca1b792007-10-23 09:25:58 -0700193dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700194AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700195 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700196AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700197 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700198AC_SUBST([OPT_FLAGS])
199AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700200
201dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600202dnl Hacks to enable 32 or 64 bit build
203dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700204AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600205 [AS_HELP_STRING([--enable-32-bit],
206 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700207 [enable_32bit="$enableval"],
208 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600209)
210if test "x$enable_32bit" = xyes; then
211 if test "x$GCC" = xyes; then
212 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700213 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600214 fi
215 if test "x$GXX" = xyes; then
216 CXXFLAGS="$CXXFLAGS -m32"
217 fi
218fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700219AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600220 [AS_HELP_STRING([--enable-64-bit],
221 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700222 [enable_64bit="$enableval"],
223 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600224)
225if test "x$enable_64bit" = xyes; then
226 if test "x$GCC" = xyes; then
227 CFLAGS="$CFLAGS -m64"
228 fi
229 if test "x$GXX" = xyes; then
230 CXXFLAGS="$CXXFLAGS -m64"
231 fi
232fi
233
234dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800235dnl shared/static libraries, mimic libtool options
236dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700237AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800238 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800239 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700240 [enable_static="$enableval"],
241 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800242)
243case "x$enable_static" in
244xyes|xno ) ;;
245x ) enable_static=no ;;
246* )
247 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
248 ;;
249esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700250AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800251 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800252 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700253 [enable_shared="$enableval"],
254 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800255)
256case "x$enable_shared" in
257xyes|xno ) ;;
258x ) enable_shared=yes ;;
259* )
260 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
261 ;;
262esac
263
264dnl Can't have static and shared libraries, default to static if user
265dnl explicitly requested. If both disabled, set to static since shared
266dnl was explicitly requirested.
267case "x$enable_static$enable_shared" in
268xyesyes )
269 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
270 enable_shared=no
271 ;;
272xnono )
273 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
274 enable_static=yes
275 ;;
276esac
277
278dnl
279dnl mklib options
280dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700281AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800282if test "$enable_static" = yes; then
283 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
284fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700285AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800286
Dan Nicholson23656c42007-12-12 09:02:31 -0800287dnl
288dnl other compiler options
289dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700290AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800291 [AS_HELP_STRING([--enable-debug],
292 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700293 [enable_debug="$enableval"],
294 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800295)
296if test "x$enable_debug" = xyes; then
297 DEFINES="$DEFINES -DDEBUG"
298 if test "x$GCC" = xyes; then
299 CFLAGS="$CFLAGS -g"
300 fi
301 if test "x$GXX" = xyes; then
302 CXXFLAGS="$CXXFLAGS -g"
303 fi
304fi
Dan Nicholson88586332007-11-15 08:59:57 -0800305
306dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700307dnl library names
308dnl
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100309LIB_PREFIX_GLOB='lib'
310LIB_VERSION_SEPARATOR='.'
Dan Nicholson88586332007-11-15 08:59:57 -0800311if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800312 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800313else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700314 case "$host_os" in
315 darwin* )
316 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100317 cygwin* )
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100318 dnl prefix can be 'cyg' or 'lib'
319 LIB_PREFIX_GLOB='???'
320 LIB_VERSION_SEPARATOR='-'
321 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700322 aix* )
323 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700324 * )
325 LIB_EXTENSION='so' ;;
326 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800327fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800328
Marek Olšák848f7d32011-04-01 01:12:41 +0200329dnl
330dnl potentially-infringing-but-nobody-knows-for-sure stuff
331dnl
332AC_ARG_ENABLE([texture-float],
333 [AS_HELP_STRING([--enable-texture-float],
334 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
335 [enable_texture_float="$enableval"],
336 [enable_texture_float=no]
337)
338if test "x$enable_texture_float" = xyes; then
339 AC_MSG_WARN([Floating-point textures enabled.])
340 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
341 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
342fi
343
Dan Nicholson8217f242009-02-11 15:16:00 -0800344GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
345GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
346GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
347GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
348OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800349EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500350GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
351GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
Chia-I Wu874ccd52010-05-04 22:43:05 +0800352VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800353GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100354WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200355GBM_LIB_NAME='lib$(GBM_LIB).'${LIB_EXTENSION}
Dan Nicholson8217f242009-02-11 15:16:00 -0800356
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100357GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
358GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
359GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
360GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
361OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
362EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
363EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
364GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
365GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
366VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800367GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100368WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200369GBM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GBM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Dan Nicholson8217f242009-02-11 15:16:00 -0800370
Dan Nicholson297e16c2008-05-05 15:42:53 -0700371AC_SUBST([GL_LIB_NAME])
372AC_SUBST([GLU_LIB_NAME])
373AC_SUBST([GLUT_LIB_NAME])
374AC_SUBST([GLW_LIB_NAME])
375AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800376AC_SUBST([EGL_LIB_NAME])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500377AC_SUBST([GLESv1_CM_LIB_NAME])
378AC_SUBST([GLESv2_LIB_NAME])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800379AC_SUBST([VG_LIB_NAME])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800380AC_SUBST([GLAPI_LIB_NAME])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100381AC_SUBST([WAYLAND_EGL_LIB_NAME])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200382AC_SUBST([GBM_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700383
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700384AC_SUBST([GL_LIB_GLOB])
385AC_SUBST([GLU_LIB_GLOB])
386AC_SUBST([GLUT_LIB_GLOB])
387AC_SUBST([GLW_LIB_GLOB])
388AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800389AC_SUBST([EGL_LIB_GLOB])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500390AC_SUBST([GLESv1_CM_LIB_GLOB])
391AC_SUBST([GLESv2_LIB_GLOB])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800392AC_SUBST([VG_LIB_GLOB])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800393AC_SUBST([GLAPI_LIB_GLOB])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100394AC_SUBST([WAYLAND_EGL_LIB_GLOB])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200395AC_SUBST([GBM_LIB_GLOB])
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700396
Dan Nicholsondca1b792007-10-23 09:25:58 -0700397dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700398dnl Arch/platform-specific settings
399dnl
400AC_ARG_ENABLE([asm],
401 [AS_HELP_STRING([--disable-asm],
402 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
403 [enable_asm="$enableval"],
404 [enable_asm=yes]
405)
406asm_arch=""
407ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800408MESA_ASM_SOURCES=""
409GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700410AC_MSG_CHECKING([whether to enable assembly])
411test "x$enable_asm" = xno && AC_MSG_RESULT([no])
412# disable if cross compiling on x86/x86_64 since we must run gen_matypes
413if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
414 case "$host_cpu" in
415 i?86 | x86_64)
416 enable_asm=no
417 AC_MSG_RESULT([no, cross compiling])
418 ;;
419 esac
420fi
421# check for supported arches
422if test "x$enable_asm" = xyes; then
423 case "$host_cpu" in
424 i?86)
425 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700426 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700427 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
428 ;;
429 esac
430 ;;
431 x86_64)
432 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700433 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700434 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
435 ;;
436 esac
437 ;;
438 powerpc)
439 case "$host_os" in
440 linux*)
441 asm_arch=ppc
442 ;;
443 esac
444 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800445 sparc*)
446 case "$host_os" in
447 linux*)
448 asm_arch=sparc
449 ;;
450 esac
451 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700452 esac
453
454 case "$asm_arch" in
455 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800456 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800457 MESA_ASM_SOURCES='$(X86_SOURCES)'
458 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700459 AC_MSG_RESULT([yes, x86])
460 ;;
461 x86_64)
462 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800463 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
464 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700465 AC_MSG_RESULT([yes, x86_64])
466 ;;
467 ppc)
468 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800469 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700470 AC_MSG_RESULT([yes, ppc])
471 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800472 sparc)
473 ASM_FLAGS="-DUSE_SPARC_ASM"
474 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
475 GLAPI_ASM_SOURCES='$(SPARC_API)'
476 AC_MSG_RESULT([yes, sparc])
477 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700478 *)
479 AC_MSG_RESULT([no, platform not supported])
480 ;;
481 esac
482fi
483AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800484AC_SUBST([MESA_ASM_SOURCES])
485AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700486
487dnl PIC code macro
488MESA_PIC_FLAGS
489
490dnl Check to see if dlopen is in default libraries (like Solaris, which
491dnl has it in libc), or if libdl is needed to get it.
492AC_CHECK_FUNC([dlopen], [],
493 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Chia-I Wu08f4bc02010-07-16 20:09:29 +0800494AC_SUBST([DLOPEN_LIBS])
Dan Nicholson871125a2008-06-04 13:00:35 -0700495
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700496dnl See if posix_memalign is available
497AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
498
Dan Nicholson871125a2008-06-04 13:00:35 -0700499dnl SELinux awareness.
500AC_ARG_ENABLE([selinux],
501 [AS_HELP_STRING([--enable-selinux],
502 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
503 [MESA_SELINUX="$enableval"],
504 [MESA_SELINUX=no])
505if test "x$enable_selinux" = "xyes"; then
506 AC_CHECK_HEADER([selinux/selinux.h],[],
507 [AC_MSG_ERROR([SELinux headers not found])])
508 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
509 [AC_MSG_ERROR([SELinux library not found])])
510 SELINUX_LIBS="-lselinux"
511 DEFINES="$DEFINES -DMESA_SELINUX"
512fi
513
Marek Olšák440d71d2011-06-14 05:38:58 +0200514dnl Options for APIs
Chia-I Wube5f34a2010-10-27 16:14:27 +0800515AC_ARG_ENABLE([opengl],
516 [AS_HELP_STRING([--disable-opengl],
517 [disable support for standard OpenGL API @<:@default=no@:>@])],
518 [enable_opengl="$enableval"],
519 [enable_opengl=yes])
520AC_ARG_ENABLE([gles1],
521 [AS_HELP_STRING([--enable-gles1],
522 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
523 [enable_gles1="$enableval"],
524 [enable_gles1=no])
525AC_ARG_ENABLE([gles2],
526 [AS_HELP_STRING([--enable-gles2],
527 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
528 [enable_gles2="$enableval"],
529 [enable_gles2=no])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800530AC_ARG_ENABLE([openvg],
531 [AS_HELP_STRING([--enable-openvg],
532 [enable support for OpenVG API @<:@default=no@:>@])],
533 [enable_openvg="$enableval"],
534 [enable_openvg=no])
Marek Olšák440d71d2011-06-14 05:38:58 +0200535AC_ARG_ENABLE([xorg],
536 [AS_HELP_STRING([--enable-xorg],
537 [enable support for X.Org DDX API @<:@default=no@:>@])],
538 [enable_xorg="$enableval"],
539 [enable_xorg=no])
540AC_ARG_ENABLE([d3d1x],
541 [AS_HELP_STRING([--enable-d3d1x],
542 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
543 [enable_d3d1x="$enableval"],
544 [enable_d3d1x=no])
545AC_ARG_ENABLE([egl],
546 [AS_HELP_STRING([--disable-egl],
547 [disable EGL library @<:@default=enabled@:>@])],
548 [enable_egl="$enableval"],
549 [enable_egl=yes])
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +0200550AC_ARG_ENABLE([gbm],
551 [AS_HELP_STRING([--enable-gbm],
552 [enable gbm library @<:@default=auto@:>@])],
553 [enable_gbm="$enableval"],
554 [enable_gbm=auto])
Marek Olšák1251e1d2011-06-18 20:33:55 +0200555AC_ARG_ENABLE([gallium_egl],
556 [AS_HELP_STRING([--enable-gallium-egl],
557 [enable optional EGL state tracker (not required
558 for EGL support in Gallium with OpenGL and OpenGL ES)
559 @<:@default=disable@:>@])],
560 [enable_gallium_egl="$enableval"],
561 [enable_gallium_egl=no])
Benjamin Franzke48d4a002011-05-26 15:11:50 +0200562AC_ARG_ENABLE([gallium_gbm],
563 [AS_HELP_STRING([--enable-gallium-gbm],
564 [enable optional gbm state tracker (not required for
565 gbm support in Gallium)
566 @<:@default=disable@:>@])],
567 [enable_gallium_gbm="$enableval"],
568 [enable_gallium_gbm=no])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800569
Marek Olšák58b6a192011-06-14 07:46:59 +0200570# Option for Gallium drivers
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200571GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
Marek Olšák58b6a192011-06-14 07:46:59 +0200572
573AC_ARG_WITH([gallium-drivers],
574 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
575 [comma delimited Gallium drivers list, e.g.
576 "i915,i965,nouveau,r300,r600,svga,swrast"
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200577 @<:@default=r300,r600,swrast@:>@])],
Marek Olšák58b6a192011-06-14 07:46:59 +0200578 [with_gallium_drivers="$withval"],
579 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
Chia-I Wu156e9552010-10-30 14:26:01 +0800580
Chia-I Wube5f34a2010-10-27 16:14:27 +0800581if test "x$enable_opengl" = xno -a \
582 "x$enable_gles1" = xno -a \
583 "x$enable_gles2" = xno -a \
Marek Olšák440d71d2011-06-14 05:38:58 +0200584 "x$enable_openvg" = xno -a \
585 "x$enable_xorg" = xno -a \
586 "x$enable_d3d1x" = xno; then
Chia-I Wube5f34a2010-10-27 16:14:27 +0800587 AC_MSG_ERROR([at least one API should be enabled])
588fi
589
590API_DEFINES=""
Chia-I Wube5f34a2010-10-27 16:14:27 +0800591if test "x$enable_opengl" = xno; then
592 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
593else
594 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
595fi
596if test "x$enable_gles1" = xyes; then
597 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
598fi
599if test "x$enable_gles2" = xyes; then
600 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
601fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800602AC_SUBST([API_DEFINES])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800603
Chia-I Wue8c7d752010-12-26 18:24:13 +0800604AC_ARG_ENABLE([shared-glapi],
605 [AS_HELP_STRING([--enable-shared-glapi],
606 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
607 [enable_shared_glapi="$enableval"],
608 [enable_shared_glapi=no])
609
610SHARED_GLAPI="0"
611if test "x$enable_shared_glapi" = xyes; then
612 SHARED_GLAPI="1"
613fi
614AC_SUBST([SHARED_GLAPI])
615
Dan Nicholson871125a2008-06-04 13:00:35 -0700616dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800617dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg43875802010-02-25 15:49:18 -0500618dnl More later: fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800619dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700620default_driver="xlib"
621
622case "$host_os" in
623linux*)
624 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700625 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700626 esac
627 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700628*freebsd* | dragonfly* | *netbsd*)
Eric Anholt711222b2008-04-18 15:03:01 -0700629 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500630 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700631 esac
632 ;;
633esac
634
Chia-I Wube5f34a2010-10-27 16:14:27 +0800635if test "x$enable_opengl" = xno; then
636 default_driver="no"
637fi
638
Dan Nicholson297e16c2008-05-05 15:42:53 -0700639AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800640 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700641 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700642 [mesa_driver="$withval"],
643 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800644dnl Check for valid option
645case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800646xxlib|xdri|xosmesa)
Chia-I Wube5f34a2010-10-27 16:14:27 +0800647 if test "x$enable_opengl" = xno; then
648 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
649 fi
650 ;;
651xno)
Dan Nicholson44d99142007-12-05 18:47:01 -0800652 ;;
653*)
654 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
655 ;;
656esac
657
658dnl
659dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700660dnl
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800661
662dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wube5f34a2010-10-27 16:14:27 +0800663CORE_DIRS=""
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800664
Jakob Bornecrantz05281062010-06-05 13:33:58 +0200665SRC_DIRS=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700666GLU_DIRS="sgi"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100667GALLIUM_DIRS="auxiliary drivers state_trackers"
Keith Whitwell51bff092010-03-11 14:43:00 +0000668GALLIUM_TARGET_DIRS=""
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000669GALLIUM_WINSYS_DIRS="sw"
Jerome Glisse33495172011-01-09 21:04:41 -0500670GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100671GALLIUM_STATE_TRACKERS_DIRS=""
672
Chia-I Wue8c7d752010-12-26 18:24:13 +0800673# build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
Jon TURNEYaa6a5cf2011-02-16 13:37:57 +0000674case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800675x*yes*)
676 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
677 ;;
678esac
679
Chia-I Wube5f34a2010-10-27 16:14:27 +0800680# build glapi if OpenGL is enabled
681if test "x$enable_opengl" = xyes; then
682 CORE_DIRS="$CORE_DIRS mapi/glapi"
683fi
684
Chia-I Wu12583172011-01-07 17:24:16 +0800685# build es1api if OpenGL ES 1.x is enabled
686if test "x$enable_gles1" = xyes; then
687 CORE_DIRS="$CORE_DIRS mapi/es1api"
688fi
689
690# build es2api if OpenGL ES 2.x is enabled
691if test "x$enable_gles2" = xyes; then
692 CORE_DIRS="$CORE_DIRS mapi/es2api"
693fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800694
Chia-I Wube5f34a2010-10-27 16:14:27 +0800695# build glsl and mesa if OpenGL or OpenGL ES is enabled
Chia-I Wu12583172011-01-07 17:24:16 +0800696case "x$enable_opengl$enable_gles1$enable_gles2" in
Chia-I Wube5f34a2010-10-27 16:14:27 +0800697x*yes*)
698 CORE_DIRS="$CORE_DIRS glsl mesa"
699 ;;
700esac
701
Dan Nicholson44d99142007-12-05 18:47:01 -0800702case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800703xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800704 DRIVER_DIRS="x11"
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000705 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
Keith Whitwell51bff092010-03-11 14:43:00 +0000706 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
Marek Olšák440d71d2011-06-14 05:38:58 +0200707 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800708 ;;
709dri)
Kristian Høgsberg6e8897f2010-02-09 09:58:36 -0500710 SRC_DIRS="$SRC_DIRS glx"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100711 DRIVER_DIRS="dri"
Jakob Bornecrantz23a915e2010-06-23 03:31:18 +0200712 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
Marek Olšák440d71d2011-06-14 05:38:58 +0200713 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
714 HAVE_ST_DRI="yes"
Dan Nicholson44d99142007-12-05 18:47:01 -0800715 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800716osmesa)
717 DRIVER_DIRS="osmesa"
718 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800719no)
720 DRIVER_DRIS=""
721 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800722esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700723AC_SUBST([SRC_DIRS])
724AC_SUBST([GLU_DIRS])
725AC_SUBST([DRIVER_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100726AC_SUBST([GALLIUM_DIRS])
Keith Whitwell51bff092010-03-11 14:43:00 +0000727AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100728AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000729AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100730AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlie81fe1982010-04-22 14:59:29 +1000731AC_SUBST([MESA_LLVM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700732
733dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700734dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700735dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700736dnl
737if test -n "$PKG_CONFIG"; then
738 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700739 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700740 x11_pkgconfig=yes
741 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700742 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700743 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700744 ])
745 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700746else
747 x11_pkgconfig=no
748fi
749dnl Use the autoconf macro if no pkg-config files
Jeff Smith8d86d392010-03-12 18:55:09 -0600750if test "$x11_pkgconfig" = yes; then
Dan Nicholsone725ef12010-03-15 20:53:56 -0700751 PKG_CHECK_MODULES([X11], [x11])
Jeff Smith8d86d392010-03-12 18:55:09 -0600752else
Dan Nicholsondca1b792007-10-23 09:25:58 -0700753 AC_PATH_XTRA
Dan Nicholsone725ef12010-03-15 20:53:56 -0700754 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
755 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
756 AC_SUBST([X11_CFLAGS])
757 AC_SUBST([X11_LIBS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700758fi
759
Dan Nicholson99803a42008-07-01 09:03:15 -0700760dnl Try to tell the user that the --x-* options are only used when
761dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
762m4_divert_once([HELP_BEGIN],
763[These options are only used when the X libraries cannot be found by the
764pkg-config utility.])
765
Dan Nicholson44d99142007-12-05 18:47:01 -0800766dnl We need X for xlib and dri, so bomb now if it's not found
767case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800768xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800769 if test "$no_x" = yes; then
770 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
771 fi
772 ;;
773esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700774
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700775dnl XCB - this is only used for GLX right now
776AC_ARG_ENABLE([xcb],
777 [AS_HELP_STRING([--enable-xcb],
778 [use XCB for GLX @<:@default=disabled@:>@])],
779 [enable_xcb="$enableval"],
780 [enable_xcb=no])
781if test "x$enable_xcb" = xyes; then
782 DEFINES="$DEFINES -DUSE_XCB"
783else
784 enable_xcb=no
785fi
786
Samuel Thibault75856172011-03-14 22:08:21 +0000787dnl Direct rendering or just indirect rendering
noblede7d18ed2011-03-14 22:08:22 +0000788case "$host_os" in
789gnu*)
790 dnl Disable by default on GNU/Hurd
791 driglx_direct_default="no"
792 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +0000793cygwin*)
794 dnl Disable by default on cygwin
795 driglx_direct_default="no"
796 ;;
noblede7d18ed2011-03-14 22:08:22 +0000797*)
798 driglx_direct_default="yes"
799 ;;
800esac
Samuel Thibault75856172011-03-14 22:08:21 +0000801AC_ARG_ENABLE([driglx-direct],
802 [AS_HELP_STRING([--disable-driglx-direct],
803 [enable direct rendering in GLX and EGL for DRI \
noblede7d18ed2011-03-14 22:08:22 +0000804 @<:@default=auto@:>@])],
Samuel Thibault75856172011-03-14 22:08:21 +0000805 [driglx_direct="$enableval"],
noblede7d18ed2011-03-14 22:08:22 +0000806 [driglx_direct="$driglx_direct_default"])
Samuel Thibault75856172011-03-14 22:08:21 +0000807
Dan Nicholson44d99142007-12-05 18:47:01 -0800808dnl
809dnl libGL configuration per driver
810dnl
811case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800812xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800813 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700814 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800815 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800816 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
817 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800818 else
819 # should check these...
820 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
821 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800822 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
823 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800824 fi
Kenneth Graunked1d812052011-01-16 16:01:54 -0800825 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
826 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800827
828 # if static, move the external libraries to the programs
829 # and empty the libraries for libGL
830 if test "$enable_static" = yes; then
831 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
832 GL_LIB_DEPS=""
833 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800834 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800835dri|no) # these checks are still desired when there is no mesa_driver
Dan Nicholson88586332007-11-15 08:59:57 -0800836 # DRI must be shared, I think
837 if test "$enable_static" = yes; then
838 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
839 fi
840
Jesse Barnesf2f83d92010-01-11 17:28:10 -0500841 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
Samuel Thibault75856172011-03-14 22:08:21 +0000842 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
843 DRI_PC_REQ_PRIV=""
844
845 if test x"$driglx_direct" = xyes; then
846 # Check for libdrm
847 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
848 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
849 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
850 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
851 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800852
853 # find the DRI deps for libGL
854 if test "$x11_pkgconfig" = yes; then
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100855 dri_modules="x11 xext xdamage xfixes"
856
857 # add xf86vidmode if available
858 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
859 if test "$HAVE_XF86VIDMODE" = yes ; then
860 dri_modules="$dri_modules xxf86vm"
861 fi
862
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700863 # add xcb modules if necessary
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700864 if test "$enable_xcb" = yes; then
865 dri_modules="$dri_modules x11-xcb xcb-glx"
866 fi
867
868 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800869 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800870 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
871 GL_LIB_DEPS="$DRIGL_LIBS"
872 else
873 # should check these...
874 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
875 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800876 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
877 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700878
879 # XCB can only be used from pkg-config
880 if test "$enable_xcb" = yes; then
881 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800882 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700883 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
884 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
885 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800886 fi
887
888 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700889 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
890 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500891 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400892 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500893 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400894 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800895 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800896osmesa)
897 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700898 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800899 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800900esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700901AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800902AC_SUBST([GL_PC_REQ_PRIV])
903AC_SUBST([GL_PC_LIB_PRIV])
904AC_SUBST([GL_PC_CFLAGS])
905AC_SUBST([DRI_PC_REQ_PRIV])
Li Pengc33c1912010-07-30 12:26:15 +0800906AC_SUBST([GLESv1_CM_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400907AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500908AC_SUBST([GLESv2_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400909AC_SUBST([GLESv2_PC_LIB_PRIV])
910
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800911GLAPI_LIB_DEPS="-lpthread"
912AC_SUBST([GLAPI_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700913
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100914
915dnl Setup default DRI CFLAGS
916DRI_CFLAGS='$(CFLAGS)'
917DRI_CXXFLAGS='$(CXXFLAGS)'
918DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
919MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
920
921AC_ARG_ENABLE([shared-dricore],
922 [AS_HELP_STRING([--enable-shared-dricore],
923 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
924 [enable_dricore="$enableval"],
925 [enable_dricore=no])
926if test "$mesa_driver" = dri ; then
927 if test "$enable_dricore" = yes ; then
928 if test "$GCC$GXX" != yesyes ; then
929 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
930 enable_dricore=no
931 else
932 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
933 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
934 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
935 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
936 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
937 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
938 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
939 fi
940 fi
941fi
942AC_SUBST([DRICORE_LIBS])
943AC_SUBST([DRICORE_GLSL_LIBS])
944AC_SUBST([DRICORE_LIB_DEPS])
945AC_SUBST([DRI_CXXFLAGS])
946AC_SUBST([DRI_CFLAGS])
947AC_SUBST([MESA_MODULES])
948
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100949AC_SUBST([HAVE_XF86VIDMODE])
950
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200951PKG_CHECK_MODULES([LIBDRM_RADEON],
Marek Olšákec96b0e2011-02-06 15:42:55 +0100952 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200953 HAVE_LIBDRM_RADEON=yes,
954 HAVE_LIBDRM_RADEON=no)
955
Dan Nicholsondca1b792007-10-23 09:25:58 -0700956dnl
957dnl More X11 setup
958dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800959if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700960 DEFINES="$DEFINES -DUSE_XSHM"
961fi
962
963dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700964dnl TLS detection
Dan Nicholson44d99142007-12-05 18:47:01 -0800965dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700966
Dan Nicholson297e16c2008-05-05 15:42:53 -0700967AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800968 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800969 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700970 [GLX_USE_TLS="$enableval"],
971 [GLX_USE_TLS=no])
Tom Fogal31351dc2010-12-05 17:58:32 -0700972AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
973
Tom Fogal44842972011-02-21 22:32:18 -0700974AS_IF([test "x$GLX_USE_TLS" = xyes],
975 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
976
Tom Fogal31351dc2010-12-05 17:58:32 -0700977dnl
978dnl More DRI setup
979dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800980dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700981AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800982 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700983 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700984 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700985 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700986AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +0800987dnl Extra search path for DRI drivers
988AC_ARG_WITH([dri-searchpath],
989 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
990 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
991 [DRI_DRIVER_SEARCH_DIR="$withval"],
992 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
993AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800994dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700995AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800996 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700997 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200998 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700999 [with_dri_drivers="$withval"],
1000 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001001if test "x$with_dri_drivers" = x; then
1002 with_dri_drivers=no
1003fi
1004
1005dnl If $with_dri_drivers is yes, directories will be added through
1006dnl platform checks
1007DRI_DIRS=""
1008case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001009no) ;;
1010yes)
1011 DRI_DIRS="yes"
1012 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001013*)
1014 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -07001015 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001016 for driver in $dri_drivers; do
1017 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1018 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1019 done
1020 DRI_DIRS="$dri_drivers"
1021 ;;
1022esac
1023
Dan Nicholson44d99142007-12-05 18:47:01 -08001024dnl Set DRI_DIRS, DEFINES and LIB_DEPS
Chia-I Wube5f34a2010-10-27 16:14:27 +08001025if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
Dan Nicholson44d99142007-12-05 18:47:01 -08001026 # Platform specific settings and drivers to build
1027 case "$host_os" in
1028 linux*)
1029 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -08001030 if test "x$driglx_direct" = xyes; then
1031 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1032 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +01001033 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001034
1035 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -08001036 x86_64)
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001037 # sis is missing because they have not be converted to use
1038 # the new interface. i810 are missing because there is no
1039 # x86-64 system where they could *ever* be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001040 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001041 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1042 radeon savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001043 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001044 ;;
1045 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -08001046 # Build only the drivers for cards that exist on PowerPC.
1047 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001048 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -04001049 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001050 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001051 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001052 sparc*)
1053 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001054 if test "x$DRI_DIRS" = "xyes"; then
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001055 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001056 fi
1057 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001058 esac
1059 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -07001060 freebsd* | dragonfly* | *netbsd*)
Dan Nicholson44d99142007-12-05 18:47:01 -08001061 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1062 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1063 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1064 if test "x$driglx_direct" = xyes; then
1065 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1066 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001067
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001068 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001069 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1070 radeon tdfx unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001071 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001072 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -07001073 gnu*)
1074 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1075 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1076 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001077 solaris*)
1078 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1079 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1080 if test "x$driglx_direct" = xyes; then
1081 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1082 fi
1083 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +00001084 cygwin*)
1085 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1086 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1087 if test "x$driglx_direct" = xyes; then
1088 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1089 fi
1090 if test "x$DRI_DIRS" = "xyes"; then
1091 DRI_DIRS="swrast"
1092 fi
1093 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001094 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -08001095
1096 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001097 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001098 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001099 savage sis tdfx unichrome swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -08001100 fi
1101
Dan Nicholson44d99142007-12-05 18:47:01 -08001102 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1103
1104 # Check for expat
Chia-I Wube5f34a2010-10-27 16:14:27 +08001105 if test "$mesa_driver" = dri; then
1106 EXPAT_INCLUDES=""
1107 EXPAT_LIB=-lexpat
1108 AC_ARG_WITH([expat],
1109 [AS_HELP_STRING([--with-expat=DIR],
1110 [expat install directory])],[
1111 EXPAT_INCLUDES="-I$withval/include"
1112 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1113 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1114 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1115 ])
1116 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1117 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1118 [AC_MSG_ERROR([Expat required for DRI.])])
1119 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001120
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001121 # put all the necessary libs together, including possibly libdricore
1122 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001123fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001124AC_SUBST([DRI_DIRS])
1125AC_SUBST([EXPAT_INCLUDES])
1126AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -08001127
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001128case $DRI_DIRS in
1129*i915*|*i965*)
Tormod Volden903185b2011-01-25 13:25:18 -08001130 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001131 ;;
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001132esac
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001133
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001134case $DRI_DIRS in
Johannes Obermayr873379a2011-06-02 17:15:44 -06001135*nouveau*)
1136 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1137 ;;
1138esac
1139
1140case $DRI_DIRS in
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001141*radeon*|*r200*|*r300*|*r600*)
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001142 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001143 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1144 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1145 fi
1146 ;;
1147esac
1148AC_SUBST([RADEON_CFLAGS])
1149AC_SUBST([RADEON_LDFLAGS])
1150
1151
Dan Nicholson44d99142007-12-05 18:47:01 -08001152dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001153dnl OSMesa configuration
1154dnl
Dan Nicholsona1307182007-12-12 17:49:49 -08001155if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -08001156 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -08001157else
Dan Nicholson544ab202007-12-30 08:41:53 -08001158 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -08001159fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001160AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -08001161 [AS_HELP_STRING([--enable-gl-osmesa],
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001162 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001163 [gl_osmesa="$enableval"],
1164 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -08001165if test "x$gl_osmesa" = xyes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001166 if test "x$enable_opengl" = xno; then
1167 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1168 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001169 if test "$mesa_driver" = osmesa; then
1170 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -08001171 else
Dan Nicholson544ab202007-12-30 08:41:53 -08001172 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -08001173 fi
1174fi
1175
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001176dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -07001177AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001178 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1179 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001180 [osmesa_bits="$withval"],
1181 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001182if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1183 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1184 osmesa_bits=8
1185fi
1186case "x$osmesa_bits" in
1187x8)
1188 OSMESA_LIB=OSMesa
1189 ;;
1190x16|x32)
1191 OSMESA_LIB="OSMesa$osmesa_bits"
1192 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1193 ;;
1194*)
1195 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1196 ;;
1197esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001198AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001199
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001200case "$DRIVER_DIRS" in
1201*osmesa*)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001202 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -08001203 if test "$enable_static" = no; then
Kenneth Graunked1d812052011-01-16 16:01:54 -08001204 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -08001205 else
1206 OSMESA_LIB_DEPS=""
1207 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001208 OSMESA_MESA_DEPS=""
Kenneth Graunked1d812052011-01-16 16:01:54 -08001209 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -08001210 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -08001211esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001212AC_SUBST([OSMESA_LIB_DEPS])
1213AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001214AC_SUBST([OSMESA_PC_REQ])
1215AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001216
1217dnl
Dan Nicholson53b37342009-02-25 17:45:34 -08001218dnl EGL configuration
1219dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001220EGL_CLIENT_APIS=""
1221
Chia-I Wube5f34a2010-10-27 16:14:27 +08001222if test "x$enable_egl" = xno; then
1223 if test "x$mesa_driver" = xno; then
1224 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1225 fi
Chia-I Wube5f34a2010-10-27 16:14:27 +08001226fi
Dan Nicholson66f97862009-04-29 12:11:43 -07001227if test "x$enable_egl" = xyes; then
1228 SRC_DIRS="$SRC_DIRS egl"
Tapani Pälli2758e652011-05-16 16:56:43 +03001229 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001230 EGL_DRIVERS_DIRS=""
Marek Olšákad50abba2011-06-14 05:14:27 +02001231
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001232 if test "$enable_static" != yes; then
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001233 # build egl_glx when libGL is built
Chia-I Wube5f34a2010-10-27 16:14:27 +08001234 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001235 EGL_DRIVERS_DIRS="glx"
1236 fi
1237
Benjamin Franzke184bb092011-04-30 11:18:23 +02001238 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1239 [have_libudev=yes],[have_libudev=no])
Benjamin Franzkea7cd65f2011-05-31 11:14:46 +02001240 if test "$have_libudev" = yes; then
1241 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1242 fi
Chia-I Wu39ae9652010-07-16 19:48:52 +08001243 if test "$mesa_driver" = dri; then
1244 # build egl_dri2 when xcb-dri2 is available
1245 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1246 [have_xcb_dri2=yes],[have_xcb_dri2=no])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001247
1248 if test "$have_xcb_dri2" = yes; then
1249 EGL_DRIVER_DRI2=dri2
1250 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
Benjamin Franzke4ca075a2011-03-02 21:23:04 +01001251 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1252 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1253 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001254 fi
1255 fi
Kristian Høgsberg2168b872010-06-02 22:48:06 -04001256
1257 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
Kristian Høgsberg42fa0092010-02-03 10:18:28 -05001258 fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001259fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001260AC_SUBST([EGL_LIB_DEPS])
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001261AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson53b37342009-02-25 17:45:34 -08001262
1263dnl
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +02001264dnl gbm configuration
1265dnl
1266if test "x$enable_gbm" = xauto; then
1267 case "$with_egl_platforms" in
1268 *drm*)
1269 enable_gbm=yes ;;
1270 *)
1271 enable_gbm=no ;;
1272 esac
1273fi
1274if test "x$enable_gbm" = xyes; then
1275 SRC_DIRS="$SRC_DIRS gbm"
1276 GBM_BACKEND_DIRS=""
1277
1278 PKG_CHECK_MODULES([LIBUDEV], [libudev], [],
1279 AC_MSG_ERROR([gbm needs udev]))
1280 GBM_LIB_DEPS="$DLOPEN_LIBS $LIBUDEV_LIBS"
Benjamin Franzke2ff79702011-05-26 15:10:50 +02001281
1282 if test "$mesa_driver" = dri; then
1283 GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1284 if test "$SHARED_GLAPI" -eq 0; then
1285 AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1286 fi
1287 fi
Benjamin Franzkeeddcecb2011-05-26 15:09:39 +02001288fi
1289AC_SUBST([GBM_LIB_DEPS])
1290AC_SUBST([GBM_BACKEND_DIRS])
1291GBM_PC_REQ_PRIV="libudev"
1292GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1293GBM_PC_CFLAGS=
1294AC_SUBST([GBM_PC_REQ_PRIV])
1295AC_SUBST([GBM_PC_LIB_PRIV])
1296AC_SUBST([GBM_PC_CFLAGS])
1297
1298dnl
Marek Olšák1251e1d2011-06-18 20:33:55 +02001299dnl EGL Gallium configuration
1300dnl
1301if test "x$enable_gallium_egl" = xyes; then
1302 if test "x$with_gallium_drivers" = x; then
1303 AC_MSG_ERROR([cannot enable egl_gallium without Gallium])
1304 fi
1305 if test "x$enable_egl" = xno; then
1306 AC_MSG_ERROR([cannot enable egl_gallium without EGL])
1307 fi
1308
1309 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1310 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
1311 HAVE_ST_EGL="yes"
1312fi
1313
1314dnl
Benjamin Franzke48d4a002011-05-26 15:11:50 +02001315dnl gbm Gallium configuration
1316dnl
1317if test "x$enable_gallium_gbm" = xyes; then
1318 if test "x$with_gallium_drivers" = x; then
1319 AC_MSG_ERROR([cannot enable gbm_gallium without Gallium])
1320 fi
1321 if test "x$enable_gbm" = xno; then
1322 AC_MSG_ERROR([cannot enable gbm_gallium without gbm])
1323 fi
1324
1325 GALLIUM_STATE_TRACKERS_DIRS="gbm $GALLIUM_STATE_TRACKERS_DIRS"
1326 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS gbm"
1327 HAVE_ST_GBM="yes"
1328fi
1329
1330dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001331dnl X.Org DDX configuration
1332dnl
1333if test "x$enable_xorg" = xyes; then
1334 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1335 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1336 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1337 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1338 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1339 HAVE_XEXTPROTO_71="no")
1340 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1341 HAVE_ST_XORG=yes
1342fi
1343
1344dnl
1345dnl OpenVG configuration
1346dnl
1347VG_LIB_DEPS=""
1348
1349if test "x$enable_openvg" = xyes; then
1350 if test "x$enable_egl" = xno; then
1351 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1352 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02001353 if test "x$with_gallium_drivers" = x; then
Marek Olšák440d71d2011-06-14 05:38:58 +02001354 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1355 fi
Marek Olšák1251e1d2011-06-18 20:33:55 +02001356 if test "x$enable_gallium_egl" = xno; then
1357 AC_MSG_ERROR([cannot enable OpenVG without egl_gallium])
1358 fi
Marek Olšák440d71d2011-06-14 05:38:58 +02001359
1360 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1361 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1362 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1363 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1364 HAVE_ST_VEGA=yes
1365fi
1366
1367dnl
1368dnl D3D1X configuration
1369dnl
1370
1371if test "x$enable_d3d1x" = xyes; then
Marek Olšák58b6a192011-06-14 07:46:59 +02001372 if test "x$with_gallium_drivers" = x; then
1373 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1374 fi
1375
Marek Olšák440d71d2011-06-14 05:38:58 +02001376 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1377 HAVE_ST_D3D1X=yes
1378fi
1379
1380dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001381dnl GLU configuration
1382dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001383AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001384 [AS_HELP_STRING([--disable-glu],
1385 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001386 [enable_glu="$enableval"],
1387 [enable_glu=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001388
1389if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1390 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1391 enable_glu=no
1392fi
1393
Dan Nicholsondca1b792007-10-23 09:25:58 -07001394if test "x$enable_glu" = xyes; then
1395 SRC_DIRS="$SRC_DIRS glu"
1396
Dan Nicholson979ff512007-12-05 18:47:01 -08001397 case "$mesa_driver" in
1398 osmesa)
Dan Nicholson979ff512007-12-05 18:47:01 -08001399 # Link libGLU to libOSMesa instead of libGL
1400 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001401 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -08001402 if test "$enable_static" = no; then
1403 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1404 else
1405 GLU_MESA_DEPS=""
1406 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001407 ;;
1408 *)
Dan Nicholson88586332007-11-15 08:59:57 -08001409 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -08001410 GLU_PC_REQ="gl"
1411 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -08001412 if test "$enable_static" = no; then
1413 GLU_LIB_DEPS="-lm"
1414 GLU_MESA_DEPS='-l$(GL_LIB)'
1415 else
1416 GLU_LIB_DEPS=""
1417 GLU_MESA_DEPS=""
1418 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1419 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001420 ;;
1421 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001422fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001423if test "$enable_static" = no; then
1424 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1425fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001426GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -07001427AC_SUBST([GLU_LIB_DEPS])
1428AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001429AC_SUBST([GLU_PC_REQ])
1430AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001431AC_SUBST([GLU_PC_LIB_PRIV])
1432AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001433
1434dnl
1435dnl GLw configuration
1436dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001437AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001438 [AS_HELP_STRING([--disable-glw],
1439 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001440 [enable_glw="$enableval"],
1441 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -08001442dnl Don't build GLw on osmesa
Chia-I Wube5f34a2010-10-27 16:14:27 +08001443if test "x$enable_glw" = xyes; then
1444 case "$mesa_driver" in
1445 osmesa|no)
1446 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1447 enable_glw=no
1448 ;;
1449 esac
Dan Nicholson979ff512007-12-05 18:47:01 -08001450fi
Dan Nicholson776c60d2008-07-18 07:40:41 -07001451AC_ARG_ENABLE([motif],
1452 [AS_HELP_STRING([--enable-motif],
1453 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1454 [enable_motif="$enableval"],
1455 [enable_motif=no])
1456
Dan Nicholsondca1b792007-10-23 09:25:58 -07001457if test "x$enable_glw" = xyes; then
1458 SRC_DIRS="$SRC_DIRS glw"
1459 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001460 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001461 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001462 GLW_LIB_DEPS="$GLW_LIBS"
1463 else
1464 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -07001465 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001466 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1467 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001468 fi
1469
1470 GLW_SOURCES="GLwDrawA.c"
1471 MOTIF_CFLAGS=
1472 if test "x$enable_motif" = xyes; then
1473 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1474 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1475 if test "x$MOTIF_CONFIG" != xno; then
1476 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1477 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1478 else
1479 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1480 [AC_MSG_ERROR([Can't locate Motif headers])])
1481 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1482 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1483 fi
1484 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1485 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001486 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1487 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001488 fi
1489
Dan Nicholson88586332007-11-15 08:59:57 -08001490 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001491 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001492 if test "$enable_static" = no; then
1493 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001494 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001495 else
1496 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1497 GLW_LIB_DEPS=""
1498 GLW_MESA_DEPS=""
1499 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001500fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001501AC_SUBST([GLW_LIB_DEPS])
1502AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001503AC_SUBST([GLW_SOURCES])
1504AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001505AC_SUBST([GLW_PC_REQ_PRIV])
1506AC_SUBST([GLW_PC_LIB_PRIV])
1507AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001508
1509dnl
1510dnl GLUT configuration
1511dnl
1512if test -f "$srcdir/include/GL/glut.h"; then
1513 default_glut=yes
1514else
1515 default_glut=no
1516fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001517AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001518 [AS_HELP_STRING([--disable-glut],
1519 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001520 [enable_glut="$enableval"],
1521 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001522
Chia-I Wube5f34a2010-10-27 16:14:27 +08001523dnl Don't build glut on osmesa
1524if test "x$enable_glut" = xyes; then
1525 case "$mesa_driver" in
1526 osmesa|no)
1527 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1528 enable_glut=no
1529 ;;
1530 esac
1531fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001532dnl Can't build glut if GLU not available
1533if test "x$enable_glu$enable_glut" = xnoyes; then
1534 AC_MSG_WARN([Disabling glut since GLU is disabled])
1535 enable_glut=no
1536fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001537
Dan Nicholsondca1b792007-10-23 09:25:58 -07001538if test "x$enable_glut" = xyes; then
1539 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001540 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001541 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001542 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001543 GLUT_LIB_DEPS="$GLUT_LIBS"
1544 else
1545 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001546 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001547 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1548 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001549 fi
John Hein96172542010-07-01 12:53:28 -07001550 if test "x$GCC" = xyes; then
1551 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1552 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001553 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1554 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001555
Dan Nicholson88586332007-11-15 08:59:57 -08001556 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1557 if test "$enable_static" = no; then
1558 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1559 else
1560 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1561 GLUT_LIB_DEPS=""
1562 GLUT_MESA_DEPS=""
1563 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001564fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001565AC_SUBST([GLUT_LIB_DEPS])
1566AC_SUBST([GLUT_MESA_DEPS])
1567AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001568AC_SUBST([GLUT_PC_REQ_PRIV])
1569AC_SUBST([GLUT_PC_LIB_PRIV])
1570AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001571
1572dnl
1573dnl Program library dependencies
1574dnl Only libm is added here if necessary as the libraries should
1575dnl be pulled in by the linker
1576dnl
1577if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001578 case "$host_os" in
1579 solaris*)
1580 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1581 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001582 cygwin*)
1583 APP_LIB_DEPS="-lX11"
1584 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001585 *)
1586 APP_LIB_DEPS="-lm"
1587 ;;
1588 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001589fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001590AC_SUBST([APP_LIB_DEPS])
1591AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001592
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001593dnl
1594dnl Gallium configuration
1595dnl
Marek Olšák58b6a192011-06-14 07:46:59 +02001596if test "x$with_gallium_drivers" != x; then
Jakob Bornecrantzbe38b322010-03-23 13:23:26 +00001597 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
Dave Airlie81fe1982010-04-22 14:59:29 +10001598 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
Cyril Brulebois9ba29072011-06-15 15:50:02 +02001599else
1600 LLVM_CONFIG=no
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001601fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001602
Dave Airlie81fe1982010-04-22 14:59:29 +10001603AC_SUBST([LLVM_CFLAGS])
1604AC_SUBST([LLVM_LIBS])
1605AC_SUBST([LLVM_LDFLAGS])
1606AC_SUBST([LLVM_VERSION])
1607
Chia-I Wudbacbb82010-11-02 02:00:36 +08001608
Chia-I Wube5f34a2010-10-27 16:14:27 +08001609
1610case "x$enable_opengl$enable_gles1$enable_gles2" in
1611x*yes*)
1612 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1613 ;;
1614esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001615
Chia-I Wu874ccd52010-05-04 22:43:05 +08001616AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001617AC_SUBST([EGL_CLIENT_APIS])
1618
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001619AC_ARG_WITH([egl-platforms],
1620 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1621 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001622 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001623 [with_egl_platforms="$withval"],
1624 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001625
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001626EGL_PLATFORMS=""
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001627WAYLAND_EGL_LIB_DEPS=""
1628
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001629case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001630yes)
1631 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001632 EGL_PLATFORMS="x11"
Chia-I Wu49381d62010-01-11 01:23:01 +08001633 fi
1634 ;;
1635*)
1636 if test "x$enable_egl" != xyes; then
1637 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1638 fi
1639 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001640 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1641 for plat in $egl_platforms; do
1642 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
Kristian Høgsberg1a8899d2011-02-10 10:45:06 -05001643 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001644 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001645 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1646 fi
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001647 if test "$plat" = "wayland"; then
Benjamin Franzke6b369c42011-02-21 16:22:34 +01001648 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001649 [AC_MSG_ERROR([cannot find libwayland-client])])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001650 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
Benjamin Franzkeaaa3c0d2011-04-23 14:14:29 +02001651 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001652 fi
Benjamin Franzkee5fc4c82011-05-30 10:50:52 +02001653 if test "$plat" = "drm" && test "x$enable_gbm" = no; then
1654 AC_MSG_ERROR([EGL platform drm needs gbm])
1655 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001656 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001657 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001658 ;;
1659esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001660AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001661
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001662AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1663WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1664WAYLAND_EGL_PC_LIB_PRIV=
1665WAYLAND_EGL_PC_CFLAGS=
1666
1667AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1668AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1669AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1670
1671
Chia-I Wu28c3e572010-01-23 20:18:43 +08001672AC_ARG_WITH([egl-driver-dir],
1673 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1674 [directory for EGL drivers [[default=${libdir}/egl]]])],
1675 [EGL_DRIVER_INSTALL_DIR="$withval"],
1676 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1677AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1678
Joel Bosveld8acca482009-03-06 08:46:08 +09001679AC_ARG_WITH([xorg-driver-dir],
1680 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1681 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1682 [XORG_DRIVER_INSTALL_DIR="$withval"],
1683 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1684AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1685
Tom Fogal7085dce2009-08-13 19:40:30 -06001686AC_ARG_WITH([max-width],
1687 [AS_HELP_STRING([--with-max-width=N],
1688 [Maximum framebuffer width (4096)])],
1689 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1690 AS_IF([test "${withval}" -gt "4096"],
1691 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1692)
1693AC_ARG_WITH([max-height],
1694 [AS_HELP_STRING([--with-max-height=N],
1695 [Maximum framebuffer height (4096)])],
1696 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1697 AS_IF([test "${withval}" -gt "4096"],
1698 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1699)
1700
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001701dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001702dnl Gallium LLVM
1703dnl
1704AC_ARG_ENABLE([gallium-llvm],
1705 [AS_HELP_STRING([--enable-gallium-llvm],
Marek Olšáka86fc712011-04-21 13:27:55 +02001706 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
Dave Airlie81fe1982010-04-22 14:59:29 +10001707 [enable_gallium_llvm="$enableval"],
1708 [enable_gallium_llvm=auto])
Marek Olšák58b6a192011-06-14 07:46:59 +02001709if test "x$with_gallium_drivers" = x; then
1710 enable_gallium_llvm=no
1711fi
Marek Olšáka86fc712011-04-21 13:27:55 +02001712if test "x$enable_gallium_llvm" = xauto; then
1713 case "$host_cpu" in
1714 i*86|x86_64) enable_gallium_llvm=yes;;
1715 esac
1716fi
Dave Airlie81fe1982010-04-22 14:59:29 +10001717if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001718 if test "x$LLVM_CONFIG" != xno; then
1719 LLVM_VERSION=`$LLVM_CONFIG --version`
Brian Paul7da704e2010-12-08 06:44:42 -07001720 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
José Fonseca202c3452011-03-14 19:58:22 +00001721 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001722
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001723 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1724 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
Chia-I Wu3ecb8c22010-05-11 12:36:49 +08001725 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001726 MESA_LLVM=1
1727 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001728 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001729 fi
1730else
1731 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001732fi
1733
1734dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001735dnl Gallium helper functions
1736dnl
1737gallium_check_st() {
Chia-I Wud8e0e112010-06-29 14:04:27 +08001738 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001739 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1740 fi
1741 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1742 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1743 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001744 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001745 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1746 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001747}
1748
Marek Olšákc17fb852011-06-14 04:03:17 +02001749gallium_require_llvm() {
1750 if test "x$MESA_LLVM" = x0; then
1751 case "$host_cpu" in
1752 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1753 esac
1754 fi
1755}
1756
Marek Olšák58b6a192011-06-14 07:46:59 +02001757dnl Gallium drivers
1758if test "x$with_gallium_drivers" != x; then
1759 # This is for compile-testing
1760 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001761 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001762
Marek Olšák58b6a192011-06-14 07:46:59 +02001763 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1764 for driver in $gallium_drivers; do
1765 case "x$driver" in
1766 xsvga)
1767 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1768 ;;
1769 xi915)
1770 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1771 ;;
1772 xi965)
1773 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1774 ;;
1775 xr300)
1776 gallium_require_llvm "Gallium R300"
1777 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1778 ;;
1779 xr600)
1780 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1781 gallium_check_st "r600/drm" "dri-r600"
1782 ;;
1783 xnouveau)
1784 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1785 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1786 ;;
1787 xswrast)
1788 if test "x$HAVE_ST_DRI" = xyes; then
1789 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1790 fi
1791 ;;
1792 *)
1793 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1794 ;;
1795 esac
1796 done
Chia-I Wua1306f42010-01-22 15:51:51 +08001797fi
1798
Chia-I Wu99a37ed2010-01-05 17:39:05 +08001799dnl prepend CORE_DIRS to SRC_DIRS
1800SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001801
Dan Nicholsondca1b792007-10-23 09:25:58 -07001802dnl Restore LDFLAGS and CPPFLAGS
1803LDFLAGS="$_SAVE_LDFLAGS"
1804CPPFLAGS="$_SAVE_CPPFLAGS"
1805
1806dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001807AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001808
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001809dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001810AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001811if test -f configs/current || test -L configs/current; then
1812 rm -f configs/current
1813fi
1814ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001815])
1816
1817AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001818
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001819dnl
1820dnl Output some configuration info for the user
1821dnl
1822echo ""
1823echo " prefix: $prefix"
1824echo " exec_prefix: $exec_prefix"
1825echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001826echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001827
Chia-I Wu815faa42010-10-29 12:34:44 +08001828dnl API info
1829echo ""
1830echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08001831echo " OpenVG: $enable_openvg"
1832
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001833dnl Driver info
1834echo ""
1835echo " Driver: $mesa_driver"
Chia-I Wu815faa42010-10-29 12:34:44 +08001836if test "$mesa_driver" != no; then
1837 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1838 echo " OSMesa: lib$OSMESA_LIB"
1839 else
1840 echo " OSMesa: no"
1841 fi
1842 if test "$mesa_driver" = dri; then
1843 # cleanup the drivers var
1844 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1845 if test "x$DRI_DIRS" = x; then
1846 echo " DRI drivers: no"
1847 else
1848 echo " DRI drivers: $dri_dirs"
1849 fi
1850 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1851 echo " Use XCB: $enable_xcb"
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001852 echo " Shared dricore: $enable_dricore"
Chia-I Wu815faa42010-10-29 12:34:44 +08001853 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001854fi
Chia-I Wu815faa42010-10-29 12:34:44 +08001855echo ""
1856echo " GLU: $enable_glu"
1857echo " GLw: $enable_glw (Motif: $enable_motif)"
1858echo " glut: $enable_glut"
1859
1860dnl EGL
1861echo ""
1862echo " EGL: $enable_egl"
1863if test "$enable_egl" = yes; then
1864 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08001865
1866 egl_drivers=""
1867 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08001868 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08001869 done
1870
Marek Olšák1251e1d2011-06-18 20:33:55 +02001871 if test "x$HAVE_ST_EGL" = xyes; then
Chia-I Wu12300502010-10-31 21:01:54 +08001872 echo " EGL drivers: ${egl_drivers} egl_gallium"
1873 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08001874 else
Chia-I Wu12300502010-10-31 21:01:54 +08001875 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08001876 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001877fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001878
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001879echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07001880if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01001881 echo " llvm: yes"
1882 echo " llvm-config: $LLVM_CONFIG"
1883 echo " llvm-version: $LLVM_VERSION"
1884else
1885 echo " llvm: no"
1886fi
1887
1888echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001889if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1890 echo " Gallium: yes"
1891 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00001892 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001893 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001894 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001895 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1896else
1897 echo " Gallium: no"
1898fi
1899
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001900dnl Libraries
1901echo ""
1902echo " Shared libs: $enable_shared"
1903echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001904
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001905dnl Compiler options
1906# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1907cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1908 $SED 's/^ *//;s/ */ /;s/ *$//'`
1909cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1910 $SED 's/^ *//;s/ */ /;s/ *$//'`
1911defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1912echo ""
1913echo " CFLAGS: $cflags"
1914echo " CXXFLAGS: $cxxflags"
1915echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07001916echo ""
1917echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001918
Dan Nicholsondca1b792007-10-23 09:25:58 -07001919echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001920echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001921echo ""