blob: ba5e12ec021bb42334fd35264f4935ff251393fe [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
Brian Paul483f5662011-01-11 09:42:52 -070021LIBDRM_REQUIRED=2.4.23
22LIBDRM_RADEON_REQUIRED=2.4.23
Kristian Høgsbergaa0cd702010-02-15 10:44:05 -050023DRI2PROTO_REQUIRED=2.1
Jesse Barnesf2f83d92010-01-11 17:28:10 -050024GLPROTO_REQUIRED=1.4.11
Brian Paul483f5662011-01-11 09:42:52 -070025LIBDRM_XORG_REQUIRED=2.4.23
Jakob Bornecrantz683a0992010-03-11 19:23:15 +000026LIBKMS_XORG_REQUIRED=1.0.0
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070027
Dan Nicholsondca1b792007-10-23 09:25:58 -070028dnl Check for progs
29AC_PROG_CPP
30AC_PROG_CC
31AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070032AC_CHECK_PROGS([MAKE], [gmake make])
Kenneth Graunke3acc8262010-10-25 13:52:58 -070033AC_CHECK_PROGS([PYTHON2], [python2 python])
Dan Nicholson297e16c2008-05-05 15:42:53 -070034AC_PATH_PROG([MKDEP], [makedepend])
35AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080036
Luca Barbierif762f7b2010-09-24 10:10:09 +020037if test "x$MKDEP" = "x"; then
38 AC_MSG_ERROR([makedepend is required to build Mesa])
39fi
40
Dan Nicholsonbc302b22009-05-22 09:39:02 -070041dnl Our fallback install-sh is a symlink to minstall. Use the existing
42dnl configuration in that case.
43AC_PROG_INSTALL
44test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
45
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070046dnl We need a POSIX shell for parts of the build. Assume we have one
47dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070048case "$host_os" in
49solaris*)
50 # Solaris /bin/sh is too old/non-POSIX compliant
51 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070052 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070053 ;;
54esac
55
nobled2a501872010-08-29 20:03:37 -040056dnl clang is mostly GCC-compatible, but its version is much lower,
57dnl so we have to check for it.
58AC_MSG_CHECKING([if compiling with clang])
59
60AC_COMPILE_IFELSE(
61[AC_LANG_PROGRAM([], [[
62#ifndef __clang__
63 not clang
64#endif
65]])],
66[CLANG=yes], [CLANG=no])
67
68AC_MSG_RESULT([$CLANG])
69
Ian Romanick9aa3aa72010-03-03 15:59:37 -080070dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
71dnl versions are explictly not supported.
nobled2a501872010-08-29 20:03:37 -040072if test "x$GCC" = xyes -a "x$CLANG" = xno; then
Ian Romanick9aa3aa72010-03-03 15:59:37 -080073 AC_MSG_CHECKING([whether gcc version is sufficient])
74 major=0
75 minor=0
76
77 GCC_VERSION=`$CC -dumpversion`
78 if test $? -eq 0; then
79 major=`echo $GCC_VERSION | cut -d. -f1`
80 minor=`echo $GCC_VERSION | cut -d. -f1`
81 fi
82
83 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
84 AC_MSG_RESULT([no])
85 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
86 else
87 AC_MSG_RESULT([yes])
88 fi
89fi
90
91
Dan Nicholsondb7fc632008-03-07 11:48:09 -080092MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050093dnl Ask gcc where it's keeping its secret headers
94if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080095 for dir in include include-fixed; do
96 GCC_INCLUDES=`$CC -print-file-name=$dir`
97 if test "x$GCC_INCLUDES" != x && \
98 test "$GCC_INCLUDES" != "$dir" && \
99 test -d "$GCC_INCLUDES"; then
100 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
101 fi
102 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500103fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700104AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500105
Dan Nicholson41b00702007-12-12 08:48:30 -0800106dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -0700107m4_ifndef([PKG_PROG_PKG_CONFIG],
108 [m4_fatal([Could not locate the pkg-config autoconf macros.
109 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
110 are in a different location, try setting the environment variable
111 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700112PKG_PROG_PKG_CONFIG()
113
114dnl LIB_DIR - library basename
115LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -0700116AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700117
118dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
119_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700120AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
121AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700122
123dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
124_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700125AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
126AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700127
128dnl Compiler macros
129DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -0700130AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700131case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700132linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -0800133 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700134 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700135solaris*)
136 DEFINES="$DEFINES -DPTHREADS -DSVR4"
137 ;;
Brian Paul97988902010-02-18 12:46:12 -0700138cygwin*)
139 DEFINES="$DEFINES -DPTHREADS"
140 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -0700141esac
142
143dnl Add flags for gcc and g++
144if test "x$GCC" = xyes; then
Eric Anholta3c2bd42010-08-30 14:19:23 -0700145 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
146 if test "x$CLANG" = "xno"; then
147 CFLAGS="$CFLAGS -ffast-math"
148 fi
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800149
150 # Enable -fvisibility=hidden if using a gcc that supports it
151 save_CFLAGS="$CFLAGS"
Alan Coopersmithf8107a42010-01-21 16:42:58 -0800152 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800153 CFLAGS="$CFLAGS -fvisibility=hidden"
154 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
155 [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
Dan Nicholson0c275b62008-01-15 22:52:25 -0800156
157 # Work around aliasing bugs - developers should comment this out
158 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700159fi
160if test "x$GXX" = xyes; then
161 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800162
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400163 # Enable -fvisibility=hidden if using a gcc that supports it
164 save_CXXFLAGS="$CXXFLAGS"
165 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
166 CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
167 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
168 [CXXFLAGS="$save_CXXFLAGS" ; AC_MSG_RESULT([no])]);
169
Dan Nicholson0c275b62008-01-15 22:52:25 -0800170 # Work around aliasing bugs - developers should comment this out
171 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700172fi
173
174dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700175AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700176 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700177AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700178 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700179AC_SUBST([OPT_FLAGS])
180AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700181
182dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600183dnl Hacks to enable 32 or 64 bit build
184dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700185AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600186 [AS_HELP_STRING([--enable-32-bit],
187 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700188 [enable_32bit="$enableval"],
189 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600190)
191if test "x$enable_32bit" = xyes; then
192 if test "x$GCC" = xyes; then
193 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700194 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600195 fi
196 if test "x$GXX" = xyes; then
197 CXXFLAGS="$CXXFLAGS -m32"
198 fi
199fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700200AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600201 [AS_HELP_STRING([--enable-64-bit],
202 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700203 [enable_64bit="$enableval"],
204 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600205)
206if test "x$enable_64bit" = xyes; then
207 if test "x$GCC" = xyes; then
208 CFLAGS="$CFLAGS -m64"
209 fi
210 if test "x$GXX" = xyes; then
211 CXXFLAGS="$CXXFLAGS -m64"
212 fi
213fi
214
215dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800216dnl shared/static libraries, mimic libtool options
217dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700218AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800219 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800220 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700221 [enable_static="$enableval"],
222 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800223)
224case "x$enable_static" in
225xyes|xno ) ;;
226x ) enable_static=no ;;
227* )
228 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
229 ;;
230esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700231AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800232 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800233 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700234 [enable_shared="$enableval"],
235 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800236)
237case "x$enable_shared" in
238xyes|xno ) ;;
239x ) enable_shared=yes ;;
240* )
241 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
242 ;;
243esac
244
245dnl Can't have static and shared libraries, default to static if user
246dnl explicitly requested. If both disabled, set to static since shared
247dnl was explicitly requirested.
248case "x$enable_static$enable_shared" in
249xyesyes )
250 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
251 enable_shared=no
252 ;;
253xnono )
254 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
255 enable_static=yes
256 ;;
257esac
258
259dnl
260dnl mklib options
261dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700262AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800263if test "$enable_static" = yes; then
264 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
265fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700266AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800267
Dan Nicholson23656c42007-12-12 09:02:31 -0800268dnl
269dnl other compiler options
270dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700271AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800272 [AS_HELP_STRING([--enable-debug],
273 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700274 [enable_debug="$enableval"],
275 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800276)
277if test "x$enable_debug" = xyes; then
278 DEFINES="$DEFINES -DDEBUG"
279 if test "x$GCC" = xyes; then
280 CFLAGS="$CFLAGS -g"
281 fi
282 if test "x$GXX" = xyes; then
283 CXXFLAGS="$CXXFLAGS -g"
284 fi
285fi
Dan Nicholson88586332007-11-15 08:59:57 -0800286
287dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700288dnl library names
289dnl
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100290LIB_PREFIX_GLOB='lib'
291LIB_VERSION_SEPARATOR='.'
Dan Nicholson88586332007-11-15 08:59:57 -0800292if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800293 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800294else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700295 case "$host_os" in
296 darwin* )
297 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100298 cygwin* )
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100299 dnl prefix can be 'cyg' or 'lib'
300 LIB_PREFIX_GLOB='???'
301 LIB_VERSION_SEPARATOR='-'
302 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700303 aix* )
304 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700305 * )
306 LIB_EXTENSION='so' ;;
307 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800308fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800309
310GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
311GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
312GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
313GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
314OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800315EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500316GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
317GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
Chia-I Wu874ccd52010-05-04 22:43:05 +0800318VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800319GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
Dan Nicholson8217f242009-02-11 15:16:00 -0800320
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100321GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
322GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
323GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
324GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
325OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
326EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
327EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
328GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
329GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
330VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800331GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Dan Nicholson8217f242009-02-11 15:16:00 -0800332
Dan Nicholson297e16c2008-05-05 15:42:53 -0700333AC_SUBST([GL_LIB_NAME])
334AC_SUBST([GLU_LIB_NAME])
335AC_SUBST([GLUT_LIB_NAME])
336AC_SUBST([GLW_LIB_NAME])
337AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800338AC_SUBST([EGL_LIB_NAME])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500339AC_SUBST([GLESv1_CM_LIB_NAME])
340AC_SUBST([GLESv2_LIB_NAME])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800341AC_SUBST([VG_LIB_NAME])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800342AC_SUBST([GLAPI_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700343
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700344AC_SUBST([GL_LIB_GLOB])
345AC_SUBST([GLU_LIB_GLOB])
346AC_SUBST([GLUT_LIB_GLOB])
347AC_SUBST([GLW_LIB_GLOB])
348AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800349AC_SUBST([EGL_LIB_GLOB])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500350AC_SUBST([GLESv1_CM_LIB_GLOB])
351AC_SUBST([GLESv2_LIB_GLOB])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800352AC_SUBST([VG_LIB_GLOB])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800353AC_SUBST([GLAPI_LIB_GLOB])
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700354
Dan Nicholsondca1b792007-10-23 09:25:58 -0700355dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700356dnl Arch/platform-specific settings
357dnl
358AC_ARG_ENABLE([asm],
359 [AS_HELP_STRING([--disable-asm],
360 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
361 [enable_asm="$enableval"],
362 [enable_asm=yes]
363)
364asm_arch=""
365ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800366MESA_ASM_SOURCES=""
367GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700368AC_MSG_CHECKING([whether to enable assembly])
369test "x$enable_asm" = xno && AC_MSG_RESULT([no])
370# disable if cross compiling on x86/x86_64 since we must run gen_matypes
371if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
372 case "$host_cpu" in
373 i?86 | x86_64)
374 enable_asm=no
375 AC_MSG_RESULT([no, cross compiling])
376 ;;
377 esac
378fi
379# check for supported arches
380if test "x$enable_asm" = xyes; then
381 case "$host_cpu" in
382 i?86)
383 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700384 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700385 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
386 ;;
387 esac
388 ;;
389 x86_64)
390 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700391 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700392 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
393 ;;
394 esac
395 ;;
396 powerpc)
397 case "$host_os" in
398 linux*)
399 asm_arch=ppc
400 ;;
401 esac
402 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800403 sparc*)
404 case "$host_os" in
405 linux*)
406 asm_arch=sparc
407 ;;
408 esac
409 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700410 esac
411
412 case "$asm_arch" in
413 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800414 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800415 MESA_ASM_SOURCES='$(X86_SOURCES)'
416 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700417 AC_MSG_RESULT([yes, x86])
418 ;;
419 x86_64)
420 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800421 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
422 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700423 AC_MSG_RESULT([yes, x86_64])
424 ;;
425 ppc)
426 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800427 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700428 AC_MSG_RESULT([yes, ppc])
429 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800430 sparc)
431 ASM_FLAGS="-DUSE_SPARC_ASM"
432 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
433 GLAPI_ASM_SOURCES='$(SPARC_API)'
434 AC_MSG_RESULT([yes, sparc])
435 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700436 *)
437 AC_MSG_RESULT([no, platform not supported])
438 ;;
439 esac
440fi
441AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800442AC_SUBST([MESA_ASM_SOURCES])
443AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700444
445dnl PIC code macro
446MESA_PIC_FLAGS
447
448dnl Check to see if dlopen is in default libraries (like Solaris, which
449dnl has it in libc), or if libdl is needed to get it.
450AC_CHECK_FUNC([dlopen], [],
451 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Chia-I Wu08f4bc02010-07-16 20:09:29 +0800452AC_SUBST([DLOPEN_LIBS])
Dan Nicholson871125a2008-06-04 13:00:35 -0700453
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700454dnl See if posix_memalign is available
455AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
456
Dan Nicholson871125a2008-06-04 13:00:35 -0700457dnl SELinux awareness.
458AC_ARG_ENABLE([selinux],
459 [AS_HELP_STRING([--enable-selinux],
460 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
461 [MESA_SELINUX="$enableval"],
462 [MESA_SELINUX=no])
463if test "x$enable_selinux" = "xyes"; then
464 AC_CHECK_HEADER([selinux/selinux.h],[],
465 [AC_MSG_ERROR([SELinux headers not found])])
466 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
467 [AC_MSG_ERROR([SELinux library not found])])
468 SELINUX_LIBS="-lselinux"
469 DEFINES="$DEFINES -DMESA_SELINUX"
470fi
471
Chia-I Wube5f34a2010-10-27 16:14:27 +0800472dnl Determine which APIs to support
473AC_ARG_ENABLE([opengl],
474 [AS_HELP_STRING([--disable-opengl],
475 [disable support for standard OpenGL API @<:@default=no@:>@])],
476 [enable_opengl="$enableval"],
477 [enable_opengl=yes])
478AC_ARG_ENABLE([gles1],
479 [AS_HELP_STRING([--enable-gles1],
480 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
481 [enable_gles1="$enableval"],
482 [enable_gles1=no])
483AC_ARG_ENABLE([gles2],
484 [AS_HELP_STRING([--enable-gles2],
485 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
486 [enable_gles2="$enableval"],
487 [enable_gles2=no])
488AC_ARG_ENABLE([gles-overlay],
489 [AS_HELP_STRING([--enable-gles-overlay],
Chia-I Wu12583172011-01-07 17:24:16 +0800490 [DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
491 [enable_gles1="$enableval"; enable_gles2="$enableval"],
492 [])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800493
494AC_ARG_ENABLE([openvg],
495 [AS_HELP_STRING([--enable-openvg],
496 [enable support for OpenVG API @<:@default=no@:>@])],
497 [enable_openvg="$enableval"],
498 [enable_openvg=no])
499
Chia-I Wu156e9552010-10-30 14:26:01 +0800500dnl smooth the transition; should be removed eventually
501if test "x$enable_openvg" = xno; then
502 case "x$with_state_trackers" in
503 x*vega*)
504 AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
505 enable_openvg=yes
506 ;;
507 esac
508fi
509
Chia-I Wube5f34a2010-10-27 16:14:27 +0800510if test "x$enable_opengl" = xno -a \
511 "x$enable_gles1" = xno -a \
512 "x$enable_gles2" = xno -a \
Chia-I Wube5f34a2010-10-27 16:14:27 +0800513 "x$enable_openvg" = xno; then
514 AC_MSG_ERROR([at least one API should be enabled])
515fi
516
517API_DEFINES=""
Chia-I Wube5f34a2010-10-27 16:14:27 +0800518if test "x$enable_opengl" = xno; then
519 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
520else
521 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
522fi
523if test "x$enable_gles1" = xyes; then
524 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
525fi
526if test "x$enable_gles2" = xyes; then
527 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
528fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800529AC_SUBST([API_DEFINES])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800530
Dan Nicholson871125a2008-06-04 13:00:35 -0700531dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800532dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg43875802010-02-25 15:49:18 -0500533dnl More later: fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800534dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700535default_driver="xlib"
536
537case "$host_os" in
538linux*)
539 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700540 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700541 esac
542 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700543*freebsd* | dragonfly* | *netbsd*)
Eric Anholt711222b2008-04-18 15:03:01 -0700544 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500545 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700546 esac
547 ;;
548esac
549
Chia-I Wube5f34a2010-10-27 16:14:27 +0800550if test "x$enable_opengl" = xno; then
551 default_driver="no"
552fi
553
Dan Nicholson297e16c2008-05-05 15:42:53 -0700554AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800555 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700556 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700557 [mesa_driver="$withval"],
558 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800559dnl Check for valid option
560case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800561xxlib|xdri|xosmesa)
Chia-I Wube5f34a2010-10-27 16:14:27 +0800562 if test "x$enable_opengl" = xno; then
563 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
564 fi
565 ;;
566xno)
Dan Nicholson44d99142007-12-05 18:47:01 -0800567 ;;
568*)
569 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
570 ;;
571esac
572
Eric Anholt0a1b54d2010-06-21 11:29:15 -0700573PKG_CHECK_MODULES([TALLOC], [talloc])
Eric Anholt639cdd32010-08-22 17:34:18 -0700574AC_SUBST([TALLOC_LIBS])
575AC_SUBST([TALLOC_CFLAGS])
Eric Anholt0a1b54d2010-06-21 11:29:15 -0700576
Dan Nicholson44d99142007-12-05 18:47:01 -0800577dnl
578dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700579dnl
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800580
581dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wube5f34a2010-10-27 16:14:27 +0800582CORE_DIRS=""
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800583
Jakob Bornecrantz05281062010-06-05 13:33:58 +0200584SRC_DIRS=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700585GLU_DIRS="sgi"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100586GALLIUM_DIRS="auxiliary drivers state_trackers"
Keith Whitwell51bff092010-03-11 14:43:00 +0000587GALLIUM_TARGET_DIRS=""
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000588GALLIUM_WINSYS_DIRS="sw"
Jerome Glisse33495172011-01-09 21:04:41 -0500589GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100590GALLIUM_STATE_TRACKERS_DIRS=""
591
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800592# build shared-glapi if OpenGL ES is enabled
593case "x$enable_gles1$enable_gles2" in
594x*yes*)
595 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
596 ;;
597esac
598
Chia-I Wube5f34a2010-10-27 16:14:27 +0800599# build glapi if OpenGL is enabled
600if test "x$enable_opengl" = xyes; then
601 CORE_DIRS="$CORE_DIRS mapi/glapi"
602fi
603
Chia-I Wu12583172011-01-07 17:24:16 +0800604# build es1api if OpenGL ES 1.x is enabled
605if test "x$enable_gles1" = xyes; then
606 CORE_DIRS="$CORE_DIRS mapi/es1api"
607fi
608
609# build es2api if OpenGL ES 2.x is enabled
610if test "x$enable_gles2" = xyes; then
611 CORE_DIRS="$CORE_DIRS mapi/es2api"
612fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800613
614# build vgapi if OpenVG is enabled
615if test "x$enable_openvg" = xyes; then
616 CORE_DIRS="$CORE_DIRS mapi/vgapi"
617fi
618
619# build glsl and mesa if OpenGL or OpenGL ES is enabled
Chia-I Wu12583172011-01-07 17:24:16 +0800620case "x$enable_opengl$enable_gles1$enable_gles2" in
Chia-I Wube5f34a2010-10-27 16:14:27 +0800621x*yes*)
622 CORE_DIRS="$CORE_DIRS glsl mesa"
623 ;;
624esac
625
Dan Nicholson44d99142007-12-05 18:47:01 -0800626case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800627xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800628 DRIVER_DIRS="x11"
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000629 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
Keith Whitwell51bff092010-03-11 14:43:00 +0000630 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800631 ;;
632dri)
Kristian Høgsberg6e8897f2010-02-09 09:58:36 -0500633 SRC_DIRS="$SRC_DIRS glx"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100634 DRIVER_DIRS="dri"
Jakob Bornecrantz23a915e2010-06-23 03:31:18 +0200635 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800636 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800637osmesa)
638 DRIVER_DIRS="osmesa"
639 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800640no)
641 DRIVER_DRIS=""
642 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800643esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700644AC_SUBST([SRC_DIRS])
645AC_SUBST([GLU_DIRS])
646AC_SUBST([DRIVER_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100647AC_SUBST([GALLIUM_DIRS])
Keith Whitwell51bff092010-03-11 14:43:00 +0000648AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100649AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000650AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100651AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlie81fe1982010-04-22 14:59:29 +1000652AC_SUBST([MESA_LLVM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700653
654dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700655dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700656dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700657dnl
658if test -n "$PKG_CONFIG"; then
659 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700660 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700661 x11_pkgconfig=yes
662 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700663 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700664 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700665 ])
666 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700667else
668 x11_pkgconfig=no
669fi
670dnl Use the autoconf macro if no pkg-config files
Jeff Smith8d86d392010-03-12 18:55:09 -0600671if test "$x11_pkgconfig" = yes; then
Dan Nicholsone725ef12010-03-15 20:53:56 -0700672 PKG_CHECK_MODULES([X11], [x11])
Jeff Smith8d86d392010-03-12 18:55:09 -0600673else
Dan Nicholsondca1b792007-10-23 09:25:58 -0700674 AC_PATH_XTRA
Dan Nicholsone725ef12010-03-15 20:53:56 -0700675 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
676 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
677 AC_SUBST([X11_CFLAGS])
678 AC_SUBST([X11_LIBS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700679fi
680
Dan Nicholson99803a42008-07-01 09:03:15 -0700681dnl Try to tell the user that the --x-* options are only used when
682dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
683m4_divert_once([HELP_BEGIN],
684[These options are only used when the X libraries cannot be found by the
685pkg-config utility.])
686
Dan Nicholson44d99142007-12-05 18:47:01 -0800687dnl We need X for xlib and dri, so bomb now if it's not found
688case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800689xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800690 if test "$no_x" = yes; then
691 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
692 fi
693 ;;
694esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700695
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700696dnl XCB - this is only used for GLX right now
697AC_ARG_ENABLE([xcb],
698 [AS_HELP_STRING([--enable-xcb],
699 [use XCB for GLX @<:@default=disabled@:>@])],
700 [enable_xcb="$enableval"],
701 [enable_xcb=no])
702if test "x$enable_xcb" = xyes; then
703 DEFINES="$DEFINES -DUSE_XCB"
704else
705 enable_xcb=no
706fi
707
Dan Nicholson44d99142007-12-05 18:47:01 -0800708dnl
709dnl libGL configuration per driver
710dnl
711case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800712xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800713 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700714 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800715 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800716 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
717 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800718 else
719 # should check these...
720 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
721 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800722 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
723 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800724 fi
Jon TURNEY63563032010-08-30 12:41:15 +0100725 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
726 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $TALLOC_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800727
728 # if static, move the external libraries to the programs
729 # and empty the libraries for libGL
730 if test "$enable_static" = yes; then
731 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
732 GL_LIB_DEPS=""
733 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800734 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800735dri|no) # these checks are still desired when there is no mesa_driver
Dan Nicholson88586332007-11-15 08:59:57 -0800736 # DRI must be shared, I think
737 if test "$enable_static" = yes; then
738 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
739 fi
740
Dan Nicholson44d99142007-12-05 18:47:01 -0800741 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700742 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
743 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Jesse Barnesf2f83d92010-01-11 17:28:10 -0500744 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
Jesse Barnesed59b132010-01-13 15:48:14 -0500745 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
746 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800747
748 # find the DRI deps for libGL
749 if test "$x11_pkgconfig" = yes; then
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100750 dri_modules="x11 xext xdamage xfixes"
751
752 # add xf86vidmode if available
753 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
754 if test "$HAVE_XF86VIDMODE" = yes ; then
755 dri_modules="$dri_modules xxf86vm"
756 fi
757
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700758 # add xcb modules if necessary
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700759 if test "$enable_xcb" = yes; then
760 dri_modules="$dri_modules x11-xcb xcb-glx"
761 fi
762
763 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800764 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800765 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
766 GL_LIB_DEPS="$DRIGL_LIBS"
767 else
768 # should check these...
769 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
770 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800771 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
772 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700773
774 # XCB can only be used from pkg-config
775 if test "$enable_xcb" = yes; then
776 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800777 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700778 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
779 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
780 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800781 fi
782
783 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700784 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
785 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500786 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400787 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500788 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400789 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800790 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800791osmesa)
792 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700793 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800794 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800795esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700796AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800797AC_SUBST([GL_PC_REQ_PRIV])
798AC_SUBST([GL_PC_LIB_PRIV])
799AC_SUBST([GL_PC_CFLAGS])
800AC_SUBST([DRI_PC_REQ_PRIV])
Li Pengc33c1912010-07-30 12:26:15 +0800801AC_SUBST([GLESv1_CM_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400802AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500803AC_SUBST([GLESv2_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400804AC_SUBST([GLESv2_PC_LIB_PRIV])
805
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800806GLAPI_LIB_DEPS="-lpthread"
807AC_SUBST([GLAPI_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700808
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100809AC_SUBST([HAVE_XF86VIDMODE])
810
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200811PKG_CHECK_MODULES([LIBDRM_RADEON],
812 [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
813 HAVE_LIBDRM_RADEON=yes,
814 HAVE_LIBDRM_RADEON=no)
815
Dan Nicholsondca1b792007-10-23 09:25:58 -0700816dnl
817dnl More X11 setup
818dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800819if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700820 DEFINES="$DEFINES -DUSE_XSHM"
821fi
822
823dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700824dnl TLS detection
Dan Nicholson44d99142007-12-05 18:47:01 -0800825dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700826
Dan Nicholson297e16c2008-05-05 15:42:53 -0700827AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800828 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800829 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700830 [GLX_USE_TLS="$enableval"],
831 [GLX_USE_TLS=no])
Tom Fogal31351dc2010-12-05 17:58:32 -0700832AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
833
834dnl
835dnl More DRI setup
836dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800837dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700838AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800839 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700840 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700841 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700842 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700843AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +0800844dnl Extra search path for DRI drivers
845AC_ARG_WITH([dri-searchpath],
846 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
847 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
848 [DRI_DRIVER_SEARCH_DIR="$withval"],
849 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
850AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800851dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700852AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800853 [AS_HELP_STRING([--disable-driglx-direct],
Chia-I Wucf588ab2010-07-06 14:34:43 +0800854 [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700855 [driglx_direct="$enableval"],
856 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800857dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700858AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800859 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700860 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200861 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700862 [with_dri_drivers="$withval"],
863 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800864if test "x$with_dri_drivers" = x; then
865 with_dri_drivers=no
866fi
867
868dnl If $with_dri_drivers is yes, directories will be added through
869dnl platform checks
870DRI_DIRS=""
871case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100872no) ;;
873yes)
874 DRI_DIRS="yes"
875 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800876*)
877 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700878 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800879 for driver in $dri_drivers; do
880 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
881 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
882 done
883 DRI_DIRS="$dri_drivers"
884 ;;
885esac
886
Dan Nicholson44d99142007-12-05 18:47:01 -0800887dnl Set DRI_DIRS, DEFINES and LIB_DEPS
Chia-I Wube5f34a2010-10-27 16:14:27 +0800888if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
Dan Nicholson44d99142007-12-05 18:47:01 -0800889 # Use TLS in GLX?
890 if test "x$GLX_USE_TLS" = xyes; then
891 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
892 fi
893
Dan Nicholson44d99142007-12-05 18:47:01 -0800894 # Platform specific settings and drivers to build
895 case "$host_os" in
896 linux*)
897 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800898 if test "x$driglx_direct" = xyes; then
899 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
900 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100901 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800902
903 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800904 x86_64)
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500905 # sis is missing because they have not be converted to use
906 # the new interface. i810 are missing because there is no
907 # x86-64 system where they could *ever* be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100908 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400909 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300910 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800911 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800912 ;;
913 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800914 # Build only the drivers for cards that exist on PowerPC.
915 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100916 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400917 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800918 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800919 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000920 sparc*)
921 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100922 if test "x$DRI_DIRS" = "xyes"; then
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500923 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000924 fi
925 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800926 esac
927 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700928 freebsd* | dragonfly* | *netbsd*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800929 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
930 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
931 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
932 if test "x$driglx_direct" = xyes; then
933 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
934 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800935
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100936 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400937 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300938 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800939 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800940 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700941 gnu*)
942 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
943 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
944 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700945 solaris*)
946 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
947 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
948 if test "x$driglx_direct" = xyes; then
949 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
950 fi
951 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800952 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800953
954 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100955 if test "x$DRI_DIRS" = "xyes"; then
Corbin Simpson8e4657a2009-10-22 12:29:30 -0700956 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500957 savage sis tdfx unichrome swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800958 fi
959
Dan Nicholson44d99142007-12-05 18:47:01 -0800960 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
961
962 # Check for expat
Chia-I Wube5f34a2010-10-27 16:14:27 +0800963 if test "$mesa_driver" = dri; then
964 EXPAT_INCLUDES=""
965 EXPAT_LIB=-lexpat
966 AC_ARG_WITH([expat],
967 [AS_HELP_STRING([--with-expat=DIR],
968 [expat install directory])],[
969 EXPAT_INCLUDES="-I$withval/include"
970 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
971 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
972 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
973 ])
974 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
975 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
976 [AC_MSG_ERROR([Expat required for DRI.])])
977 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800978
979 # put all the necessary libs together
Eric Anholt0a1b54d2010-06-21 11:29:15 -0700980 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS $TALLOC_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800981fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700982AC_SUBST([DRI_DIRS])
983AC_SUBST([EXPAT_INCLUDES])
984AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800985
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500986case $DRI_DIRS in
987*i915*|*i965*)
Eric Anholtbd8e6582011-01-03 15:04:19 -0800988 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.23])
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500989 ;;
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -0500990esac
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500991
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -0500992case $DRI_DIRS in
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500993*radeon*|*r200*|*r300*|*r600*)
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200994 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500995 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
996 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
997 fi
998 ;;
999esac
1000AC_SUBST([RADEON_CFLAGS])
1001AC_SUBST([RADEON_LDFLAGS])
1002
1003
Dan Nicholson44d99142007-12-05 18:47:01 -08001004dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001005dnl OSMesa configuration
1006dnl
Dan Nicholsona1307182007-12-12 17:49:49 -08001007if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -08001008 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -08001009else
Dan Nicholson544ab202007-12-30 08:41:53 -08001010 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -08001011fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001012AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -08001013 [AS_HELP_STRING([--enable-gl-osmesa],
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001014 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001015 [gl_osmesa="$enableval"],
1016 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -08001017if test "x$gl_osmesa" = xyes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001018 if test "x$enable_opengl" = xno; then
1019 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1020 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001021 if test "$mesa_driver" = osmesa; then
1022 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -08001023 else
Dan Nicholson544ab202007-12-30 08:41:53 -08001024 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -08001025 fi
1026fi
1027
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001028dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -07001029AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001030 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1031 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001032 [osmesa_bits="$withval"],
1033 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001034if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1035 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1036 osmesa_bits=8
1037fi
1038case "x$osmesa_bits" in
1039x8)
1040 OSMESA_LIB=OSMesa
1041 ;;
1042x16|x32)
1043 OSMESA_LIB="OSMesa$osmesa_bits"
1044 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1045 ;;
1046*)
1047 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1048 ;;
1049esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001050AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001051
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001052case "$DRIVER_DIRS" in
1053*osmesa*)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001054 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -08001055 if test "$enable_static" = no; then
Jon TURNEYe637f8b2010-08-30 12:41:16 +01001056 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -08001057 else
1058 OSMESA_LIB_DEPS=""
1059 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001060 OSMESA_MESA_DEPS=""
Jon TURNEYe637f8b2010-08-30 12:41:16 +01001061 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS $TALLOC_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -08001062 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -08001063esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001064AC_SUBST([OSMESA_LIB_DEPS])
1065AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001066AC_SUBST([OSMESA_PC_REQ])
1067AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001068
1069dnl
Dan Nicholson53b37342009-02-25 17:45:34 -08001070dnl EGL configuration
1071dnl
Dan Nicholson66f97862009-04-29 12:11:43 -07001072AC_ARG_ENABLE([egl],
1073 [AS_HELP_STRING([--disable-egl],
1074 [disable EGL library @<:@default=enabled@:>@])],
1075 [enable_egl="$enableval"],
1076 [enable_egl=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001077if test "x$enable_egl" = xno; then
1078 if test "x$mesa_driver" = xno; then
1079 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1080 fi
1081 if test "x$enable_openvg" = xyes; then
1082 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1083 fi
1084fi
Dan Nicholson66f97862009-04-29 12:11:43 -07001085if test "x$enable_egl" = xyes; then
1086 SRC_DIRS="$SRC_DIRS egl"
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001087 EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
1088 EGL_DRIVERS_DIRS=""
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001089 if test "$enable_static" != yes; then
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001090 # build egl_glx when libGL is built
Chia-I Wube5f34a2010-10-27 16:14:27 +08001091 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001092 EGL_DRIVERS_DIRS="glx"
1093 fi
1094
Chia-I Wu39ae9652010-07-16 19:48:52 +08001095 if test "$mesa_driver" = dri; then
1096 # build egl_dri2 when xcb-dri2 is available
1097 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1098 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1099 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1100 [have_libudev=yes],[have_libudev=no])
1101
1102 if test "$have_xcb_dri2" = yes; then
1103 EGL_DRIVER_DRI2=dri2
1104 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1105 if test "$have_libudev" = yes; then
1106 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1107 fi
1108 fi
1109 fi
Kristian Høgsberg2168b872010-06-02 22:48:06 -04001110
1111 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
Kristian Høgsberg42fa0092010-02-03 10:18:28 -05001112 fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001113fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001114AC_SUBST([EGL_LIB_DEPS])
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001115AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson53b37342009-02-25 17:45:34 -08001116
1117dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001118dnl GLU configuration
1119dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001120AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001121 [AS_HELP_STRING([--disable-glu],
1122 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001123 [enable_glu="$enableval"],
1124 [enable_glu=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001125
1126if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1127 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1128 enable_glu=no
1129fi
1130
Dan Nicholsondca1b792007-10-23 09:25:58 -07001131if test "x$enable_glu" = xyes; then
1132 SRC_DIRS="$SRC_DIRS glu"
1133
Dan Nicholson979ff512007-12-05 18:47:01 -08001134 case "$mesa_driver" in
1135 osmesa)
Dan Nicholson979ff512007-12-05 18:47:01 -08001136 # Link libGLU to libOSMesa instead of libGL
1137 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001138 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -08001139 if test "$enable_static" = no; then
1140 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1141 else
1142 GLU_MESA_DEPS=""
1143 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001144 ;;
1145 *)
Dan Nicholson88586332007-11-15 08:59:57 -08001146 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -08001147 GLU_PC_REQ="gl"
1148 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -08001149 if test "$enable_static" = no; then
1150 GLU_LIB_DEPS="-lm"
1151 GLU_MESA_DEPS='-l$(GL_LIB)'
1152 else
1153 GLU_LIB_DEPS=""
1154 GLU_MESA_DEPS=""
1155 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1156 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001157 ;;
1158 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001159fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001160if test "$enable_static" = no; then
1161 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1162fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001163GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -07001164AC_SUBST([GLU_LIB_DEPS])
1165AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001166AC_SUBST([GLU_PC_REQ])
1167AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001168AC_SUBST([GLU_PC_LIB_PRIV])
1169AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001170
1171dnl
1172dnl GLw configuration
1173dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001174AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001175 [AS_HELP_STRING([--disable-glw],
1176 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001177 [enable_glw="$enableval"],
1178 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -08001179dnl Don't build GLw on osmesa
Chia-I Wube5f34a2010-10-27 16:14:27 +08001180if test "x$enable_glw" = xyes; then
1181 case "$mesa_driver" in
1182 osmesa|no)
1183 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1184 enable_glw=no
1185 ;;
1186 esac
Dan Nicholson979ff512007-12-05 18:47:01 -08001187fi
Dan Nicholson776c60d2008-07-18 07:40:41 -07001188AC_ARG_ENABLE([motif],
1189 [AS_HELP_STRING([--enable-motif],
1190 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1191 [enable_motif="$enableval"],
1192 [enable_motif=no])
1193
Dan Nicholsondca1b792007-10-23 09:25:58 -07001194if test "x$enable_glw" = xyes; then
1195 SRC_DIRS="$SRC_DIRS glw"
1196 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001197 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001198 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001199 GLW_LIB_DEPS="$GLW_LIBS"
1200 else
1201 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -07001202 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001203 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1204 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001205 fi
1206
1207 GLW_SOURCES="GLwDrawA.c"
1208 MOTIF_CFLAGS=
1209 if test "x$enable_motif" = xyes; then
1210 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1211 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1212 if test "x$MOTIF_CONFIG" != xno; then
1213 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1214 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1215 else
1216 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1217 [AC_MSG_ERROR([Can't locate Motif headers])])
1218 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1219 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1220 fi
1221 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1222 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001223 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1224 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001225 fi
1226
Dan Nicholson88586332007-11-15 08:59:57 -08001227 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001228 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001229 if test "$enable_static" = no; then
1230 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001231 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001232 else
1233 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1234 GLW_LIB_DEPS=""
1235 GLW_MESA_DEPS=""
1236 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001237fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001238AC_SUBST([GLW_LIB_DEPS])
1239AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001240AC_SUBST([GLW_SOURCES])
1241AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001242AC_SUBST([GLW_PC_REQ_PRIV])
1243AC_SUBST([GLW_PC_LIB_PRIV])
1244AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001245
1246dnl
1247dnl GLUT configuration
1248dnl
1249if test -f "$srcdir/include/GL/glut.h"; then
1250 default_glut=yes
1251else
1252 default_glut=no
1253fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001254AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001255 [AS_HELP_STRING([--disable-glut],
1256 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001257 [enable_glut="$enableval"],
1258 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001259
Chia-I Wube5f34a2010-10-27 16:14:27 +08001260dnl Don't build glut on osmesa
1261if test "x$enable_glut" = xyes; then
1262 case "$mesa_driver" in
1263 osmesa|no)
1264 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1265 enable_glut=no
1266 ;;
1267 esac
1268fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001269dnl Can't build glut if GLU not available
1270if test "x$enable_glu$enable_glut" = xnoyes; then
1271 AC_MSG_WARN([Disabling glut since GLU is disabled])
1272 enable_glut=no
1273fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001274
Dan Nicholsondca1b792007-10-23 09:25:58 -07001275if test "x$enable_glut" = xyes; then
1276 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001277 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001278 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001279 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001280 GLUT_LIB_DEPS="$GLUT_LIBS"
1281 else
1282 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001283 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001284 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1285 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001286 fi
John Hein96172542010-07-01 12:53:28 -07001287 if test "x$GCC" = xyes; then
1288 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1289 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001290 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1291 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001292
Dan Nicholson88586332007-11-15 08:59:57 -08001293 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1294 if test "$enable_static" = no; then
1295 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1296 else
1297 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1298 GLUT_LIB_DEPS=""
1299 GLUT_MESA_DEPS=""
1300 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001301fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001302AC_SUBST([GLUT_LIB_DEPS])
1303AC_SUBST([GLUT_MESA_DEPS])
1304AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001305AC_SUBST([GLUT_PC_REQ_PRIV])
1306AC_SUBST([GLUT_PC_LIB_PRIV])
1307AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001308
1309dnl
1310dnl Program library dependencies
1311dnl Only libm is added here if necessary as the libraries should
1312dnl be pulled in by the linker
1313dnl
1314if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001315 case "$host_os" in
1316 solaris*)
1317 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1318 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001319 cygwin*)
1320 APP_LIB_DEPS="-lX11"
1321 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001322 *)
1323 APP_LIB_DEPS="-lm"
1324 ;;
1325 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001326fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001327AC_SUBST([APP_LIB_DEPS])
1328AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001329
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001330dnl
1331dnl Gallium configuration
1332dnl
1333AC_ARG_ENABLE([gallium],
1334 [AS_HELP_STRING([--disable-gallium],
1335 [build gallium @<:@default=enabled@:>@])],
1336 [enable_gallium="$enableval"],
1337 [enable_gallium=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001338if test "x$enable_gallium" = xno -a "x$enable_openvg" = xyes; then
1339 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1340fi
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001341if test "x$enable_gallium" = xyes; then
Jakob Bornecrantzbe38b322010-03-23 13:23:26 +00001342 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
Dave Airlie81fe1982010-04-22 14:59:29 +10001343 AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1344 [HAS_UDIS86="no"])
1345 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001346fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001347
Dave Airlie81fe1982010-04-22 14:59:29 +10001348AC_SUBST([LLVM_CFLAGS])
1349AC_SUBST([LLVM_LIBS])
1350AC_SUBST([LLVM_LDFLAGS])
1351AC_SUBST([LLVM_VERSION])
1352
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001353dnl
1354dnl Gallium state trackers configuration
1355dnl
Chia-I Wudbacbb82010-11-02 02:00:36 +08001356
1357AC_ARG_ENABLE([gallium-egl],
1358 [AS_HELP_STRING([--enable-gallium-egl],
1359 [enable gallium EGL state tracker @<:@default=auto@:>@])],
1360 [enable_gallium_egl="$enableval"],
1361 [enable_gallium_egl=auto])
1362if test "x$enable_gallium_egl" = xauto; then
1363 case "$mesa_driver" in
1364 dri|no)
1365 enable_gallium_egl=$enable_egl
1366 ;;
1367 *)
Chia-I Wuada9c782011-01-04 01:05:22 +08001368 enable_gallium_egl=$enable_openvg
Chia-I Wudbacbb82010-11-02 02:00:36 +08001369 ;;
1370 esac
1371fi
1372case "x$enable_egl$enable_gallium_egl" in
1373xnoyes)
1374 AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
1375esac
1376
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001377AC_ARG_WITH([state-trackers],
1378 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1379 [comma delimited state_trackers list, e.g.
1380 "egl,glx" @<:@default=auto@:>@])],
1381 [with_state_trackers="$withval"],
1382 [with_state_trackers=yes])
1383
1384case "$with_state_trackers" in
1385no)
1386 GALLIUM_STATE_TRACKERS_DIRS=""
1387 ;;
1388yes)
1389 # look at what else is built
1390 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001391 xlib)
1392 GALLIUM_STATE_TRACKERS_DIRS=glx
1393 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001394 dri)
Jakob Bornecrantz5b1fc142010-03-25 18:29:51 +01001395 GALLIUM_STATE_TRACKERS_DIRS="dri"
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001396 HAVE_ST_DRI="yes"
Jakob Bornecrantzbc0532b2009-12-04 18:50:29 +00001397 # Have only tested st/xorg on 1.6.0 servers
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001398 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001399 HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1400 HAVE_ST_XORG="no")
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001401 ;;
1402 esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001403
1404 if test "x$enable_egl" = xyes; then
1405 if test "$enable_openvg" = yes; then
1406 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
1407 st_egl="yes"
1408 fi
1409
Chia-I Wudbacbb82010-11-02 02:00:36 +08001410 if test "$enable_gallium_egl" = yes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001411 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1412 HAVE_ST_EGL="yes"
1413 fi
1414 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001415 ;;
1416*)
1417 # verify the requested state tracker exist
Chia-I Wu63ab2502010-05-05 15:38:02 +08001418 state_trackers=""
1419 _state_trackers=`IFS=', '; echo $with_state_trackers`
1420 for tracker in $_state_trackers; do
Chia-I Wue5d351d2009-12-23 11:18:00 +08001421 case "$tracker" in
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001422 dri)
1423 if test "x$mesa_driver" != xdri; then
1424 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1425 fi
1426 HAVE_ST_DRI="yes"
1427 ;;
Chia-I Wu3c967a92010-01-22 16:31:43 +08001428 egl)
Chia-I Wue5d351d2009-12-23 11:18:00 +08001429 if test "x$enable_egl" != xyes; then
Chia-I Wu3c967a92010-01-22 16:31:43 +08001430 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
Chia-I Wue5d351d2009-12-23 11:18:00 +08001431 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001432 HAVE_ST_EGL="yes"
Chia-I Wue5d351d2009-12-23 11:18:00 +08001433 ;;
1434 xorg)
Jakob Bornecrantz4f956882010-07-13 07:40:47 -07001435 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001436 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1437 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001438 HAVE_ST_XORG="yes"
Chia-I Wue5d351d2009-12-23 11:18:00 +08001439 ;;
Chia-I Wu156e9552010-10-30 14:26:01 +08001440 vega)
1441 if test "x$enable_openvg" != xyes; then
1442 AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
1443 fi
Chia-I Wuc116a0e2011-01-20 14:19:13 +08001444 have_st_vega="yes"
Chia-I Wu156e9552010-10-30 14:26:01 +08001445 ;;
Chia-I Wue5d351d2009-12-23 11:18:00 +08001446 esac
Chia-I Wu63ab2502010-05-05 15:38:02 +08001447
1448 if test -n "$tracker"; then
1449 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1450 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1451 if test -n "$state_trackers"; then
1452 state_trackers="$state_trackers $tracker"
1453 else
1454 state_trackers="$tracker"
1455 fi
1456 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001457 done
1458 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
Chia-I Wuc116a0e2011-01-20 14:19:13 +08001459
1460 # append --enable-openvg/--enable-gallium-egl to --with-state-trackers
1461 if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
1462 AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
1463 fi
1464 if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
1465 AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
1466 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001467 ;;
1468esac
1469
Chia-I Wube5f34a2010-10-27 16:14:27 +08001470
1471EGL_CLIENT_APIS=""
1472VG_LIB_DEPS=""
1473
1474case "x$enable_opengl$enable_gles1$enable_gles2" in
1475x*yes*)
1476 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1477 ;;
1478esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001479if test "x$enable_openvg" = xyes; then
1480 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1481 VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1482fi
1483
Chia-I Wu874ccd52010-05-04 22:43:05 +08001484AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001485AC_SUBST([EGL_CLIENT_APIS])
1486
1487if test "x$HAVE_ST_EGL" = xyes; then
Chia-I Wud8e0e112010-06-29 14:04:27 +08001488 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
Chia-I Wu63ab2502010-05-05 15:38:02 +08001489fi
Chia-I Wu874ccd52010-05-04 22:43:05 +08001490
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001491if test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001492 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1493 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1494 HAVE_XEXTPROTO_71="no")
1495fi
1496
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001497AC_ARG_WITH([egl-platforms],
1498 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1499 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001500 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001501 [with_egl_platforms="$withval"],
1502 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001503AC_ARG_WITH([egl-displays],
1504 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001505 [DEPRECATED. Use --with-egl-platforms instead])],
1506 [with_egl_platforms="$withval"])
Chia-I Wu49381d62010-01-11 01:23:01 +08001507
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001508EGL_PLATFORMS=""
1509case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001510yes)
1511 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001512 EGL_PLATFORMS="x11"
Chia-I Wu2a910b32010-09-19 17:31:34 +08001513 if test "$mesa_driver" = dri; then
1514 EGL_PLATFORMS="$EGL_PLATFORMS drm"
1515 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001516 fi
1517 ;;
1518*)
1519 if test "x$enable_egl" != xyes; then
1520 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1521 fi
1522 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001523 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1524 for plat in $egl_platforms; do
1525 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1526 AC_MSG_ERROR([EGL platform '$plat' does't exist])
1527 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001528 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1529 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001530 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001531 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001532 ;;
1533esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001534AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001535
Chia-I Wu28c3e572010-01-23 20:18:43 +08001536AC_ARG_WITH([egl-driver-dir],
1537 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1538 [directory for EGL drivers [[default=${libdir}/egl]]])],
1539 [EGL_DRIVER_INSTALL_DIR="$withval"],
1540 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1541AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1542
Joel Bosveld8acca482009-03-06 08:46:08 +09001543AC_ARG_WITH([xorg-driver-dir],
1544 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1545 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1546 [XORG_DRIVER_INSTALL_DIR="$withval"],
1547 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1548AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1549
Tom Fogal7085dce2009-08-13 19:40:30 -06001550AC_ARG_WITH([max-width],
1551 [AS_HELP_STRING([--with-max-width=N],
1552 [Maximum framebuffer width (4096)])],
1553 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1554 AS_IF([test "${withval}" -gt "4096"],
1555 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1556)
1557AC_ARG_WITH([max-height],
1558 [AS_HELP_STRING([--with-max-height=N],
1559 [Maximum framebuffer height (4096)])],
1560 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1561 AS_IF([test "${withval}" -gt "4096"],
1562 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1563)
1564
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001565dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001566dnl Gallium LLVM
1567dnl
1568AC_ARG_ENABLE([gallium-llvm],
1569 [AS_HELP_STRING([--enable-gallium-llvm],
1570 [build gallium LLVM support @<:@default=disabled@:>@])],
1571 [enable_gallium_llvm="$enableval"],
1572 [enable_gallium_llvm=auto])
1573if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001574 if test "x$LLVM_CONFIG" != xno; then
1575 LLVM_VERSION=`$LLVM_CONFIG --version`
Brian Paul7da704e2010-12-08 06:44:42 -07001576 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001577 LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1578
1579 if test "x$HAS_UDIS86" != xno; then
1580 LLVM_LIBS="$LLVM_LIBS -ludis86"
1581 DEFINES="$DEFINES -DHAVE_UDIS86"
Dave Airlie81fe1982010-04-22 14:59:29 +10001582 fi
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001583 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1584 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
Chia-I Wu3ecb8c22010-05-11 12:36:49 +08001585 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001586 MESA_LLVM=1
1587 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001588 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001589 fi
1590else
1591 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001592fi
1593
1594dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001595dnl Gallium helper functions
1596dnl
1597gallium_check_st() {
Chia-I Wud8e0e112010-06-29 14:04:27 +08001598 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001599 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1600 fi
1601 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1602 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1603 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001604 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001605 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1606 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001607}
1608
1609
1610dnl
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001611dnl Gallium SVGA configuration
1612dnl
1613AC_ARG_ENABLE([gallium-svga],
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001614 [AS_HELP_STRING([--enable-gallium-svga],
1615 [build gallium SVGA @<:@default=disabled@:>@])],
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001616 [enable_gallium_svga="$enableval"],
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001617 [enable_gallium_svga=auto])
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001618if test "x$enable_gallium_svga" = xyes; then
Xavier Chantryff0987a2010-03-26 11:02:03 +01001619 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001620 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001621elif test "x$enable_gallium_svga" = xauto; then
1622 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001623fi
1624
1625dnl
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001626dnl Gallium i915 configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001627dnl
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001628AC_ARG_ENABLE([gallium-i915],
1629 [AS_HELP_STRING([--enable-gallium-i915],
1630 [build gallium i915 @<:@default=disabled@:>@])],
1631 [enable_gallium_i915="$enableval"],
1632 [enable_gallium_i915=auto])
1633if test "x$enable_gallium_i915" = xyes; then
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001634 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001635 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001636 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001637elif test "x$enable_gallium_i915" = xauto; then
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001638 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001639 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1640fi
1641
1642dnl
1643dnl Gallium i965 configuration
1644dnl
1645AC_ARG_ENABLE([gallium-i965],
1646 [AS_HELP_STRING([--enable-gallium-i965],
1647 [build gallium i965 @<:@default=disabled@:>@])],
1648 [enable_gallium_i965="$enableval"],
1649 [enable_gallium_i965=auto])
1650if test "x$enable_gallium_i965" = xyes; then
1651 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001652 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001653elif test "x$enable_gallium_i965" = xauto; then
1654 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001655fi
1656
1657dnl
Marek Olšák85a45dc2010-09-23 21:50:43 +02001658dnl Gallium Radeon r300g configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001659dnl
1660AC_ARG_ENABLE([gallium-radeon],
1661 [AS_HELP_STRING([--enable-gallium-radeon],
1662 [build gallium radeon @<:@default=disabled@:>@])],
1663 [enable_gallium_radeon="$enableval"],
Jakob Bornecrantz877cadb2010-01-14 22:51:25 +00001664 [enable_gallium_radeon=auto])
Marek Olšák11eb4222010-09-28 19:32:32 +02001665if test "x$enable_gallium_radeon" = xauto; then
1666 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1667 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1668 gallium_check_st "radeon/drm" "dri-r300"
1669 else
1670 AC_MSG_WARN([libdrm_radeon is missing, not building gallium-radeon (r300)])
1671 fi
1672fi
1673if test "x$enable_gallium_radeon" = xyes; then
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001674 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1675 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1676 gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1677 else
Marek Olšák11eb4222010-09-28 19:32:32 +02001678 AC_MSG_ERROR([libdrm_radeon is missing, cannot build gallium-radeon (r300)])
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001679 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001680fi
1681
1682dnl
Jakob Bornecrantzaeee5262010-05-13 20:29:18 +01001683dnl Gallium Radeon r600g configuration
1684dnl
1685AC_ARG_ENABLE([gallium-r600],
1686 [AS_HELP_STRING([--enable-gallium-r600],
1687 [build gallium radeon @<:@default=disabled@:>@])],
1688 [enable_gallium_r600="$enableval"],
1689 [enable_gallium_r600=auto])
1690if test "x$enable_gallium_r600" = xyes; then
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001691 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1692 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1693 gallium_check_st "r600/drm" "dri-r600"
1694 else
1695 AC_MSG_ERROR([libdrm_radeon is missing, cannot build gallium-r600])
1696 fi
Jakob Bornecrantzaeee5262010-05-13 20:29:18 +01001697fi
1698
1699dnl
Thierry Vignaud1402ea82009-09-14 11:48:51 -06001700dnl Gallium Nouveau configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001701dnl
1702AC_ARG_ENABLE([gallium-nouveau],
1703 [AS_HELP_STRING([--enable-gallium-nouveau],
1704 [build gallium nouveau @<:@default=disabled@:>@])],
1705 [enable_gallium_nouveau="$enableval"],
1706 [enable_gallium_nouveau=no])
1707if test "x$enable_gallium_nouveau" = xyes; then
Christoph Bumiller4c224752010-11-12 15:17:40 +01001708 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001709 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001710fi
1711
Chia-I Wua1306f42010-01-22 15:51:51 +08001712dnl
1713dnl Gallium swrast configuration
1714dnl
1715AC_ARG_ENABLE([gallium-swrast],
1716 [AS_HELP_STRING([--enable-gallium-swrast],
Jakob Bornecrantzf5ba2cd2010-03-24 10:58:45 +01001717 [build gallium swrast @<:@default=auto@:>@])],
Chia-I Wua1306f42010-01-22 15:51:51 +08001718 [enable_gallium_swrast="$enableval"],
1719 [enable_gallium_swrast=auto])
George Sapountzis7b333292010-03-25 17:01:54 +02001720if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
Jakob Bornecrantz5b1fc142010-03-25 18:29:51 +01001721 if test "x$HAVE_ST_DRI" = xyes; then
George Sapountzis7b333292010-03-25 17:01:54 +02001722 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
Jakob Bornecrantzf5ba2cd2010-03-24 10:58:45 +01001723 fi
Chia-I Wua1306f42010-01-22 15:51:51 +08001724fi
1725
Chia-I Wu99a37ed2010-01-05 17:39:05 +08001726dnl prepend CORE_DIRS to SRC_DIRS
1727SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001728
Dan Nicholsondca1b792007-10-23 09:25:58 -07001729dnl Restore LDFLAGS and CPPFLAGS
1730LDFLAGS="$_SAVE_LDFLAGS"
1731CPPFLAGS="$_SAVE_CPPFLAGS"
1732
1733dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001734AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001735
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001736dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001737AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001738if test -f configs/current || test -L configs/current; then
1739 rm -f configs/current
1740fi
1741ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001742])
1743
1744AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001745
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001746dnl
1747dnl Output some configuration info for the user
1748dnl
1749echo ""
1750echo " prefix: $prefix"
1751echo " exec_prefix: $exec_prefix"
1752echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001753echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001754
Chia-I Wu815faa42010-10-29 12:34:44 +08001755dnl API info
1756echo ""
1757echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08001758echo " OpenVG: $enable_openvg"
1759
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001760dnl Driver info
1761echo ""
1762echo " Driver: $mesa_driver"
Chia-I Wu815faa42010-10-29 12:34:44 +08001763if test "$mesa_driver" != no; then
1764 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1765 echo " OSMesa: lib$OSMESA_LIB"
1766 else
1767 echo " OSMesa: no"
1768 fi
1769 if test "$mesa_driver" = dri; then
1770 # cleanup the drivers var
1771 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1772 if test "x$DRI_DIRS" = x; then
1773 echo " DRI drivers: no"
1774 else
1775 echo " DRI drivers: $dri_dirs"
1776 fi
1777 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1778 echo " Use XCB: $enable_xcb"
1779 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001780fi
Chia-I Wu815faa42010-10-29 12:34:44 +08001781echo ""
1782echo " GLU: $enable_glu"
1783echo " GLw: $enable_glw (Motif: $enable_motif)"
1784echo " glut: $enable_glut"
1785
1786dnl EGL
1787echo ""
1788echo " EGL: $enable_egl"
1789if test "$enable_egl" = yes; then
1790 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08001791
1792 egl_drivers=""
1793 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08001794 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08001795 done
1796
Chia-I Wu815faa42010-10-29 12:34:44 +08001797 if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
Chia-I Wu12300502010-10-31 21:01:54 +08001798 echo " EGL drivers: ${egl_drivers} egl_gallium"
1799 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08001800 else
Chia-I Wu12300502010-10-31 21:01:54 +08001801 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08001802 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001803fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001804
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001805echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07001806if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01001807 echo " llvm: yes"
1808 echo " llvm-config: $LLVM_CONFIG"
1809 echo " llvm-version: $LLVM_VERSION"
1810else
1811 echo " llvm: no"
1812fi
1813
1814echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001815if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1816 echo " Gallium: yes"
1817 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00001818 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001819 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001820 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001821 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1822else
1823 echo " Gallium: no"
1824fi
1825
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001826dnl Libraries
1827echo ""
1828echo " Shared libs: $enable_shared"
1829echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001830
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001831dnl Compiler options
1832# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1833cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1834 $SED 's/^ *//;s/ */ /;s/ *$//'`
1835cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1836 $SED 's/^ *//;s/ */ /;s/ *$//'`
1837defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1838echo ""
1839echo " CFLAGS: $cflags"
1840echo " CXXFLAGS: $cxxflags"
1841echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07001842echo ""
1843echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001844
Dan Nicholsondca1b792007-10-23 09:25:58 -07001845echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001846echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001847echo ""