blob: 2f3f0beff10798561a88a6a72225b9df42281526 [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 ;;
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
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700378dnl OS-specific libraries
379OS_LIBS=""
380case "$host_os" in
381solaris*)
382 OS_LIBS="-lc"
383 if test "x$GXX" != xyes; then
384 OS_CPLUSPLUS_LIBS="-lCrun $OS_LIBS"
385 fi
386 ;;
387esac
Dan Nicholson871125a2008-06-04 13:00:35 -0700388
389dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800390dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800391dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800392dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700393default_driver="xlib"
394
395case "$host_os" in
396linux*)
397 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700398 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700399 esac
400 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100401*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700402 case "$host_cpu" in
403 i*86|x86_64) default_driver="dri";;
404 esac
405 ;;
406esac
407
Dan Nicholson297e16c2008-05-05 15:42:53 -0700408AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800409 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700410 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700411 [mesa_driver="$withval"],
412 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800413dnl Check for valid option
414case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800415xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800416 ;;
417*)
418 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
419 ;;
420esac
421
422dnl
423dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700424dnl
Dan Nicholson252671f2009-02-16 09:28:35 -0800425SRC_DIRS="mesa egl glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700426GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800427WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100428GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100429GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100430GALLIUM_WINSYS_DRM_DIRS=""
Jerome Glisse14f79d42008-12-18 13:36:07 +0100431GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000432GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100433GALLIUM_STATE_TRACKERS_DIRS=""
434
Dan Nicholson44d99142007-12-05 18:47:01 -0800435case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800436xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800437 DRIVER_DIRS="x11"
438 ;;
439dri)
440 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100441 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800442 WINDOW_SYSTEM="dri"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100443 GALLIUM_WINSYS_DIRS="drm $GALLIUM_WINSYS_DIRS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800444 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800445osmesa)
446 DRIVER_DIRS="osmesa"
447 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800448esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700449AC_SUBST([SRC_DIRS])
450AC_SUBST([GLU_DIRS])
451AC_SUBST([DRIVER_DIRS])
452AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100453AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100454AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100455AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000456AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100457AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100458AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700459
460dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800461dnl User supplied program configuration
462dnl
463if test -d "$srcdir/progs/demos"; then
464 default_demos=yes
465else
466 default_demos=no
467fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700468AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800469 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
470 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800471 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700472 [with_demos="$withval"],
473 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800474if test "x$with_demos" = x; then
475 with_demos=no
476fi
477
478dnl If $with_demos is yes, directories will be added as libs available
479PROGRAM_DIRS=""
480case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700481no) ;;
482yes)
483 # If the driver isn't osmesa, we have libGL and can build xdemos
484 if test "$mesa_driver" != osmesa; then
485 PROGRAM_DIRS="xdemos"
486 fi
487 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800488*)
489 # verify the requested demos directories exist
490 demos=`IFS=,; echo $with_demos`
491 for demo in $demos; do
492 test -d "$srcdir/progs/$demo" || \
493 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
494 done
495 PROGRAM_DIRS="$demos"
496 ;;
497esac
498
499dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700500dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700501dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700502dnl
503if test -n "$PKG_CONFIG"; then
504 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700505 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700506 x11_pkgconfig=yes
507 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700508 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700509 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700510 ])
511 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700512else
513 x11_pkgconfig=no
514fi
515dnl Use the autoconf macro if no pkg-config files
516if test "$x11_pkgconfig" = no; then
517 AC_PATH_XTRA
518fi
519
Dan Nicholson99803a42008-07-01 09:03:15 -0700520dnl Try to tell the user that the --x-* options are only used when
521dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
522m4_divert_once([HELP_BEGIN],
523[These options are only used when the X libraries cannot be found by the
524pkg-config utility.])
525
Dan Nicholson44d99142007-12-05 18:47:01 -0800526dnl We need X for xlib and dri, so bomb now if it's not found
527case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800528xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800529 if test "$no_x" = yes; then
530 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
531 fi
532 ;;
533esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700534
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700535dnl XCB - this is only used for GLX right now
536AC_ARG_ENABLE([xcb],
537 [AS_HELP_STRING([--enable-xcb],
538 [use XCB for GLX @<:@default=disabled@:>@])],
539 [enable_xcb="$enableval"],
540 [enable_xcb=no])
541if test "x$enable_xcb" = xyes; then
542 DEFINES="$DEFINES -DUSE_XCB"
543else
544 enable_xcb=no
545fi
546
Dan Nicholson44d99142007-12-05 18:47:01 -0800547dnl
548dnl libGL configuration per driver
549dnl
550case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800551xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800552 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700553 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800554 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800555 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
556 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800557 else
558 # should check these...
559 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
560 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800561 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
562 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800563 fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700564 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800565 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800566
567 # if static, move the external libraries to the programs
568 # and empty the libraries for libGL
569 if test "$enable_static" = yes; then
570 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
571 GL_LIB_DEPS=""
572 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800573 ;;
574dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800575 # DRI must be shared, I think
576 if test "$enable_static" = yes; then
577 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
578 fi
579
Dan Nicholson44d99142007-12-05 18:47:01 -0800580 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700581 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
582 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800583 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
584 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800585
586 # find the DRI deps for libGL
587 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700588 # add xcb modules if necessary
589 dri_modules="x11 xext xxf86vm xdamage xfixes"
590 if test "$enable_xcb" = yes; then
591 dri_modules="$dri_modules x11-xcb xcb-glx"
592 fi
593
594 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800595 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800596 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
597 GL_LIB_DEPS="$DRIGL_LIBS"
598 else
599 # should check these...
600 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
601 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800602 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
603 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700604
605 # XCB can only be used from pkg-config
606 if test "$enable_xcb" = yes; then
607 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800608 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700609 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
610 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
611 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800612 fi
613
614 # need DRM libs, -lpthread, etc.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700615 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800616 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS $OS_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800617 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800618osmesa)
619 # No libGL for osmesa
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700620 GL_LIB_DEPS="$OS_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800621 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800622esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700623AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800624AC_SUBST([GL_PC_REQ_PRIV])
625AC_SUBST([GL_PC_LIB_PRIV])
626AC_SUBST([GL_PC_CFLAGS])
627AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700628
629dnl
630dnl More X11 setup
631dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800632if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700633 DEFINES="$DEFINES -DUSE_XSHM"
634fi
635
636dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800637dnl More DRI setup
638dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700639AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800640 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800641 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700642 [GLX_USE_TLS="$enableval"],
643 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800644dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700645AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800646 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700647 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700648 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700649 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700650AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800651dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700652AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800653 [AS_HELP_STRING([--disable-driglx-direct],
654 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700655 [driglx_direct="$enableval"],
656 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800657dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700658AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800659 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700660 [comma delimited DRI drivers list, e.g.
661 "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700662 [with_dri_drivers="$withval"],
663 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800664if test "x$with_dri_drivers" = x; then
665 with_dri_drivers=no
666fi
667
668dnl If $with_dri_drivers is yes, directories will be added through
669dnl platform checks
670DRI_DIRS=""
671case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100672no) ;;
673yes)
674 DRI_DIRS="yes"
675 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800676*)
677 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700678 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800679 for driver in $dri_drivers; do
680 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
681 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
682 done
683 DRI_DIRS="$dri_drivers"
684 ;;
685esac
686
Dan Nicholson44d99142007-12-05 18:47:01 -0800687dnl Just default to no EGL for now
688USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700689AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800690
691dnl Set DRI_DIRS, DEFINES and LIB_DEPS
692if test "$mesa_driver" = dri; then
693 # Use TLS in GLX?
694 if test "x$GLX_USE_TLS" = xyes; then
695 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
696 fi
697
698 if test "x$USING_EGL" = x1; then
699 PROGRAM_DIRS="egl"
700 fi
701
702 # Platform specific settings and drivers to build
703 case "$host_os" in
704 linux*)
705 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800706 if test "x$driglx_direct" = xyes; then
707 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
708 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100709 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800710
711 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800712 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800713 # ffb, gamma, and sis are missing because they have not be
714 # converted to use the new interface. i810 are missing
715 # because there is no x86-64 system where they could *ever*
716 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100717 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800718 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300719 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800720 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800721 ;;
722 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800723 # Build only the drivers for cards that exist on PowerPC.
724 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100725 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300726 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800727 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800728 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000729 sparc*)
730 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100731 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000732 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000733 fi
734 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800735 esac
736 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700737 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800738 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
739 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
740 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
741 if test "x$driglx_direct" = xyes; then
742 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
743 fi
744 if test "x$GXX" = xyes; then
745 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
746 fi
747
Dan Nicholsona76e2452007-12-07 11:25:08 -0800748 # ffb and gamma are missing because they have not been converted
749 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100750 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800751 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300752 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800753 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800754 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700755 solaris*)
756 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
757 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
758 if test "x$driglx_direct" = xyes; then
759 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
760 fi
761 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800762 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800763
764 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100765 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholson112a40e2008-02-21 10:17:19 -0800766 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
George Sapountzis280bf892008-05-11 14:43:40 +0300767 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800768 fi
769
Dan Nicholson44d99142007-12-05 18:47:01 -0800770 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
771
772 # Check for expat
773 EXPAT_INCLUDES=""
774 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700775 AC_ARG_WITH([expat],
776 [AS_HELP_STRING([--with-expat=DIR],
777 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800778 EXPAT_INCLUDES="-I$withval/include"
779 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
780 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
781 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
782 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700783 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
784 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
785 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800786
787 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700788 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800789fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700790AC_SUBST([DRI_DIRS])
791AC_SUBST([EXPAT_INCLUDES])
792AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800793
794dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700795dnl OSMesa configuration
796dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800797if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800798 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800799else
Dan Nicholson544ab202007-12-30 08:41:53 -0800800 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800801fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700802AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800803 [AS_HELP_STRING([--enable-gl-osmesa],
804 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700805 [gl_osmesa="$enableval"],
806 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800807if test "x$gl_osmesa" = xyes; then
808 if test "$mesa_driver" = osmesa; then
809 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800810 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800811 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800812 fi
813fi
814
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800815dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700816AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800817 [AS_HELP_STRING([--with-osmesa-bits=BITS],
818 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700819 [osmesa_bits="$withval"],
820 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800821if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
822 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
823 osmesa_bits=8
824fi
825case "x$osmesa_bits" in
826x8)
827 OSMESA_LIB=OSMesa
828 ;;
829x16|x32)
830 OSMESA_LIB="OSMesa$osmesa_bits"
831 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
832 ;;
833*)
834 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
835 ;;
836esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700837AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800838
Dan Nicholson979ff512007-12-05 18:47:01 -0800839case "$mesa_driver" in
840osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700841 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800842 if test "$enable_static" = no; then
Adam Jackson66611f22008-02-15 13:49:12 -0500843 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800844 else
845 OSMESA_LIB_DEPS=""
846 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800847 OSMESA_MESA_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800848 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800849 ;;
850*)
851 # Link OSMesa to libGL otherwise
852 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700853 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800854 if test "$enable_static" = no; then
855 OSMESA_MESA_DEPS='-l$(GL_LIB)'
856 else
857 OSMESA_MESA_DEPS=""
858 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800859 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800860 ;;
861esac
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700862if test "$enable_static" = no; then
863 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS $OS_LIBS"
864fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800865OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV $OS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700866AC_SUBST([OSMESA_LIB_DEPS])
867AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800868AC_SUBST([OSMESA_PC_REQ])
869AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700870
871dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800872dnl EGL configuration
873dnl
874if test "$x11_pkgconfig" = yes; then
875 PKG_CHECK_MODULES([EGL],[x11])
876 EGL_LIB_DEPS="$EGL_LIBS"
877else
878 # should check these...
879 EGL_LIB_DEPS="$X_LIBS -lX11"
880fi
881EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS $OS_LIBS"
882AC_SUBST([EGL_LIB_DEPS])
883
884dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700885dnl GLU configuration
886dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700887AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800888 [AS_HELP_STRING([--disable-glu],
889 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700890 [enable_glu="$enableval"],
891 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700892if test "x$enable_glu" = xyes; then
893 SRC_DIRS="$SRC_DIRS glu"
894
Dan Nicholson979ff512007-12-05 18:47:01 -0800895 case "$mesa_driver" in
896 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800897 # If GLU is available and we have libOSMesa (not 16 or 32),
898 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800899 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800900 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
901 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700902
Dan Nicholson979ff512007-12-05 18:47:01 -0800903 # Link libGLU to libOSMesa instead of libGL
904 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800905 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800906 if test "$enable_static" = no; then
907 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
908 else
909 GLU_MESA_DEPS=""
910 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800911 ;;
912 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800913 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800914 GLU_PC_REQ="gl"
915 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800916 if test "$enable_static" = no; then
917 GLU_LIB_DEPS="-lm"
918 GLU_MESA_DEPS='-l$(GL_LIB)'
919 else
920 GLU_LIB_DEPS=""
921 GLU_MESA_DEPS=""
922 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
923 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800924 ;;
925 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700926fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700927if test "$enable_static" = no; then
928 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
929fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800930GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700931AC_SUBST([GLU_LIB_DEPS])
932AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800933AC_SUBST([GLU_PC_REQ])
934AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800935AC_SUBST([GLU_PC_LIB_PRIV])
936AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700937
938dnl
939dnl GLw configuration
940dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700941AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800942 [AS_HELP_STRING([--disable-glw],
943 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700944 [enable_glw="$enableval"],
945 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800946dnl Don't build GLw on osmesa
947if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
948 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
949 enable_glw=no
950fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700951AC_ARG_ENABLE([motif],
952 [AS_HELP_STRING([--enable-motif],
953 [use Motif widgets in GLw @<:@default=disabled@:>@])],
954 [enable_motif="$enableval"],
955 [enable_motif=no])
956
Dan Nicholsondca1b792007-10-23 09:25:58 -0700957if test "x$enable_glw" = xyes; then
958 SRC_DIRS="$SRC_DIRS glw"
959 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700960 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800961 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700962 GLW_LIB_DEPS="$GLW_LIBS"
963 else
964 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700965 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800966 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
967 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700968 fi
969
970 GLW_SOURCES="GLwDrawA.c"
971 MOTIF_CFLAGS=
972 if test "x$enable_motif" = xyes; then
973 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
974 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
975 if test "x$MOTIF_CONFIG" != xno; then
976 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
977 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
978 else
979 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
980 [AC_MSG_ERROR([Can't locate Motif headers])])
981 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
982 [AC_MSG_ERROR([Can't locate Motif Xm library])])
983 fi
984 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
985 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800986 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
987 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700988 fi
989
Dan Nicholson88586332007-11-15 08:59:57 -0800990 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800991 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800992 if test "$enable_static" = no; then
993 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700994 GLW_LIB_DEPS="$GLW_LIB_DEPS $OS_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800995 else
996 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
997 GLW_LIB_DEPS=""
998 GLW_MESA_DEPS=""
999 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001000fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001001AC_SUBST([GLW_LIB_DEPS])
1002AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001003AC_SUBST([GLW_SOURCES])
1004AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001005AC_SUBST([GLW_PC_REQ_PRIV])
1006AC_SUBST([GLW_PC_LIB_PRIV])
1007AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001008
1009dnl
1010dnl GLUT configuration
1011dnl
1012if test -f "$srcdir/include/GL/glut.h"; then
1013 default_glut=yes
1014else
1015 default_glut=no
1016fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001017AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001018 [AS_HELP_STRING([--disable-glut],
1019 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001020 [enable_glut="$enableval"],
1021 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001022
1023dnl Can't build glut if GLU not available
1024if test "x$enable_glu$enable_glut" = xnoyes; then
1025 AC_MSG_WARN([Disabling glut since GLU is disabled])
1026 enable_glut=no
1027fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001028dnl Don't build glut on osmesa
1029if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1030 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1031 enable_glut=no
1032fi
1033
Dan Nicholsondca1b792007-10-23 09:25:58 -07001034if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001035 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001036 GLUT_CFLAGS=""
1037 if test "x$GCC" = xyes; then
1038 GLUT_CFLAGS="-fexceptions"
1039 fi
1040 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001041 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001042 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001043 GLUT_LIB_DEPS="$GLUT_LIBS"
1044 else
1045 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001046 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001047 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1048 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001049 fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001050 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm $OS_LIBS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001051 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm $OS_LIBS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001052
1053 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001054 if test "$with_demos" = yes; then
1055 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1056 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001057
Dan Nicholson88586332007-11-15 08:59:57 -08001058 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1059 if test "$enable_static" = no; then
1060 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1061 else
1062 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1063 GLUT_LIB_DEPS=""
1064 GLUT_MESA_DEPS=""
1065 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001066fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001067AC_SUBST([GLUT_LIB_DEPS])
1068AC_SUBST([GLUT_MESA_DEPS])
1069AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001070AC_SUBST([GLUT_PC_REQ_PRIV])
1071AC_SUBST([GLUT_PC_LIB_PRIV])
1072AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001073
1074dnl
1075dnl Program library dependencies
1076dnl Only libm is added here if necessary as the libraries should
1077dnl be pulled in by the linker
1078dnl
1079if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001080 case "$host_os" in
1081 solaris*)
1082 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1083 ;;
1084 *)
1085 APP_LIB_DEPS="-lm"
1086 ;;
1087 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001088fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001089AC_SUBST([APP_LIB_DEPS])
1090AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001091
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001092dnl
1093dnl Gallium configuration
1094dnl
1095AC_ARG_ENABLE([gallium],
1096 [AS_HELP_STRING([--disable-gallium],
1097 [build gallium @<:@default=enabled@:>@])],
1098 [enable_gallium="$enableval"],
1099 [enable_gallium=yes])
1100if test "x$enable_gallium" = xyes; then
1101 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1102fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001103
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001104dnl
1105dnl Gallium state trackers configuration
1106dnl
1107AC_ARG_WITH([state-trackers],
1108 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1109 [comma delimited state_trackers list, e.g.
1110 "egl,glx" @<:@default=auto@:>@])],
1111 [with_state_trackers="$withval"],
1112 [with_state_trackers=yes])
1113
1114case "$with_state_trackers" in
1115no)
1116 GALLIUM_STATE_TRACKERS_DIRS=""
1117 ;;
1118yes)
1119 # look at what else is built
1120 case "$mesa_driver" in
1121 dri)
1122 GALLIUM_STATE_TRACKERS_DIRS=egl
1123 ;;
1124 esac
1125 ;;
1126*)
1127 # verify the requested state tracker exist
1128 state_trackers=`IFS=', '; echo $with_state_trackers`
1129 for tracker in $state_trackers; do
1130 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1131 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1132 done
1133 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1134 ;;
1135esac
1136
1137dnl
1138dnl Gallium Intel configuration
1139dnl
1140AC_ARG_ENABLE([gallium-intel],
1141 [AS_HELP_STRING([--disable-gallium-intel],
1142 [build gallium intel @<:@default=enabled@:>@])],
1143 [enable_gallium_intel="$enableval"],
1144 [enable_gallium_intel=yes])
1145if test "x$enable_gallium_intel" = xyes; then
1146 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001147 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001148fi
1149
1150dnl
1151dnl Gallium Radeon configuration
1152dnl
1153AC_ARG_ENABLE([gallium-radeon],
1154 [AS_HELP_STRING([--enable-gallium-radeon],
1155 [build gallium radeon @<:@default=disabled@:>@])],
1156 [enable_gallium_radeon="$enableval"],
1157 [enable_gallium_radeon=no])
1158if test "x$enable_gallium_radeon" = xyes; then
1159 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001160 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001161fi
1162
1163dnl
1164dnl Gallium Radeon configuration
1165dnl
1166AC_ARG_ENABLE([gallium-nouveau],
1167 [AS_HELP_STRING([--enable-gallium-nouveau],
1168 [build gallium nouveau @<:@default=disabled@:>@])],
1169 [enable_gallium_nouveau="$enableval"],
1170 [enable_gallium_nouveau=no])
1171if test "x$enable_gallium_nouveau" = xyes; then
1172 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001173 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001174fi
1175
1176
Dan Nicholsondca1b792007-10-23 09:25:58 -07001177dnl Restore LDFLAGS and CPPFLAGS
1178LDFLAGS="$_SAVE_LDFLAGS"
1179CPPFLAGS="$_SAVE_CPPFLAGS"
1180
1181dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001182AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001183
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001184dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001185AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001186if test -f configs/current || test -L configs/current; then
1187 rm -f configs/current
1188fi
1189ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001190])
1191
1192AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001193
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001194dnl
1195dnl Output some configuration info for the user
1196dnl
1197echo ""
1198echo " prefix: $prefix"
1199echo " exec_prefix: $exec_prefix"
1200echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001201echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001202
1203dnl Driver info
1204echo ""
1205echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001206if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1207 echo " OSMesa: lib$OSMESA_LIB"
1208else
1209 echo " OSMesa: no"
1210fi
1211if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001212 # cleanup the drivers var
1213 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001214if test "x$DRI_DIRS" = x; then
1215 echo " DRI drivers: no"
1216else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001217 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001218fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001219 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001220fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001221echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001222
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001223echo ""
1224if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1225 echo " Gallium: yes"
1226 echo " Gallium dirs: $GALLIUM_DIRS"
1227 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001228 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001229 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001230 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001231 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1232else
1233 echo " Gallium: no"
1234fi
1235
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001236dnl Libraries
1237echo ""
1238echo " Shared libs: $enable_shared"
1239echo " Static libs: $enable_static"
1240echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001241echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001242echo " glut: $enable_glut"
1243
1244dnl Programs
1245# cleanup the programs var for display
1246program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1247if test "x$program_dirs" = x; then
1248 echo " Demos: no"
1249else
1250 echo " Demos: $program_dirs"
1251fi
1252
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001253dnl Compiler options
1254# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1255cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1256 $SED 's/^ *//;s/ */ /;s/ *$//'`
1257cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1258 $SED 's/^ *//;s/ */ /;s/ *$//'`
1259defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1260echo ""
1261echo " CFLAGS: $cflags"
1262echo " CXXFLAGS: $cxxflags"
1263echo " Macros: $defines"
1264
Dan Nicholsondca1b792007-10-23 09:25:58 -07001265echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001266echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001267echo ""