blob: 46938f4b4629f6c5591b8067899da3f1d84feb83 [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
Tormod Volden903185b2011-01-25 13:25:18 -080023LIBDRM_INTEL_REQUIRED=2.4.23
Kristian Høgsbergaa0cd702010-02-15 10:44:05 -050024DRI2PROTO_REQUIRED=2.1
Jesse Barnesf2f83d92010-01-11 17:28:10 -050025GLPROTO_REQUIRED=1.4.11
Brian Paul483f5662011-01-11 09:42:52 -070026LIBDRM_XORG_REQUIRED=2.4.23
Jakob Bornecrantz683a0992010-03-11 19:23:15 +000027LIBKMS_XORG_REQUIRED=1.0.0
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070028
Dan Nicholsondca1b792007-10-23 09:25:58 -070029dnl Check for progs
30AC_PROG_CPP
31AC_PROG_CC
32AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070033AC_CHECK_PROGS([MAKE], [gmake make])
Kenneth Graunke3acc8262010-10-25 13:52:58 -070034AC_CHECK_PROGS([PYTHON2], [python2 python])
Dan Nicholson297e16c2008-05-05 15:42:53 -070035AC_PATH_PROG([MKDEP], [makedepend])
36AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080037
Luca Barbierif762f7b2010-09-24 10:10:09 +020038if test "x$MKDEP" = "x"; then
39 AC_MSG_ERROR([makedepend is required to build Mesa])
40fi
41
Dan Nicholsonbc302b22009-05-22 09:39:02 -070042dnl Our fallback install-sh is a symlink to minstall. Use the existing
43dnl configuration in that case.
44AC_PROG_INSTALL
45test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
46
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070047dnl We need a POSIX shell for parts of the build. Assume we have one
48dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070049case "$host_os" in
50solaris*)
51 # Solaris /bin/sh is too old/non-POSIX compliant
52 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070053 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070054 ;;
55esac
56
nobled2a501872010-08-29 20:03:37 -040057dnl clang is mostly GCC-compatible, but its version is much lower,
58dnl so we have to check for it.
59AC_MSG_CHECKING([if compiling with clang])
60
61AC_COMPILE_IFELSE(
62[AC_LANG_PROGRAM([], [[
63#ifndef __clang__
64 not clang
65#endif
66]])],
67[CLANG=yes], [CLANG=no])
68
69AC_MSG_RESULT([$CLANG])
70
Ian Romanick9aa3aa72010-03-03 15:59:37 -080071dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
72dnl versions are explictly not supported.
nobled2a501872010-08-29 20:03:37 -040073if test "x$GCC" = xyes -a "x$CLANG" = xno; then
Ian Romanick9aa3aa72010-03-03 15:59:37 -080074 AC_MSG_CHECKING([whether gcc version is sufficient])
75 major=0
76 minor=0
77
78 GCC_VERSION=`$CC -dumpversion`
79 if test $? -eq 0; then
80 major=`echo $GCC_VERSION | cut -d. -f1`
81 minor=`echo $GCC_VERSION | cut -d. -f1`
82 fi
83
84 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
85 AC_MSG_RESULT([no])
86 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
87 else
88 AC_MSG_RESULT([yes])
89 fi
90fi
91
92
Dan Nicholsondb7fc632008-03-07 11:48:09 -080093MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050094dnl Ask gcc where it's keeping its secret headers
95if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080096 for dir in include include-fixed; do
97 GCC_INCLUDES=`$CC -print-file-name=$dir`
98 if test "x$GCC_INCLUDES" != x && \
99 test "$GCC_INCLUDES" != "$dir" && \
100 test -d "$GCC_INCLUDES"; then
101 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
102 fi
103 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500104fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700105AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500106
Dan Nicholson41b00702007-12-12 08:48:30 -0800107dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -0700108m4_ifndef([PKG_PROG_PKG_CONFIG],
109 [m4_fatal([Could not locate the pkg-config autoconf macros.
110 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
111 are in a different location, try setting the environment variable
112 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700113PKG_PROG_PKG_CONFIG()
114
115dnl LIB_DIR - library basename
116LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -0700117AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700118
119dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
120_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700121AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
122AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700123
124dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
125_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700126AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
127AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700128
129dnl Compiler macros
130DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -0700131AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700132case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700133linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -0800134 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700135 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700136solaris*)
137 DEFINES="$DEFINES -DPTHREADS -DSVR4"
138 ;;
Brian Paul97988902010-02-18 12:46:12 -0700139cygwin*)
140 DEFINES="$DEFINES -DPTHREADS"
141 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -0700142esac
143
144dnl Add flags for gcc and g++
145if test "x$GCC" = xyes; then
Eric Anholta3c2bd42010-08-30 14:19:23 -0700146 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
147 if test "x$CLANG" = "xno"; then
148 CFLAGS="$CFLAGS -ffast-math"
149 fi
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800150
151 # Enable -fvisibility=hidden if using a gcc that supports it
152 save_CFLAGS="$CFLAGS"
Alan Coopersmithf8107a42010-01-21 16:42:58 -0800153 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800154 CFLAGS="$CFLAGS -fvisibility=hidden"
155 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
156 [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
Dan Nicholson0c275b62008-01-15 22:52:25 -0800157
158 # Work around aliasing bugs - developers should comment this out
159 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700160fi
161if test "x$GXX" = xyes; then
162 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800163
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400164 # Enable -fvisibility=hidden if using a gcc that supports it
165 save_CXXFLAGS="$CXXFLAGS"
166 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
167 CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
168 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
169 [CXXFLAGS="$save_CXXFLAGS" ; AC_MSG_RESULT([no])]);
170
Dan Nicholson0c275b62008-01-15 22:52:25 -0800171 # Work around aliasing bugs - developers should comment this out
172 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700173fi
174
175dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700176AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700177 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700178AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700179 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700180AC_SUBST([OPT_FLAGS])
181AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700182
183dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600184dnl Hacks to enable 32 or 64 bit build
185dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700186AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600187 [AS_HELP_STRING([--enable-32-bit],
188 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700189 [enable_32bit="$enableval"],
190 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600191)
192if test "x$enable_32bit" = xyes; then
193 if test "x$GCC" = xyes; then
194 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700195 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600196 fi
197 if test "x$GXX" = xyes; then
198 CXXFLAGS="$CXXFLAGS -m32"
199 fi
200fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700201AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600202 [AS_HELP_STRING([--enable-64-bit],
203 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700204 [enable_64bit="$enableval"],
205 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600206)
207if test "x$enable_64bit" = xyes; then
208 if test "x$GCC" = xyes; then
209 CFLAGS="$CFLAGS -m64"
210 fi
211 if test "x$GXX" = xyes; then
212 CXXFLAGS="$CXXFLAGS -m64"
213 fi
214fi
215
216dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800217dnl shared/static libraries, mimic libtool options
218dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700219AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800220 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800221 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700222 [enable_static="$enableval"],
223 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800224)
225case "x$enable_static" in
226xyes|xno ) ;;
227x ) enable_static=no ;;
228* )
229 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
230 ;;
231esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700232AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800233 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800234 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700235 [enable_shared="$enableval"],
236 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800237)
238case "x$enable_shared" in
239xyes|xno ) ;;
240x ) enable_shared=yes ;;
241* )
242 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
243 ;;
244esac
245
246dnl Can't have static and shared libraries, default to static if user
247dnl explicitly requested. If both disabled, set to static since shared
248dnl was explicitly requirested.
249case "x$enable_static$enable_shared" in
250xyesyes )
251 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
252 enable_shared=no
253 ;;
254xnono )
255 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
256 enable_static=yes
257 ;;
258esac
259
260dnl
261dnl mklib options
262dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700263AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800264if test "$enable_static" = yes; then
265 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
266fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700267AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800268
Dan Nicholson23656c42007-12-12 09:02:31 -0800269dnl
270dnl other compiler options
271dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700272AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800273 [AS_HELP_STRING([--enable-debug],
274 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700275 [enable_debug="$enableval"],
276 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800277)
278if test "x$enable_debug" = xyes; then
279 DEFINES="$DEFINES -DDEBUG"
280 if test "x$GCC" = xyes; then
281 CFLAGS="$CFLAGS -g"
282 fi
283 if test "x$GXX" = xyes; then
284 CXXFLAGS="$CXXFLAGS -g"
285 fi
286fi
Dan Nicholson88586332007-11-15 08:59:57 -0800287
288dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700289dnl library names
290dnl
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100291LIB_PREFIX_GLOB='lib'
292LIB_VERSION_SEPARATOR='.'
Dan Nicholson88586332007-11-15 08:59:57 -0800293if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800294 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800295else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700296 case "$host_os" in
297 darwin* )
298 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100299 cygwin* )
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100300 dnl prefix can be 'cyg' or 'lib'
301 LIB_PREFIX_GLOB='???'
302 LIB_VERSION_SEPARATOR='-'
303 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700304 aix* )
305 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700306 * )
307 LIB_EXTENSION='so' ;;
308 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800309fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800310
311GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
312GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
313GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
314GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
315OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800316EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500317GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
318GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
Chia-I Wu874ccd52010-05-04 22:43:05 +0800319VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800320GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
Dan Nicholson8217f242009-02-11 15:16:00 -0800321
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100322GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
323GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
324GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
325GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
326OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
327EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
328EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
329GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
330GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
331VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800332GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Dan Nicholson8217f242009-02-11 15:16:00 -0800333
Dan Nicholson297e16c2008-05-05 15:42:53 -0700334AC_SUBST([GL_LIB_NAME])
335AC_SUBST([GLU_LIB_NAME])
336AC_SUBST([GLUT_LIB_NAME])
337AC_SUBST([GLW_LIB_NAME])
338AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800339AC_SUBST([EGL_LIB_NAME])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500340AC_SUBST([GLESv1_CM_LIB_NAME])
341AC_SUBST([GLESv2_LIB_NAME])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800342AC_SUBST([VG_LIB_NAME])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800343AC_SUBST([GLAPI_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700344
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700345AC_SUBST([GL_LIB_GLOB])
346AC_SUBST([GLU_LIB_GLOB])
347AC_SUBST([GLUT_LIB_GLOB])
348AC_SUBST([GLW_LIB_GLOB])
349AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800350AC_SUBST([EGL_LIB_GLOB])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500351AC_SUBST([GLESv1_CM_LIB_GLOB])
352AC_SUBST([GLESv2_LIB_GLOB])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800353AC_SUBST([VG_LIB_GLOB])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800354AC_SUBST([GLAPI_LIB_GLOB])
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700355
Dan Nicholsondca1b792007-10-23 09:25:58 -0700356dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700357dnl Arch/platform-specific settings
358dnl
359AC_ARG_ENABLE([asm],
360 [AS_HELP_STRING([--disable-asm],
361 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
362 [enable_asm="$enableval"],
363 [enable_asm=yes]
364)
365asm_arch=""
366ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800367MESA_ASM_SOURCES=""
368GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700369AC_MSG_CHECKING([whether to enable assembly])
370test "x$enable_asm" = xno && AC_MSG_RESULT([no])
371# disable if cross compiling on x86/x86_64 since we must run gen_matypes
372if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
373 case "$host_cpu" in
374 i?86 | x86_64)
375 enable_asm=no
376 AC_MSG_RESULT([no, cross compiling])
377 ;;
378 esac
379fi
380# check for supported arches
381if test "x$enable_asm" = xyes; then
382 case "$host_cpu" in
383 i?86)
384 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700385 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700386 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
387 ;;
388 esac
389 ;;
390 x86_64)
391 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700392 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700393 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
394 ;;
395 esac
396 ;;
397 powerpc)
398 case "$host_os" in
399 linux*)
400 asm_arch=ppc
401 ;;
402 esac
403 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800404 sparc*)
405 case "$host_os" in
406 linux*)
407 asm_arch=sparc
408 ;;
409 esac
410 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700411 esac
412
413 case "$asm_arch" in
414 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800415 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800416 MESA_ASM_SOURCES='$(X86_SOURCES)'
417 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700418 AC_MSG_RESULT([yes, x86])
419 ;;
420 x86_64)
421 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800422 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
423 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700424 AC_MSG_RESULT([yes, x86_64])
425 ;;
426 ppc)
427 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800428 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700429 AC_MSG_RESULT([yes, ppc])
430 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800431 sparc)
432 ASM_FLAGS="-DUSE_SPARC_ASM"
433 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
434 GLAPI_ASM_SOURCES='$(SPARC_API)'
435 AC_MSG_RESULT([yes, sparc])
436 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700437 *)
438 AC_MSG_RESULT([no, platform not supported])
439 ;;
440 esac
441fi
442AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800443AC_SUBST([MESA_ASM_SOURCES])
444AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700445
446dnl PIC code macro
447MESA_PIC_FLAGS
448
449dnl Check to see if dlopen is in default libraries (like Solaris, which
450dnl has it in libc), or if libdl is needed to get it.
451AC_CHECK_FUNC([dlopen], [],
452 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Chia-I Wu08f4bc02010-07-16 20:09:29 +0800453AC_SUBST([DLOPEN_LIBS])
Dan Nicholson871125a2008-06-04 13:00:35 -0700454
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700455dnl See if posix_memalign is available
456AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
457
Dan Nicholson871125a2008-06-04 13:00:35 -0700458dnl SELinux awareness.
459AC_ARG_ENABLE([selinux],
460 [AS_HELP_STRING([--enable-selinux],
461 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
462 [MESA_SELINUX="$enableval"],
463 [MESA_SELINUX=no])
464if test "x$enable_selinux" = "xyes"; then
465 AC_CHECK_HEADER([selinux/selinux.h],[],
466 [AC_MSG_ERROR([SELinux headers not found])])
467 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
468 [AC_MSG_ERROR([SELinux library not found])])
469 SELINUX_LIBS="-lselinux"
470 DEFINES="$DEFINES -DMESA_SELINUX"
471fi
472
Chia-I Wube5f34a2010-10-27 16:14:27 +0800473dnl Determine which APIs to support
474AC_ARG_ENABLE([opengl],
475 [AS_HELP_STRING([--disable-opengl],
476 [disable support for standard OpenGL API @<:@default=no@:>@])],
477 [enable_opengl="$enableval"],
478 [enable_opengl=yes])
479AC_ARG_ENABLE([gles1],
480 [AS_HELP_STRING([--enable-gles1],
481 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
482 [enable_gles1="$enableval"],
483 [enable_gles1=no])
484AC_ARG_ENABLE([gles2],
485 [AS_HELP_STRING([--enable-gles2],
486 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
487 [enable_gles2="$enableval"],
488 [enable_gles2=no])
489AC_ARG_ENABLE([gles-overlay],
490 [AS_HELP_STRING([--enable-gles-overlay],
Chia-I Wu12583172011-01-07 17:24:16 +0800491 [DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
492 [enable_gles1="$enableval"; enable_gles2="$enableval"],
493 [])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800494
495AC_ARG_ENABLE([openvg],
496 [AS_HELP_STRING([--enable-openvg],
497 [enable support for OpenVG API @<:@default=no@:>@])],
498 [enable_openvg="$enableval"],
499 [enable_openvg=no])
500
Chia-I Wu156e9552010-10-30 14:26:01 +0800501dnl smooth the transition; should be removed eventually
502if test "x$enable_openvg" = xno; then
503 case "x$with_state_trackers" in
504 x*vega*)
505 AC_MSG_WARN([vega state tracker is enabled without --enable-openvg])
506 enable_openvg=yes
507 ;;
508 esac
509fi
510
Chia-I Wube5f34a2010-10-27 16:14:27 +0800511if test "x$enable_opengl" = xno -a \
512 "x$enable_gles1" = xno -a \
513 "x$enable_gles2" = xno -a \
Chia-I Wube5f34a2010-10-27 16:14:27 +0800514 "x$enable_openvg" = xno; then
515 AC_MSG_ERROR([at least one API should be enabled])
516fi
517
518API_DEFINES=""
Chia-I Wube5f34a2010-10-27 16:14:27 +0800519if test "x$enable_opengl" = xno; then
520 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
521else
522 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
523fi
524if test "x$enable_gles1" = xyes; then
525 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
526fi
527if test "x$enable_gles2" = xyes; then
528 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
529fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800530AC_SUBST([API_DEFINES])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800531
Chia-I Wue8c7d752010-12-26 18:24:13 +0800532AC_ARG_ENABLE([shared-glapi],
533 [AS_HELP_STRING([--enable-shared-glapi],
534 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
535 [enable_shared_glapi="$enableval"],
536 [enable_shared_glapi=no])
537
538SHARED_GLAPI="0"
539if test "x$enable_shared_glapi" = xyes; then
540 SHARED_GLAPI="1"
541fi
542AC_SUBST([SHARED_GLAPI])
543
Dan Nicholson871125a2008-06-04 13:00:35 -0700544dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800545dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg43875802010-02-25 15:49:18 -0500546dnl More later: fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800547dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700548default_driver="xlib"
549
550case "$host_os" in
551linux*)
552 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700553 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700554 esac
555 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700556*freebsd* | dragonfly* | *netbsd*)
Eric Anholt711222b2008-04-18 15:03:01 -0700557 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500558 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700559 esac
560 ;;
561esac
562
Chia-I Wube5f34a2010-10-27 16:14:27 +0800563if test "x$enable_opengl" = xno; then
564 default_driver="no"
565fi
566
Dan Nicholson297e16c2008-05-05 15:42:53 -0700567AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800568 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700569 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700570 [mesa_driver="$withval"],
571 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800572dnl Check for valid option
573case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800574xxlib|xdri|xosmesa)
Chia-I Wube5f34a2010-10-27 16:14:27 +0800575 if test "x$enable_opengl" = xno; then
576 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
577 fi
578 ;;
579xno)
Dan Nicholson44d99142007-12-05 18:47:01 -0800580 ;;
581*)
582 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
583 ;;
584esac
585
586dnl
587dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700588dnl
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800589
590dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wube5f34a2010-10-27 16:14:27 +0800591CORE_DIRS=""
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800592
Jakob Bornecrantz05281062010-06-05 13:33:58 +0200593SRC_DIRS=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700594GLU_DIRS="sgi"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100595GALLIUM_DIRS="auxiliary drivers state_trackers"
Keith Whitwell51bff092010-03-11 14:43:00 +0000596GALLIUM_TARGET_DIRS=""
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000597GALLIUM_WINSYS_DIRS="sw"
Jerome Glisse33495172011-01-09 21:04:41 -0500598GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100599GALLIUM_STATE_TRACKERS_DIRS=""
600
Chia-I Wue8c7d752010-12-26 18:24:13 +0800601# build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
602case "x$enabled_shared_glapi$enable_gles1$enable_gles2" in
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800603x*yes*)
604 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
605 ;;
606esac
607
Chia-I Wube5f34a2010-10-27 16:14:27 +0800608# build glapi if OpenGL is enabled
609if test "x$enable_opengl" = xyes; then
610 CORE_DIRS="$CORE_DIRS mapi/glapi"
611fi
612
Chia-I Wu12583172011-01-07 17:24:16 +0800613# build es1api if OpenGL ES 1.x is enabled
614if test "x$enable_gles1" = xyes; then
615 CORE_DIRS="$CORE_DIRS mapi/es1api"
616fi
617
618# build es2api if OpenGL ES 2.x is enabled
619if test "x$enable_gles2" = xyes; then
620 CORE_DIRS="$CORE_DIRS mapi/es2api"
621fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800622
623# build vgapi if OpenVG is enabled
624if test "x$enable_openvg" = xyes; then
625 CORE_DIRS="$CORE_DIRS mapi/vgapi"
626fi
627
628# build glsl and mesa if OpenGL or OpenGL ES is enabled
Chia-I Wu12583172011-01-07 17:24:16 +0800629case "x$enable_opengl$enable_gles1$enable_gles2" in
Chia-I Wube5f34a2010-10-27 16:14:27 +0800630x*yes*)
631 CORE_DIRS="$CORE_DIRS glsl mesa"
632 ;;
633esac
634
Dan Nicholson44d99142007-12-05 18:47:01 -0800635case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800636xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800637 DRIVER_DIRS="x11"
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000638 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
Keith Whitwell51bff092010-03-11 14:43:00 +0000639 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800640 ;;
641dri)
Kristian Høgsberg6e8897f2010-02-09 09:58:36 -0500642 SRC_DIRS="$SRC_DIRS glx"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100643 DRIVER_DIRS="dri"
Jakob Bornecrantz23a915e2010-06-23 03:31:18 +0200644 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800645 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800646osmesa)
647 DRIVER_DIRS="osmesa"
648 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800649no)
650 DRIVER_DRIS=""
651 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800652esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700653AC_SUBST([SRC_DIRS])
654AC_SUBST([GLU_DIRS])
655AC_SUBST([DRIVER_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100656AC_SUBST([GALLIUM_DIRS])
Keith Whitwell51bff092010-03-11 14:43:00 +0000657AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100658AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000659AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100660AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlie81fe1982010-04-22 14:59:29 +1000661AC_SUBST([MESA_LLVM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700662
663dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700664dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700665dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700666dnl
667if test -n "$PKG_CONFIG"; then
668 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700669 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700670 x11_pkgconfig=yes
671 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700672 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700673 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700674 ])
675 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700676else
677 x11_pkgconfig=no
678fi
679dnl Use the autoconf macro if no pkg-config files
Jeff Smith8d86d392010-03-12 18:55:09 -0600680if test "$x11_pkgconfig" = yes; then
Dan Nicholsone725ef12010-03-15 20:53:56 -0700681 PKG_CHECK_MODULES([X11], [x11])
Jeff Smith8d86d392010-03-12 18:55:09 -0600682else
Dan Nicholsondca1b792007-10-23 09:25:58 -0700683 AC_PATH_XTRA
Dan Nicholsone725ef12010-03-15 20:53:56 -0700684 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
685 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
686 AC_SUBST([X11_CFLAGS])
687 AC_SUBST([X11_LIBS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700688fi
689
Dan Nicholson99803a42008-07-01 09:03:15 -0700690dnl Try to tell the user that the --x-* options are only used when
691dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
692m4_divert_once([HELP_BEGIN],
693[These options are only used when the X libraries cannot be found by the
694pkg-config utility.])
695
Dan Nicholson44d99142007-12-05 18:47:01 -0800696dnl We need X for xlib and dri, so bomb now if it's not found
697case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800698xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800699 if test "$no_x" = yes; then
700 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
701 fi
702 ;;
703esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700704
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700705dnl XCB - this is only used for GLX right now
706AC_ARG_ENABLE([xcb],
707 [AS_HELP_STRING([--enable-xcb],
708 [use XCB for GLX @<:@default=disabled@:>@])],
709 [enable_xcb="$enableval"],
710 [enable_xcb=no])
711if test "x$enable_xcb" = xyes; then
712 DEFINES="$DEFINES -DUSE_XCB"
713else
714 enable_xcb=no
715fi
716
Dan Nicholson44d99142007-12-05 18:47:01 -0800717dnl
718dnl libGL configuration per driver
719dnl
720case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800721xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800722 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700723 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800724 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800725 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
726 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800727 else
728 # should check these...
729 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
730 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800731 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
732 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800733 fi
Kenneth Graunked1d81202011-01-16 16:01:54 -0800734 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
735 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800736
737 # if static, move the external libraries to the programs
738 # and empty the libraries for libGL
739 if test "$enable_static" = yes; then
740 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
741 GL_LIB_DEPS=""
742 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800743 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800744dri|no) # these checks are still desired when there is no mesa_driver
Dan Nicholson88586332007-11-15 08:59:57 -0800745 # DRI must be shared, I think
746 if test "$enable_static" = yes; then
747 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
748 fi
749
Dan Nicholson44d99142007-12-05 18:47:01 -0800750 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700751 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
752 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Jesse Barnesf2f83d92010-01-11 17:28:10 -0500753 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
Jesse Barnesed59b132010-01-13 15:48:14 -0500754 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
755 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800756
757 # find the DRI deps for libGL
758 if test "$x11_pkgconfig" = yes; then
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100759 dri_modules="x11 xext xdamage xfixes"
760
761 # add xf86vidmode if available
762 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
763 if test "$HAVE_XF86VIDMODE" = yes ; then
764 dri_modules="$dri_modules xxf86vm"
765 fi
766
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700767 # add xcb modules if necessary
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700768 if test "$enable_xcb" = yes; then
769 dri_modules="$dri_modules x11-xcb xcb-glx"
770 fi
771
772 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800773 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800774 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
775 GL_LIB_DEPS="$DRIGL_LIBS"
776 else
777 # should check these...
778 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
779 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800780 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
781 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700782
783 # XCB can only be used from pkg-config
784 if test "$enable_xcb" = yes; then
785 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800786 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700787 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
788 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
789 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800790 fi
791
792 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700793 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
794 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500795 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400796 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500797 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400798 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800799 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800800osmesa)
801 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700802 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800803 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800804esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700805AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800806AC_SUBST([GL_PC_REQ_PRIV])
807AC_SUBST([GL_PC_LIB_PRIV])
808AC_SUBST([GL_PC_CFLAGS])
809AC_SUBST([DRI_PC_REQ_PRIV])
Li Pengc33c1912010-07-30 12:26:15 +0800810AC_SUBST([GLESv1_CM_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400811AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500812AC_SUBST([GLESv2_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400813AC_SUBST([GLESv2_PC_LIB_PRIV])
814
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800815GLAPI_LIB_DEPS="-lpthread"
816AC_SUBST([GLAPI_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700817
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100818AC_SUBST([HAVE_XF86VIDMODE])
819
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200820PKG_CHECK_MODULES([LIBDRM_RADEON],
821 [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
822 HAVE_LIBDRM_RADEON=yes,
823 HAVE_LIBDRM_RADEON=no)
824
Dan Nicholsondca1b792007-10-23 09:25:58 -0700825dnl
826dnl More X11 setup
827dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800828if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700829 DEFINES="$DEFINES -DUSE_XSHM"
830fi
831
832dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700833dnl TLS detection
Dan Nicholson44d99142007-12-05 18:47:01 -0800834dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700835
Dan Nicholson297e16c2008-05-05 15:42:53 -0700836AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800837 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800838 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700839 [GLX_USE_TLS="$enableval"],
840 [GLX_USE_TLS=no])
Tom Fogal31351dc2010-12-05 17:58:32 -0700841AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
842
843dnl
844dnl More DRI setup
845dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800846dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700847AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800848 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700849 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700850 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700851 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700852AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +0800853dnl Extra search path for DRI drivers
854AC_ARG_WITH([dri-searchpath],
855 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
856 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
857 [DRI_DRIVER_SEARCH_DIR="$withval"],
858 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
859AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800860dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700861AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800862 [AS_HELP_STRING([--disable-driglx-direct],
Chia-I Wucf588ab2010-07-06 14:34:43 +0800863 [enable direct rendering in GLX and EGL for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700864 [driglx_direct="$enableval"],
865 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800866dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700867AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800868 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700869 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200870 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700871 [with_dri_drivers="$withval"],
872 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800873if test "x$with_dri_drivers" = x; then
874 with_dri_drivers=no
875fi
876
877dnl If $with_dri_drivers is yes, directories will be added through
878dnl platform checks
879DRI_DIRS=""
880case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100881no) ;;
882yes)
883 DRI_DIRS="yes"
884 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800885*)
886 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700887 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800888 for driver in $dri_drivers; do
889 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
890 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
891 done
892 DRI_DIRS="$dri_drivers"
893 ;;
894esac
895
Dan Nicholson44d99142007-12-05 18:47:01 -0800896dnl Set DRI_DIRS, DEFINES and LIB_DEPS
Chia-I Wube5f34a2010-10-27 16:14:27 +0800897if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
Dan Nicholson44d99142007-12-05 18:47:01 -0800898 # Use TLS in GLX?
899 if test "x$GLX_USE_TLS" = xyes; then
900 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
901 fi
902
Dan Nicholson44d99142007-12-05 18:47:01 -0800903 # Platform specific settings and drivers to build
904 case "$host_os" in
905 linux*)
906 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800907 if test "x$driglx_direct" = xyes; then
908 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
909 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100910 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800911
912 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800913 x86_64)
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500914 # sis is missing because they have not be converted to use
915 # the new interface. i810 are missing because there is no
916 # x86-64 system where they could *ever* be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100917 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400918 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300919 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800920 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800921 ;;
922 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800923 # Build only the drivers for cards that exist on PowerPC.
924 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100925 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400926 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800927 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800928 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000929 sparc*)
930 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100931 if test "x$DRI_DIRS" = "xyes"; then
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500932 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000933 fi
934 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800935 esac
936 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700937 freebsd* | dragonfly* | *netbsd*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800938 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
939 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
940 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
941 if test "x$driglx_direct" = xyes; then
942 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
943 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800944
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100945 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400946 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300947 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800948 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800949 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700950 gnu*)
951 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
952 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
953 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700954 solaris*)
955 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
956 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
957 if test "x$driglx_direct" = xyes; then
958 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
959 fi
960 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800961 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800962
963 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100964 if test "x$DRI_DIRS" = "xyes"; then
Corbin Simpson8e4657a2009-10-22 12:29:30 -0700965 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -0500966 savage sis tdfx unichrome swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800967 fi
968
Dan Nicholson44d99142007-12-05 18:47:01 -0800969 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
970
971 # Check for expat
Chia-I Wube5f34a2010-10-27 16:14:27 +0800972 if test "$mesa_driver" = dri; then
973 EXPAT_INCLUDES=""
974 EXPAT_LIB=-lexpat
975 AC_ARG_WITH([expat],
976 [AS_HELP_STRING([--with-expat=DIR],
977 [expat install directory])],[
978 EXPAT_INCLUDES="-I$withval/include"
979 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
980 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
981 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
982 ])
983 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
984 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
985 [AC_MSG_ERROR([Expat required for DRI.])])
986 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800987
988 # put all the necessary libs together
Kenneth Graunked1d81202011-01-16 16:01:54 -0800989 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800990fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700991AC_SUBST([DRI_DIRS])
992AC_SUBST([EXPAT_INCLUDES])
993AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800994
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500995case $DRI_DIRS in
996*i915*|*i965*)
Tormod Volden903185b2011-01-25 13:25:18 -0800997 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
Kristian Høgsberg8616cec2010-01-01 17:03:33 -0500998 ;;
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -0500999esac
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001000
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001001case $DRI_DIRS in
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001002*radeon*|*r200*|*r300*|*r600*)
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001003 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001004 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1005 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1006 fi
1007 ;;
1008esac
1009AC_SUBST([RADEON_CFLAGS])
1010AC_SUBST([RADEON_LDFLAGS])
1011
1012
Dan Nicholson44d99142007-12-05 18:47:01 -08001013dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001014dnl OSMesa configuration
1015dnl
Dan Nicholsona1307182007-12-12 17:49:49 -08001016if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -08001017 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -08001018else
Dan Nicholson544ab202007-12-30 08:41:53 -08001019 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -08001020fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001021AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -08001022 [AS_HELP_STRING([--enable-gl-osmesa],
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001023 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001024 [gl_osmesa="$enableval"],
1025 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -08001026if test "x$gl_osmesa" = xyes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001027 if test "x$enable_opengl" = xno; then
1028 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1029 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001030 if test "$mesa_driver" = osmesa; then
1031 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -08001032 else
Dan Nicholson544ab202007-12-30 08:41:53 -08001033 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -08001034 fi
1035fi
1036
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001037dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -07001038AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001039 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1040 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001041 [osmesa_bits="$withval"],
1042 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001043if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1044 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1045 osmesa_bits=8
1046fi
1047case "x$osmesa_bits" in
1048x8)
1049 OSMESA_LIB=OSMesa
1050 ;;
1051x16|x32)
1052 OSMESA_LIB="OSMesa$osmesa_bits"
1053 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1054 ;;
1055*)
1056 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1057 ;;
1058esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001059AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001060
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001061case "$DRIVER_DIRS" in
1062*osmesa*)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001063 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -08001064 if test "$enable_static" = no; then
Kenneth Graunked1d81202011-01-16 16:01:54 -08001065 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -08001066 else
1067 OSMESA_LIB_DEPS=""
1068 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001069 OSMESA_MESA_DEPS=""
Kenneth Graunked1d81202011-01-16 16:01:54 -08001070 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -08001071 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -08001072esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001073AC_SUBST([OSMESA_LIB_DEPS])
1074AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001075AC_SUBST([OSMESA_PC_REQ])
1076AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001077
1078dnl
Dan Nicholson53b37342009-02-25 17:45:34 -08001079dnl EGL configuration
1080dnl
Dan Nicholson66f97862009-04-29 12:11:43 -07001081AC_ARG_ENABLE([egl],
1082 [AS_HELP_STRING([--disable-egl],
1083 [disable EGL library @<:@default=enabled@:>@])],
1084 [enable_egl="$enableval"],
1085 [enable_egl=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001086if test "x$enable_egl" = xno; then
1087 if test "x$mesa_driver" = xno; then
1088 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1089 fi
1090 if test "x$enable_openvg" = xyes; then
1091 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1092 fi
1093fi
Dan Nicholson66f97862009-04-29 12:11:43 -07001094if test "x$enable_egl" = xyes; then
1095 SRC_DIRS="$SRC_DIRS egl"
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001096 EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
1097 EGL_DRIVERS_DIRS=""
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001098 if test "$enable_static" != yes; then
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001099 # build egl_glx when libGL is built
Chia-I Wube5f34a2010-10-27 16:14:27 +08001100 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001101 EGL_DRIVERS_DIRS="glx"
1102 fi
1103
Chia-I Wu39ae9652010-07-16 19:48:52 +08001104 if test "$mesa_driver" = dri; then
1105 # build egl_dri2 when xcb-dri2 is available
1106 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1107 [have_xcb_dri2=yes],[have_xcb_dri2=no])
1108 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1109 [have_libudev=yes],[have_libudev=no])
1110
1111 if test "$have_xcb_dri2" = yes; then
1112 EGL_DRIVER_DRI2=dri2
1113 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
1114 if test "$have_libudev" = yes; then
1115 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1116 fi
1117 fi
1118 fi
Kristian Høgsberg2168b872010-06-02 22:48:06 -04001119
1120 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
Kristian Høgsberg42fa0092010-02-03 10:18:28 -05001121 fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001122fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001123AC_SUBST([EGL_LIB_DEPS])
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001124AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson53b37342009-02-25 17:45:34 -08001125
1126dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001127dnl GLU configuration
1128dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001129AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001130 [AS_HELP_STRING([--disable-glu],
1131 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001132 [enable_glu="$enableval"],
1133 [enable_glu=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001134
1135if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1136 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1137 enable_glu=no
1138fi
1139
Dan Nicholsondca1b792007-10-23 09:25:58 -07001140if test "x$enable_glu" = xyes; then
1141 SRC_DIRS="$SRC_DIRS glu"
1142
Dan Nicholson979ff512007-12-05 18:47:01 -08001143 case "$mesa_driver" in
1144 osmesa)
Dan Nicholson979ff512007-12-05 18:47:01 -08001145 # Link libGLU to libOSMesa instead of libGL
1146 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001147 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -08001148 if test "$enable_static" = no; then
1149 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1150 else
1151 GLU_MESA_DEPS=""
1152 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001153 ;;
1154 *)
Dan Nicholson88586332007-11-15 08:59:57 -08001155 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -08001156 GLU_PC_REQ="gl"
1157 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -08001158 if test "$enable_static" = no; then
1159 GLU_LIB_DEPS="-lm"
1160 GLU_MESA_DEPS='-l$(GL_LIB)'
1161 else
1162 GLU_LIB_DEPS=""
1163 GLU_MESA_DEPS=""
1164 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1165 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001166 ;;
1167 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001168fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001169if test "$enable_static" = no; then
1170 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1171fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001172GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -07001173AC_SUBST([GLU_LIB_DEPS])
1174AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001175AC_SUBST([GLU_PC_REQ])
1176AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001177AC_SUBST([GLU_PC_LIB_PRIV])
1178AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001179
1180dnl
1181dnl GLw configuration
1182dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001183AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001184 [AS_HELP_STRING([--disable-glw],
1185 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001186 [enable_glw="$enableval"],
1187 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -08001188dnl Don't build GLw on osmesa
Chia-I Wube5f34a2010-10-27 16:14:27 +08001189if test "x$enable_glw" = xyes; then
1190 case "$mesa_driver" in
1191 osmesa|no)
1192 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1193 enable_glw=no
1194 ;;
1195 esac
Dan Nicholson979ff512007-12-05 18:47:01 -08001196fi
Dan Nicholson776c60d2008-07-18 07:40:41 -07001197AC_ARG_ENABLE([motif],
1198 [AS_HELP_STRING([--enable-motif],
1199 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1200 [enable_motif="$enableval"],
1201 [enable_motif=no])
1202
Dan Nicholsondca1b792007-10-23 09:25:58 -07001203if test "x$enable_glw" = xyes; then
1204 SRC_DIRS="$SRC_DIRS glw"
1205 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001206 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001207 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001208 GLW_LIB_DEPS="$GLW_LIBS"
1209 else
1210 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -07001211 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001212 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1213 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001214 fi
1215
1216 GLW_SOURCES="GLwDrawA.c"
1217 MOTIF_CFLAGS=
1218 if test "x$enable_motif" = xyes; then
1219 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1220 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1221 if test "x$MOTIF_CONFIG" != xno; then
1222 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1223 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1224 else
1225 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1226 [AC_MSG_ERROR([Can't locate Motif headers])])
1227 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1228 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1229 fi
1230 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1231 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001232 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1233 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001234 fi
1235
Dan Nicholson88586332007-11-15 08:59:57 -08001236 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001237 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001238 if test "$enable_static" = no; then
1239 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001240 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001241 else
1242 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1243 GLW_LIB_DEPS=""
1244 GLW_MESA_DEPS=""
1245 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001246fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001247AC_SUBST([GLW_LIB_DEPS])
1248AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001249AC_SUBST([GLW_SOURCES])
1250AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001251AC_SUBST([GLW_PC_REQ_PRIV])
1252AC_SUBST([GLW_PC_LIB_PRIV])
1253AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001254
1255dnl
1256dnl GLUT configuration
1257dnl
1258if test -f "$srcdir/include/GL/glut.h"; then
1259 default_glut=yes
1260else
1261 default_glut=no
1262fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001263AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001264 [AS_HELP_STRING([--disable-glut],
1265 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001266 [enable_glut="$enableval"],
1267 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001268
Chia-I Wube5f34a2010-10-27 16:14:27 +08001269dnl Don't build glut on osmesa
1270if test "x$enable_glut" = xyes; then
1271 case "$mesa_driver" in
1272 osmesa|no)
1273 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1274 enable_glut=no
1275 ;;
1276 esac
1277fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001278dnl Can't build glut if GLU not available
1279if test "x$enable_glu$enable_glut" = xnoyes; then
1280 AC_MSG_WARN([Disabling glut since GLU is disabled])
1281 enable_glut=no
1282fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001283
Dan Nicholsondca1b792007-10-23 09:25:58 -07001284if test "x$enable_glut" = xyes; then
1285 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001286 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001287 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001288 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001289 GLUT_LIB_DEPS="$GLUT_LIBS"
1290 else
1291 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001292 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001293 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1294 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001295 fi
John Hein96172542010-07-01 12:53:28 -07001296 if test "x$GCC" = xyes; then
1297 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1298 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001299 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1300 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001301
Dan Nicholson88586332007-11-15 08:59:57 -08001302 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1303 if test "$enable_static" = no; then
1304 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1305 else
1306 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1307 GLUT_LIB_DEPS=""
1308 GLUT_MESA_DEPS=""
1309 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001310fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001311AC_SUBST([GLUT_LIB_DEPS])
1312AC_SUBST([GLUT_MESA_DEPS])
1313AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001314AC_SUBST([GLUT_PC_REQ_PRIV])
1315AC_SUBST([GLUT_PC_LIB_PRIV])
1316AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001317
1318dnl
1319dnl Program library dependencies
1320dnl Only libm is added here if necessary as the libraries should
1321dnl be pulled in by the linker
1322dnl
1323if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001324 case "$host_os" in
1325 solaris*)
1326 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1327 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001328 cygwin*)
1329 APP_LIB_DEPS="-lX11"
1330 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001331 *)
1332 APP_LIB_DEPS="-lm"
1333 ;;
1334 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001335fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001336AC_SUBST([APP_LIB_DEPS])
1337AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001338
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001339dnl
1340dnl Gallium configuration
1341dnl
1342AC_ARG_ENABLE([gallium],
1343 [AS_HELP_STRING([--disable-gallium],
1344 [build gallium @<:@default=enabled@:>@])],
1345 [enable_gallium="$enableval"],
1346 [enable_gallium=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001347if test "x$enable_gallium" = xno -a "x$enable_openvg" = xyes; then
1348 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1349fi
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001350if test "x$enable_gallium" = xyes; then
Jakob Bornecrantzbe38b322010-03-23 13:23:26 +00001351 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
Dave Airlie81fe1982010-04-22 14:59:29 +10001352 AC_CHECK_HEADER([udis86.h], [HAS_UDIS86="yes"],
1353 [HAS_UDIS86="no"])
1354 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001355fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001356
Dave Airlie81fe1982010-04-22 14:59:29 +10001357AC_SUBST([LLVM_CFLAGS])
1358AC_SUBST([LLVM_LIBS])
1359AC_SUBST([LLVM_LDFLAGS])
1360AC_SUBST([LLVM_VERSION])
1361
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001362dnl
1363dnl Gallium state trackers configuration
1364dnl
Chia-I Wudbacbb82010-11-02 02:00:36 +08001365
1366AC_ARG_ENABLE([gallium-egl],
1367 [AS_HELP_STRING([--enable-gallium-egl],
1368 [enable gallium EGL state tracker @<:@default=auto@:>@])],
1369 [enable_gallium_egl="$enableval"],
1370 [enable_gallium_egl=auto])
1371if test "x$enable_gallium_egl" = xauto; then
1372 case "$mesa_driver" in
1373 dri|no)
1374 enable_gallium_egl=$enable_egl
1375 ;;
1376 *)
Chia-I Wuada9c782011-01-04 01:05:22 +08001377 enable_gallium_egl=$enable_openvg
Chia-I Wudbacbb82010-11-02 02:00:36 +08001378 ;;
1379 esac
1380fi
1381case "x$enable_egl$enable_gallium_egl" in
1382xnoyes)
1383 AC_MSG_ERROR([cannot build Gallium EGL state tracker without EGL])
1384esac
1385
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001386AC_ARG_WITH([state-trackers],
1387 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1388 [comma delimited state_trackers list, e.g.
1389 "egl,glx" @<:@default=auto@:>@])],
1390 [with_state_trackers="$withval"],
1391 [with_state_trackers=yes])
1392
1393case "$with_state_trackers" in
1394no)
1395 GALLIUM_STATE_TRACKERS_DIRS=""
1396 ;;
1397yes)
1398 # look at what else is built
1399 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001400 xlib)
1401 GALLIUM_STATE_TRACKERS_DIRS=glx
1402 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001403 dri)
Jakob Bornecrantz5b1fc142010-03-25 18:29:51 +01001404 GALLIUM_STATE_TRACKERS_DIRS="dri"
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001405 HAVE_ST_DRI="yes"
Jakob Bornecrantzbc0532b2009-12-04 18:50:29 +00001406 # Have only tested st/xorg on 1.6.0 servers
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001407 PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED],
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001408 HAVE_ST_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg",
1409 HAVE_ST_XORG="no")
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001410 ;;
1411 esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001412
1413 if test "x$enable_egl" = xyes; then
1414 if test "$enable_openvg" = yes; then
1415 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS vega"
1416 st_egl="yes"
1417 fi
1418
Chia-I Wudbacbb82010-11-02 02:00:36 +08001419 if test "$enable_gallium_egl" = yes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001420 GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl"
1421 HAVE_ST_EGL="yes"
1422 fi
1423 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001424 ;;
1425*)
1426 # verify the requested state tracker exist
Chia-I Wu63ab2502010-05-05 15:38:02 +08001427 state_trackers=""
1428 _state_trackers=`IFS=', '; echo $with_state_trackers`
1429 for tracker in $_state_trackers; do
Chia-I Wue5d351d2009-12-23 11:18:00 +08001430 case "$tracker" in
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001431 dri)
1432 if test "x$mesa_driver" != xdri; then
1433 AC_MSG_ERROR([cannot build dri state tracker without mesa driver set to dri])
1434 fi
1435 HAVE_ST_DRI="yes"
1436 ;;
Chia-I Wu3c967a92010-01-22 16:31:43 +08001437 egl)
Chia-I Wue5d351d2009-12-23 11:18:00 +08001438 if test "x$enable_egl" != xyes; then
Chia-I Wu3c967a92010-01-22 16:31:43 +08001439 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
Chia-I Wue5d351d2009-12-23 11:18:00 +08001440 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001441 HAVE_ST_EGL="yes"
Chia-I Wue5d351d2009-12-23 11:18:00 +08001442 ;;
1443 xorg)
Jakob Bornecrantz4f956882010-07-13 07:40:47 -07001444 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001445 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1446 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001447 HAVE_ST_XORG="yes"
Chia-I Wue5d351d2009-12-23 11:18:00 +08001448 ;;
Chia-I Wu156e9552010-10-30 14:26:01 +08001449 vega)
1450 if test "x$enable_openvg" != xyes; then
1451 AC_MSG_ERROR([cannot build vega state tracker without --enable-openvg])
1452 fi
Chia-I Wuc116a0e2011-01-20 14:19:13 +08001453 have_st_vega="yes"
Chia-I Wu156e9552010-10-30 14:26:01 +08001454 ;;
Chia-I Wue5d351d2009-12-23 11:18:00 +08001455 esac
Chia-I Wu63ab2502010-05-05 15:38:02 +08001456
1457 if test -n "$tracker"; then
1458 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1459 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1460 if test -n "$state_trackers"; then
1461 state_trackers="$state_trackers $tracker"
1462 else
1463 state_trackers="$tracker"
1464 fi
1465 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001466 done
1467 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
Chia-I Wuc116a0e2011-01-20 14:19:13 +08001468
1469 # append --enable-openvg/--enable-gallium-egl to --with-state-trackers
1470 if test "x$have_st_vega" != xyes -a "x$enable_openvg" = xyes; then
1471 AC_MSG_ERROR([--with-state-trackers specified but vega is missing])
1472 fi
1473 if test "x$HAVE_ST_EGL" != xyes -a "x$enable_gallium_egl" = xyes; then
1474 AC_MSG_ERROR([--with-state-trackers specified but egl is missing])
1475 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001476 ;;
1477esac
1478
Chia-I Wube5f34a2010-10-27 16:14:27 +08001479
1480EGL_CLIENT_APIS=""
1481VG_LIB_DEPS=""
1482
1483case "x$enable_opengl$enable_gles1$enable_gles2" in
1484x*yes*)
1485 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1486 ;;
1487esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001488if test "x$enable_openvg" = xyes; then
1489 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1490 VG_LIB_DEPS="$VG_LIB_DEPS -lpthread"
1491fi
1492
Chia-I Wu874ccd52010-05-04 22:43:05 +08001493AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001494AC_SUBST([EGL_CLIENT_APIS])
1495
1496if test "x$HAVE_ST_EGL" = xyes; then
Chia-I Wud8e0e112010-06-29 14:04:27 +08001497 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
Chia-I Wu63ab2502010-05-05 15:38:02 +08001498fi
Chia-I Wu874ccd52010-05-04 22:43:05 +08001499
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001500if test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantz683a0992010-03-11 19:23:15 +00001501 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1502 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1503 HAVE_XEXTPROTO_71="no")
1504fi
1505
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001506AC_ARG_WITH([egl-platforms],
1507 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1508 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001509 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001510 [with_egl_platforms="$withval"],
1511 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001512AC_ARG_WITH([egl-displays],
1513 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001514 [DEPRECATED. Use --with-egl-platforms instead])],
1515 [with_egl_platforms="$withval"])
Chia-I Wu49381d62010-01-11 01:23:01 +08001516
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001517EGL_PLATFORMS=""
1518case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001519yes)
1520 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001521 EGL_PLATFORMS="x11"
Chia-I Wu2a910b32010-09-19 17:31:34 +08001522 if test "$mesa_driver" = dri; then
1523 EGL_PLATFORMS="$EGL_PLATFORMS drm"
1524 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001525 fi
1526 ;;
1527*)
1528 if test "x$enable_egl" != xyes; then
1529 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1530 fi
1531 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001532 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1533 for plat in $egl_platforms; do
1534 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
1535 AC_MSG_ERROR([EGL platform '$plat' does't exist])
1536 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001537 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1538 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001539 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001540 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001541 ;;
1542esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001543AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001544
Chia-I Wu28c3e572010-01-23 20:18:43 +08001545AC_ARG_WITH([egl-driver-dir],
1546 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1547 [directory for EGL drivers [[default=${libdir}/egl]]])],
1548 [EGL_DRIVER_INSTALL_DIR="$withval"],
1549 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1550AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1551
Joel Bosveld8acca482009-03-06 08:46:08 +09001552AC_ARG_WITH([xorg-driver-dir],
1553 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1554 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1555 [XORG_DRIVER_INSTALL_DIR="$withval"],
1556 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1557AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1558
Tom Fogal7085dce2009-08-13 19:40:30 -06001559AC_ARG_WITH([max-width],
1560 [AS_HELP_STRING([--with-max-width=N],
1561 [Maximum framebuffer width (4096)])],
1562 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1563 AS_IF([test "${withval}" -gt "4096"],
1564 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1565)
1566AC_ARG_WITH([max-height],
1567 [AS_HELP_STRING([--with-max-height=N],
1568 [Maximum framebuffer height (4096)])],
1569 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1570 AS_IF([test "${withval}" -gt "4096"],
1571 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1572)
1573
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001574dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001575dnl Gallium LLVM
1576dnl
1577AC_ARG_ENABLE([gallium-llvm],
1578 [AS_HELP_STRING([--enable-gallium-llvm],
1579 [build gallium LLVM support @<:@default=disabled@:>@])],
1580 [enable_gallium_llvm="$enableval"],
1581 [enable_gallium_llvm=auto])
1582if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001583 if test "x$LLVM_CONFIG" != xno; then
1584 LLVM_VERSION=`$LLVM_CONFIG --version`
Brian Paul7da704e2010-12-08 06:44:42 -07001585 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001586 LLVM_LIBS="`$LLVM_CONFIG --libs jit interpreter nativecodegen bitwriter` -lstdc++"
1587
1588 if test "x$HAS_UDIS86" != xno; then
1589 LLVM_LIBS="$LLVM_LIBS -ludis86"
1590 DEFINES="$DEFINES -DHAVE_UDIS86"
Dave Airlie81fe1982010-04-22 14:59:29 +10001591 fi
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001592 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1593 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
Chia-I Wu3ecb8c22010-05-11 12:36:49 +08001594 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001595 MESA_LLVM=1
1596 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001597 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001598 fi
1599else
1600 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001601fi
1602
1603dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001604dnl Gallium helper functions
1605dnl
1606gallium_check_st() {
Chia-I Wud8e0e112010-06-29 14:04:27 +08001607 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001608 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1609 fi
1610 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1611 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1612 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001613 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001614 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1615 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001616}
1617
1618
1619dnl
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001620dnl Gallium SVGA configuration
1621dnl
1622AC_ARG_ENABLE([gallium-svga],
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001623 [AS_HELP_STRING([--enable-gallium-svga],
1624 [build gallium SVGA @<:@default=disabled@:>@])],
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001625 [enable_gallium_svga="$enableval"],
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001626 [enable_gallium_svga=auto])
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001627if test "x$enable_gallium_svga" = xyes; then
Xavier Chantryff0987a2010-03-26 11:02:03 +01001628 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001629 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
Jakob Bornecrantz5e6fff72009-07-19 09:22:31 +02001630elif test "x$enable_gallium_svga" = xauto; then
1631 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga"
Jakob Bornecrantz60769b22009-11-12 01:28:26 +01001632fi
1633
1634dnl
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001635dnl Gallium i915 configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001636dnl
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001637AC_ARG_ENABLE([gallium-i915],
1638 [AS_HELP_STRING([--enable-gallium-i915],
1639 [build gallium i915 @<:@default=disabled@:>@])],
1640 [enable_gallium_i915="$enableval"],
1641 [enable_gallium_i915=auto])
1642if test "x$enable_gallium_i915" = xyes; then
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001643 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001644 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001645 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001646elif test "x$enable_gallium_i915" = xauto; then
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001647 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001648 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
1649fi
1650
1651dnl
1652dnl Gallium i965 configuration
1653dnl
1654AC_ARG_ENABLE([gallium-i965],
1655 [AS_HELP_STRING([--enable-gallium-i965],
1656 [build gallium i965 @<:@default=disabled@:>@])],
1657 [enable_gallium_i965="$enableval"],
1658 [enable_gallium_i965=auto])
1659if test "x$enable_gallium_i965" = xyes; then
1660 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001661 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001662elif test "x$enable_gallium_i965" = xauto; then
1663 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i965"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001664fi
1665
1666dnl
Marek Olšák85a45dc2010-09-23 21:50:43 +02001667dnl Gallium Radeon r300g configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001668dnl
1669AC_ARG_ENABLE([gallium-radeon],
1670 [AS_HELP_STRING([--enable-gallium-radeon],
1671 [build gallium radeon @<:@default=disabled@:>@])],
1672 [enable_gallium_radeon="$enableval"],
Jakob Bornecrantz877cadb2010-01-14 22:51:25 +00001673 [enable_gallium_radeon=auto])
Marek Olšák11eb4222010-09-28 19:32:32 +02001674if test "x$enable_gallium_radeon" = xauto; then
1675 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1676 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1677 gallium_check_st "radeon/drm" "dri-r300"
1678 else
1679 AC_MSG_WARN([libdrm_radeon is missing, not building gallium-radeon (r300)])
1680 fi
1681fi
1682if test "x$enable_gallium_radeon" = xyes; then
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001683 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1684 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
1685 gallium_check_st "radeon/drm" "dri-r300" "xorg-radeon"
1686 else
Marek Olšák11eb4222010-09-28 19:32:32 +02001687 AC_MSG_ERROR([libdrm_radeon is missing, cannot build gallium-radeon (r300)])
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001688 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001689fi
1690
1691dnl
Jakob Bornecrantzaeee5262010-05-13 20:29:18 +01001692dnl Gallium Radeon r600g configuration
1693dnl
1694AC_ARG_ENABLE([gallium-r600],
1695 [AS_HELP_STRING([--enable-gallium-r600],
1696 [build gallium radeon @<:@default=disabled@:>@])],
1697 [enable_gallium_r600="$enableval"],
1698 [enable_gallium_r600=auto])
1699if test "x$enable_gallium_r600" = xyes; then
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001700 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
1701 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1702 gallium_check_st "r600/drm" "dri-r600"
1703 else
1704 AC_MSG_ERROR([libdrm_radeon is missing, cannot build gallium-r600])
1705 fi
Jakob Bornecrantzaeee5262010-05-13 20:29:18 +01001706fi
1707
1708dnl
Thierry Vignaud1402ea82009-09-14 11:48:51 -06001709dnl Gallium Nouveau configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001710dnl
1711AC_ARG_ENABLE([gallium-nouveau],
1712 [AS_HELP_STRING([--enable-gallium-nouveau],
1713 [build gallium nouveau @<:@default=disabled@:>@])],
1714 [enable_gallium_nouveau="$enableval"],
1715 [enable_gallium_nouveau=no])
1716if test "x$enable_gallium_nouveau" = xyes; then
Christoph Bumiller4c224752010-11-12 15:17:40 +01001717 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
Chia-I Wud8e0e112010-06-29 14:04:27 +08001718 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001719fi
1720
Chia-I Wua1306f42010-01-22 15:51:51 +08001721dnl
1722dnl Gallium swrast configuration
1723dnl
1724AC_ARG_ENABLE([gallium-swrast],
1725 [AS_HELP_STRING([--enable-gallium-swrast],
Jakob Bornecrantzf5ba2cd2010-03-24 10:58:45 +01001726 [build gallium swrast @<:@default=auto@:>@])],
Chia-I Wua1306f42010-01-22 15:51:51 +08001727 [enable_gallium_swrast="$enableval"],
1728 [enable_gallium_swrast=auto])
George Sapountzis7b333292010-03-25 17:01:54 +02001729if test "x$enable_gallium_swrast" = xyes || test "x$enable_gallium_swrast" = xauto; then
Jakob Bornecrantz5b1fc142010-03-25 18:29:51 +01001730 if test "x$HAVE_ST_DRI" = xyes; then
George Sapountzis7b333292010-03-25 17:01:54 +02001731 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
Jakob Bornecrantzf5ba2cd2010-03-24 10:58:45 +01001732 fi
Chia-I Wua1306f42010-01-22 15:51:51 +08001733fi
1734
Chia-I Wu99a37ed2010-01-05 17:39:05 +08001735dnl prepend CORE_DIRS to SRC_DIRS
1736SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001737
Dan Nicholsondca1b792007-10-23 09:25:58 -07001738dnl Restore LDFLAGS and CPPFLAGS
1739LDFLAGS="$_SAVE_LDFLAGS"
1740CPPFLAGS="$_SAVE_CPPFLAGS"
1741
1742dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001743AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001744
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001745dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001746AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001747if test -f configs/current || test -L configs/current; then
1748 rm -f configs/current
1749fi
1750ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001751])
1752
1753AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001754
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001755dnl
1756dnl Output some configuration info for the user
1757dnl
1758echo ""
1759echo " prefix: $prefix"
1760echo " exec_prefix: $exec_prefix"
1761echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001762echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001763
Chia-I Wu815faa42010-10-29 12:34:44 +08001764dnl API info
1765echo ""
1766echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08001767echo " OpenVG: $enable_openvg"
1768
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001769dnl Driver info
1770echo ""
1771echo " Driver: $mesa_driver"
Chia-I Wu815faa42010-10-29 12:34:44 +08001772if test "$mesa_driver" != no; then
1773 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1774 echo " OSMesa: lib$OSMESA_LIB"
1775 else
1776 echo " OSMesa: no"
1777 fi
1778 if test "$mesa_driver" = dri; then
1779 # cleanup the drivers var
1780 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1781 if test "x$DRI_DIRS" = x; then
1782 echo " DRI drivers: no"
1783 else
1784 echo " DRI drivers: $dri_dirs"
1785 fi
1786 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1787 echo " Use XCB: $enable_xcb"
1788 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001789fi
Chia-I Wu815faa42010-10-29 12:34:44 +08001790echo ""
1791echo " GLU: $enable_glu"
1792echo " GLw: $enable_glw (Motif: $enable_motif)"
1793echo " glut: $enable_glut"
1794
1795dnl EGL
1796echo ""
1797echo " EGL: $enable_egl"
1798if test "$enable_egl" = yes; then
1799 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08001800
1801 egl_drivers=""
1802 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08001803 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08001804 done
1805
Chia-I Wu815faa42010-10-29 12:34:44 +08001806 if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
Chia-I Wu12300502010-10-31 21:01:54 +08001807 echo " EGL drivers: ${egl_drivers} egl_gallium"
1808 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08001809 else
Chia-I Wu12300502010-10-31 21:01:54 +08001810 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08001811 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001812fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001813
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001814echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07001815if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01001816 echo " llvm: yes"
1817 echo " llvm-config: $LLVM_CONFIG"
1818 echo " llvm-version: $LLVM_VERSION"
1819else
1820 echo " llvm: no"
1821fi
1822
1823echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001824if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1825 echo " Gallium: yes"
1826 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00001827 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001828 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001829 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001830 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1831else
1832 echo " Gallium: no"
1833fi
1834
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001835dnl Libraries
1836echo ""
1837echo " Shared libs: $enable_shared"
1838echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001839
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001840dnl Compiler options
1841# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1842cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1843 $SED 's/^ *//;s/ */ /;s/ *$//'`
1844cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1845 $SED 's/^ *//;s/ */ /;s/ *$//'`
1846defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1847echo ""
1848echo " CFLAGS: $cflags"
1849echo " CXXFLAGS: $cxxflags"
1850echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07001851echo ""
1852echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001853
Dan Nicholsondca1b792007-10-23 09:25:58 -07001854echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001855echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001856echo ""