blob: a57e5b3ea7a94b815c28ce8917313c5f71c29686 [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
Julien Cristau7f7fc3e2009-01-12 16:04:32 +010090*-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 ;;
310 esac
311
312 case "$asm_arch" in
313 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800314 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800315 MESA_ASM_SOURCES='$(X86_SOURCES)'
316 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700317 AC_MSG_RESULT([yes, x86])
318 ;;
319 x86_64)
320 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800321 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
322 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700323 AC_MSG_RESULT([yes, x86_64])
324 ;;
325 ppc)
326 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800327 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700328 AC_MSG_RESULT([yes, ppc])
329 ;;
330 *)
331 AC_MSG_RESULT([no, platform not supported])
332 ;;
333 esac
334fi
335AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800336AC_SUBST([MESA_ASM_SOURCES])
337AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700338
339dnl PIC code macro
340MESA_PIC_FLAGS
341
342dnl Check to see if dlopen is in default libraries (like Solaris, which
343dnl has it in libc), or if libdl is needed to get it.
344AC_CHECK_FUNC([dlopen], [],
345 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
346
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700347dnl See if posix_memalign is available
348AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
349
Dan Nicholson871125a2008-06-04 13:00:35 -0700350dnl SELinux awareness.
351AC_ARG_ENABLE([selinux],
352 [AS_HELP_STRING([--enable-selinux],
353 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
354 [MESA_SELINUX="$enableval"],
355 [MESA_SELINUX=no])
356if test "x$enable_selinux" = "xyes"; then
357 AC_CHECK_HEADER([selinux/selinux.h],[],
358 [AC_MSG_ERROR([SELinux headers not found])])
359 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
360 [AC_MSG_ERROR([SELinux library not found])])
361 SELINUX_LIBS="-lselinux"
362 DEFINES="$DEFINES -DMESA_SELINUX"
363fi
364
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700365dnl OS-specific libraries
366OS_LIBS=""
367case "$host_os" in
368solaris*)
369 OS_LIBS="-lc"
370 if test "x$GXX" != xyes; then
371 OS_CPLUSPLUS_LIBS="-lCrun $OS_LIBS"
372 fi
373 ;;
374esac
Dan Nicholson871125a2008-06-04 13:00:35 -0700375
376dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800377dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800378dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800379dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700380default_driver="xlib"
381
382case "$host_os" in
383linux*)
384 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700385 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700386 esac
387 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100388*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700389 case "$host_cpu" in
390 i*86|x86_64) default_driver="dri";;
391 esac
392 ;;
393esac
394
Dan Nicholson297e16c2008-05-05 15:42:53 -0700395AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800396 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700397 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700398 [mesa_driver="$withval"],
399 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800400dnl Check for valid option
401case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800402xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800403 ;;
404*)
405 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
406 ;;
407esac
408
409dnl
410dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700411dnl
Dan Nicholson252671f2009-02-16 09:28:35 -0800412SRC_DIRS="mesa egl glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700413GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800414WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100415GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100416GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100417GALLIUM_WINSYS_DRM_DIRS=""
Jerome Glisse14f79d42008-12-18 13:36:07 +0100418GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000419GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100420GALLIUM_STATE_TRACKERS_DIRS=""
421
Dan Nicholson44d99142007-12-05 18:47:01 -0800422case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800423xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800424 DRIVER_DIRS="x11"
425 ;;
426dri)
427 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100428 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800429 WINDOW_SYSTEM="dri"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100430 GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800431 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800432osmesa)
433 DRIVER_DIRS="osmesa"
434 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800435esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700436AC_SUBST([SRC_DIRS])
437AC_SUBST([GLU_DIRS])
438AC_SUBST([DRIVER_DIRS])
439AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100440AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100441AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100442AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000443AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100444AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100445AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700446
447dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800448dnl User supplied program configuration
449dnl
450if test -d "$srcdir/progs/demos"; then
451 default_demos=yes
452else
453 default_demos=no
454fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700455AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800456 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
457 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800458 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700459 [with_demos="$withval"],
460 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800461if test "x$with_demos" = x; then
462 with_demos=no
463fi
464
465dnl If $with_demos is yes, directories will be added as libs available
466PROGRAM_DIRS=""
467case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700468no) ;;
469yes)
470 # If the driver isn't osmesa, we have libGL and can build xdemos
471 if test "$mesa_driver" != osmesa; then
472 PROGRAM_DIRS="xdemos"
473 fi
474 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800475*)
476 # verify the requested demos directories exist
477 demos=`IFS=,; echo $with_demos`
478 for demo in $demos; do
479 test -d "$srcdir/progs/$demo" || \
480 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
481 done
482 PROGRAM_DIRS="$demos"
483 ;;
484esac
485
486dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700487dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700488dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700489dnl
490if test -n "$PKG_CONFIG"; then
491 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700492 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700493 x11_pkgconfig=yes
494 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700495 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700496 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700497 ])
498 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700499else
500 x11_pkgconfig=no
501fi
502dnl Use the autoconf macro if no pkg-config files
503if test "$x11_pkgconfig" = no; then
504 AC_PATH_XTRA
505fi
506
Dan Nicholson99803a42008-07-01 09:03:15 -0700507dnl Try to tell the user that the --x-* options are only used when
508dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
509m4_divert_once([HELP_BEGIN],
510[These options are only used when the X libraries cannot be found by the
511pkg-config utility.])
512
Dan Nicholson44d99142007-12-05 18:47:01 -0800513dnl We need X for xlib and dri, so bomb now if it's not found
514case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800515xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800516 if test "$no_x" = yes; then
517 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
518 fi
519 ;;
520esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700521
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700522dnl XCB - this is only used for GLX right now
523AC_ARG_ENABLE([xcb],
524 [AS_HELP_STRING([--enable-xcb],
525 [use XCB for GLX @<:@default=disabled@:>@])],
526 [enable_xcb="$enableval"],
527 [enable_xcb=no])
528if test "x$enable_xcb" = xyes; then
529 DEFINES="$DEFINES -DUSE_XCB"
530else
531 enable_xcb=no
532fi
533
Dan Nicholson44d99142007-12-05 18:47:01 -0800534dnl
535dnl libGL configuration per driver
536dnl
537case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800538xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800539 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700540 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800541 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800542 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
543 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800544 else
545 # should check these...
546 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
547 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800548 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
549 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800550 fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700551 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800552 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800553
554 # if static, move the external libraries to the programs
555 # and empty the libraries for libGL
556 if test "$enable_static" = yes; then
557 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
558 GL_LIB_DEPS=""
559 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800560 ;;
561dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800562 # DRI must be shared, I think
563 if test "$enable_static" = yes; then
564 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
565 fi
566
Dan Nicholson44d99142007-12-05 18:47:01 -0800567 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700568 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
569 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800570 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
571 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800572
573 # find the DRI deps for libGL
574 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700575 # add xcb modules if necessary
576 dri_modules="x11 xext xxf86vm xdamage xfixes"
577 if test "$enable_xcb" = yes; then
578 dri_modules="$dri_modules x11-xcb xcb-glx"
579 fi
580
581 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800582 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800583 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
584 GL_LIB_DEPS="$DRIGL_LIBS"
585 else
586 # should check these...
587 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
588 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800589 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
590 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700591
592 # XCB can only be used from pkg-config
593 if test "$enable_xcb" = yes; then
594 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800595 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700596 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
597 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
598 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800599 fi
600
601 # need DRM libs, -lpthread, etc.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700602 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800603 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS $OS_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800604 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800605osmesa)
606 # No libGL for osmesa
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700607 GL_LIB_DEPS="$OS_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800608 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800609esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700610AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800611AC_SUBST([GL_PC_REQ_PRIV])
612AC_SUBST([GL_PC_LIB_PRIV])
613AC_SUBST([GL_PC_CFLAGS])
614AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700615
616dnl
617dnl More X11 setup
618dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800619if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700620 DEFINES="$DEFINES -DUSE_XSHM"
621fi
622
623dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800624dnl More DRI setup
625dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700626AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800627 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800628 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700629 [GLX_USE_TLS="$enableval"],
630 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800631dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700632AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800633 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700634 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700635 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700636 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700637AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800638dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700639AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800640 [AS_HELP_STRING([--disable-driglx-direct],
641 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700642 [driglx_direct="$enableval"],
643 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800644dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700645AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800646 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700647 [comma delimited DRI drivers list, e.g.
648 "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700649 [with_dri_drivers="$withval"],
650 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800651if test "x$with_dri_drivers" = x; then
652 with_dri_drivers=no
653fi
654
655dnl If $with_dri_drivers is yes, directories will be added through
656dnl platform checks
657DRI_DIRS=""
658case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100659no) ;;
660yes)
661 DRI_DIRS="yes"
662 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800663*)
664 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700665 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800666 for driver in $dri_drivers; do
667 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
668 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
669 done
670 DRI_DIRS="$dri_drivers"
671 ;;
672esac
673
Dan Nicholson44d99142007-12-05 18:47:01 -0800674dnl Just default to no EGL for now
675USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700676AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800677
678dnl Set DRI_DIRS, DEFINES and LIB_DEPS
679if test "$mesa_driver" = dri; then
680 # Use TLS in GLX?
681 if test "x$GLX_USE_TLS" = xyes; then
682 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
683 fi
684
685 if test "x$USING_EGL" = x1; then
686 PROGRAM_DIRS="egl"
687 fi
688
689 # Platform specific settings and drivers to build
690 case "$host_os" in
691 linux*)
692 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800693 if test "x$driglx_direct" = xyes; then
694 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
695 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100696 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800697
698 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800699 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800700 # ffb, gamma, and sis are missing because they have not be
701 # converted to use the new interface. i810 are missing
702 # because there is no x86-64 system where they could *ever*
703 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100704 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800705 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300706 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800707 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800708 ;;
709 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800710 # Build only the drivers for cards that exist on PowerPC.
711 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100712 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300713 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800714 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800715 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000716 sparc*)
717 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100718 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000719 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000720 fi
721 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800722 esac
723 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700724 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800725 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
726 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
727 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
728 if test "x$driglx_direct" = xyes; then
729 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
730 fi
731 if test "x$GXX" = xyes; then
732 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
733 fi
734
Dan Nicholsona76e2452007-12-07 11:25:08 -0800735 # ffb and gamma are missing because they have not been converted
736 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100737 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800738 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300739 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800740 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800741 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700742 solaris*)
743 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
744 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
745 if test "x$driglx_direct" = xyes; then
746 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
747 fi
748 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800749 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800750
751 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100752 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholson112a40e2008-02-21 10:17:19 -0800753 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
George Sapountzis280bf892008-05-11 14:43:40 +0300754 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800755 fi
756
Dan Nicholson44d99142007-12-05 18:47:01 -0800757 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
758
759 # Check for expat
760 EXPAT_INCLUDES=""
761 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700762 AC_ARG_WITH([expat],
763 [AS_HELP_STRING([--with-expat=DIR],
764 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800765 EXPAT_INCLUDES="-I$withval/include"
766 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
767 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
768 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
769 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700770 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
771 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
772 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800773
774 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700775 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800776fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700777AC_SUBST([DRI_DIRS])
778AC_SUBST([EXPAT_INCLUDES])
779AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800780
781dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700782dnl OSMesa configuration
783dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800784if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800785 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800786else
Dan Nicholson544ab202007-12-30 08:41:53 -0800787 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800788fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700789AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800790 [AS_HELP_STRING([--enable-gl-osmesa],
791 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700792 [gl_osmesa="$enableval"],
793 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800794if test "x$gl_osmesa" = xyes; then
795 if test "$mesa_driver" = osmesa; then
796 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800797 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800798 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800799 fi
800fi
801
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800802dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700803AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800804 [AS_HELP_STRING([--with-osmesa-bits=BITS],
805 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700806 [osmesa_bits="$withval"],
807 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800808if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
809 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
810 osmesa_bits=8
811fi
812case "x$osmesa_bits" in
813x8)
814 OSMESA_LIB=OSMesa
815 ;;
816x16|x32)
817 OSMESA_LIB="OSMesa$osmesa_bits"
818 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
819 ;;
820*)
821 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
822 ;;
823esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700824AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800825
Dan Nicholson979ff512007-12-05 18:47:01 -0800826case "$mesa_driver" in
827osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700828 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800829 if test "$enable_static" = no; then
Adam Jackson66611f22008-02-15 13:49:12 -0500830 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800831 else
832 OSMESA_LIB_DEPS=""
833 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800834 OSMESA_MESA_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800835 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800836 ;;
837*)
838 # Link OSMesa to libGL otherwise
839 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700840 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800841 if test "$enable_static" = no; then
842 OSMESA_MESA_DEPS='-l$(GL_LIB)'
843 else
844 OSMESA_MESA_DEPS=""
845 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800846 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800847 ;;
848esac
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700849if test "$enable_static" = no; then
850 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS $OS_LIBS"
851fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800852OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV $OS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700853AC_SUBST([OSMESA_LIB_DEPS])
854AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800855AC_SUBST([OSMESA_PC_REQ])
856AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700857
858dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800859dnl EGL configuration
860dnl
861if test "$x11_pkgconfig" = yes; then
862 PKG_CHECK_MODULES([EGL],[x11])
863 EGL_LIB_DEPS="$EGL_LIBS"
864else
865 # should check these...
866 EGL_LIB_DEPS="$X_LIBS -lX11"
867fi
868EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS $OS_LIBS"
869AC_SUBST([EGL_LIB_DEPS])
870
871dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700872dnl GLU configuration
873dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700874AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800875 [AS_HELP_STRING([--disable-glu],
876 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700877 [enable_glu="$enableval"],
878 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700879if test "x$enable_glu" = xyes; then
880 SRC_DIRS="$SRC_DIRS glu"
881
Dan Nicholson979ff512007-12-05 18:47:01 -0800882 case "$mesa_driver" in
883 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800884 # If GLU is available and we have libOSMesa (not 16 or 32),
885 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800886 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800887 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
888 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700889
Dan Nicholson979ff512007-12-05 18:47:01 -0800890 # Link libGLU to libOSMesa instead of libGL
891 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800892 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800893 if test "$enable_static" = no; then
894 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
895 else
896 GLU_MESA_DEPS=""
897 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800898 ;;
899 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800900 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800901 GLU_PC_REQ="gl"
902 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800903 if test "$enable_static" = no; then
904 GLU_LIB_DEPS="-lm"
905 GLU_MESA_DEPS='-l$(GL_LIB)'
906 else
907 GLU_LIB_DEPS=""
908 GLU_MESA_DEPS=""
909 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
910 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800911 ;;
912 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700913fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700914if test "$enable_static" = no; then
915 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
916fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800917GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700918AC_SUBST([GLU_LIB_DEPS])
919AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800920AC_SUBST([GLU_PC_REQ])
921AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800922AC_SUBST([GLU_PC_LIB_PRIV])
923AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700924
925dnl
926dnl GLw configuration
927dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700928AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800929 [AS_HELP_STRING([--disable-glw],
930 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700931 [enable_glw="$enableval"],
932 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800933dnl Don't build GLw on osmesa
934if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
935 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
936 enable_glw=no
937fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700938AC_ARG_ENABLE([motif],
939 [AS_HELP_STRING([--enable-motif],
940 [use Motif widgets in GLw @<:@default=disabled@:>@])],
941 [enable_motif="$enableval"],
942 [enable_motif=no])
943
Dan Nicholsondca1b792007-10-23 09:25:58 -0700944if test "x$enable_glw" = xyes; then
945 SRC_DIRS="$SRC_DIRS glw"
946 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700947 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800948 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700949 GLW_LIB_DEPS="$GLW_LIBS"
950 else
951 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700952 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800953 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
954 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700955 fi
956
957 GLW_SOURCES="GLwDrawA.c"
958 MOTIF_CFLAGS=
959 if test "x$enable_motif" = xyes; then
960 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
961 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
962 if test "x$MOTIF_CONFIG" != xno; then
963 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
964 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
965 else
966 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
967 [AC_MSG_ERROR([Can't locate Motif headers])])
968 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
969 [AC_MSG_ERROR([Can't locate Motif Xm library])])
970 fi
971 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
972 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800973 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
974 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700975 fi
976
Dan Nicholson88586332007-11-15 08:59:57 -0800977 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800978 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800979 if test "$enable_static" = no; then
980 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700981 GLW_LIB_DEPS="$GLW_LIB_DEPS $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800982 else
983 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
984 GLW_LIB_DEPS=""
985 GLW_MESA_DEPS=""
986 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700987fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700988AC_SUBST([GLW_LIB_DEPS])
989AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -0700990AC_SUBST([GLW_SOURCES])
991AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800992AC_SUBST([GLW_PC_REQ_PRIV])
993AC_SUBST([GLW_PC_LIB_PRIV])
994AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700995
996dnl
997dnl GLUT configuration
998dnl
999if test -f "$srcdir/include/GL/glut.h"; then
1000 default_glut=yes
1001else
1002 default_glut=no
1003fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001004AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001005 [AS_HELP_STRING([--disable-glut],
1006 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001007 [enable_glut="$enableval"],
1008 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001009
1010dnl Can't build glut if GLU not available
1011if test "x$enable_glu$enable_glut" = xnoyes; then
1012 AC_MSG_WARN([Disabling glut since GLU is disabled])
1013 enable_glut=no
1014fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001015dnl Don't build glut on osmesa
1016if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1017 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1018 enable_glut=no
1019fi
1020
Dan Nicholsondca1b792007-10-23 09:25:58 -07001021if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001022 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001023 GLUT_CFLAGS=""
1024 if test "x$GCC" = xyes; then
1025 GLUT_CFLAGS="-fexceptions"
1026 fi
1027 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001028 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001029 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001030 GLUT_LIB_DEPS="$GLUT_LIBS"
1031 else
1032 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001033 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001034 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1035 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001036 fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001037 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001038 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm $OS_LIBS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001039
1040 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001041 if test "$with_demos" = yes; then
1042 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1043 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001044
Dan Nicholson88586332007-11-15 08:59:57 -08001045 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1046 if test "$enable_static" = no; then
1047 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1048 else
1049 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1050 GLUT_LIB_DEPS=""
1051 GLUT_MESA_DEPS=""
1052 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001053fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001054AC_SUBST([GLUT_LIB_DEPS])
1055AC_SUBST([GLUT_MESA_DEPS])
1056AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001057AC_SUBST([GLUT_PC_REQ_PRIV])
1058AC_SUBST([GLUT_PC_LIB_PRIV])
1059AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001060
1061dnl
1062dnl Program library dependencies
1063dnl Only libm is added here if necessary as the libraries should
1064dnl be pulled in by the linker
1065dnl
1066if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001067 case "$host_os" in
1068 solaris*)
1069 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1070 ;;
1071 *)
1072 APP_LIB_DEPS="-lm"
1073 ;;
1074 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001075fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001076AC_SUBST([APP_LIB_DEPS])
1077AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001078
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001079dnl
1080dnl Gallium configuration
1081dnl
1082AC_ARG_ENABLE([gallium],
1083 [AS_HELP_STRING([--disable-gallium],
1084 [build gallium @<:@default=enabled@:>@])],
1085 [enable_gallium="$enableval"],
1086 [enable_gallium=yes])
1087if test "x$enable_gallium" = xyes; then
1088 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1089fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001090
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001091dnl
1092dnl Gallium state trackers configuration
1093dnl
1094AC_ARG_WITH([state-trackers],
1095 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1096 [comma delimited state_trackers list, e.g.
1097 "egl,glx" @<:@default=auto@:>@])],
1098 [with_state_trackers="$withval"],
1099 [with_state_trackers=yes])
1100
1101case "$with_state_trackers" in
1102no)
1103 GALLIUM_STATE_TRACKERS_DIRS=""
1104 ;;
1105yes)
1106 # look at what else is built
1107 case "$mesa_driver" in
1108 dri)
1109 GALLIUM_STATE_TRACKERS_DIRS=egl
1110 ;;
1111 esac
1112 ;;
1113*)
1114 # verify the requested state tracker exist
1115 state_trackers=`IFS=', '; echo $with_state_trackers`
1116 for tracker in $state_trackers; do
1117 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1118 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1119 done
1120 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1121 ;;
1122esac
1123
1124dnl
1125dnl Gallium Intel configuration
1126dnl
1127AC_ARG_ENABLE([gallium-intel],
1128 [AS_HELP_STRING([--disable-gallium-intel],
1129 [build gallium intel @<:@default=enabled@:>@])],
1130 [enable_gallium_intel="$enableval"],
1131 [enable_gallium_intel=yes])
1132if test "x$enable_gallium_intel" = xyes; then
1133 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001134 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001135fi
1136
1137dnl
1138dnl Gallium Radeon configuration
1139dnl
1140AC_ARG_ENABLE([gallium-radeon],
1141 [AS_HELP_STRING([--enable-gallium-radeon],
1142 [build gallium radeon @<:@default=disabled@:>@])],
1143 [enable_gallium_radeon="$enableval"],
1144 [enable_gallium_radeon=no])
1145if test "x$enable_gallium_radeon" = xyes; then
1146 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001147 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001148fi
1149
1150dnl
1151dnl Gallium Radeon configuration
1152dnl
1153AC_ARG_ENABLE([gallium-nouveau],
1154 [AS_HELP_STRING([--enable-gallium-nouveau],
1155 [build gallium nouveau @<:@default=disabled@:>@])],
1156 [enable_gallium_nouveau="$enableval"],
1157 [enable_gallium_nouveau=no])
1158if test "x$enable_gallium_nouveau" = xyes; then
1159 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001160 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001161fi
1162
1163
Dan Nicholsondca1b792007-10-23 09:25:58 -07001164dnl Restore LDFLAGS and CPPFLAGS
1165LDFLAGS="$_SAVE_LDFLAGS"
1166CPPFLAGS="$_SAVE_CPPFLAGS"
1167
1168dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001169AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001170
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001171dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001172AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001173if test -f configs/current || test -L configs/current; then
1174 rm -f configs/current
1175fi
1176ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001177])
1178
1179AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001180
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001181dnl
1182dnl Output some configuration info for the user
1183dnl
1184echo ""
1185echo " prefix: $prefix"
1186echo " exec_prefix: $exec_prefix"
1187echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001188echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001189
1190dnl Driver info
1191echo ""
1192echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001193if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1194 echo " OSMesa: lib$OSMESA_LIB"
1195else
1196 echo " OSMesa: no"
1197fi
1198if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001199 # cleanup the drivers var
1200 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001201if test "x$DRI_DIRS" = x; then
1202 echo " DRI drivers: no"
1203else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001204 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001205fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001206 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001207fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001208echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001209
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001210echo ""
1211if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1212 echo " Gallium: yes"
1213 echo " Gallium dirs: $GALLIUM_DIRS"
1214 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001215 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001216 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001217 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001218 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1219else
1220 echo " Gallium: no"
1221fi
1222
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001223dnl Libraries
1224echo ""
1225echo " Shared libs: $enable_shared"
1226echo " Static libs: $enable_static"
1227echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001228echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001229echo " glut: $enable_glut"
1230
1231dnl Programs
1232# cleanup the programs var for display
1233program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1234if test "x$program_dirs" = x; then
1235 echo " Demos: no"
1236else
1237 echo " Demos: $program_dirs"
1238fi
1239
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001240dnl Compiler options
1241# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1242cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1243 $SED 's/^ *//;s/ */ /;s/ *$//'`
1244cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1245 $SED 's/^ *//;s/ */ /;s/ *$//'`
1246defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1247echo ""
1248echo " CFLAGS: $cflags"
1249echo " CXXFLAGS: $cxxflags"
1250echo " Macros: $defines"
1251
Dan Nicholsondca1b792007-10-23 09:25:58 -07001252echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001253echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001254echo ""