blob: fe54dd5753b5123ccf02b39e9548a7cb601211db [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],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
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
Brian44557bf2009-01-10 16:32:32 -070021LIBDRM_REQUIRED=2.4.3
Kristian Høgsberg154a9e52008-12-01 21:44:03 -050022DRI2PROTO_REQUIRED=1.99.3
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070023
Dan Nicholsondca1b792007-10-23 09:25:58 -070024dnl Check for progs
25AC_PROG_CPP
26AC_PROG_CC
27AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070028AC_CHECK_PROGS([MAKE], [gmake make])
29AC_PATH_PROG([MKDEP], [makedepend])
30AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080031
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070032dnl We need a POSIX shell for parts of the build. Assume we have one
33dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070034case "$host_os" in
35solaris*)
36 # Solaris /bin/sh is too old/non-POSIX compliant
37 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070038 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070039 ;;
40esac
41
Dan Nicholsondb7fc632008-03-07 11:48:09 -080042MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050043dnl Ask gcc where it's keeping its secret headers
44if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080045 for dir in include include-fixed; do
46 GCC_INCLUDES=`$CC -print-file-name=$dir`
47 if test "x$GCC_INCLUDES" != x && \
48 test "$GCC_INCLUDES" != "$dir" && \
49 test -d "$GCC_INCLUDES"; then
50 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
51 fi
52 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050053fi
Dan Nicholson297e16c2008-05-05 15:42:53 -070054AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050055
Dan Nicholson41b00702007-12-12 08:48:30 -080056dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -070057m4_ifndef([PKG_PROG_PKG_CONFIG],
58 [m4_fatal([Could not locate the pkg-config autoconf macros.
59 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
60 are in a different location, try setting the environment variable
61 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070062PKG_PROG_PKG_CONFIG()
63
64dnl LIB_DIR - library basename
65LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -070066AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -070067
68dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
69_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070070AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
71AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -070072
73dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
74_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070075AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
76AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070077
78dnl Compiler macros
79DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -070080AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070081case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -070082linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -080083 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -070084 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070085solaris*)
86 DEFINES="$DEFINES -DPTHREADS -DSVR4"
87 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -070088esac
89
90dnl Add flags for gcc and g++
91if test "x$GCC" = xyes; then
92 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
Dan Nicholson0c275b62008-01-15 22:52:25 -080093
94 # Work around aliasing bugs - developers should comment this out
95 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -070096fi
97if test "x$GXX" = xyes; then
98 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -080099
100 # Work around aliasing bugs - developers should comment this out
101 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700102fi
103
104dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700105AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700106 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700107AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700108 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700109AC_SUBST([OPT_FLAGS])
110AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700111
112dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600113dnl Hacks to enable 32 or 64 bit build
114dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700115AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600116 [AS_HELP_STRING([--enable-32-bit],
117 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700118 [enable_32bit="$enableval"],
119 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600120)
121if test "x$enable_32bit" = xyes; then
122 if test "x$GCC" = xyes; then
123 CFLAGS="$CFLAGS -m32"
Marc Dietricha48ee522009-08-31 08:56:33 -0700124 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600125 fi
126 if test "x$GXX" = xyes; then
127 CXXFLAGS="$CXXFLAGS -m32"
128 fi
129fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700130AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600131 [AS_HELP_STRING([--enable-64-bit],
132 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700133 [enable_64bit="$enableval"],
134 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600135)
136if test "x$enable_64bit" = xyes; then
137 if test "x$GCC" = xyes; then
138 CFLAGS="$CFLAGS -m64"
139 fi
140 if test "x$GXX" = xyes; then
141 CXXFLAGS="$CXXFLAGS -m64"
142 fi
143fi
144
145dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800146dnl shared/static libraries, mimic libtool options
147dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700148AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800149 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800150 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700151 [enable_static="$enableval"],
152 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800153)
154case "x$enable_static" in
155xyes|xno ) ;;
156x ) enable_static=no ;;
157* )
158 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
159 ;;
160esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700161AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800162 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800163 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700164 [enable_shared="$enableval"],
165 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800166)
167case "x$enable_shared" in
168xyes|xno ) ;;
169x ) enable_shared=yes ;;
170* )
171 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
172 ;;
173esac
174
175dnl Can't have static and shared libraries, default to static if user
176dnl explicitly requested. If both disabled, set to static since shared
177dnl was explicitly requirested.
178case "x$enable_static$enable_shared" in
179xyesyes )
180 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
181 enable_shared=no
182 ;;
183xnono )
184 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
185 enable_static=yes
186 ;;
187esac
188
189dnl
190dnl mklib options
191dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700192AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800193if test "$enable_static" = yes; then
194 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
195fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700196AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800197
Dan Nicholson23656c42007-12-12 09:02:31 -0800198dnl
199dnl other compiler options
200dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700201AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800202 [AS_HELP_STRING([--enable-debug],
203 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700204 [enable_debug="$enableval"],
205 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800206)
207if test "x$enable_debug" = xyes; then
208 DEFINES="$DEFINES -DDEBUG"
209 if test "x$GCC" = xyes; then
210 CFLAGS="$CFLAGS -g"
211 fi
212 if test "x$GXX" = xyes; then
213 CXXFLAGS="$CXXFLAGS -g"
214 fi
215fi
Dan Nicholson88586332007-11-15 08:59:57 -0800216
217dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700218dnl library names
219dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800220if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800221 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800222else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700223 case "$host_os" in
224 darwin* )
225 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100226 cygwin* )
227 LIB_EXTENSION='dll' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700228 * )
229 LIB_EXTENSION='so' ;;
230 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800231fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800232
233GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
234GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
235GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
236GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
237OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
238
239GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
240GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
241GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
242GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
243OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
244
Dan Nicholson297e16c2008-05-05 15:42:53 -0700245AC_SUBST([GL_LIB_NAME])
246AC_SUBST([GLU_LIB_NAME])
247AC_SUBST([GLUT_LIB_NAME])
248AC_SUBST([GLW_LIB_NAME])
249AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700250
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700251AC_SUBST([GL_LIB_GLOB])
252AC_SUBST([GLU_LIB_GLOB])
253AC_SUBST([GLUT_LIB_GLOB])
254AC_SUBST([GLW_LIB_GLOB])
255AC_SUBST([OSMESA_LIB_GLOB])
256
Dan Nicholsondca1b792007-10-23 09:25:58 -0700257dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700258dnl Arch/platform-specific settings
259dnl
260AC_ARG_ENABLE([asm],
261 [AS_HELP_STRING([--disable-asm],
262 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
263 [enable_asm="$enableval"],
264 [enable_asm=yes]
265)
266asm_arch=""
267ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800268MESA_ASM_SOURCES=""
269GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700270AC_MSG_CHECKING([whether to enable assembly])
271test "x$enable_asm" = xno && AC_MSG_RESULT([no])
272# disable if cross compiling on x86/x86_64 since we must run gen_matypes
273if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
274 case "$host_cpu" in
275 i?86 | x86_64)
276 enable_asm=no
277 AC_MSG_RESULT([no, cross compiling])
278 ;;
279 esac
280fi
281# check for supported arches
282if test "x$enable_asm" = xyes; then
283 case "$host_cpu" in
284 i?86)
285 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100286 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700287 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
288 ;;
289 esac
290 ;;
291 x86_64)
292 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100293 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700294 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
295 ;;
296 esac
297 ;;
298 powerpc)
299 case "$host_os" in
300 linux*)
301 asm_arch=ppc
302 ;;
303 esac
304 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800305 sparc*)
306 case "$host_os" in
307 linux*)
308 asm_arch=sparc
309 ;;
310 esac
311 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700312 esac
313
314 case "$asm_arch" in
315 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800316 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800317 MESA_ASM_SOURCES='$(X86_SOURCES)'
318 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700319 AC_MSG_RESULT([yes, x86])
320 ;;
321 x86_64)
322 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800323 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
324 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700325 AC_MSG_RESULT([yes, x86_64])
326 ;;
327 ppc)
328 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800329 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700330 AC_MSG_RESULT([yes, ppc])
331 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800332 sparc)
333 ASM_FLAGS="-DUSE_SPARC_ASM"
334 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
335 GLAPI_ASM_SOURCES='$(SPARC_API)'
336 AC_MSG_RESULT([yes, sparc])
337 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700338 *)
339 AC_MSG_RESULT([no, platform not supported])
340 ;;
341 esac
342fi
343AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800344AC_SUBST([MESA_ASM_SOURCES])
345AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700346
347dnl PIC code macro
348MESA_PIC_FLAGS
349
350dnl Check to see if dlopen is in default libraries (like Solaris, which
351dnl has it in libc), or if libdl is needed to get it.
352AC_CHECK_FUNC([dlopen], [],
353 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
354
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700355dnl See if posix_memalign is available
356AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
357
Dan Nicholson871125a2008-06-04 13:00:35 -0700358dnl SELinux awareness.
359AC_ARG_ENABLE([selinux],
360 [AS_HELP_STRING([--enable-selinux],
361 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
362 [MESA_SELINUX="$enableval"],
363 [MESA_SELINUX=no])
364if test "x$enable_selinux" = "xyes"; then
365 AC_CHECK_HEADER([selinux/selinux.h],[],
366 [AC_MSG_ERROR([SELinux headers not found])])
367 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
368 [AC_MSG_ERROR([SELinux library not found])])
369 SELINUX_LIBS="-lselinux"
370 DEFINES="$DEFINES -DMESA_SELINUX"
371fi
372
Dan Nicholson871125a2008-06-04 13:00:35 -0700373dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800374dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800375dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800376dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700377default_driver="xlib"
378
379case "$host_os" in
380linux*)
381 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700382 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700383 esac
384 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100385*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700386 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500387 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700388 esac
389 ;;
390esac
391
Dan Nicholson297e16c2008-05-05 15:42:53 -0700392AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800393 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700394 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700395 [mesa_driver="$withval"],
396 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800397dnl Check for valid option
398case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800399xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800400 ;;
401*)
402 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
403 ;;
404esac
405
406dnl
407dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700408dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700409SRC_DIRS="mesa glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700410GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800411WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100412GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100413GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100414GALLIUM_WINSYS_DRM_DIRS=""
Michel Dänzer6bd4bc72009-04-21 18:32:42 +0100415GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000416GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100417GALLIUM_STATE_TRACKERS_DIRS=""
418
Dan Nicholson44d99142007-12-05 18:47:01 -0800419case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800420xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800421 DRIVER_DIRS="x11"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100422 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800423 ;;
424dri)
425 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100426 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800427 WINDOW_SYSTEM="dri"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100428 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
Dan Nicholson44d99142007-12-05 18:47:01 -0800429 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800430osmesa)
431 DRIVER_DIRS="osmesa"
432 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800433esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700434AC_SUBST([SRC_DIRS])
435AC_SUBST([GLU_DIRS])
436AC_SUBST([DRIVER_DIRS])
437AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100438AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100439AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100440AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000441AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100442AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100443AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700444
445dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800446dnl User supplied program configuration
447dnl
448if test -d "$srcdir/progs/demos"; then
449 default_demos=yes
450else
451 default_demos=no
452fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700453AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800454 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
455 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800456 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700457 [with_demos="$withval"],
458 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800459if test "x$with_demos" = x; then
460 with_demos=no
461fi
462
463dnl If $with_demos is yes, directories will be added as libs available
464PROGRAM_DIRS=""
465case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700466no) ;;
467yes)
468 # If the driver isn't osmesa, we have libGL and can build xdemos
469 if test "$mesa_driver" != osmesa; then
470 PROGRAM_DIRS="xdemos"
471 fi
472 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800473*)
474 # verify the requested demos directories exist
475 demos=`IFS=,; echo $with_demos`
476 for demo in $demos; do
477 test -d "$srcdir/progs/$demo" || \
478 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
479 done
480 PROGRAM_DIRS="$demos"
481 ;;
482esac
483
484dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700485dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700486dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700487dnl
488if test -n "$PKG_CONFIG"; then
489 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700490 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700491 x11_pkgconfig=yes
492 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700493 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700494 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700495 ])
496 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700497else
498 x11_pkgconfig=no
499fi
500dnl Use the autoconf macro if no pkg-config files
501if test "$x11_pkgconfig" = no; then
502 AC_PATH_XTRA
503fi
504
Dan Nicholson99803a42008-07-01 09:03:15 -0700505dnl Try to tell the user that the --x-* options are only used when
506dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
507m4_divert_once([HELP_BEGIN],
508[These options are only used when the X libraries cannot be found by the
509pkg-config utility.])
510
Dan Nicholson44d99142007-12-05 18:47:01 -0800511dnl We need X for xlib and dri, so bomb now if it's not found
512case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800513xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800514 if test "$no_x" = yes; then
515 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
516 fi
517 ;;
518esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700519
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700520dnl XCB - this is only used for GLX right now
521AC_ARG_ENABLE([xcb],
522 [AS_HELP_STRING([--enable-xcb],
523 [use XCB for GLX @<:@default=disabled@:>@])],
524 [enable_xcb="$enableval"],
525 [enable_xcb=no])
526if test "x$enable_xcb" = xyes; then
527 DEFINES="$DEFINES -DUSE_XCB"
528else
529 enable_xcb=no
530fi
531
Dan Nicholson44d99142007-12-05 18:47:01 -0800532dnl
533dnl libGL configuration per driver
534dnl
535case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800536xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800537 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700538 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800539 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800540 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
541 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800542 else
543 # should check these...
544 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
545 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800546 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
547 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800548 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700549 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
550 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800551
552 # if static, move the external libraries to the programs
553 # and empty the libraries for libGL
554 if test "$enable_static" = yes; then
555 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
556 GL_LIB_DEPS=""
557 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800558 ;;
559dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800560 # DRI must be shared, I think
561 if test "$enable_static" = yes; then
562 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
563 fi
564
Dan Nicholson44d99142007-12-05 18:47:01 -0800565 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700566 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
567 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800568 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
569 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800570
571 # find the DRI deps for libGL
572 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700573 # add xcb modules if necessary
574 dri_modules="x11 xext xxf86vm xdamage xfixes"
575 if test "$enable_xcb" = yes; then
576 dri_modules="$dri_modules x11-xcb xcb-glx"
577 fi
578
579 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800580 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800581 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
582 GL_LIB_DEPS="$DRIGL_LIBS"
583 else
584 # should check these...
585 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
586 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800587 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
588 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700589
590 # XCB can only be used from pkg-config
591 if test "$enable_xcb" = yes; then
592 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800593 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700594 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
595 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
596 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800597 fi
598
599 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700600 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
601 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800602 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800603osmesa)
604 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700605 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800606 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800607esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700608AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800609AC_SUBST([GL_PC_REQ_PRIV])
610AC_SUBST([GL_PC_LIB_PRIV])
611AC_SUBST([GL_PC_CFLAGS])
612AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700613
614dnl
615dnl More X11 setup
616dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800617if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700618 DEFINES="$DEFINES -DUSE_XSHM"
619fi
620
621dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800622dnl More DRI setup
623dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700624AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800625 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800626 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700627 [GLX_USE_TLS="$enableval"],
628 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800629dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700630AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800631 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700632 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700633 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700634 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700635AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800636dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700637AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800638 [AS_HELP_STRING([--disable-driglx-direct],
639 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700640 [driglx_direct="$enableval"],
641 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800642dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700643AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800644 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700645 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200646 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700647 [with_dri_drivers="$withval"],
648 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800649if test "x$with_dri_drivers" = x; then
650 with_dri_drivers=no
651fi
652
653dnl If $with_dri_drivers is yes, directories will be added through
654dnl platform checks
655DRI_DIRS=""
656case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100657no) ;;
658yes)
659 DRI_DIRS="yes"
660 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800661*)
662 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700663 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800664 for driver in $dri_drivers; do
665 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
666 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
667 done
668 DRI_DIRS="$dri_drivers"
669 ;;
670esac
671
Dan Nicholson44d99142007-12-05 18:47:01 -0800672dnl Just default to no EGL for now
673USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700674AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800675
676dnl Set DRI_DIRS, DEFINES and LIB_DEPS
677if test "$mesa_driver" = dri; then
678 # Use TLS in GLX?
679 if test "x$GLX_USE_TLS" = xyes; then
680 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
681 fi
682
683 if test "x$USING_EGL" = x1; then
684 PROGRAM_DIRS="egl"
685 fi
686
687 # Platform specific settings and drivers to build
688 case "$host_os" in
689 linux*)
690 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800691 if test "x$driglx_direct" = xyes; then
692 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
693 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100694 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800695
696 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800697 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800698 # ffb, gamma, and sis are missing because they have not be
699 # converted to use the new interface. i810 are missing
700 # because there is no x86-64 system where they could *ever*
701 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100702 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800703 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300704 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800705 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800706 ;;
707 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800708 # Build only the drivers for cards that exist on PowerPC.
709 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100710 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300711 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800712 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800713 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000714 sparc*)
715 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100716 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000717 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000718 fi
719 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800720 esac
721 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700722 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800723 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
724 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
725 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
726 if test "x$driglx_direct" = xyes; then
727 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
728 fi
729 if test "x$GXX" = xyes; then
730 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
731 fi
732
Dan Nicholsona76e2452007-12-07 11:25:08 -0800733 # ffb and gamma are missing because they have not been converted
734 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100735 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800736 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300737 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800738 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800739 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700740 gnu*)
741 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
742 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
743 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700744 solaris*)
745 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
746 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
747 if test "x$driglx_direct" = xyes; then
748 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
749 fi
750 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800751 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800752
753 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100754 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholson112a40e2008-02-21 10:17:19 -0800755 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
George Sapountzis280bf892008-05-11 14:43:40 +0300756 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800757 fi
758
Dan Nicholson44d99142007-12-05 18:47:01 -0800759 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
760
761 # Check for expat
762 EXPAT_INCLUDES=""
763 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700764 AC_ARG_WITH([expat],
765 [AS_HELP_STRING([--with-expat=DIR],
766 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800767 EXPAT_INCLUDES="-I$withval/include"
768 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
769 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
770 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
771 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700772 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
773 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
774 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800775
776 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700777 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800778fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700779AC_SUBST([DRI_DIRS])
780AC_SUBST([EXPAT_INCLUDES])
781AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800782
783dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700784dnl OSMesa configuration
785dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800786if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800787 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800788else
Dan Nicholson544ab202007-12-30 08:41:53 -0800789 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800790fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700791AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800792 [AS_HELP_STRING([--enable-gl-osmesa],
793 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700794 [gl_osmesa="$enableval"],
795 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800796if test "x$gl_osmesa" = xyes; then
797 if test "$mesa_driver" = osmesa; then
798 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800799 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800800 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800801 fi
802fi
803
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800804dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700805AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800806 [AS_HELP_STRING([--with-osmesa-bits=BITS],
807 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700808 [osmesa_bits="$withval"],
809 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800810if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
811 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
812 osmesa_bits=8
813fi
814case "x$osmesa_bits" in
815x8)
816 OSMESA_LIB=OSMesa
817 ;;
818x16|x32)
819 OSMESA_LIB="OSMesa$osmesa_bits"
820 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
821 ;;
822*)
823 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
824 ;;
825esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700826AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800827
Dan Nicholson979ff512007-12-05 18:47:01 -0800828case "$mesa_driver" in
829osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700830 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800831 if test "$enable_static" = no; then
Dan Nicholson64536052009-06-04 19:42:08 -0700832 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800833 else
834 OSMESA_LIB_DEPS=""
835 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800836 OSMESA_MESA_DEPS=""
Dan Nicholson64536052009-06-04 19:42:08 -0700837 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800838 ;;
839*)
840 # Link OSMesa to libGL otherwise
841 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700842 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800843 if test "$enable_static" = no; then
844 OSMESA_MESA_DEPS='-l$(GL_LIB)'
845 else
846 OSMESA_MESA_DEPS=""
847 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800848 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800849 ;;
850esac
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700851OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700852AC_SUBST([OSMESA_LIB_DEPS])
853AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800854AC_SUBST([OSMESA_PC_REQ])
855AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700856
857dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800858dnl EGL configuration
859dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700860AC_ARG_ENABLE([egl],
861 [AS_HELP_STRING([--disable-egl],
862 [disable EGL library @<:@default=enabled@:>@])],
863 [enable_egl="$enableval"],
864 [enable_egl=yes])
865if test "x$enable_egl" = xyes; then
866 SRC_DIRS="$SRC_DIRS egl"
867
868 if test "$x11_pkgconfig" = yes; then
869 PKG_CHECK_MODULES([EGL], [x11])
870 EGL_LIB_DEPS="$EGL_LIBS"
871 else
872 # should check these...
873 EGL_LIB_DEPS="$X_LIBS -lX11"
874 fi
875 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800876fi
Dan Nicholson53b37342009-02-25 17:45:34 -0800877AC_SUBST([EGL_LIB_DEPS])
878
879dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700880dnl GLU configuration
881dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700882AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800883 [AS_HELP_STRING([--disable-glu],
884 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700885 [enable_glu="$enableval"],
886 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700887if test "x$enable_glu" = xyes; then
888 SRC_DIRS="$SRC_DIRS glu"
889
Dan Nicholson979ff512007-12-05 18:47:01 -0800890 case "$mesa_driver" in
891 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800892 # If GLU is available and we have libOSMesa (not 16 or 32),
893 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800894 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800895 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
896 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700897
Dan Nicholson979ff512007-12-05 18:47:01 -0800898 # Link libGLU to libOSMesa instead of libGL
899 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800900 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800901 if test "$enable_static" = no; then
902 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
903 else
904 GLU_MESA_DEPS=""
905 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800906 ;;
907 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800908 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800909 GLU_PC_REQ="gl"
910 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800911 if test "$enable_static" = no; then
912 GLU_LIB_DEPS="-lm"
913 GLU_MESA_DEPS='-l$(GL_LIB)'
914 else
915 GLU_LIB_DEPS=""
916 GLU_MESA_DEPS=""
917 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
918 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800919 ;;
920 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700921fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700922if test "$enable_static" = no; then
923 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
924fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800925GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700926AC_SUBST([GLU_LIB_DEPS])
927AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800928AC_SUBST([GLU_PC_REQ])
929AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800930AC_SUBST([GLU_PC_LIB_PRIV])
931AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700932
933dnl
934dnl GLw configuration
935dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700936AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800937 [AS_HELP_STRING([--disable-glw],
938 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700939 [enable_glw="$enableval"],
940 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800941dnl Don't build GLw on osmesa
942if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
943 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
944 enable_glw=no
945fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700946AC_ARG_ENABLE([motif],
947 [AS_HELP_STRING([--enable-motif],
948 [use Motif widgets in GLw @<:@default=disabled@:>@])],
949 [enable_motif="$enableval"],
950 [enable_motif=no])
951
Dan Nicholsondca1b792007-10-23 09:25:58 -0700952if test "x$enable_glw" = xyes; then
953 SRC_DIRS="$SRC_DIRS glw"
954 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700955 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800956 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700957 GLW_LIB_DEPS="$GLW_LIBS"
958 else
959 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700960 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800961 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
962 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700963 fi
964
965 GLW_SOURCES="GLwDrawA.c"
966 MOTIF_CFLAGS=
967 if test "x$enable_motif" = xyes; then
968 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
969 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
970 if test "x$MOTIF_CONFIG" != xno; then
971 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
972 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
973 else
974 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
975 [AC_MSG_ERROR([Can't locate Motif headers])])
976 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
977 [AC_MSG_ERROR([Can't locate Motif Xm library])])
978 fi
979 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
980 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800981 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
982 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700983 fi
984
Dan Nicholson88586332007-11-15 08:59:57 -0800985 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700986 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -0800987 if test "$enable_static" = no; then
988 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700989 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -0800990 else
991 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
992 GLW_LIB_DEPS=""
993 GLW_MESA_DEPS=""
994 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700995fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700996AC_SUBST([GLW_LIB_DEPS])
997AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -0700998AC_SUBST([GLW_SOURCES])
999AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001000AC_SUBST([GLW_PC_REQ_PRIV])
1001AC_SUBST([GLW_PC_LIB_PRIV])
1002AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001003
1004dnl
1005dnl GLUT configuration
1006dnl
1007if test -f "$srcdir/include/GL/glut.h"; then
1008 default_glut=yes
1009else
1010 default_glut=no
1011fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001012AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001013 [AS_HELP_STRING([--disable-glut],
1014 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001015 [enable_glut="$enableval"],
1016 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001017
1018dnl Can't build glut if GLU not available
1019if test "x$enable_glu$enable_glut" = xnoyes; then
1020 AC_MSG_WARN([Disabling glut since GLU is disabled])
1021 enable_glut=no
1022fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001023dnl Don't build glut on osmesa
1024if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1025 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1026 enable_glut=no
1027fi
1028
Dan Nicholsondca1b792007-10-23 09:25:58 -07001029if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001030 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001031 GLUT_CFLAGS=""
1032 if test "x$GCC" = xyes; then
1033 GLUT_CFLAGS="-fexceptions"
1034 fi
1035 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001036 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001037 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001038 GLUT_LIB_DEPS="$GLUT_LIBS"
1039 else
1040 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001041 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001042 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1043 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001044 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001045 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1046 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001047
1048 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001049 if test "$with_demos" = yes; then
1050 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1051 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001052
Dan Nicholson88586332007-11-15 08:59:57 -08001053 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1054 if test "$enable_static" = no; then
1055 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1056 else
1057 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1058 GLUT_LIB_DEPS=""
1059 GLUT_MESA_DEPS=""
1060 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001061fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001062AC_SUBST([GLUT_LIB_DEPS])
1063AC_SUBST([GLUT_MESA_DEPS])
1064AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001065AC_SUBST([GLUT_PC_REQ_PRIV])
1066AC_SUBST([GLUT_PC_LIB_PRIV])
1067AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001068
1069dnl
1070dnl Program library dependencies
1071dnl Only libm is added here if necessary as the libraries should
1072dnl be pulled in by the linker
1073dnl
1074if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001075 case "$host_os" in
1076 solaris*)
1077 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1078 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001079 cygwin*)
1080 APP_LIB_DEPS="-lX11"
1081 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001082 *)
1083 APP_LIB_DEPS="-lm"
1084 ;;
1085 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001086fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001087AC_SUBST([APP_LIB_DEPS])
1088AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001089
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001090dnl
1091dnl Gallium configuration
1092dnl
1093AC_ARG_ENABLE([gallium],
1094 [AS_HELP_STRING([--disable-gallium],
1095 [build gallium @<:@default=enabled@:>@])],
1096 [enable_gallium="$enableval"],
1097 [enable_gallium=yes])
1098if test "x$enable_gallium" = xyes; then
1099 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1100fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001101
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001102dnl
1103dnl Gallium state trackers configuration
1104dnl
1105AC_ARG_WITH([state-trackers],
1106 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1107 [comma delimited state_trackers list, e.g.
1108 "egl,glx" @<:@default=auto@:>@])],
1109 [with_state_trackers="$withval"],
1110 [with_state_trackers=yes])
1111
1112case "$with_state_trackers" in
1113no)
1114 GALLIUM_STATE_TRACKERS_DIRS=""
1115 ;;
1116yes)
1117 # look at what else is built
1118 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001119 xlib)
1120 GALLIUM_STATE_TRACKERS_DIRS=glx
1121 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001122 dri)
Dan Nicholson66f97862009-04-29 12:11:43 -07001123 test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001124 ;;
1125 esac
1126 ;;
1127*)
1128 # verify the requested state tracker exist
1129 state_trackers=`IFS=', '; echo $with_state_trackers`
1130 for tracker in $state_trackers; do
1131 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1132 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
Dan Nicholson66f97862009-04-29 12:11:43 -07001133
1134 if test "$tracker" = egl && test "x$enable_egl" != xyes; then
1135 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1136 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001137 done
1138 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1139 ;;
1140esac
1141
Joel Bosveld8acca482009-03-06 08:46:08 +09001142AC_ARG_WITH([xorg-driver-dir],
1143 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1144 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1145 [XORG_DRIVER_INSTALL_DIR="$withval"],
1146 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1147AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1148
Brian Paul467b3d92009-08-14 11:23:00 -06001149AC_ARG_WITH([max-width],
1150 [AS_HELP_STRING([--with-max-width=N],
1151 [Maximum framebuffer width (4096)])],
1152 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1153 AS_IF([test "${withval}" -gt "4096"],
1154 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1155)
1156AC_ARG_WITH([max-height],
1157 [AS_HELP_STRING([--with-max-height=N],
1158 [Maximum framebuffer height (4096)])],
1159 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1160 AS_IF([test "${withval}" -gt "4096"],
1161 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1162)
1163
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001164dnl
1165dnl Gallium Intel configuration
1166dnl
1167AC_ARG_ENABLE([gallium-intel],
1168 [AS_HELP_STRING([--disable-gallium-intel],
1169 [build gallium intel @<:@default=enabled@:>@])],
1170 [enable_gallium_intel="$enableval"],
1171 [enable_gallium_intel=yes])
1172if test "x$enable_gallium_intel" = xyes; then
1173 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001174 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001175fi
1176
1177dnl
1178dnl Gallium Radeon configuration
1179dnl
1180AC_ARG_ENABLE([gallium-radeon],
1181 [AS_HELP_STRING([--enable-gallium-radeon],
1182 [build gallium radeon @<:@default=disabled@:>@])],
1183 [enable_gallium_radeon="$enableval"],
1184 [enable_gallium_radeon=no])
1185if test "x$enable_gallium_radeon" = xyes; then
1186 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001187 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001188fi
1189
1190dnl
Thierry Vignaud1402ea82009-09-14 11:48:51 -06001191dnl Gallium Nouveau configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001192dnl
1193AC_ARG_ENABLE([gallium-nouveau],
1194 [AS_HELP_STRING([--enable-gallium-nouveau],
1195 [build gallium nouveau @<:@default=disabled@:>@])],
1196 [enable_gallium_nouveau="$enableval"],
1197 [enable_gallium_nouveau=no])
1198if test "x$enable_gallium_nouveau" = xyes; then
1199 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001200 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001201fi
1202
1203
Dan Nicholsondca1b792007-10-23 09:25:58 -07001204dnl Restore LDFLAGS and CPPFLAGS
1205LDFLAGS="$_SAVE_LDFLAGS"
1206CPPFLAGS="$_SAVE_CPPFLAGS"
1207
1208dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001209AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001210
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001211dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001212AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001213if test -f configs/current || test -L configs/current; then
1214 rm -f configs/current
1215fi
1216ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001217])
1218
1219AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001220
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001221dnl
1222dnl Output some configuration info for the user
1223dnl
1224echo ""
1225echo " prefix: $prefix"
1226echo " exec_prefix: $exec_prefix"
1227echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001228echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001229
1230dnl Driver info
1231echo ""
1232echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001233if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1234 echo " OSMesa: lib$OSMESA_LIB"
1235else
1236 echo " OSMesa: no"
1237fi
1238if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001239 # cleanup the drivers var
1240 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001241if test "x$DRI_DIRS" = x; then
1242 echo " DRI drivers: no"
1243else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001244 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001245fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001246 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001247fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001248echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001249
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001250echo ""
1251if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1252 echo " Gallium: yes"
1253 echo " Gallium dirs: $GALLIUM_DIRS"
1254 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001255 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001256 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001257 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001258 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1259else
1260 echo " Gallium: no"
1261fi
1262
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001263dnl Libraries
1264echo ""
1265echo " Shared libs: $enable_shared"
1266echo " Static libs: $enable_static"
Dan Nicholson66f97862009-04-29 12:11:43 -07001267echo " EGL: $enable_egl"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001268echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001269echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001270echo " glut: $enable_glut"
1271
1272dnl Programs
1273# cleanup the programs var for display
1274program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1275if test "x$program_dirs" = x; then
1276 echo " Demos: no"
1277else
1278 echo " Demos: $program_dirs"
1279fi
1280
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001281dnl Compiler options
1282# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1283cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1284 $SED 's/^ *//;s/ */ /;s/ *$//'`
1285cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1286 $SED 's/^ *//;s/ */ /;s/ *$//'`
1287defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1288echo ""
1289echo " CFLAGS: $cflags"
1290echo " CXXFLAGS: $cxxflags"
1291echo " Macros: $defines"
1292
Dan Nicholsondca1b792007-10-23 09:25:58 -07001293echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001294echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001295echo ""