blob: ce7507fd2965df330828183a56489e32f2959204 [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'])])
8m4_ifval(mesa_version,[],[
9 m4_errprint([Error: Failed to get the Mesa version from the output of
10 running `make -f bin/version.mk version'
11])
12 m4_exit([1])
13])
Dan Nicholsondca1b792007-10-23 09:25:58 -070014
Dan Nicholsone97ab722008-07-01 08:55:42 -070015dnl Tell the user about autoconf.html in the --help output
16m4_divert_once([HELP_END], [
17See docs/autoconf.html for more details on the options for Mesa.])
18
Dan Nicholson00994ac2008-04-30 15:06:00 -070019AC_INIT([Mesa],[mesa_version],
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -080020 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
Dan Nicholson297e16c2008-05-05 15:42:53 -070021AC_CONFIG_AUX_DIR([bin])
Dan Nicholsondca1b792007-10-23 09:25:58 -070022AC_CANONICAL_HOST
23
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070024dnl Versions for external dependencies
Brian44557bf2009-01-10 16:32:32 -070025LIBDRM_REQUIRED=2.4.3
Kristian Høgsberg154a9e52008-12-01 21:44:03 -050026DRI2PROTO_REQUIRED=1.99.3
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070027
Dan Nicholsondca1b792007-10-23 09:25:58 -070028dnl Check for progs
29AC_PROG_CPP
30AC_PROG_CC
31AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070032AC_CHECK_PROGS([MAKE], [gmake make])
33AC_PATH_PROG([MKDEP], [makedepend])
34AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080035
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070036dnl We need a POSIX shell for parts of the build. Assume we have one
37dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070038case "$host_os" in
39solaris*)
40 # Solaris /bin/sh is too old/non-POSIX compliant
41 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070042 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070043 ;;
44esac
45
Dan Nicholsondb7fc632008-03-07 11:48:09 -080046MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050047dnl Ask gcc where it's keeping its secret headers
48if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080049 for dir in include include-fixed; do
50 GCC_INCLUDES=`$CC -print-file-name=$dir`
51 if test "x$GCC_INCLUDES" != x && \
52 test "$GCC_INCLUDES" != "$dir" && \
53 test -d "$GCC_INCLUDES"; then
54 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
55 fi
56 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050057fi
Dan Nicholson297e16c2008-05-05 15:42:53 -070058AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050059
Dan Nicholson41b00702007-12-12 08:48:30 -080060dnl Make sure the pkg-config macros are defined
Dan Nicholson297e16c2008-05-05 15:42:53 -070061m4_ifdef([PKG_PROG_PKG_CONFIG],[],[
Dan Nicholson7154d662008-04-30 13:53:37 -070062 m4_errprint([Error: Could not locate the pkg-config autoconf macros.
63 These are usually located in /usr/share/aclocal/pkg.m4. If your
64 macros are in a different location, try setting the environment
65 variable ACLOCAL="aclocal -I/other/macro/dir" before running
66 autoreconf.
67])
68 m4_exit([1])
69])
Dan Nicholsondca1b792007-10-23 09:25:58 -070070PKG_PROG_PKG_CONFIG()
71
72dnl LIB_DIR - library basename
73LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -070074AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -070075
76dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
77_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070078AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
79AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -070080
81dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
82_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070083AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
84AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070085
86dnl Compiler macros
87DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -070088AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070089case "$host_os" in
Dan Nicholsonac55db12009-03-04 13:19:32 -080090linux*|*-gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -080091 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -070092 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070093solaris*)
94 DEFINES="$DEFINES -DPTHREADS -DSVR4"
95 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -070096esac
97
98dnl Add flags for gcc and g++
99if test "x$GCC" = xyes; then
100 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800101
102 # Work around aliasing bugs - developers should comment this out
103 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700104fi
105if test "x$GXX" = xyes; then
106 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800107
108 # Work around aliasing bugs - developers should comment this out
109 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700110fi
111
112dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700113AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700114 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700115AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700116 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700117AC_SUBST([OPT_FLAGS])
118AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700119
120dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600121dnl Hacks to enable 32 or 64 bit build
122dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700123AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600124 [AS_HELP_STRING([--enable-32-bit],
125 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700126 [enable_32bit="$enableval"],
127 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600128)
129if test "x$enable_32bit" = xyes; then
130 if test "x$GCC" = xyes; then
131 CFLAGS="$CFLAGS -m32"
132 fi
133 if test "x$GXX" = xyes; then
134 CXXFLAGS="$CXXFLAGS -m32"
135 fi
136fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700137AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600138 [AS_HELP_STRING([--enable-64-bit],
139 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700140 [enable_64bit="$enableval"],
141 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600142)
143if test "x$enable_64bit" = xyes; then
144 if test "x$GCC" = xyes; then
145 CFLAGS="$CFLAGS -m64"
146 fi
147 if test "x$GXX" = xyes; then
148 CXXFLAGS="$CXXFLAGS -m64"
149 fi
150fi
151
152dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800153dnl shared/static libraries, mimic libtool options
154dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700155AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800156 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800157 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700158 [enable_static="$enableval"],
159 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800160)
161case "x$enable_static" in
162xyes|xno ) ;;
163x ) enable_static=no ;;
164* )
165 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
166 ;;
167esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700168AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800169 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800170 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700171 [enable_shared="$enableval"],
172 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800173)
174case "x$enable_shared" in
175xyes|xno ) ;;
176x ) enable_shared=yes ;;
177* )
178 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
179 ;;
180esac
181
182dnl Can't have static and shared libraries, default to static if user
183dnl explicitly requested. If both disabled, set to static since shared
184dnl was explicitly requirested.
185case "x$enable_static$enable_shared" in
186xyesyes )
187 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
188 enable_shared=no
189 ;;
190xnono )
191 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
192 enable_static=yes
193 ;;
194esac
195
196dnl
197dnl mklib options
198dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700199AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800200if test "$enable_static" = yes; then
201 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
202fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700203AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800204
Dan Nicholson23656c42007-12-12 09:02:31 -0800205dnl
206dnl other compiler options
207dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700208AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800209 [AS_HELP_STRING([--enable-debug],
210 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700211 [enable_debug="$enableval"],
212 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800213)
214if test "x$enable_debug" = xyes; then
215 DEFINES="$DEFINES -DDEBUG"
216 if test "x$GCC" = xyes; then
217 CFLAGS="$CFLAGS -g"
218 fi
219 if test "x$GXX" = xyes; then
220 CXXFLAGS="$CXXFLAGS -g"
221 fi
222fi
Dan Nicholson88586332007-11-15 08:59:57 -0800223
224dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700225dnl library names
226dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800227if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800228 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800229else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700230 case "$host_os" in
231 darwin* )
232 LIB_EXTENSION='dylib' ;;
233 * )
234 LIB_EXTENSION='so' ;;
235 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800236fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800237
238GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
239GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
240GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
241GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
242OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
243
244GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
245GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
246GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
247GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
248OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
249
Dan Nicholson297e16c2008-05-05 15:42:53 -0700250AC_SUBST([GL_LIB_NAME])
251AC_SUBST([GLU_LIB_NAME])
252AC_SUBST([GLUT_LIB_NAME])
253AC_SUBST([GLW_LIB_NAME])
254AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700255
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700256AC_SUBST([GL_LIB_GLOB])
257AC_SUBST([GLU_LIB_GLOB])
258AC_SUBST([GLUT_LIB_GLOB])
259AC_SUBST([GLW_LIB_GLOB])
260AC_SUBST([OSMESA_LIB_GLOB])
261
Dan Nicholsondca1b792007-10-23 09:25:58 -0700262dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700263dnl Arch/platform-specific settings
264dnl
265AC_ARG_ENABLE([asm],
266 [AS_HELP_STRING([--disable-asm],
267 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
268 [enable_asm="$enableval"],
269 [enable_asm=yes]
270)
271asm_arch=""
272ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800273MESA_ASM_SOURCES=""
274GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700275AC_MSG_CHECKING([whether to enable assembly])
276test "x$enable_asm" = xno && AC_MSG_RESULT([no])
277# disable if cross compiling on x86/x86_64 since we must run gen_matypes
278if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
279 case "$host_cpu" in
280 i?86 | x86_64)
281 enable_asm=no
282 AC_MSG_RESULT([no, cross compiling])
283 ;;
284 esac
285fi
286# check for supported arches
287if test "x$enable_asm" = xyes; then
288 case "$host_cpu" in
289 i?86)
290 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100291 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700292 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
293 ;;
294 esac
295 ;;
296 x86_64)
297 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100298 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700299 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
300 ;;
301 esac
302 ;;
303 powerpc)
304 case "$host_os" in
305 linux*)
306 asm_arch=ppc
307 ;;
308 esac
309 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800310 sparc*)
311 case "$host_os" in
312 linux*)
313 asm_arch=sparc
314 ;;
315 esac
316 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700317 esac
318
319 case "$asm_arch" in
320 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800321 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800322 MESA_ASM_SOURCES='$(X86_SOURCES)'
323 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700324 AC_MSG_RESULT([yes, x86])
325 ;;
326 x86_64)
327 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800328 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
329 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700330 AC_MSG_RESULT([yes, x86_64])
331 ;;
332 ppc)
333 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800334 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700335 AC_MSG_RESULT([yes, ppc])
336 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800337 sparc)
338 ASM_FLAGS="-DUSE_SPARC_ASM"
339 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
340 GLAPI_ASM_SOURCES='$(SPARC_API)'
341 AC_MSG_RESULT([yes, sparc])
342 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700343 *)
344 AC_MSG_RESULT([no, platform not supported])
345 ;;
346 esac
347fi
348AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800349AC_SUBST([MESA_ASM_SOURCES])
350AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700351
352dnl PIC code macro
353MESA_PIC_FLAGS
354
355dnl Check to see if dlopen is in default libraries (like Solaris, which
356dnl has it in libc), or if libdl is needed to get it.
357AC_CHECK_FUNC([dlopen], [],
358 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
359
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700360dnl See if posix_memalign is available
361AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
362
Dan Nicholson871125a2008-06-04 13:00:35 -0700363dnl SELinux awareness.
364AC_ARG_ENABLE([selinux],
365 [AS_HELP_STRING([--enable-selinux],
366 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
367 [MESA_SELINUX="$enableval"],
368 [MESA_SELINUX=no])
369if test "x$enable_selinux" = "xyes"; then
370 AC_CHECK_HEADER([selinux/selinux.h],[],
371 [AC_MSG_ERROR([SELinux headers not found])])
372 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
373 [AC_MSG_ERROR([SELinux library not found])])
374 SELINUX_LIBS="-lselinux"
375 DEFINES="$DEFINES -DMESA_SELINUX"
376fi
377
Dan Nicholson871125a2008-06-04 13:00:35 -0700378dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800379dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800380dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800381dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700382default_driver="xlib"
383
384case "$host_os" in
385linux*)
386 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700387 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700388 esac
389 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100390*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700391 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500392 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700393 esac
394 ;;
395esac
396
Dan Nicholson297e16c2008-05-05 15:42:53 -0700397AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800398 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700399 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700400 [mesa_driver="$withval"],
401 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800402dnl Check for valid option
403case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800404xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800405 ;;
406*)
407 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
408 ;;
409esac
410
411dnl
412dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700413dnl
Dan Nicholson252671f2009-02-16 09:28:35 -0800414SRC_DIRS="mesa egl glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700415GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800416WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100417GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100418GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100419GALLIUM_WINSYS_DRM_DIRS=""
Jerome Glisse14f79d42008-12-18 13:36:07 +0100420GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000421GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100422GALLIUM_STATE_TRACKERS_DIRS=""
423
Dan Nicholson44d99142007-12-05 18:47:01 -0800424case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800425xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800426 DRIVER_DIRS="x11"
427 ;;
428dri)
429 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100430 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800431 WINDOW_SYSTEM="dri"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100432 GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800433 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800434osmesa)
435 DRIVER_DIRS="osmesa"
436 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800437esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700438AC_SUBST([SRC_DIRS])
439AC_SUBST([GLU_DIRS])
440AC_SUBST([DRIVER_DIRS])
441AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100442AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100443AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100444AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000445AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100446AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100447AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700448
449dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800450dnl User supplied program configuration
451dnl
452if test -d "$srcdir/progs/demos"; then
453 default_demos=yes
454else
455 default_demos=no
456fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700457AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800458 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
459 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800460 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700461 [with_demos="$withval"],
462 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800463if test "x$with_demos" = x; then
464 with_demos=no
465fi
466
467dnl If $with_demos is yes, directories will be added as libs available
468PROGRAM_DIRS=""
469case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700470no) ;;
471yes)
472 # If the driver isn't osmesa, we have libGL and can build xdemos
473 if test "$mesa_driver" != osmesa; then
474 PROGRAM_DIRS="xdemos"
475 fi
476 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800477*)
478 # verify the requested demos directories exist
479 demos=`IFS=,; echo $with_demos`
480 for demo in $demos; do
481 test -d "$srcdir/progs/$demo" || \
482 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
483 done
484 PROGRAM_DIRS="$demos"
485 ;;
486esac
487
488dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700489dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700490dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700491dnl
492if test -n "$PKG_CONFIG"; then
493 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700494 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700495 x11_pkgconfig=yes
496 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700497 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700498 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700499 ])
500 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700501else
502 x11_pkgconfig=no
503fi
504dnl Use the autoconf macro if no pkg-config files
505if test "$x11_pkgconfig" = no; then
506 AC_PATH_XTRA
507fi
508
Dan Nicholson99803a42008-07-01 09:03:15 -0700509dnl Try to tell the user that the --x-* options are only used when
510dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
511m4_divert_once([HELP_BEGIN],
512[These options are only used when the X libraries cannot be found by the
513pkg-config utility.])
514
Dan Nicholson44d99142007-12-05 18:47:01 -0800515dnl We need X for xlib and dri, so bomb now if it's not found
516case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800517xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800518 if test "$no_x" = yes; then
519 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
520 fi
521 ;;
522esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700523
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700524dnl XCB - this is only used for GLX right now
525AC_ARG_ENABLE([xcb],
526 [AS_HELP_STRING([--enable-xcb],
527 [use XCB for GLX @<:@default=disabled@:>@])],
528 [enable_xcb="$enableval"],
529 [enable_xcb=no])
530if test "x$enable_xcb" = xyes; then
531 DEFINES="$DEFINES -DUSE_XCB"
532else
533 enable_xcb=no
534fi
535
Dan Nicholson44d99142007-12-05 18:47:01 -0800536dnl
537dnl libGL configuration per driver
538dnl
539case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800540xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800541 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700542 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800543 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800544 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
545 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800546 else
547 # should check these...
548 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
549 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800550 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
551 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800552 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700553 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
554 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800555
556 # if static, move the external libraries to the programs
557 # and empty the libraries for libGL
558 if test "$enable_static" = yes; then
559 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
560 GL_LIB_DEPS=""
561 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800562 ;;
563dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800564 # DRI must be shared, I think
565 if test "$enable_static" = yes; then
566 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
567 fi
568
Dan Nicholson44d99142007-12-05 18:47:01 -0800569 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700570 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
571 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800572 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
573 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800574
575 # find the DRI deps for libGL
576 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700577 # add xcb modules if necessary
578 dri_modules="x11 xext xxf86vm xdamage xfixes"
579 if test "$enable_xcb" = yes; then
580 dri_modules="$dri_modules x11-xcb xcb-glx"
581 fi
582
583 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800584 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800585 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
586 GL_LIB_DEPS="$DRIGL_LIBS"
587 else
588 # should check these...
589 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
590 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800591 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
592 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700593
594 # XCB can only be used from pkg-config
595 if test "$enable_xcb" = yes; then
596 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800597 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700598 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
599 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
600 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800601 fi
602
603 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700604 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
605 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800606 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800607osmesa)
608 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700609 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800610 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800611esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700612AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800613AC_SUBST([GL_PC_REQ_PRIV])
614AC_SUBST([GL_PC_LIB_PRIV])
615AC_SUBST([GL_PC_CFLAGS])
616AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700617
618dnl
619dnl More X11 setup
620dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800621if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700622 DEFINES="$DEFINES -DUSE_XSHM"
623fi
624
625dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800626dnl More DRI setup
627dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700628AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800629 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800630 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700631 [GLX_USE_TLS="$enableval"],
632 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800633dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700634AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800635 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700636 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700637 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700638 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700639AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800640dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700641AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800642 [AS_HELP_STRING([--disable-driglx-direct],
643 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700644 [driglx_direct="$enableval"],
645 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800646dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700647AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800648 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700649 [comma delimited DRI drivers list, e.g.
650 "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700651 [with_dri_drivers="$withval"],
652 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800653if test "x$with_dri_drivers" = x; then
654 with_dri_drivers=no
655fi
656
657dnl If $with_dri_drivers is yes, directories will be added through
658dnl platform checks
659DRI_DIRS=""
660case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100661no) ;;
662yes)
663 DRI_DIRS="yes"
664 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800665*)
666 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700667 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800668 for driver in $dri_drivers; do
669 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
670 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
671 done
672 DRI_DIRS="$dri_drivers"
673 ;;
674esac
675
Dan Nicholson44d99142007-12-05 18:47:01 -0800676dnl Just default to no EGL for now
677USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700678AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800679
680dnl Set DRI_DIRS, DEFINES and LIB_DEPS
681if test "$mesa_driver" = dri; then
682 # Use TLS in GLX?
683 if test "x$GLX_USE_TLS" = xyes; then
684 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
685 fi
686
687 if test "x$USING_EGL" = x1; then
688 PROGRAM_DIRS="egl"
689 fi
690
691 # Platform specific settings and drivers to build
692 case "$host_os" in
693 linux*)
694 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800695 if test "x$driglx_direct" = xyes; then
696 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
697 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100698 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800699
700 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800701 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800702 # ffb, gamma, and sis are missing because they have not be
703 # converted to use the new interface. i810 are missing
704 # because there is no x86-64 system where they could *ever*
705 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100706 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800707 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300708 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800709 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800710 ;;
711 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800712 # Build only the drivers for cards that exist on PowerPC.
713 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100714 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300715 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800716 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800717 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000718 sparc*)
719 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100720 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000721 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000722 fi
723 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800724 esac
725 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700726 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800727 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
728 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
729 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
730 if test "x$driglx_direct" = xyes; then
731 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
732 fi
733 if test "x$GXX" = xyes; then
734 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
735 fi
736
Dan Nicholsona76e2452007-12-07 11:25:08 -0800737 # ffb and gamma are missing because they have not been converted
738 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100739 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800740 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300741 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800742 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800743 ;;
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
Adam Jackson66611f22008-02-15 13:49:12 -0500832 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_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 Nicholson8be02fc2008-12-14 09:35:29 -0800837 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_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 Coopersmithe1f9adc2008-06-20 17:58:53 -0700851if test "$enable_static" = no; then
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700852 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700853fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700854OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700855AC_SUBST([OSMESA_LIB_DEPS])
856AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800857AC_SUBST([OSMESA_PC_REQ])
858AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700859
860dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800861dnl EGL configuration
862dnl
863if test "$x11_pkgconfig" = yes; then
864 PKG_CHECK_MODULES([EGL],[x11])
865 EGL_LIB_DEPS="$EGL_LIBS"
866else
867 # should check these...
868 EGL_LIB_DEPS="$X_LIBS -lX11"
869fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700870EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800871AC_SUBST([EGL_LIB_DEPS])
872
873dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700874dnl GLU configuration
875dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700876AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800877 [AS_HELP_STRING([--disable-glu],
878 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700879 [enable_glu="$enableval"],
880 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700881if test "x$enable_glu" = xyes; then
882 SRC_DIRS="$SRC_DIRS glu"
883
Dan Nicholson979ff512007-12-05 18:47:01 -0800884 case "$mesa_driver" in
885 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800886 # If GLU is available and we have libOSMesa (not 16 or 32),
887 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800888 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800889 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
890 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700891
Dan Nicholson979ff512007-12-05 18:47:01 -0800892 # Link libGLU to libOSMesa instead of libGL
893 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800894 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800895 if test "$enable_static" = no; then
896 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
897 else
898 GLU_MESA_DEPS=""
899 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800900 ;;
901 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800902 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800903 GLU_PC_REQ="gl"
904 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800905 if test "$enable_static" = no; then
906 GLU_LIB_DEPS="-lm"
907 GLU_MESA_DEPS='-l$(GL_LIB)'
908 else
909 GLU_LIB_DEPS=""
910 GLU_MESA_DEPS=""
911 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
912 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800913 ;;
914 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700915fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700916if test "$enable_static" = no; then
917 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
918fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800919GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700920AC_SUBST([GLU_LIB_DEPS])
921AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800922AC_SUBST([GLU_PC_REQ])
923AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800924AC_SUBST([GLU_PC_LIB_PRIV])
925AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700926
927dnl
928dnl GLw configuration
929dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700930AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800931 [AS_HELP_STRING([--disable-glw],
932 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700933 [enable_glw="$enableval"],
934 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800935dnl Don't build GLw on osmesa
936if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
937 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
938 enable_glw=no
939fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700940AC_ARG_ENABLE([motif],
941 [AS_HELP_STRING([--enable-motif],
942 [use Motif widgets in GLw @<:@default=disabled@:>@])],
943 [enable_motif="$enableval"],
944 [enable_motif=no])
945
Dan Nicholsondca1b792007-10-23 09:25:58 -0700946if test "x$enable_glw" = xyes; then
947 SRC_DIRS="$SRC_DIRS glw"
948 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700949 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800950 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700951 GLW_LIB_DEPS="$GLW_LIBS"
952 else
953 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700954 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800955 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
956 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700957 fi
958
959 GLW_SOURCES="GLwDrawA.c"
960 MOTIF_CFLAGS=
961 if test "x$enable_motif" = xyes; then
962 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
963 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
964 if test "x$MOTIF_CONFIG" != xno; then
965 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
966 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
967 else
968 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
969 [AC_MSG_ERROR([Can't locate Motif headers])])
970 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
971 [AC_MSG_ERROR([Can't locate Motif Xm library])])
972 fi
973 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
974 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800975 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
976 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700977 fi
978
Dan Nicholson88586332007-11-15 08:59:57 -0800979 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700980 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -0800981 if test "$enable_static" = no; then
982 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700983 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -0800984 else
985 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
986 GLW_LIB_DEPS=""
987 GLW_MESA_DEPS=""
988 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700989fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700990AC_SUBST([GLW_LIB_DEPS])
991AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -0700992AC_SUBST([GLW_SOURCES])
993AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800994AC_SUBST([GLW_PC_REQ_PRIV])
995AC_SUBST([GLW_PC_LIB_PRIV])
996AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700997
998dnl
999dnl GLUT configuration
1000dnl
1001if test -f "$srcdir/include/GL/glut.h"; then
1002 default_glut=yes
1003else
1004 default_glut=no
1005fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001006AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001007 [AS_HELP_STRING([--disable-glut],
1008 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001009 [enable_glut="$enableval"],
1010 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001011
1012dnl Can't build glut if GLU not available
1013if test "x$enable_glu$enable_glut" = xnoyes; then
1014 AC_MSG_WARN([Disabling glut since GLU is disabled])
1015 enable_glut=no
1016fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001017dnl Don't build glut on osmesa
1018if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1019 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1020 enable_glut=no
1021fi
1022
Dan Nicholsondca1b792007-10-23 09:25:58 -07001023if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001024 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001025 GLUT_CFLAGS=""
1026 if test "x$GCC" = xyes; then
1027 GLUT_CFLAGS="-fexceptions"
1028 fi
1029 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001030 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001031 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001032 GLUT_LIB_DEPS="$GLUT_LIBS"
1033 else
1034 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001035 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001036 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1037 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001038 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001039 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1040 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001041
1042 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001043 if test "$with_demos" = yes; then
1044 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1045 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001046
Dan Nicholson88586332007-11-15 08:59:57 -08001047 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1048 if test "$enable_static" = no; then
1049 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1050 else
1051 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1052 GLUT_LIB_DEPS=""
1053 GLUT_MESA_DEPS=""
1054 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001055fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001056AC_SUBST([GLUT_LIB_DEPS])
1057AC_SUBST([GLUT_MESA_DEPS])
1058AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001059AC_SUBST([GLUT_PC_REQ_PRIV])
1060AC_SUBST([GLUT_PC_LIB_PRIV])
1061AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001062
1063dnl
1064dnl Program library dependencies
1065dnl Only libm is added here if necessary as the libraries should
1066dnl be pulled in by the linker
1067dnl
1068if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001069 case "$host_os" in
1070 solaris*)
1071 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1072 ;;
1073 *)
1074 APP_LIB_DEPS="-lm"
1075 ;;
1076 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001077fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001078AC_SUBST([APP_LIB_DEPS])
1079AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001080
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001081dnl
1082dnl Gallium configuration
1083dnl
1084AC_ARG_ENABLE([gallium],
1085 [AS_HELP_STRING([--disable-gallium],
1086 [build gallium @<:@default=enabled@:>@])],
1087 [enable_gallium="$enableval"],
1088 [enable_gallium=yes])
1089if test "x$enable_gallium" = xyes; then
1090 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1091fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001092
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001093dnl
1094dnl Gallium state trackers configuration
1095dnl
1096AC_ARG_WITH([state-trackers],
1097 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1098 [comma delimited state_trackers list, e.g.
1099 "egl,glx" @<:@default=auto@:>@])],
1100 [with_state_trackers="$withval"],
1101 [with_state_trackers=yes])
1102
1103case "$with_state_trackers" in
1104no)
1105 GALLIUM_STATE_TRACKERS_DIRS=""
1106 ;;
1107yes)
1108 # look at what else is built
1109 case "$mesa_driver" in
1110 dri)
1111 GALLIUM_STATE_TRACKERS_DIRS=egl
1112 ;;
1113 esac
1114 ;;
1115*)
1116 # verify the requested state tracker exist
1117 state_trackers=`IFS=', '; echo $with_state_trackers`
1118 for tracker in $state_trackers; do
1119 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1120 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1121 done
1122 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1123 ;;
1124esac
1125
Joel Bosveld8acca482009-03-06 08:46:08 +09001126AC_ARG_WITH([xorg-driver-dir],
1127 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1128 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1129 [XORG_DRIVER_INSTALL_DIR="$withval"],
1130 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1131AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1132
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001133dnl
1134dnl Gallium Intel configuration
1135dnl
1136AC_ARG_ENABLE([gallium-intel],
1137 [AS_HELP_STRING([--disable-gallium-intel],
1138 [build gallium intel @<:@default=enabled@:>@])],
1139 [enable_gallium_intel="$enableval"],
1140 [enable_gallium_intel=yes])
1141if test "x$enable_gallium_intel" = xyes; then
1142 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001143 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001144fi
1145
1146dnl
1147dnl Gallium Radeon configuration
1148dnl
1149AC_ARG_ENABLE([gallium-radeon],
1150 [AS_HELP_STRING([--enable-gallium-radeon],
1151 [build gallium radeon @<:@default=disabled@:>@])],
1152 [enable_gallium_radeon="$enableval"],
1153 [enable_gallium_radeon=no])
1154if test "x$enable_gallium_radeon" = xyes; then
1155 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001156 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001157fi
1158
1159dnl
1160dnl Gallium Radeon configuration
1161dnl
1162AC_ARG_ENABLE([gallium-nouveau],
1163 [AS_HELP_STRING([--enable-gallium-nouveau],
1164 [build gallium nouveau @<:@default=disabled@:>@])],
1165 [enable_gallium_nouveau="$enableval"],
1166 [enable_gallium_nouveau=no])
1167if test "x$enable_gallium_nouveau" = xyes; then
1168 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001169 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001170fi
1171
1172
Dan Nicholsondca1b792007-10-23 09:25:58 -07001173dnl Restore LDFLAGS and CPPFLAGS
1174LDFLAGS="$_SAVE_LDFLAGS"
1175CPPFLAGS="$_SAVE_CPPFLAGS"
1176
1177dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001178AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001179
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001180dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001181AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001182if test -f configs/current || test -L configs/current; then
1183 rm -f configs/current
1184fi
1185ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001186])
1187
1188AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001189
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001190dnl
1191dnl Output some configuration info for the user
1192dnl
1193echo ""
1194echo " prefix: $prefix"
1195echo " exec_prefix: $exec_prefix"
1196echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001197echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001198
1199dnl Driver info
1200echo ""
1201echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001202if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1203 echo " OSMesa: lib$OSMESA_LIB"
1204else
1205 echo " OSMesa: no"
1206fi
1207if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001208 # cleanup the drivers var
1209 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001210if test "x$DRI_DIRS" = x; then
1211 echo " DRI drivers: no"
1212else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001213 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001214fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001215 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001216fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001217echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001218
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001219echo ""
1220if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1221 echo " Gallium: yes"
1222 echo " Gallium dirs: $GALLIUM_DIRS"
1223 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001224 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001225 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001226 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001227 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1228else
1229 echo " Gallium: no"
1230fi
1231
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001232dnl Libraries
1233echo ""
1234echo " Shared libs: $enable_shared"
1235echo " Static libs: $enable_static"
1236echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001237echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001238echo " glut: $enable_glut"
1239
1240dnl Programs
1241# cleanup the programs var for display
1242program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1243if test "x$program_dirs" = x; then
1244 echo " Demos: no"
1245else
1246 echo " Demos: $program_dirs"
1247fi
1248
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001249dnl Compiler options
1250# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1251cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1252 $SED 's/^ *//;s/ */ /;s/ *$//'`
1253cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1254 $SED 's/^ *//;s/ */ /;s/ *$//'`
1255defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1256echo ""
1257echo " CFLAGS: $cflags"
1258echo " CXXFLAGS: $cxxflags"
1259echo " Macros: $defines"
1260
Dan Nicholsondca1b792007-10-23 09:25:58 -07001261echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001262echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001263echo ""