blob: 804b8a7e33c6c00d15edd847f63864e355d4a4c6 [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
553GALLIUM_DRIVERS_DEFAULT="r300,swrast"
554
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"
559 @<:@default=r300,swrast@:>@])],
560 [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])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001514fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001515
Dave Airlie81fe1982010-04-22 14:59:29 +10001516AC_SUBST([LLVM_CFLAGS])
1517AC_SUBST([LLVM_LIBS])
1518AC_SUBST([LLVM_LDFLAGS])
1519AC_SUBST([LLVM_VERSION])
1520
Chia-I Wudbacbb82010-11-02 02:00:36 +08001521
Chia-I Wube5f34a2010-10-27 16:14:27 +08001522
1523case "x$enable_opengl$enable_gles1$enable_gles2" in
1524x*yes*)
1525 EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1526 ;;
1527esac
Chia-I Wube5f34a2010-10-27 16:14:27 +08001528
Chia-I Wu874ccd52010-05-04 22:43:05 +08001529AC_SUBST([VG_LIB_DEPS])
Chia-I Wu63ab2502010-05-05 15:38:02 +08001530AC_SUBST([EGL_CLIENT_APIS])
1531
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001532AC_ARG_WITH([egl-platforms],
1533 [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1534 [comma delimited native platforms libEGL supports, e.g.
Chia-I Wue7424d72010-09-19 16:54:39 +08001535 "x11,drm" @<:@default=auto@:>@])],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001536 [with_egl_platforms="$withval"],
1537 [with_egl_platforms=yes])
Chia-I Wu49381d62010-01-11 01:23:01 +08001538AC_ARG_WITH([egl-displays],
1539 [AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@],
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001540 [DEPRECATED. Use --with-egl-platforms instead])],
1541 [with_egl_platforms="$withval"])
Chia-I Wu49381d62010-01-11 01:23:01 +08001542
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001543EGL_PLATFORMS=""
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001544WAYLAND_EGL_LIB_DEPS=""
1545
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001546case "$with_egl_platforms" in
Chia-I Wu49381d62010-01-11 01:23:01 +08001547yes)
1548 if test "x$enable_egl" = xyes && test "x$mesa_driver" != xosmesa; then
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001549 EGL_PLATFORMS="x11"
Chia-I Wu2a910b32010-09-19 17:31:34 +08001550 if test "$mesa_driver" = dri; then
1551 EGL_PLATFORMS="$EGL_PLATFORMS drm"
1552 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001553 fi
1554 ;;
1555*)
1556 if test "x$enable_egl" != xyes; then
1557 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1558 fi
1559 # verify the requested driver directories exist
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001560 egl_platforms=`IFS=', '; echo $with_egl_platforms`
1561 for plat in $egl_platforms; do
1562 test -d "$srcdir/src/gallium/state_trackers/egl/$plat" || \
Kristian Høgsberg1a8899d2011-02-10 10:45:06 -05001563 AC_MSG_ERROR([EGL platform '$plat' doesn't exist])
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001564 if test "$plat" = "fbdev"; then
Chia-I Wu8f3e48e2010-06-17 14:10:53 +08001565 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/fbdev"
1566 fi
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001567 if test "$plat" = "wayland"; then
Benjamin Franzke6b369c42011-02-21 16:22:34 +01001568 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001569 [AC_MSG_ERROR([cannot find libwayland-client])])
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001570 WAYLAND_EGL_LIB_DEPS="$WAYLAND_LIBS $LIBDRM_LIBS"
Benjamin Franzkeaaa3c0d2011-04-23 14:14:29 +02001571 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland"
Benjamin Franzkee586c4b2011-02-04 12:22:58 +01001572 fi
Chia-I Wu49381d62010-01-11 01:23:01 +08001573 done
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001574 EGL_PLATFORMS="$egl_platforms"
Chia-I Wu49381d62010-01-11 01:23:01 +08001575 ;;
1576esac
Chia-I Wuda39d5d2010-06-17 16:07:46 +08001577AC_SUBST([EGL_PLATFORMS])
Chia-I Wu49381d62010-01-11 01:23:01 +08001578
Benjamin Franzke214fc6e2011-02-04 12:24:08 +01001579AC_SUBST([WAYLAND_EGL_LIB_DEPS])
1580WAYLAND_EGL_PC_REQ_PRIV="wayland-client libdrm"
1581WAYLAND_EGL_PC_LIB_PRIV=
1582WAYLAND_EGL_PC_CFLAGS=
1583
1584AC_SUBST([WAYLAND_EGL_PC_REQ_PRIV])
1585AC_SUBST([WAYLAND_EGL_PC_LIB_PRIV])
1586AC_SUBST([WAYLAND_EGL_PC_CFLAGS])
1587
1588
Chia-I Wu28c3e572010-01-23 20:18:43 +08001589AC_ARG_WITH([egl-driver-dir],
1590 [AS_HELP_STRING([--with-egl-driver-dir=DIR],
1591 [directory for EGL drivers [[default=${libdir}/egl]]])],
1592 [EGL_DRIVER_INSTALL_DIR="$withval"],
1593 [EGL_DRIVER_INSTALL_DIR='${libdir}/egl'])
1594AC_SUBST([EGL_DRIVER_INSTALL_DIR])
1595
Joel Bosveld8acca482009-03-06 08:46:08 +09001596AC_ARG_WITH([xorg-driver-dir],
1597 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1598 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1599 [XORG_DRIVER_INSTALL_DIR="$withval"],
1600 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1601AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1602
Tom Fogal7085dce2009-08-13 19:40:30 -06001603AC_ARG_WITH([max-width],
1604 [AS_HELP_STRING([--with-max-width=N],
1605 [Maximum framebuffer width (4096)])],
1606 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1607 AS_IF([test "${withval}" -gt "4096"],
1608 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1609)
1610AC_ARG_WITH([max-height],
1611 [AS_HELP_STRING([--with-max-height=N],
1612 [Maximum framebuffer height (4096)])],
1613 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1614 AS_IF([test "${withval}" -gt "4096"],
1615 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1616)
1617
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001618dnl
Dave Airlie81fe1982010-04-22 14:59:29 +10001619dnl Gallium LLVM
1620dnl
1621AC_ARG_ENABLE([gallium-llvm],
1622 [AS_HELP_STRING([--enable-gallium-llvm],
Marek Olšáka86fc712011-04-21 13:27:55 +02001623 [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
Dave Airlie81fe1982010-04-22 14:59:29 +10001624 [enable_gallium_llvm="$enableval"],
1625 [enable_gallium_llvm=auto])
Marek Olšák58b6a192011-06-14 07:46:59 +02001626if test "x$with_gallium_drivers" = x; then
1627 enable_gallium_llvm=no
1628fi
Marek Olšáka86fc712011-04-21 13:27:55 +02001629if test "x$enable_gallium_llvm" = xauto; then
1630 case "$host_cpu" in
1631 i*86|x86_64) enable_gallium_llvm=yes;;
1632 esac
1633fi
Dave Airlie81fe1982010-04-22 14:59:29 +10001634if test "x$enable_gallium_llvm" = xyes; then
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001635 if test "x$LLVM_CONFIG" != xno; then
1636 LLVM_VERSION=`$LLVM_CONFIG --version`
Brian Paul7da704e2010-12-08 06:44:42 -07001637 LLVM_CFLAGS=`$LLVM_CONFIG --cppflags`
José Fonseca202c3452011-03-14 19:58:22 +00001638 LLVM_LIBS="`$LLVM_CONFIG --libs` -lstdc++"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001639
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001640 LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1641 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe"
Chia-I Wu3ecb8c22010-05-11 12:36:49 +08001642 DEFINES="$DEFINES -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS"
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001643 MESA_LLVM=1
1644 else
Dave Airlie81fe1982010-04-22 14:59:29 +10001645 MESA_LLVM=0
Dave Airlie22e8ddc2010-04-25 07:48:48 +10001646 fi
1647else
1648 MESA_LLVM=0
Dave Airlie81fe1982010-04-22 14:59:29 +10001649fi
1650
1651dnl
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001652dnl Gallium helper functions
1653dnl
1654gallium_check_st() {
Chia-I Wud8e0e112010-06-29 14:04:27 +08001655 if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001656 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS $1"
1657 fi
1658 if test "x$HAVE_ST_DRI" = xyes && test "x$2" != x; then
1659 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $2"
1660 fi
Chia-I Wud8e0e112010-06-29 14:04:27 +08001661 if test "x$HAVE_ST_XORG" = xyes && test "x$3" != x; then
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001662 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $3"
1663 fi
Jakob Bornecrantza82e37b2010-03-25 22:21:39 +01001664}
1665
Marek Olšákc17fb852011-06-14 04:03:17 +02001666gallium_require_llvm() {
1667 if test "x$MESA_LLVM" = x0; then
1668 case "$host_cpu" in
1669 i*86|x86_64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
1670 esac
1671 fi
1672}
1673
Marek Olšák58b6a192011-06-14 07:46:59 +02001674dnl Gallium drivers
1675if test "x$with_gallium_drivers" != x; then
1676 # This is for compile-testing
1677 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 i965 r300 svga"
Jakob Bornecrantz44bafca2010-04-17 15:17:33 +01001678 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS i915/sw"
Jakob Bornecrantz7dce4f32010-06-11 13:00:16 +02001679
Marek Olšák58b6a192011-06-14 07:46:59 +02001680 gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
1681 for driver in $gallium_drivers; do
1682 case "x$driver" in
1683 xsvga)
1684 gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx"
1685 ;;
1686 xi915)
1687 gallium_check_st "i915/drm" "dri-i915" "xorg-i915"
1688 ;;
1689 xi965)
1690 gallium_check_st "i965/drm" "dri-i965" "xorg-i965"
1691 ;;
1692 xr300)
1693 gallium_require_llvm "Gallium R300"
1694 gallium_check_st "radeon/drm" "dri-r300" "xorg-r300"
1695 ;;
1696 xr600)
1697 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600"
1698 gallium_check_st "r600/drm" "dri-r600"
1699 ;;
1700 xnouveau)
1701 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nvfx nv50 nvc0"
1702 gallium_check_st "nouveau/drm" "dri-nouveau" "xorg-nouveau"
1703 ;;
1704 xswrast)
1705 if test "x$HAVE_ST_DRI" = xyes; then
1706 GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS dri-swrast"
1707 fi
1708 ;;
1709 *)
1710 AC_MSG_ERROR([Unknown Gallium driver: $driver])
1711 ;;
1712 esac
1713 done
Chia-I Wua1306f42010-01-22 15:51:51 +08001714fi
1715
Chia-I Wu99a37ed2010-01-05 17:39:05 +08001716dnl prepend CORE_DIRS to SRC_DIRS
1717SRC_DIRS="$CORE_DIRS $SRC_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001718
Dan Nicholsondca1b792007-10-23 09:25:58 -07001719dnl Restore LDFLAGS and CPPFLAGS
1720LDFLAGS="$_SAVE_LDFLAGS"
1721CPPFLAGS="$_SAVE_CPPFLAGS"
1722
1723dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001724AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001725
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001726dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001727AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001728if test -f configs/current || test -L configs/current; then
1729 rm -f configs/current
1730fi
1731ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001732])
1733
1734AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001735
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001736dnl
1737dnl Output some configuration info for the user
1738dnl
1739echo ""
1740echo " prefix: $prefix"
1741echo " exec_prefix: $exec_prefix"
1742echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001743echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001744
Chia-I Wu815faa42010-10-29 12:34:44 +08001745dnl API info
1746echo ""
1747echo " OpenGL: $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
Chia-I Wu815faa42010-10-29 12:34:44 +08001748echo " OpenVG: $enable_openvg"
1749
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001750dnl Driver info
1751echo ""
1752echo " Driver: $mesa_driver"
Chia-I Wu815faa42010-10-29 12:34:44 +08001753if test "$mesa_driver" != no; then
1754 if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1755 echo " OSMesa: lib$OSMESA_LIB"
1756 else
1757 echo " OSMesa: no"
1758 fi
1759 if test "$mesa_driver" = dri; then
1760 # cleanup the drivers var
1761 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1762 if test "x$DRI_DIRS" = x; then
1763 echo " DRI drivers: no"
1764 else
1765 echo " DRI drivers: $dri_dirs"
1766 fi
1767 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
1768 echo " Use XCB: $enable_xcb"
Christopher James Halse Rogersd1e28b22011-02-03 11:19:32 +11001769 echo " Shared dricore: $enable_dricore"
Chia-I Wu815faa42010-10-29 12:34:44 +08001770 fi
Dan Nicholson544ab202007-12-30 08:41:53 -08001771fi
Chia-I Wu815faa42010-10-29 12:34:44 +08001772echo ""
1773echo " GLU: $enable_glu"
1774echo " GLw: $enable_glw (Motif: $enable_motif)"
1775echo " glut: $enable_glut"
1776
1777dnl EGL
1778echo ""
1779echo " EGL: $enable_egl"
1780if test "$enable_egl" = yes; then
1781 echo " EGL platforms: $EGL_PLATFORMS"
Chia-I Wu12300502010-10-31 21:01:54 +08001782
1783 egl_drivers=""
1784 for d in $EGL_DRIVERS_DIRS; do
Chia-I Wuc98ea262011-01-07 16:30:08 +08001785 egl_drivers="$egl_drivers builtin:egl_$d"
Chia-I Wu12300502010-10-31 21:01:54 +08001786 done
1787
Chia-I Wu815faa42010-10-29 12:34:44 +08001788 if test "$enable_gallium" = yes -a "$HAVE_ST_EGL" = yes; then
Chia-I Wu12300502010-10-31 21:01:54 +08001789 echo " EGL drivers: ${egl_drivers} egl_gallium"
1790 echo " EGL Gallium STs:$EGL_CLIENT_APIS"
Chia-I Wu815faa42010-10-29 12:34:44 +08001791 else
Chia-I Wu12300502010-10-31 21:01:54 +08001792 echo " EGL drivers: $egl_drivers"
Chia-I Wu815faa42010-10-29 12:34:44 +08001793 fi
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001794fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001795
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001796echo ""
Eric Anholt1a8b1272010-05-21 12:17:24 -07001797if test "x$MESA_LLVM" = x1; then
Jakob Bornecrantzfe0fe672010-04-28 13:38:58 +01001798 echo " llvm: yes"
1799 echo " llvm-config: $LLVM_CONFIG"
1800 echo " llvm-version: $LLVM_VERSION"
1801else
1802 echo " llvm: no"
1803fi
1804
1805echo ""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001806if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1807 echo " Gallium: yes"
1808 echo " Gallium dirs: $GALLIUM_DIRS"
Keith Whitwell51bff092010-03-11 14:43:00 +00001809 echo " Target dirs: $GALLIUM_TARGET_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001810 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001811 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001812 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1813else
1814 echo " Gallium: no"
1815fi
1816
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001817dnl Libraries
1818echo ""
1819echo " Shared libs: $enable_shared"
1820echo " Static libs: $enable_static"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001821
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001822dnl Compiler options
1823# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1824cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1825 $SED 's/^ *//;s/ */ /;s/ *$//'`
1826cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1827 $SED 's/^ *//;s/ */ /;s/ *$//'`
1828defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1829echo ""
1830echo " CFLAGS: $cflags"
1831echo " CXXFLAGS: $cxxflags"
1832echo " Macros: $defines"
Kenneth Graunke3acc8262010-10-25 13:52:58 -07001833echo ""
1834echo " PYTHON2: $PYTHON2"
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001835
Dan Nicholsondca1b792007-10-23 09:25:58 -07001836echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001837echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001838echo ""