blob: 871b16e1ec7cd68c135e0c51e2e53087b7d97ec8 [file] [log] [blame]
Dan Nicholsondca1b792007-10-23 09:25:58 -07001dnl Process this file with autoconf to create configure.
2
Dan Nicholson297e16c2008-05-05 15:42:53 -07003AC_PREREQ([2.59])
Dan Nicholsondca1b792007-10-23 09:25:58 -07004
Dan Nicholson00994ac2008-04-30 15:06:00 -07005dnl Versioning - scrape the version from configs/default
6m4_define([mesa_version],
Vinson Lee48f8a762010-05-11 12:33:30 -07007 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
Dan Nicholson356f3112009-04-29 06:49:27 -07008m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070010
Dan Nicholsone97ab722008-07-01 08:55:42 -070011dnl Tell the user about autoconf.html in the --help output
12m4_divert_once([HELP_END], [
13See docs/autoconf.html for more details on the options for Mesa.])
14
Dan Nicholson00994ac2008-04-30 15:06:00 -070015AC_INIT([Mesa],[mesa_version],
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -080016 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
Dan Nicholson297e16c2008-05-05 15:42:53 -070017AC_CONFIG_AUX_DIR([bin])
Dan Nicholsondca1b792007-10-23 09:25:58 -070018AC_CANONICAL_HOST
19
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070020dnl Versions for external dependencies
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000021LIBDRM_REQUIRED=2.4.24
22LIBDRM_RADEON_REQUIRED=2.4.24
23LIBDRM_INTEL_REQUIRED=2.4.24
Johannes Obermayr873379a2011-06-02 17:15:44 -060024LIBDRM_NOUVEAU_REQUIRED=0.6
Dave Airliedc4a3ed2011-05-05 16:23:46 +100025DRI2PROTO_REQUIRED=2.1
26GLPROTO_REQUIRED=1.4.11
Chris Wilsonfaf1dda2011-03-01 18:39:15 +000027LIBDRM_XORG_REQUIRED=2.4.24
Jakob Bornecrantz683a0992010-03-11 19:23:15 +000028LIBKMS_XORG_REQUIRED=1.0.0
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070029
Dan Nicholsondca1b792007-10-23 09:25:58 -070030dnl Check for progs
31AC_PROG_CPP
32AC_PROG_CC
33AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070034AC_CHECK_PROGS([MAKE], [gmake make])
Kenneth Graunke3acc8262010-10-25 13:52:58 -070035AC_CHECK_PROGS([PYTHON2], [python2 python])
Dan Nicholson297e16c2008-05-05 15:42:53 -070036AC_PATH_PROG([MKDEP], [makedepend])
37AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080038
Luca Barbierif762f7b2010-09-24 10:10:09 +020039if test "x$MKDEP" = "x"; then
40 AC_MSG_ERROR([makedepend is required to build Mesa])
41fi
42
Brian Paulde1df262011-05-18 07:50:21 -060043AC_PATH_PROG([FLEX], [flex])
44test "x$FLEX" = "x" && AC_MSG_ERROR([flex is needed to build Mesa])
45
46AC_PATH_PROG([BISON], [bison])
47test "x$BISON" = "x" && AC_MSG_ERROR([bison is needed to build Mesa])
48
Dan Nicholsonbc302b22009-05-22 09:39:02 -070049dnl Our fallback install-sh is a symlink to minstall. Use the existing
50dnl configuration in that case.
51AC_PROG_INSTALL
52test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
53
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070054dnl We need a POSIX shell for parts of the build. Assume we have one
55dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070056case "$host_os" in
57solaris*)
58 # Solaris /bin/sh is too old/non-POSIX compliant
59 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070060 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070061 ;;
62esac
63
nobled2a501872010-08-29 20:03:37 -040064dnl clang is mostly GCC-compatible, but its version is much lower,
65dnl so we have to check for it.
66AC_MSG_CHECKING([if compiling with clang])
67
68AC_COMPILE_IFELSE(
69[AC_LANG_PROGRAM([], [[
70#ifndef __clang__
71 not clang
72#endif
73]])],
74[CLANG=yes], [CLANG=no])
75
76AC_MSG_RESULT([$CLANG])
77
Ian Romanick9aa3aa72010-03-03 15:59:37 -080078dnl If we're using GCC, make sure that it is at least version 3.3.0. Older
79dnl versions are explictly not supported.
nobled2a501872010-08-29 20:03:37 -040080if test "x$GCC" = xyes -a "x$CLANG" = xno; then
Ian Romanick9aa3aa72010-03-03 15:59:37 -080081 AC_MSG_CHECKING([whether gcc version is sufficient])
82 major=0
83 minor=0
84
85 GCC_VERSION=`$CC -dumpversion`
86 if test $? -eq 0; then
87 major=`echo $GCC_VERSION | cut -d. -f1`
88 minor=`echo $GCC_VERSION | cut -d. -f1`
89 fi
90
91 if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
92 AC_MSG_RESULT([no])
93 AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
94 else
95 AC_MSG_RESULT([yes])
96 fi
97fi
98
99
Dan Nicholsondb7fc632008-03-07 11:48:09 -0800100MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500101dnl Ask gcc where it's keeping its secret headers
102if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -0800103 for dir in include include-fixed; do
104 GCC_INCLUDES=`$CC -print-file-name=$dir`
105 if test "x$GCC_INCLUDES" != x && \
106 test "$GCC_INCLUDES" != "$dir" && \
107 test -d "$GCC_INCLUDES"; then
108 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
109 fi
110 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500111fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700112AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -0500113
Dan Nicholson41b00702007-12-12 08:48:30 -0800114dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -0700115m4_ifndef([PKG_PROG_PKG_CONFIG],
116 [m4_fatal([Could not locate the pkg-config autoconf macros.
117 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
118 are in a different location, try setting the environment variable
119 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700120PKG_PROG_PKG_CONFIG()
121
122dnl LIB_DIR - library basename
123LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -0700124AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700125
126dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
127_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700128AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
129AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700130
131dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
132_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700133AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
134AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700135
136dnl Compiler macros
137DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -0700138AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700139case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700140linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -0800141 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700142 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700143solaris*)
144 DEFINES="$DEFINES -DPTHREADS -DSVR4"
145 ;;
Brian Paul97988902010-02-18 12:46:12 -0700146cygwin*)
147 DEFINES="$DEFINES -DPTHREADS"
148 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -0700149esac
150
151dnl Add flags for gcc and g++
152if test "x$GCC" = xyes; then
Eric Anholta3c2bd42010-08-30 14:19:23 -0700153 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99"
154 if test "x$CLANG" = "xno"; then
155 CFLAGS="$CFLAGS -ffast-math"
156 fi
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800157
158 # Enable -fvisibility=hidden if using a gcc that supports it
159 save_CFLAGS="$CFLAGS"
Alan Coopersmithf8107a42010-01-21 16:42:58 -0800160 AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100161 VISIBILITY_CFLAGS="-fvisibility=hidden"
162 CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
Alan Coopersmithadda7f32010-01-16 18:34:23 -0800163 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100164 [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
165
166 # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
167 CFLAGS=$save_CFLAGS
Dan Nicholson0c275b62008-01-15 22:52:25 -0800168
169 # Work around aliasing bugs - developers should comment this out
170 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700171fi
172if test "x$GXX" = xyes; then
173 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800174
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400175 # Enable -fvisibility=hidden if using a gcc that supports it
176 save_CXXFLAGS="$CXXFLAGS"
177 AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100178 VISIBILITY_CXXFLAGS="-fvisibility=hidden"
179 CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400180 AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100181 [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
182
183 # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
184 CXXFLAGS=$save_CXXFLAGS
Kristian Høgsberg7b34fcc2010-09-08 20:34:07 -0400185
Dan Nicholson0c275b62008-01-15 22:52:25 -0800186 # Work around aliasing bugs - developers should comment this out
187 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700188fi
189
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100190AC_SUBST([VISIBILITY_CFLAGS])
191AC_SUBST([VISIBILITY_CXXFLAGS])
192
Dan Nicholsondca1b792007-10-23 09:25:58 -0700193dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700194AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700195 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700196AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700197 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700198AC_SUBST([OPT_FLAGS])
199AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700200
201dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600202dnl Hacks to enable 32 or 64 bit build
203dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700204AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600205 [AS_HELP_STRING([--enable-32-bit],
206 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700207 [enable_32bit="$enableval"],
208 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600209)
210if test "x$enable_32bit" = xyes; then
211 if test "x$GCC" = xyes; then
212 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700213 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600214 fi
215 if test "x$GXX" = xyes; then
216 CXXFLAGS="$CXXFLAGS -m32"
217 fi
218fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700219AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600220 [AS_HELP_STRING([--enable-64-bit],
221 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700222 [enable_64bit="$enableval"],
223 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600224)
225if test "x$enable_64bit" = xyes; then
226 if test "x$GCC" = xyes; then
227 CFLAGS="$CFLAGS -m64"
228 fi
229 if test "x$GXX" = xyes; then
230 CXXFLAGS="$CXXFLAGS -m64"
231 fi
232fi
233
234dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800235dnl shared/static libraries, mimic libtool options
236dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700237AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800238 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800239 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700240 [enable_static="$enableval"],
241 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800242)
243case "x$enable_static" in
244xyes|xno ) ;;
245x ) enable_static=no ;;
246* )
247 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
248 ;;
249esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700250AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800251 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800252 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700253 [enable_shared="$enableval"],
254 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800255)
256case "x$enable_shared" in
257xyes|xno ) ;;
258x ) enable_shared=yes ;;
259* )
260 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
261 ;;
262esac
263
264dnl Can't have static and shared libraries, default to static if user
265dnl explicitly requested. If both disabled, set to static since shared
266dnl was explicitly requirested.
267case "x$enable_static$enable_shared" in
268xyesyes )
269 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
270 enable_shared=no
271 ;;
272xnono )
273 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
274 enable_static=yes
275 ;;
276esac
277
278dnl
279dnl mklib options
280dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700281AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800282if test "$enable_static" = yes; then
283 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
284fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700285AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800286
Dan Nicholson23656c42007-12-12 09:02:31 -0800287dnl
288dnl other compiler options
289dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700290AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800291 [AS_HELP_STRING([--enable-debug],
292 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700293 [enable_debug="$enableval"],
294 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800295)
296if test "x$enable_debug" = xyes; then
297 DEFINES="$DEFINES -DDEBUG"
298 if test "x$GCC" = xyes; then
299 CFLAGS="$CFLAGS -g"
300 fi
301 if test "x$GXX" = xyes; then
302 CXXFLAGS="$CXXFLAGS -g"
303 fi
304fi
Dan Nicholson88586332007-11-15 08:59:57 -0800305
306dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700307dnl library names
308dnl
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100309LIB_PREFIX_GLOB='lib'
310LIB_VERSION_SEPARATOR='.'
Dan Nicholson88586332007-11-15 08:59:57 -0800311if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800312 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800313else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700314 case "$host_os" in
315 darwin* )
316 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100317 cygwin* )
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100318 dnl prefix can be 'cyg' or 'lib'
319 LIB_PREFIX_GLOB='???'
320 LIB_VERSION_SEPARATOR='-'
321 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700322 aix* )
323 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700324 * )
325 LIB_EXTENSION='so' ;;
326 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800327fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800328
Marek Olšák848f7d32011-04-01 01:12:41 +0200329dnl
330dnl potentially-infringing-but-nobody-knows-for-sure stuff
331dnl
332AC_ARG_ENABLE([texture-float],
333 [AS_HELP_STRING([--enable-texture-float],
334 [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
335 [enable_texture_float="$enableval"],
336 [enable_texture_float=no]
337)
338if test "x$enable_texture_float" = xyes; then
339 AC_MSG_WARN([Floating-point textures enabled.])
340 AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
341 DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
342fi
343
Dan Nicholson8217f242009-02-11 15:16:00 -0800344GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
345GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
346GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
347GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
348OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800349EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500350GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
351GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
Chia-I Wu874ccd52010-05-04 22:43:05 +0800352VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800353GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION}
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100354WAYLAND_EGL_LIB_NAME='lib$(WAYLAND_EGL_LIB).'${LIB_EXTENSION}
Dan Nicholson8217f242009-02-11 15:16:00 -0800355
Jon TURNEYc55a8a72010-07-24 12:05:34 +0100356GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
357GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
358GLUT_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLUT_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
359GLW_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLW_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
360OSMESA_LIB_GLOB=${LIB_PREFIX_GLOB}'$(OSMESA_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
361EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
362EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
363GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
364GLESv2_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv2_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
365VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800366GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100367WAYLAND_EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(WAYLAND_EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*'
Dan Nicholson8217f242009-02-11 15:16:00 -0800368
Dan Nicholson297e16c2008-05-05 15:42:53 -0700369AC_SUBST([GL_LIB_NAME])
370AC_SUBST([GLU_LIB_NAME])
371AC_SUBST([GLUT_LIB_NAME])
372AC_SUBST([GLW_LIB_NAME])
373AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800374AC_SUBST([EGL_LIB_NAME])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500375AC_SUBST([GLESv1_CM_LIB_NAME])
376AC_SUBST([GLESv2_LIB_NAME])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800377AC_SUBST([VG_LIB_NAME])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800378AC_SUBST([GLAPI_LIB_NAME])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100379AC_SUBST([WAYLAND_EGL_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700380
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700381AC_SUBST([GL_LIB_GLOB])
382AC_SUBST([GLU_LIB_GLOB])
383AC_SUBST([GLUT_LIB_GLOB])
384AC_SUBST([GLW_LIB_GLOB])
385AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wud4c1ee02009-12-21 11:13:18 +0800386AC_SUBST([EGL_LIB_GLOB])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500387AC_SUBST([GLESv1_CM_LIB_GLOB])
388AC_SUBST([GLESv2_LIB_GLOB])
Chia-I Wu874ccd52010-05-04 22:43:05 +0800389AC_SUBST([VG_LIB_GLOB])
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800390AC_SUBST([GLAPI_LIB_GLOB])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +0100391AC_SUBST([WAYLAND_EGL_LIB_GLOB])
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700392
Dan Nicholsondca1b792007-10-23 09:25:58 -0700393dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700394dnl Arch/platform-specific settings
395dnl
396AC_ARG_ENABLE([asm],
397 [AS_HELP_STRING([--disable-asm],
398 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
399 [enable_asm="$enableval"],
400 [enable_asm=yes]
401)
402asm_arch=""
403ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800404MESA_ASM_SOURCES=""
405GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700406AC_MSG_CHECKING([whether to enable assembly])
407test "x$enable_asm" = xno && AC_MSG_RESULT([no])
408# disable if cross compiling on x86/x86_64 since we must run gen_matypes
409if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
410 case "$host_cpu" in
411 i?86 | x86_64)
412 enable_asm=no
413 AC_MSG_RESULT([no, cross compiling])
414 ;;
415 esac
416fi
417# check for supported arches
418if test "x$enable_asm" = xyes; then
419 case "$host_cpu" in
420 i?86)
421 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700422 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700423 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
424 ;;
425 esac
426 ;;
427 x86_64)
428 case "$host_os" in
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700429 linux* | *freebsd* | dragonfly* | *netbsd*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700430 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
431 ;;
432 esac
433 ;;
434 powerpc)
435 case "$host_os" in
436 linux*)
437 asm_arch=ppc
438 ;;
439 esac
440 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800441 sparc*)
442 case "$host_os" in
443 linux*)
444 asm_arch=sparc
445 ;;
446 esac
447 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700448 esac
449
450 case "$asm_arch" in
451 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800452 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800453 MESA_ASM_SOURCES='$(X86_SOURCES)'
454 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700455 AC_MSG_RESULT([yes, x86])
456 ;;
457 x86_64)
458 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800459 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
460 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700461 AC_MSG_RESULT([yes, x86_64])
462 ;;
463 ppc)
464 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800465 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700466 AC_MSG_RESULT([yes, ppc])
467 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800468 sparc)
469 ASM_FLAGS="-DUSE_SPARC_ASM"
470 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
471 GLAPI_ASM_SOURCES='$(SPARC_API)'
472 AC_MSG_RESULT([yes, sparc])
473 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700474 *)
475 AC_MSG_RESULT([no, platform not supported])
476 ;;
477 esac
478fi
479AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800480AC_SUBST([MESA_ASM_SOURCES])
481AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700482
483dnl PIC code macro
484MESA_PIC_FLAGS
485
486dnl Check to see if dlopen is in default libraries (like Solaris, which
487dnl has it in libc), or if libdl is needed to get it.
488AC_CHECK_FUNC([dlopen], [],
489 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Chia-I Wu08f4bc02010-07-16 20:09:29 +0800490AC_SUBST([DLOPEN_LIBS])
Dan Nicholson871125a2008-06-04 13:00:35 -0700491
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700492dnl See if posix_memalign is available
493AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
494
Dan Nicholson871125a2008-06-04 13:00:35 -0700495dnl SELinux awareness.
496AC_ARG_ENABLE([selinux],
497 [AS_HELP_STRING([--enable-selinux],
498 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
499 [MESA_SELINUX="$enableval"],
500 [MESA_SELINUX=no])
501if test "x$enable_selinux" = "xyes"; then
502 AC_CHECK_HEADER([selinux/selinux.h],[],
503 [AC_MSG_ERROR([SELinux headers not found])])
504 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
505 [AC_MSG_ERROR([SELinux library not found])])
506 SELINUX_LIBS="-lselinux"
507 DEFINES="$DEFINES -DMESA_SELINUX"
508fi
509
Marek Olšák440d71d2011-06-14 05:38:58 +0200510dnl Options for APIs
Chia-I Wube5f34a2010-10-27 16:14:27 +0800511AC_ARG_ENABLE([opengl],
512 [AS_HELP_STRING([--disable-opengl],
513 [disable support for standard OpenGL API @<:@default=no@:>@])],
514 [enable_opengl="$enableval"],
515 [enable_opengl=yes])
516AC_ARG_ENABLE([gles1],
517 [AS_HELP_STRING([--enable-gles1],
518 [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
519 [enable_gles1="$enableval"],
520 [enable_gles1=no])
521AC_ARG_ENABLE([gles2],
522 [AS_HELP_STRING([--enable-gles2],
523 [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
524 [enable_gles2="$enableval"],
525 [enable_gles2=no])
526AC_ARG_ENABLE([gles-overlay],
527 [AS_HELP_STRING([--enable-gles-overlay],
Chia-I Wu12583172011-01-07 17:24:16 +0800528 [DEPRECATED. Same as --enable-gles1 and --enable-gles2])],
529 [enable_gles1="$enableval"; enable_gles2="$enableval"],
530 [])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800531AC_ARG_ENABLE([openvg],
532 [AS_HELP_STRING([--enable-openvg],
533 [enable support for OpenVG API @<:@default=no@:>@])],
534 [enable_openvg="$enableval"],
535 [enable_openvg=no])
Marek Olšák440d71d2011-06-14 05:38:58 +0200536AC_ARG_ENABLE([xorg],
537 [AS_HELP_STRING([--enable-xorg],
538 [enable support for X.Org DDX API @<:@default=no@:>@])],
539 [enable_xorg="$enableval"],
540 [enable_xorg=no])
541AC_ARG_ENABLE([d3d1x],
542 [AS_HELP_STRING([--enable-d3d1x],
543 [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])],
544 [enable_d3d1x="$enableval"],
545 [enable_d3d1x=no])
546AC_ARG_ENABLE([egl],
547 [AS_HELP_STRING([--disable-egl],
548 [disable EGL library @<:@default=enabled@:>@])],
549 [enable_egl="$enableval"],
550 [enable_egl=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800551
Marek Olšák58b6a192011-06-14 07:46:59 +0200552# Option for Gallium drivers
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200553GALLIUM_DRIVERS_DEFAULT="r300,r600,swrast"
Marek Olšák58b6a192011-06-14 07:46:59 +0200554
555AC_ARG_WITH([gallium-drivers],
556 [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
557 [comma delimited Gallium drivers list, e.g.
558 "i915,i965,nouveau,r300,r600,svga,swrast"
Marek Olšák0c7c5b62011-06-14 08:31:11 +0200559 @<:@default=r300,r600,swrast@:>@])],
Marek Olšák58b6a192011-06-14 07:46:59 +0200560 [with_gallium_drivers="$withval"],
561 [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
Chia-I Wu156e9552010-10-30 14:26:01 +0800562
Chia-I Wube5f34a2010-10-27 16:14:27 +0800563if test "x$enable_opengl" = xno -a \
564 "x$enable_gles1" = xno -a \
565 "x$enable_gles2" = xno -a \
Marek Olšák440d71d2011-06-14 05:38:58 +0200566 "x$enable_openvg" = xno -a \
567 "x$enable_xorg" = xno -a \
568 "x$enable_d3d1x" = xno; then
Chia-I Wube5f34a2010-10-27 16:14:27 +0800569 AC_MSG_ERROR([at least one API should be enabled])
570fi
571
572API_DEFINES=""
Chia-I Wube5f34a2010-10-27 16:14:27 +0800573if test "x$enable_opengl" = xno; then
574 API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
575else
576 API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
577fi
578if test "x$enable_gles1" = xyes; then
579 API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
580fi
581if test "x$enable_gles2" = xyes; then
582 API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
583fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800584AC_SUBST([API_DEFINES])
Chia-I Wube5f34a2010-10-27 16:14:27 +0800585
Chia-I Wue8c7d752010-12-26 18:24:13 +0800586AC_ARG_ENABLE([shared-glapi],
587 [AS_HELP_STRING([--enable-shared-glapi],
588 [EXPERIMENTAL. Enable shared glapi for OpenGL @<:@default=no@:>@])],
589 [enable_shared_glapi="$enableval"],
590 [enable_shared_glapi=no])
591
592SHARED_GLAPI="0"
593if test "x$enable_shared_glapi" = xyes; then
594 SHARED_GLAPI="1"
595fi
596AC_SUBST([SHARED_GLAPI])
597
Dan Nicholson871125a2008-06-04 13:00:35 -0700598dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800599dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg43875802010-02-25 15:49:18 -0500600dnl More later: fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800601dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700602default_driver="xlib"
603
604case "$host_os" in
605linux*)
606 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700607 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700608 esac
609 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -0700610*freebsd* | dragonfly* | *netbsd*)
Eric Anholt711222b2008-04-18 15:03:01 -0700611 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500612 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700613 esac
614 ;;
615esac
616
Chia-I Wube5f34a2010-10-27 16:14:27 +0800617if test "x$enable_opengl" = xno; then
618 default_driver="no"
619fi
620
Dan Nicholson297e16c2008-05-05 15:42:53 -0700621AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800622 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700623 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700624 [mesa_driver="$withval"],
625 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800626dnl Check for valid option
627case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800628xxlib|xdri|xosmesa)
Chia-I Wube5f34a2010-10-27 16:14:27 +0800629 if test "x$enable_opengl" = xno; then
630 AC_MSG_ERROR([Driver '$mesa_driver' requires OpenGL enabled])
631 fi
632 ;;
633xno)
Dan Nicholson44d99142007-12-05 18:47:01 -0800634 ;;
635*)
636 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
637 ;;
638esac
639
640dnl
641dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700642dnl
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800643
644dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wube5f34a2010-10-27 16:14:27 +0800645CORE_DIRS=""
Chia-I Wu99a37ed2010-01-05 17:39:05 +0800646
Jakob Bornecrantz05281062010-06-05 13:33:58 +0200647SRC_DIRS=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700648GLU_DIRS="sgi"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100649GALLIUM_DIRS="auxiliary drivers state_trackers"
Keith Whitwell51bff092010-03-11 14:43:00 +0000650GALLIUM_TARGET_DIRS=""
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000651GALLIUM_WINSYS_DIRS="sw"
Jerome Glisse33495172011-01-09 21:04:41 -0500652GALLIUM_DRIVERS_DIRS="softpipe failover galahad trace rbug noop identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100653GALLIUM_STATE_TRACKERS_DIRS=""
654
Chia-I Wue8c7d752010-12-26 18:24:13 +0800655# build shared-glapi if enabled for OpenGL or if OpenGL ES is enabled
Jon TURNEYaa6a5cf2011-02-16 13:37:57 +0000656case "x$enable_shared_glapi$enable_gles1$enable_gles2" in
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800657x*yes*)
658 CORE_DIRS="$CORE_DIRS mapi/shared-glapi"
659 ;;
660esac
661
Chia-I Wube5f34a2010-10-27 16:14:27 +0800662# build glapi if OpenGL is enabled
663if test "x$enable_opengl" = xyes; then
664 CORE_DIRS="$CORE_DIRS mapi/glapi"
665fi
666
Chia-I Wu12583172011-01-07 17:24:16 +0800667# build es1api if OpenGL ES 1.x is enabled
668if test "x$enable_gles1" = xyes; then
669 CORE_DIRS="$CORE_DIRS mapi/es1api"
670fi
671
672# build es2api if OpenGL ES 2.x is enabled
673if test "x$enable_gles2" = xyes; then
674 CORE_DIRS="$CORE_DIRS mapi/es2api"
675fi
Chia-I Wube5f34a2010-10-27 16:14:27 +0800676
Chia-I Wube5f34a2010-10-27 16:14:27 +0800677# build glsl and mesa if OpenGL or OpenGL ES is enabled
Chia-I Wu12583172011-01-07 17:24:16 +0800678case "x$enable_opengl$enable_gles1$enable_gles2" in
Chia-I Wube5f34a2010-10-27 16:14:27 +0800679x*yes*)
680 CORE_DIRS="$CORE_DIRS glsl mesa"
681 ;;
682esac
683
Dan Nicholson44d99142007-12-05 18:47:01 -0800684case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800685xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800686 DRIVER_DIRS="x11"
Jakob Bornecrantzc9f98672010-03-16 13:54:18 +0000687 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
Keith Whitwell51bff092010-03-11 14:43:00 +0000688 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
Marek Olšák440d71d2011-06-14 05:38:58 +0200689 GALLIUM_STATE_TRACKERS_DIRS="glx $GALLIUM_STATE_TRACKERS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800690 ;;
691dri)
Kristian Høgsberg6e8897f2010-02-09 09:58:36 -0500692 SRC_DIRS="$SRC_DIRS glx"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100693 DRIVER_DIRS="dri"
Jakob Bornecrantz23a915e2010-06-23 03:31:18 +0200694 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri"
Marek Olšák440d71d2011-06-14 05:38:58 +0200695 GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
696 HAVE_ST_DRI="yes"
Dan Nicholson44d99142007-12-05 18:47:01 -0800697 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800698osmesa)
699 DRIVER_DIRS="osmesa"
700 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800701no)
702 DRIVER_DRIS=""
703 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800704esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700705AC_SUBST([SRC_DIRS])
706AC_SUBST([GLU_DIRS])
707AC_SUBST([DRIVER_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100708AC_SUBST([GALLIUM_DIRS])
Keith Whitwell51bff092010-03-11 14:43:00 +0000709AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100710AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000711AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100712AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlie81fe1982010-04-22 14:59:29 +1000713AC_SUBST([MESA_LLVM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700714
715dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700716dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700717dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700718dnl
719if test -n "$PKG_CONFIG"; then
720 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700721 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700722 x11_pkgconfig=yes
723 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700724 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700725 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700726 ])
727 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700728else
729 x11_pkgconfig=no
730fi
731dnl Use the autoconf macro if no pkg-config files
Jeff Smith8d86d392010-03-12 18:55:09 -0600732if test "$x11_pkgconfig" = yes; then
Dan Nicholsone725ef12010-03-15 20:53:56 -0700733 PKG_CHECK_MODULES([X11], [x11])
Jeff Smith8d86d392010-03-12 18:55:09 -0600734else
Dan Nicholsondca1b792007-10-23 09:25:58 -0700735 AC_PATH_XTRA
Dan Nicholsone725ef12010-03-15 20:53:56 -0700736 test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
737 test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
738 AC_SUBST([X11_CFLAGS])
739 AC_SUBST([X11_LIBS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700740fi
741
Dan Nicholson99803a42008-07-01 09:03:15 -0700742dnl Try to tell the user that the --x-* options are only used when
743dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
744m4_divert_once([HELP_BEGIN],
745[These options are only used when the X libraries cannot be found by the
746pkg-config utility.])
747
Dan Nicholson44d99142007-12-05 18:47:01 -0800748dnl We need X for xlib and dri, so bomb now if it's not found
749case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800750xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800751 if test "$no_x" = yes; then
752 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
753 fi
754 ;;
755esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700756
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700757dnl XCB - this is only used for GLX right now
758AC_ARG_ENABLE([xcb],
759 [AS_HELP_STRING([--enable-xcb],
760 [use XCB for GLX @<:@default=disabled@:>@])],
761 [enable_xcb="$enableval"],
762 [enable_xcb=no])
763if test "x$enable_xcb" = xyes; then
764 DEFINES="$DEFINES -DUSE_XCB"
765else
766 enable_xcb=no
767fi
768
Samuel Thibault75856172011-03-14 22:08:21 +0000769dnl Direct rendering or just indirect rendering
noblede7d18ed2011-03-14 22:08:22 +0000770case "$host_os" in
771gnu*)
772 dnl Disable by default on GNU/Hurd
773 driglx_direct_default="no"
774 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +0000775cygwin*)
776 dnl Disable by default on cygwin
777 driglx_direct_default="no"
778 ;;
noblede7d18ed2011-03-14 22:08:22 +0000779*)
780 driglx_direct_default="yes"
781 ;;
782esac
Samuel Thibault75856172011-03-14 22:08:21 +0000783AC_ARG_ENABLE([driglx-direct],
784 [AS_HELP_STRING([--disable-driglx-direct],
785 [enable direct rendering in GLX and EGL for DRI \
noblede7d18ed2011-03-14 22:08:22 +0000786 @<:@default=auto@:>@])],
Samuel Thibault75856172011-03-14 22:08:21 +0000787 [driglx_direct="$enableval"],
noblede7d18ed2011-03-14 22:08:22 +0000788 [driglx_direct="$driglx_direct_default"])
Samuel Thibault75856172011-03-14 22:08:21 +0000789
Dan Nicholson44d99142007-12-05 18:47:01 -0800790dnl
791dnl libGL configuration per driver
792dnl
793case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800794xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800795 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700796 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800797 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800798 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
799 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800800 else
801 # should check these...
802 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
803 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800804 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
805 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800806 fi
Kenneth Graunked1d812052011-01-16 16:01:54 -0800807 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
808 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800809
810 # if static, move the external libraries to the programs
811 # and empty the libraries for libGL
812 if test "$enable_static" = yes; then
813 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
814 GL_LIB_DEPS=""
815 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800816 ;;
Chia-I Wube5f34a2010-10-27 16:14:27 +0800817dri|no) # these checks are still desired when there is no mesa_driver
Dan Nicholson88586332007-11-15 08:59:57 -0800818 # DRI must be shared, I think
819 if test "$enable_static" = yes; then
820 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
821 fi
822
Jesse Barnesf2f83d92010-01-11 17:28:10 -0500823 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
Samuel Thibault75856172011-03-14 22:08:21 +0000824 GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED"
825 DRI_PC_REQ_PRIV=""
826
827 if test x"$driglx_direct" = xyes; then
828 # Check for libdrm
829 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
830 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
831 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
832 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
833 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800834
835 # find the DRI deps for libGL
836 if test "$x11_pkgconfig" = yes; then
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100837 dri_modules="x11 xext xdamage xfixes"
838
839 # add xf86vidmode if available
840 PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
841 if test "$HAVE_XF86VIDMODE" = yes ; then
842 dri_modules="$dri_modules xxf86vm"
843 fi
844
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700845 # add xcb modules if necessary
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700846 if test "$enable_xcb" = yes; then
847 dri_modules="$dri_modules x11-xcb xcb-glx"
848 fi
849
850 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800851 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800852 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
853 GL_LIB_DEPS="$DRIGL_LIBS"
854 else
855 # should check these...
856 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
857 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800858 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
859 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700860
861 # XCB can only be used from pkg-config
862 if test "$enable_xcb" = yes; then
863 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800864 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700865 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
866 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
867 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800868 fi
869
870 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700871 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
872 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500873 GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400874 GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500875 GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Kristian Høgsberg74399d42010-05-02 09:51:13 -0400876 GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800877 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800878osmesa)
879 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700880 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800881 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800882esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700883AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800884AC_SUBST([GL_PC_REQ_PRIV])
885AC_SUBST([GL_PC_LIB_PRIV])
886AC_SUBST([GL_PC_CFLAGS])
887AC_SUBST([DRI_PC_REQ_PRIV])
Li Pengc33c1912010-07-30 12:26:15 +0800888AC_SUBST([GLESv1_CM_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400889AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
Kristian Høgsberg9339c122010-03-05 19:01:43 -0500890AC_SUBST([GLESv2_LIB_DEPS])
Kristian Høgsberg9e4f2da2010-05-04 14:13:11 -0400891AC_SUBST([GLESv2_PC_LIB_PRIV])
892
Chia-I Wu9767d3b2010-12-26 18:02:59 +0800893GLAPI_LIB_DEPS="-lpthread"
894AC_SUBST([GLAPI_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700895
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +1100896
897dnl Setup default DRI CFLAGS
898DRI_CFLAGS='$(CFLAGS)'
899DRI_CXXFLAGS='$(CXXFLAGS)'
900DRI_LIB_DEPS='$(TOP)/src/mesa/libmesa.a'
901MESA_MODULES='$(TOP)/src/mesa/libmesa.a'
902
903AC_ARG_ENABLE([shared-dricore],
904 [AS_HELP_STRING([--enable-shared-dricore],
905 [link DRI modules with shared core DRI routines @<:@default=disabled@:>@])],
906 [enable_dricore="$enableval"],
907 [enable_dricore=no])
908if test "$mesa_driver" = dri ; then
909 if test "$enable_dricore" = yes ; then
910 if test "$GCC$GXX" != yesyes ; then
911 AC_MSG_WARN([Shared dricore requires GCC-compatible rpath handling. Disabling shared dricore])
912 enable_dricore=no
913 else
914 DRICORE_GLSL_LIBS='$(TOP)/$(LIB_DIR)/libglsl.so'
915 DRICORE_LIBS='$(TOP)/$(LIB_DIR)/libdricore.so'
916 DRICORE_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -lglsl'
917 DRI_LIB_DEPS='-L$(TOP)/$(LIB_DIR) -Wl,-R$(DRI_DRIVER_INSTALL_DIR) -ldricore -lglsl'
918 DRI_CFLAGS='$(CFLAGS_NOVISIBILITY) -DUSE_DRICORE'
919 DRI_CXXFLAGS='$(CXXFLAGS_NOVISIBILITY) -DUSE_DRICORE'
920 MESA_MODULES='$(DRICORE_LIBS) $(DRICORE_GLSL_LIBS)'
921 fi
922 fi
923fi
924AC_SUBST([DRICORE_LIBS])
925AC_SUBST([DRICORE_GLSL_LIBS])
926AC_SUBST([DRICORE_LIB_DEPS])
927AC_SUBST([DRI_CXXFLAGS])
928AC_SUBST([DRI_CFLAGS])
929AC_SUBST([MESA_MODULES])
930
Jon TURNEY2b9dac32010-04-21 12:58:54 +0100931AC_SUBST([HAVE_XF86VIDMODE])
932
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200933PKG_CHECK_MODULES([LIBDRM_RADEON],
Marek Olšákec96b0e2011-02-06 15:42:55 +0100934 [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED],
Marek Olšáka1aec2e2010-09-26 17:52:58 +0200935 HAVE_LIBDRM_RADEON=yes,
936 HAVE_LIBDRM_RADEON=no)
937
Dan Nicholsondca1b792007-10-23 09:25:58 -0700938dnl
939dnl More X11 setup
940dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800941if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700942 DEFINES="$DEFINES -DUSE_XSHM"
943fi
944
945dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700946dnl TLS detection
Dan Nicholson44d99142007-12-05 18:47:01 -0800947dnl
Tom Fogal31351dc2010-12-05 17:58:32 -0700948
Dan Nicholson297e16c2008-05-05 15:42:53 -0700949AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800950 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800951 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700952 [GLX_USE_TLS="$enableval"],
953 [GLX_USE_TLS=no])
Tom Fogal31351dc2010-12-05 17:58:32 -0700954AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
955
Tom Fogal44842972011-02-21 22:32:18 -0700956AS_IF([test "x$GLX_USE_TLS" = xyes],
957 [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"])
958
Tom Fogal31351dc2010-12-05 17:58:32 -0700959dnl
960dnl More DRI setup
961dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800962dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700963AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800964 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700965 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700966 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700967 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700968AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +0800969dnl Extra search path for DRI drivers
970AC_ARG_WITH([dri-searchpath],
971 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
972 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
973 [DRI_DRIVER_SEARCH_DIR="$withval"],
974 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
975AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800976dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700977AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800978 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700979 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200980 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700981 [with_dri_drivers="$withval"],
982 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800983if test "x$with_dri_drivers" = x; then
984 with_dri_drivers=no
985fi
986
987dnl If $with_dri_drivers is yes, directories will be added through
988dnl platform checks
989DRI_DIRS=""
990case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100991no) ;;
992yes)
993 DRI_DIRS="yes"
994 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800995*)
996 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700997 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800998 for driver in $dri_drivers; do
999 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
1000 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
1001 done
1002 DRI_DIRS="$dri_drivers"
1003 ;;
1004esac
1005
Dan Nicholson44d99142007-12-05 18:47:01 -08001006dnl Set DRI_DIRS, DEFINES and LIB_DEPS
Chia-I Wube5f34a2010-10-27 16:14:27 +08001007if test "$mesa_driver" = dri -o "$mesa_driver" = no; then
Dan Nicholson44d99142007-12-05 18:47:01 -08001008 # Platform specific settings and drivers to build
1009 case "$host_os" in
1010 linux*)
1011 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -08001012 if test "x$driglx_direct" = xyes; then
1013 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1014 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +01001015 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001016
1017 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -08001018 x86_64)
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001019 # sis is missing because they have not be converted to use
1020 # the new interface. i810 are missing because there is no
1021 # x86-64 system where they could *ever* be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001022 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001023 DRI_DIRS="i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1024 radeon savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001025 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001026 ;;
1027 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -08001028 # Build only the drivers for cards that exist on PowerPC.
1029 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001030 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -04001031 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001032 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001033 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001034 sparc*)
1035 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001036 if test "x$DRI_DIRS" = "xyes"; then
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001037 DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +10001038 fi
1039 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001040 esac
1041 ;;
Pierre Allegraud8fd8de32011-01-06 07:58:57 -07001042 freebsd* | dragonfly* | *netbsd*)
Dan Nicholson44d99142007-12-05 18:47:01 -08001043 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
1044 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
1045 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1046 if test "x$driglx_direct" = xyes; then
1047 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1048 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001049
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001050 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001051 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 \
1052 radeon tdfx unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -08001053 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001054 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -07001055 gnu*)
1056 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1057 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
1058 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001059 solaris*)
1060 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1061 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1062 if test "x$driglx_direct" = xyes; then
1063 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1064 fi
1065 ;;
Jon TURNEYc6e33ca2011-03-14 22:08:23 +00001066 cygwin*)
1067 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
1068 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1069 if test "x$driglx_direct" = xyes; then
1070 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1071 fi
1072 if test "x$DRI_DIRS" = "xyes"; then
1073 DRI_DIRS="swrast"
1074 fi
1075 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -08001076 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -08001077
1078 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001079 if test "x$DRI_DIRS" = "xyes"; then
Johannes Obermayr873379a2011-06-02 17:15:44 -06001080 DRI_DIRS="i810 i915 i965 mach64 mga nouveau r128 r200 r300 r600 radeon \
Kristian Høgsberg79aeafd2010-02-25 16:12:58 -05001081 savage sis tdfx unichrome swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -08001082 fi
1083
Dan Nicholson44d99142007-12-05 18:47:01 -08001084 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
1085
1086 # Check for expat
Chia-I Wube5f34a2010-10-27 16:14:27 +08001087 if test "$mesa_driver" = dri; then
1088 EXPAT_INCLUDES=""
1089 EXPAT_LIB=-lexpat
1090 AC_ARG_WITH([expat],
1091 [AS_HELP_STRING([--with-expat=DIR],
1092 [expat install directory])],[
1093 EXPAT_INCLUDES="-I$withval/include"
1094 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
1095 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
1096 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
1097 ])
1098 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
1099 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1100 [AC_MSG_ERROR([Expat required for DRI.])])
1101 fi
Dan Nicholson44d99142007-12-05 18:47:01 -08001102
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001103 # put all the necessary libs together, including possibly libdricore
1104 DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -08001105fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001106AC_SUBST([DRI_DIRS])
1107AC_SUBST([EXPAT_INCLUDES])
1108AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -08001109
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001110case $DRI_DIRS in
1111*i915*|*i965*)
Tormod Volden903185b2011-01-25 13:25:18 -08001112 PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001113 ;;
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001114esac
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001115
Kristian Høgsberg27fe7a72010-01-07 10:29:29 -05001116case $DRI_DIRS in
Johannes Obermayr873379a2011-06-02 17:15:44 -06001117*nouveau*)
1118 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
1119 ;;
1120esac
1121
1122case $DRI_DIRS in
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001123*radeon*|*r200*|*r300*|*r600*)
Marek Olšáka1aec2e2010-09-26 17:52:58 +02001124 if test "x$HAVE_LIBDRM_RADEON" = xyes; then
Kristian Høgsberg8616cec2010-01-01 17:03:33 -05001125 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
1126 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
1127 fi
1128 ;;
1129esac
1130AC_SUBST([RADEON_CFLAGS])
1131AC_SUBST([RADEON_LDFLAGS])
1132
1133
Dan Nicholson44d99142007-12-05 18:47:01 -08001134dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001135dnl OSMesa configuration
1136dnl
Dan Nicholsona1307182007-12-12 17:49:49 -08001137if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -08001138 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -08001139else
Dan Nicholson544ab202007-12-30 08:41:53 -08001140 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -08001141fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001142AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -08001143 [AS_HELP_STRING([--enable-gl-osmesa],
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001144 [enable OSMesa with libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001145 [gl_osmesa="$enableval"],
1146 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -08001147if test "x$gl_osmesa" = xyes; then
Chia-I Wube5f34a2010-10-27 16:14:27 +08001148 if test "x$enable_opengl" = xno; then
1149 AC_MSG_ERROR([OpenGL is not available for OSMesa driver])
1150 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001151 if test "$mesa_driver" = osmesa; then
1152 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -08001153 else
Dan Nicholson544ab202007-12-30 08:41:53 -08001154 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -08001155 fi
1156fi
1157
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001158dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -07001159AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001160 [AS_HELP_STRING([--with-osmesa-bits=BITS],
1161 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001162 [osmesa_bits="$withval"],
1163 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001164if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
1165 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
1166 osmesa_bits=8
1167fi
1168case "x$osmesa_bits" in
1169x8)
1170 OSMESA_LIB=OSMesa
1171 ;;
1172x16|x32)
1173 OSMESA_LIB="OSMesa$osmesa_bits"
1174 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1175 ;;
1176*)
1177 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1178 ;;
1179esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001180AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -08001181
Dan Nicholsoncbf30fc2010-06-16 09:23:17 -07001182case "$DRIVER_DIRS" in
1183*osmesa*)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001184 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -08001185 if test "$enable_static" = no; then
Kenneth Graunked1d812052011-01-16 16:01:54 -08001186 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -08001187 else
1188 OSMESA_LIB_DEPS=""
1189 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001190 OSMESA_MESA_DEPS=""
Kenneth Graunked1d812052011-01-16 16:01:54 -08001191 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -08001192 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -08001193esac
Dan Nicholson297e16c2008-05-05 15:42:53 -07001194AC_SUBST([OSMESA_LIB_DEPS])
1195AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001196AC_SUBST([OSMESA_PC_REQ])
1197AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001198
1199dnl
Dan Nicholson53b37342009-02-25 17:45:34 -08001200dnl EGL configuration
1201dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001202EGL_CLIENT_APIS=""
1203
Chia-I Wube5f34a2010-10-27 16:14:27 +08001204if test "x$enable_egl" = xno; then
1205 if test "x$mesa_driver" = xno; then
1206 AC_MSG_ERROR([cannot disable EGL when there is no mesa driver])
1207 fi
Chia-I Wube5f34a2010-10-27 16:14:27 +08001208fi
Dan Nicholson66f97862009-04-29 12:11:43 -07001209if test "x$enable_egl" = xyes; then
1210 SRC_DIRS="$SRC_DIRS egl"
Tapani Pälli2758e652011-05-16 16:56:43 +03001211 EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread"
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001212 EGL_DRIVERS_DIRS=""
Marek Olšák440d71d2011-06-14 05:38:58 +02001213 GALLIUM_STATE_TRACKERS_DIRS="egl $GALLIUM_STATE_TRACKERS_DIRS"
1214 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS egl"
Marek Olšákad50abba2011-06-14 05:14:27 +02001215 HAVE_ST_EGL="yes"
1216
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001217 if test "$enable_static" != yes; then
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001218 # build egl_glx when libGL is built
Chia-I Wube5f34a2010-10-27 16:14:27 +08001219 if test "$mesa_driver" = xlib -o "$mesa_driver" = dri; then
Chia-I Wu2eb7a2f2010-02-05 10:46:11 +08001220 EGL_DRIVERS_DIRS="glx"
1221 fi
1222
Benjamin Franzke184bb092011-04-30 11:18:23 +02001223 PKG_CHECK_MODULES([LIBUDEV], [libudev > 150],
1224 [have_libudev=yes],[have_libudev=no])
Benjamin Franzkea7cd65f2011-05-31 11:14:46 +02001225 if test "$have_libudev" = yes; then
1226 DEFINES="$DEFINES -DHAVE_LIBUDEV"
1227 fi
Chia-I Wu39ae9652010-07-16 19:48:52 +08001228 if test "$mesa_driver" = dri; then
1229 # build egl_dri2 when xcb-dri2 is available
1230 PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes],
1231 [have_xcb_dri2=yes],[have_xcb_dri2=no])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001232
1233 if test "$have_xcb_dri2" = yes; then
1234 EGL_DRIVER_DRI2=dri2
1235 DEFINES="$DEFINES -DHAVE_XCB_DRI2"
Benjamin Franzke4ca075a2011-03-02 21:23:04 +01001236 # workaround a bug in xcb-dri2 generated by xcb-proto 1.6
1237 AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [],
1238 [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"])
Chia-I Wu39ae9652010-07-16 19:48:52 +08001239 fi
1240 fi
Kristian Høgsberg2168b872010-06-02 22:48:06 -04001241
1242 EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS $EGL_DRIVER_DRI2"
Kristian Høgsberg42fa0092010-02-03 10:18:28 -05001243 fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001244fi
Dan Nicholson53b37342009-02-25 17:45:34 -08001245AC_SUBST([EGL_LIB_DEPS])
Chia-I Wud4c1ee02009-12-21 11:13:18 +08001246AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson53b37342009-02-25 17:45:34 -08001247
1248dnl
Marek Olšák440d71d2011-06-14 05:38:58 +02001249dnl X.Org DDX configuration
1250dnl
1251if test "x$enable_xorg" = xyes; then
1252 PKG_CHECK_MODULES([XORG], [xorg-server >= 1.6.0])
1253 PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED])
1254 PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED])
1255 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
1256 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
1257 HAVE_XEXTPROTO_71="no")
1258 GALLIUM_STATE_TRACKERS_DIRS="xorg $GALLIUM_STATE_TRACKERS_DIRS"
1259 HAVE_ST_XORG=yes
1260fi
1261
1262dnl
1263dnl OpenVG configuration
1264dnl
1265VG_LIB_DEPS=""
1266
1267if test "x$enable_openvg" = xyes; then
1268 if test "x$enable_egl" = xno; then
1269 AC_MSG_ERROR([cannot enable OpenVG without EGL])
1270 fi
Marek Olšák58b6a192011-06-14 07:46:59 +02001271 if test "x$with_gallium_drivers" = x; then
Marek Olšák440d71d2011-06-14 05:38:58 +02001272 AC_MSG_ERROR([cannot enable OpenVG without Gallium])
1273 fi
1274
1275 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)'
1276 VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread"
1277 CORE_DIRS="$CORE_DIRS mapi/vgapi"
1278 GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS"
1279 HAVE_ST_VEGA=yes
1280fi
1281
1282dnl
1283dnl D3D1X configuration
1284dnl
1285
1286if test "x$enable_d3d1x" = xyes; then
Marek Olšák58b6a192011-06-14 07:46:59 +02001287 if test "x$with_gallium_drivers" = x; then
1288 AC_MSG_ERROR([cannot enable D3D1X without Gallium])
1289 fi
1290
Marek Olšák440d71d2011-06-14 05:38:58 +02001291 GALLIUM_STATE_TRACKERS_DIRS="d3d1x $GALLIUM_STATE_TRACKERS_DIRS"
1292 HAVE_ST_D3D1X=yes
1293fi
1294
1295dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -07001296dnl GLU configuration
1297dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001298AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001299 [AS_HELP_STRING([--disable-glu],
1300 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001301 [enable_glu="$enableval"],
1302 [enable_glu=yes])
Chia-I Wube5f34a2010-10-27 16:14:27 +08001303
1304if test "x$enable_glu" = xyes -a "x$mesa_driver" = xno; then
1305 AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver])
1306 enable_glu=no
1307fi
1308
Dan Nicholsondca1b792007-10-23 09:25:58 -07001309if test "x$enable_glu" = xyes; then
1310 SRC_DIRS="$SRC_DIRS glu"
1311
Dan Nicholson979ff512007-12-05 18:47:01 -08001312 case "$mesa_driver" in
1313 osmesa)
Dan Nicholson979ff512007-12-05 18:47:01 -08001314 # Link libGLU to libOSMesa instead of libGL
1315 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -08001316 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -08001317 if test "$enable_static" = no; then
1318 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
1319 else
1320 GLU_MESA_DEPS=""
1321 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001322 ;;
1323 *)
Dan Nicholson88586332007-11-15 08:59:57 -08001324 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -08001325 GLU_PC_REQ="gl"
1326 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -08001327 if test "$enable_static" = no; then
1328 GLU_LIB_DEPS="-lm"
1329 GLU_MESA_DEPS='-l$(GL_LIB)'
1330 else
1331 GLU_LIB_DEPS=""
1332 GLU_MESA_DEPS=""
1333 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
1334 fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001335 ;;
1336 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001337fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001338if test "$enable_static" = no; then
1339 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
1340fi
Dan Nicholson71e208b2008-11-24 11:01:57 -08001341GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -07001342AC_SUBST([GLU_LIB_DEPS])
1343AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001344AC_SUBST([GLU_PC_REQ])
1345AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001346AC_SUBST([GLU_PC_LIB_PRIV])
1347AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001348
1349dnl
1350dnl GLw configuration
1351dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -07001352AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001353 [AS_HELP_STRING([--disable-glw],
1354 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001355 [enable_glw="$enableval"],
1356 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -08001357dnl Don't build GLw on osmesa
Chia-I Wube5f34a2010-10-27 16:14:27 +08001358if test "x$enable_glw" = xyes; then
1359 case "$mesa_driver" in
1360 osmesa|no)
1361 AC_MSG_NOTICE([Disabling GLw since there is no OpenGL driver])
1362 enable_glw=no
1363 ;;
1364 esac
Dan Nicholson979ff512007-12-05 18:47:01 -08001365fi
Dan Nicholson776c60d2008-07-18 07:40:41 -07001366AC_ARG_ENABLE([motif],
1367 [AS_HELP_STRING([--enable-motif],
1368 [use Motif widgets in GLw @<:@default=disabled@:>@])],
1369 [enable_motif="$enableval"],
1370 [enable_motif=no])
1371
Dan Nicholsondca1b792007-10-23 09:25:58 -07001372if test "x$enable_glw" = xyes; then
1373 SRC_DIRS="$SRC_DIRS glw"
1374 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001375 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001376 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001377 GLW_LIB_DEPS="$GLW_LIBS"
1378 else
1379 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -07001380 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001381 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
1382 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001383 fi
1384
1385 GLW_SOURCES="GLwDrawA.c"
1386 MOTIF_CFLAGS=
1387 if test "x$enable_motif" = xyes; then
1388 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
1389 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
1390 if test "x$MOTIF_CONFIG" != xno; then
1391 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
1392 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
1393 else
1394 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
1395 [AC_MSG_ERROR([Can't locate Motif headers])])
1396 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1397 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1398 fi
1399 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1400 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001401 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1402 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001403 fi
1404
Dan Nicholson88586332007-11-15 08:59:57 -08001405 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001406 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001407 if test "$enable_static" = no; then
1408 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001409 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001410 else
1411 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1412 GLW_LIB_DEPS=""
1413 GLW_MESA_DEPS=""
1414 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001415fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001416AC_SUBST([GLW_LIB_DEPS])
1417AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001418AC_SUBST([GLW_SOURCES])
1419AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001420AC_SUBST([GLW_PC_REQ_PRIV])
1421AC_SUBST([GLW_PC_LIB_PRIV])
1422AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001423
1424dnl
1425dnl GLUT configuration
1426dnl
1427if test -f "$srcdir/include/GL/glut.h"; then
1428 default_glut=yes
1429else
1430 default_glut=no
1431fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001432AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001433 [AS_HELP_STRING([--disable-glut],
1434 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001435 [enable_glut="$enableval"],
1436 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001437
Chia-I Wube5f34a2010-10-27 16:14:27 +08001438dnl Don't build glut on osmesa
1439if test "x$enable_glut" = xyes; then
1440 case "$mesa_driver" in
1441 osmesa|no)
1442 AC_MSG_NOTICE([Disabling glut since there is no OpenGL driver])
1443 enable_glut=no
1444 ;;
1445 esac
1446fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001447dnl Can't build glut if GLU not available
1448if test "x$enable_glu$enable_glut" = xnoyes; then
1449 AC_MSG_WARN([Disabling glut since GLU is disabled])
1450 enable_glut=no
1451fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001452
Dan Nicholsondca1b792007-10-23 09:25:58 -07001453if test "x$enable_glut" = xyes; then
1454 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001455 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001456 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001457 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001458 GLUT_LIB_DEPS="$GLUT_LIBS"
1459 else
1460 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001461 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001462 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1463 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001464 fi
John Hein96172542010-07-01 12:53:28 -07001465 if test "x$GCC" = xyes; then
1466 GLUT_CFLAGS="$GLUT_CFLAGS -fexceptions"
1467 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001468 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1469 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001470
Dan Nicholson88586332007-11-15 08:59:57 -08001471 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1472 if test "$enable_static" = no; then
1473 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1474 else
1475 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1476 GLUT_LIB_DEPS=""
1477 GLUT_MESA_DEPS=""
1478 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001479fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001480AC_SUBST([GLUT_LIB_DEPS])
1481AC_SUBST([GLUT_MESA_DEPS])
1482AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001483AC_SUBST([GLUT_PC_REQ_PRIV])
1484AC_SUBST([GLUT_PC_LIB_PRIV])
1485AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001486
1487dnl
1488dnl Program library dependencies
1489dnl Only libm is added here if necessary as the libraries should
1490dnl be pulled in by the linker
1491dnl
1492if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001493 case "$host_os" in
1494 solaris*)
1495 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1496 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001497 cygwin*)
1498 APP_LIB_DEPS="-lX11"
1499 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001500 *)
1501 APP_LIB_DEPS="-lm"
1502 ;;
1503 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001504fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001505AC_SUBST([APP_LIB_DEPS])
1506AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001507
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001508dnl
1509dnl Gallium configuration
1510dnl
Marek Olšák58b6a192011-06-14 07:46:59 +02001511if test "x$with_gallium_drivers" != x; then
Jakob Bornecrantzbe38b322010-03-23 13:23:26 +00001512 SRC_DIRS="$SRC_DIRS gallium gallium/winsys gallium/targets"
Dave Airlie81fe1982010-04-22 14:59:29 +10001513 AC_PATH_PROG([LLVM_CONFIG], [llvm-config], [no])
Cyril Brulebois9ba29072011-06-15 15:50:02 +02001514else
1515 LLVM_CONFIG=no
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001516fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001517
Dave Airlie81fe1982010-04-22 14:59:29 +10001518AC_SUBST([LLVM_CFLAGS])
1519AC_SUBST([LLVM_LIBS])
1520AC_SUBST([LLVM_LDFLAGS])
1521AC_SUBST([LLVM_VERSION])
1522
Chia-I Wudbacbb82010-11-02 02:00:36 +08001523
Chia-I Wube5f34a2010-10-27 16:14:27 +08001524
1525case "x$enable_opengl$enable_gles1$enable_gles2" in
1526x*yes*)
1527 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1528 ;;
1529esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001530
Chia-I Wu874ccd52010-05-04 22:43:05 +08001531AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001532AC_SUBST([EGL_CLIENT_APIS])
1533
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001534AC_ARG_WITH([egl-platforms],
1535 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1536 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001537 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001538 [with_egl_platforms="$withval"],
1539 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001540AC_ARG_WITH([egl-displays],
1541 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001542 [DEPRECATED. Use --with-egl-platforms instead])],
1543 [with_egl_platforms="$withval"])
Chia-I Wu49381d62010-01-11 01:23:01 +08001544
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001545EGL_PLATFORMS=""
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001546WAYLAND_EGL_LIB_DEPS=""
1547
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001548case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001549yes)
1550 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001551 EGL_PLATFORMS="x11"
Chia-I Wu2a910b32010-09-19 17:31:34 +08001552 if test "$mesa_driver" = dri; then
1553 EGL_PLATFORMS="$EGL_PLATFORMS drm"
1554 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001555 fi
1556 ;;
1557*)
1558 if test "x$enable_egl" != xyes; then
1559 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1560 fi
1561 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001562 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1563 for plat in $egl_platforms; do
1564 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
Kristian Høgsberg1a8899d2011-02-10 10:45:06 -05001565 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001566 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001567 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1568 fi
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001569 if test "$plat" = "wayland"; then
Benjamin Franzke6b369c42011-02-21 16:22:34 +01001570 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001571 [AC_MSG_ERROR([cannot find libwayland-client])])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001572 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
Benjamin Franzkeaaa3c0d2011-04-23 14:14:29 +02001573 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001574 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001575 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001576 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001577 ;;
1578esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001579AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001580
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001581AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1582WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1583WAYLAND_EGL_PC_LIB_PRIV=
1584WAYLAND_EGL_PC_CFLAGS=
1585
1586AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1587AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1588AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1589
1590
Chia-I Wu28c3e572010-01-23 20:18:43 +08001591AC_ARG_WITH([egl-driver-dir],
1592 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1593 [directory for EGL drivers [[default=${libdir}/egl]]])],
1594 [EGL_DRIVER_INSTALL_DIR="$withval"],
1595 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1596AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1597
Joel Bosveld8acca482009-03-06 08:46:08 +09001598AC_ARG_WITH([xorg-driver-dir],
1599 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1600 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1601 [XORG_DRIVER_INSTALL_DIR="$withval"],
1602 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1603AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1604
Tom Fogal7085dce2009-08-13 19:40:30 -06001605AC_ARG_WITH([max-width],
1606 [AS_HELP_STRING([--with-max-width=N],
1607 [Maximum framebuffer width (4096)])],
1608 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1609 AS_IF([test "${withval}" -gt "4096"],
1610 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1611)
1612AC_ARG_WITH([max-height],
1613 [AS_HELP_STRING([--with-max-height=N],
1614 [Maximum framebuffer height (4096)])],
1615 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1616 AS_IF([test "${withval}" -gt "4096"],
1617 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1618)
1619
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001620dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001621dnl Gallium LLVM
1622dnl
1623AC_ARG_ENABLE([gallium-llvm],
1624 [AS_HELP_STRING([--enable-gallium-llvm],
Marek Olšáka86fc712011-04-21 13:27:55 +02001625 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
Dave Airlie81fe1982010-04-22 14:59:29 +10001626 [enable_gallium_llvm="$enableval"],
1627 [enable_gallium_llvm=auto])
Marek Olšák58b6a192011-06-14 07:46:59 +02001628if test "x$with_gallium_drivers" = x; then
1629 enable_gallium_llvm=no
1630fi
Marek Olšáka86fc712011-04-21 13:27:55 +02001631if test "x$enable_gallium_llvm" = xauto; then
1632 case "$host_cpu" in
1633 i*86|x86_64) enable_gallium_llvm=yes;;
1634 esac
1635fi
Dave Airlie81fe1982010-04-22 14:59:29 +10001636if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001637 if test "x$LLVM_CONFIG" != xno; then
1638 LLVM_VERSION=`$LLVM_CONFIG --version`
Brian Paul7da704e2010-12-08 06:44:42 -07001639 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
José Fonseca202c3452011-03-14 19:58:22 +00001640 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001641
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001642 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1643 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
Chia-I Wu3ecb8c22010-05-11 12:36:49 +08001644 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001645 MESA_LLVM=1
1646 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001647 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001648 fi
1649else
1650 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001651fi
1652
1653dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001654dnl Gallium helper functions
1655dnl
1656gallium_check_st() {
Chia-I Wud8e0e112010-06-29 14:04:27 +08001657 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001658 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1659 fi
1660 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1661 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1662 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001663 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001664 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1665 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001666}
1667
Marek Olšákc17fb852011-06-14 04:03:17 +02001668gallium_require_llvm() {
1669 if test "x$MESA_LLVM" = x0; then
1670 case "$host_cpu" in
1671 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1672 esac
1673 fi
1674}
1675
Marek Olšák58b6a192011-06-14 07:46:59 +02001676dnl Gallium drivers
1677if test "x$with_gallium_drivers" != x; then
1678 # This is for compile-testing
1679 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001680 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001681
Marek Olšák58b6a192011-06-14 07:46:59 +02001682 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1683 for driver in $gallium_drivers; do
1684 case "x$driver" in
1685 xsvga)
1686 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1687 ;;
1688 xi915)
1689 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1690 ;;
1691 xi965)
1692 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1693 ;;
1694 xr300)
1695 gallium_require_llvm "Gallium R300"
1696 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1697 ;;
1698 xr600)
1699 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1700 gallium_check_st "r600/drm" "dri-r600"
1701 ;;
1702 xnouveau)
1703 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1704 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1705 ;;
1706 xswrast)
1707 if test "x$HAVE_ST_DRI" = xyes; then
1708 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1709 fi
1710 ;;
1711 *)
1712 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1713 ;;
1714 esac
1715 done
Chia-I Wua1306f42010-01-22 15:51:51 +08001716fi
1717
Chia-I Wu99a37ed2010-01-05 17:39:05 +08001718dnl prepend CORE_DIRS to SRC_DIRS
1719SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001720
Dan Nicholsondca1b792007-10-23 09:25:58 -07001721dnl Restore LDFLAGS and CPPFLAGS
1722LDFLAGS="$_SAVE_LDFLAGS"
1723CPPFLAGS="$_SAVE_CPPFLAGS"
1724
1725dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001726AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001727
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001728dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001729AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001730if test -f configs/current || test -L configs/current; then
1731 rm -f configs/current
1732fi
1733ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001734])
1735
1736AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001737
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001738dnl
1739dnl Output some configuration info for the user
1740dnl
1741echo ""
1742echo " prefix: $prefix"
1743echo " exec_prefix: $exec_prefix"
1744echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001745echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001746
Chia-I Wu815faa42010-10-29 12:34:44 +08001747dnl API info
1748echo ""
1749echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08001750echo " OpenVG: $enable_openvg"
1751
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001752dnl Driver info
1753echo ""
1754echo " Driver: $mesa_driver"
Chia-I Wu815faa42010-10-29 12:34:44 +08001755if test "$mesa_driver" != no; then
1756 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1757 echo " OSMesa: lib$OSMESA_LIB"
1758 else
1759 echo " OSMesa: no"
1760 fi
1761 if test "$mesa_driver" = dri; then
1762 # cleanup the drivers var
1763 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1764 if test "x$DRI_DIRS" = x; then
1765 echo " DRI drivers: no"
1766 else
1767 echo " DRI drivers: $dri_dirs"
1768 fi
1769 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1770 echo " Use XCB: $enable_xcb"
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001771 echo " Shared dricore: $enable_dricore"
Chia-I Wu815faa42010-10-29 12:34:44 +08001772 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001773fi
Chia-I Wu815faa42010-10-29 12:34:44 +08001774echo ""
1775echo " GLU: $enable_glu"
1776echo " GLw: $enable_glw (Motif: $enable_motif)"
1777echo " glut: $enable_glut"
1778
1779dnl EGL
1780echo ""
1781echo " EGL: $enable_egl"
1782if test "$enable_egl" = yes; then
1783 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08001784
1785 egl_drivers=""
1786 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08001787 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08001788 done
1789
Chia-I Wu815faa42010-10-29 12:34:44 +08001790 if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
Chia-I Wu12300502010-10-31 21:01:54 +08001791 echo " EGL drivers: ${egl_drivers} egl_gallium"
1792 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08001793 else
Chia-I Wu12300502010-10-31 21:01:54 +08001794 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08001795 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001796fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001797
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001798echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07001799if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01001800 echo " llvm: yes"
1801 echo " llvm-config: $LLVM_CONFIG"
1802 echo " llvm-version: $LLVM_VERSION"
1803else
1804 echo " llvm: no"
1805fi
1806
1807echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001808if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1809 echo " Gallium: yes"
1810 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00001811 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001812 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001813 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001814 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1815else
1816 echo " Gallium: no"
1817fi
1818
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001819dnl Libraries
1820echo ""
1821echo " Shared libs: $enable_shared"
1822echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001823
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001824dnl Compiler options
1825# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1826cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1827 $SED 's/^ *//;s/ */ /;s/ *$//'`
1828cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1829 $SED 's/^ *//;s/ */ /;s/ *$//'`
1830defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1831echo ""
1832echo " CFLAGS: $cflags"
1833echo " CXXFLAGS: $cxxflags"
1834echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07001835echo ""
1836echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001837
Dan Nicholsondca1b792007-10-23 09:25:58 -07001838echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001839echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001840echo ""