blob: 2984ee24a0374472494d0dbbc9900ba65a26b1b0 [file] [log] [blame]
Dan Nicholsondca1b792007-10-23 09:25:58 -07001dnl Process this file with autoconf to create configure.
2
Dan Nicholson297e16c2008-05-05 15:42:53 -07003AC_PREREQ([2.59])
Dan Nicholsondca1b792007-10-23 09:25:58 -07004
Dan Nicholson00994ac2008-04-30 15:06:00 -07005dnl Versioning - scrape the version from configs/default
6m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
Dan Nicholson356f3112009-04-29 06:49:27 -07008m4_ifval(mesa_version,,
9 [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070010
Dan Nicholsone97ab722008-07-01 08:55:42 -070011dnl Tell the user about autoconf.html in the --help output
12m4_divert_once([HELP_END], [
13See docs/autoconf.html for more details on the options for Mesa.])
14
Dan Nicholson00994ac2008-04-30 15:06:00 -070015AC_INIT([Mesa],[mesa_version],
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -080016 [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
Dan Nicholson297e16c2008-05-05 15:42:53 -070017AC_CONFIG_AUX_DIR([bin])
Dan Nicholsondca1b792007-10-23 09:25:58 -070018AC_CANONICAL_HOST
19
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070020dnl Versions for external dependencies
Eric Anholt859828c2009-10-08 17:18:12 -070021LIBDRM_REQUIRED=2.4.15
Kristian Høgsberg154a9e52008-12-01 21:44:03 -050022DRI2PROTO_REQUIRED=1.99.3
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -070023
Dan Nicholsondca1b792007-10-23 09:25:58 -070024dnl Check for progs
25AC_PROG_CPP
26AC_PROG_CC
27AC_PROG_CXX
Dan Nicholson297e16c2008-05-05 15:42:53 -070028AC_CHECK_PROGS([MAKE], [gmake make])
29AC_PATH_PROG([MKDEP], [makedepend])
30AC_PATH_PROG([SED], [sed])
Dan Nicholson41b00702007-12-12 08:48:30 -080031
Dan Nicholsonbc302b22009-05-22 09:39:02 -070032dnl Our fallback install-sh is a symlink to minstall. Use the existing
33dnl configuration in that case.
34AC_PROG_INSTALL
35test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'
36
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070037dnl We need a POSIX shell for parts of the build. Assume we have one
38dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070039case "$host_os" in
40solaris*)
41 # Solaris /bin/sh is too old/non-POSIX compliant
42 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070043 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070044 ;;
45esac
46
Dan Nicholsondb7fc632008-03-07 11:48:09 -080047MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050048dnl Ask gcc where it's keeping its secret headers
49if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080050 for dir in include include-fixed; do
51 GCC_INCLUDES=`$CC -print-file-name=$dir`
52 if test "x$GCC_INCLUDES" != x && \
53 test "$GCC_INCLUDES" != "$dir" && \
54 test -d "$GCC_INCLUDES"; then
55 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
56 fi
57 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050058fi
Dan Nicholson297e16c2008-05-05 15:42:53 -070059AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050060
Dan Nicholson41b00702007-12-12 08:48:30 -080061dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -070062m4_ifndef([PKG_PROG_PKG_CONFIG],
63 [m4_fatal([Could not locate the pkg-config autoconf macros.
64 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
65 are in a different location, try setting the environment variable
66 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070067PKG_PROG_PKG_CONFIG()
68
69dnl LIB_DIR - library basename
70LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -070071AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -070072
73dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
74_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070075AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
76AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -070077
78dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
79_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070080AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
81AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070082
83dnl Compiler macros
84DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -070085AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070086case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -070087linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -080088 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -070089 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070090solaris*)
91 DEFINES="$DEFINES -DPTHREADS -DSVR4"
92 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -070093esac
94
95dnl Add flags for gcc and g++
96if test "x$GCC" = xyes; then
97 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
Dan Nicholson0c275b62008-01-15 22:52:25 -080098
99 # Work around aliasing bugs - developers should comment this out
100 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700101fi
102if test "x$GXX" = xyes; then
103 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -0800104
105 # Work around aliasing bugs - developers should comment this out
106 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700107fi
108
109dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700110AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700111 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700112AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700113 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700114AC_SUBST([OPT_FLAGS])
115AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700116
117dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600118dnl Hacks to enable 32 or 64 bit build
119dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700120AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600121 [AS_HELP_STRING([--enable-32-bit],
122 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700123 [enable_32bit="$enableval"],
124 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600125)
126if test "x$enable_32bit" = xyes; then
127 if test "x$GCC" = xyes; then
128 CFLAGS="$CFLAGS -m32"
Marc Dietrichc705e722009-08-31 08:56:33 -0700129 ARCH_FLAGS="$ARCH_FLAGS -m32"
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600130 fi
131 if test "x$GXX" = xyes; then
132 CXXFLAGS="$CXXFLAGS -m32"
133 fi
134fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700135AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600136 [AS_HELP_STRING([--enable-64-bit],
137 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700138 [enable_64bit="$enableval"],
139 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600140)
141if test "x$enable_64bit" = xyes; then
142 if test "x$GCC" = xyes; then
143 CFLAGS="$CFLAGS -m64"
144 fi
145 if test "x$GXX" = xyes; then
146 CXXFLAGS="$CXXFLAGS -m64"
147 fi
148fi
149
150dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800151dnl shared/static libraries, mimic libtool options
152dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700153AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800154 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800155 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700156 [enable_static="$enableval"],
157 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800158)
159case "x$enable_static" in
160xyes|xno ) ;;
161x ) enable_static=no ;;
162* )
163 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
164 ;;
165esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700166AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800167 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800168 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700169 [enable_shared="$enableval"],
170 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800171)
172case "x$enable_shared" in
173xyes|xno ) ;;
174x ) enable_shared=yes ;;
175* )
176 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
177 ;;
178esac
179
180dnl Can't have static and shared libraries, default to static if user
181dnl explicitly requested. If both disabled, set to static since shared
182dnl was explicitly requirested.
183case "x$enable_static$enable_shared" in
184xyesyes )
185 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
186 enable_shared=no
187 ;;
188xnono )
189 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
190 enable_static=yes
191 ;;
192esac
193
194dnl
195dnl mklib options
196dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700197AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800198if test "$enable_static" = yes; then
199 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
200fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700201AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800202
Dan Nicholson23656c42007-12-12 09:02:31 -0800203dnl
204dnl other compiler options
205dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700206AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800207 [AS_HELP_STRING([--enable-debug],
208 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700209 [enable_debug="$enableval"],
210 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800211)
212if test "x$enable_debug" = xyes; then
213 DEFINES="$DEFINES -DDEBUG"
214 if test "x$GCC" = xyes; then
215 CFLAGS="$CFLAGS -g"
216 fi
217 if test "x$GXX" = xyes; then
218 CXXFLAGS="$CXXFLAGS -g"
219 fi
220fi
Dan Nicholson88586332007-11-15 08:59:57 -0800221
222dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700223dnl library names
224dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800225if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800226 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800227else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700228 case "$host_os" in
229 darwin* )
230 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100231 cygwin* )
232 LIB_EXTENSION='dll' ;;
Tom Fogal9282edf2009-10-13 10:55:33 -0700233 aix* )
234 LIB_EXTENSION='a' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700235 * )
236 LIB_EXTENSION='so' ;;
237 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800238fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800239
240GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
241GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
242GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
243GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
244OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
245
246GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
247GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
248GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
249GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
250OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
251
Dan Nicholson297e16c2008-05-05 15:42:53 -0700252AC_SUBST([GL_LIB_NAME])
253AC_SUBST([GLU_LIB_NAME])
254AC_SUBST([GLUT_LIB_NAME])
255AC_SUBST([GLW_LIB_NAME])
256AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700257
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700258AC_SUBST([GL_LIB_GLOB])
259AC_SUBST([GLU_LIB_GLOB])
260AC_SUBST([GLUT_LIB_GLOB])
261AC_SUBST([GLW_LIB_GLOB])
262AC_SUBST([OSMESA_LIB_GLOB])
263
Dan Nicholsondca1b792007-10-23 09:25:58 -0700264dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700265dnl Arch/platform-specific settings
266dnl
267AC_ARG_ENABLE([asm],
268 [AS_HELP_STRING([--disable-asm],
269 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
270 [enable_asm="$enableval"],
271 [enable_asm=yes]
272)
273asm_arch=""
274ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800275MESA_ASM_SOURCES=""
276GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700277AC_MSG_CHECKING([whether to enable assembly])
278test "x$enable_asm" = xno && AC_MSG_RESULT([no])
279# disable if cross compiling on x86/x86_64 since we must run gen_matypes
280if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
281 case "$host_cpu" in
282 i?86 | x86_64)
283 enable_asm=no
284 AC_MSG_RESULT([no, cross compiling])
285 ;;
286 esac
287fi
288# check for supported arches
289if test "x$enable_asm" = xyes; then
290 case "$host_cpu" in
291 i?86)
292 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100293 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700294 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
295 ;;
296 esac
297 ;;
298 x86_64)
299 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100300 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700301 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
302 ;;
303 esac
304 ;;
305 powerpc)
306 case "$host_os" in
307 linux*)
308 asm_arch=ppc
309 ;;
310 esac
311 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800312 sparc*)
313 case "$host_os" in
314 linux*)
315 asm_arch=sparc
316 ;;
317 esac
318 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700319 esac
320
321 case "$asm_arch" in
322 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800323 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800324 MESA_ASM_SOURCES='$(X86_SOURCES)'
325 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700326 AC_MSG_RESULT([yes, x86])
327 ;;
328 x86_64)
329 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800330 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
331 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700332 AC_MSG_RESULT([yes, x86_64])
333 ;;
334 ppc)
335 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800336 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700337 AC_MSG_RESULT([yes, ppc])
338 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800339 sparc)
340 ASM_FLAGS="-DUSE_SPARC_ASM"
341 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
342 GLAPI_ASM_SOURCES='$(SPARC_API)'
343 AC_MSG_RESULT([yes, sparc])
344 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700345 *)
346 AC_MSG_RESULT([no, platform not supported])
347 ;;
348 esac
349fi
350AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800351AC_SUBST([MESA_ASM_SOURCES])
352AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700353
354dnl PIC code macro
355MESA_PIC_FLAGS
356
357dnl Check to see if dlopen is in default libraries (like Solaris, which
358dnl has it in libc), or if libdl is needed to get it.
359AC_CHECK_FUNC([dlopen], [],
360 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
361
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700362dnl See if posix_memalign is available
363AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
364
Dan Nicholson871125a2008-06-04 13:00:35 -0700365dnl SELinux awareness.
366AC_ARG_ENABLE([selinux],
367 [AS_HELP_STRING([--enable-selinux],
368 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
369 [MESA_SELINUX="$enableval"],
370 [MESA_SELINUX=no])
371if test "x$enable_selinux" = "xyes"; then
372 AC_CHECK_HEADER([selinux/selinux.h],[],
373 [AC_MSG_ERROR([SELinux headers not found])])
374 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
375 [AC_MSG_ERROR([SELinux library not found])])
376 SELINUX_LIBS="-lselinux"
377 DEFINES="$DEFINES -DMESA_SELINUX"
378fi
379
Dan Nicholson871125a2008-06-04 13:00:35 -0700380dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800381dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800382dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800383dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700384default_driver="xlib"
385
386case "$host_os" in
387linux*)
388 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700389 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700390 esac
391 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100392*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700393 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500394 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700395 esac
396 ;;
397esac
398
Dan Nicholson297e16c2008-05-05 15:42:53 -0700399AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800400 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700401 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700402 [mesa_driver="$withval"],
403 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800404dnl Check for valid option
405case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800406xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800407 ;;
408*)
409 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
410 ;;
411esac
412
413dnl
414dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700415dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700416SRC_DIRS="mesa glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700417GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800418WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100419GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100420GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100421GALLIUM_WINSYS_DRM_DIRS=""
Younes Mantonf5474722009-09-27 19:49:06 -0400422GALLIUM_AUXILIARY_DIRS="rbug draw translate cso_cache pipebuffer tgsi sct rtasm util indices vl"
Jakob Bornecrantzd60b2c62009-06-24 02:42:41 +0200423GALLIUM_DRIVERS_DIRS="softpipe failover trace identity"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100424GALLIUM_STATE_TRACKERS_DIRS=""
425
Dan Nicholson44d99142007-12-05 18:47:01 -0800426case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800427xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800428 DRIVER_DIRS="x11"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100429 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800430 ;;
431dri)
432 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100433 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800434 WINDOW_SYSTEM="dri"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100435 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
Dan Nicholson44d99142007-12-05 18:47:01 -0800436 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800437osmesa)
438 DRIVER_DIRS="osmesa"
439 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800440esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700441AC_SUBST([SRC_DIRS])
442AC_SUBST([GLU_DIRS])
443AC_SUBST([DRIVER_DIRS])
444AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100445AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100446AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100447AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000448AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100449AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100450AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dave Airlieb0e8ac82009-02-15 17:03:47 +1000451AC_SUBST([RADEON_CFLAGS])
452AC_SUBST([RADEON_LDFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700453
454dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800455dnl User supplied program configuration
456dnl
457if test -d "$srcdir/progs/demos"; then
458 default_demos=yes
459else
460 default_demos=no
461fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700462AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800463 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
464 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800465 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700466 [with_demos="$withval"],
467 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800468if test "x$with_demos" = x; then
469 with_demos=no
470fi
471
472dnl If $with_demos is yes, directories will be added as libs available
473PROGRAM_DIRS=""
474case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700475no) ;;
476yes)
477 # If the driver isn't osmesa, we have libGL and can build xdemos
478 if test "$mesa_driver" != osmesa; then
479 PROGRAM_DIRS="xdemos"
480 fi
481 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800482*)
483 # verify the requested demos directories exist
484 demos=`IFS=,; echo $with_demos`
485 for demo in $demos; do
486 test -d "$srcdir/progs/$demo" || \
487 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
488 done
489 PROGRAM_DIRS="$demos"
490 ;;
491esac
492
493dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700494dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700495dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700496dnl
497if test -n "$PKG_CONFIG"; then
498 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700499 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700500 x11_pkgconfig=yes
501 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700502 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700503 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700504 ])
505 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700506else
507 x11_pkgconfig=no
508fi
509dnl Use the autoconf macro if no pkg-config files
510if test "$x11_pkgconfig" = no; then
511 AC_PATH_XTRA
512fi
513
Dan Nicholson99803a42008-07-01 09:03:15 -0700514dnl Try to tell the user that the --x-* options are only used when
515dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
516m4_divert_once([HELP_BEGIN],
517[These options are only used when the X libraries cannot be found by the
518pkg-config utility.])
519
Dan Nicholson44d99142007-12-05 18:47:01 -0800520dnl We need X for xlib and dri, so bomb now if it's not found
521case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800522xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800523 if test "$no_x" = yes; then
524 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
525 fi
526 ;;
527esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700528
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700529dnl XCB - this is only used for GLX right now
530AC_ARG_ENABLE([xcb],
531 [AS_HELP_STRING([--enable-xcb],
532 [use XCB for GLX @<:@default=disabled@:>@])],
533 [enable_xcb="$enableval"],
534 [enable_xcb=no])
535if test "x$enable_xcb" = xyes; then
536 DEFINES="$DEFINES -DUSE_XCB"
537else
538 enable_xcb=no
539fi
540
Dan Nicholson44d99142007-12-05 18:47:01 -0800541dnl
542dnl libGL configuration per driver
543dnl
544case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800545xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800546 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700547 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800548 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800549 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
550 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800551 else
552 # should check these...
553 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
554 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800555 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
556 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800557 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700558 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
559 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800560
561 # if static, move the external libraries to the programs
562 # and empty the libraries for libGL
563 if test "$enable_static" = yes; then
564 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
565 GL_LIB_DEPS=""
566 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800567 ;;
568dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800569 # DRI must be shared, I think
570 if test "$enable_static" = yes; then
571 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
572 fi
573
Dan Nicholson44d99142007-12-05 18:47:01 -0800574 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700575 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
576 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800577 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
578 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800579
Dave Airlieb0e8ac82009-02-15 17:03:47 +1000580 PKG_CHECK_MODULES([LIBDRM_RADEON], [libdrm_radeon], HAVE_LIBDRM_RADEON=yes, HAVE_LIBDRM_RADEON=no)
581
582 if test "$HAVE_LIBDRM_RADEON" = yes; then
583 RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
584 RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
585 fi
586
Dan Nicholson44d99142007-12-05 18:47:01 -0800587 # find the DRI deps for libGL
588 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700589 # add xcb modules if necessary
590 dri_modules="x11 xext xxf86vm xdamage xfixes"
591 if test "$enable_xcb" = yes; then
592 dri_modules="$dri_modules x11-xcb xcb-glx"
593 fi
594
595 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800596 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800597 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
598 GL_LIB_DEPS="$DRIGL_LIBS"
599 else
600 # should check these...
601 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
602 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800603 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
604 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700605
606 # XCB can only be used from pkg-config
607 if test "$enable_xcb" = yes; then
608 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800609 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700610 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
611 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
612 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800613 fi
614
615 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700616 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
617 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800618 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800619osmesa)
620 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700621 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800622 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800623esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700624AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800625AC_SUBST([GL_PC_REQ_PRIV])
626AC_SUBST([GL_PC_LIB_PRIV])
627AC_SUBST([GL_PC_CFLAGS])
628AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700629
630dnl
631dnl More X11 setup
632dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800633if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700634 DEFINES="$DEFINES -DUSE_XSHM"
635fi
636
637dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800638dnl More DRI setup
639dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700640AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800641 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800642 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700643 [GLX_USE_TLS="$enableval"],
644 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800645dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700646AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800647 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700648 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700649 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700650 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700651AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Chow Loong Jin35506de2009-10-28 14:34:14 +0800652dnl Extra search path for DRI drivers
653AC_ARG_WITH([dri-searchpath],
654 [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
655 [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
656 [DRI_DRIVER_SEARCH_DIR="$withval"],
657 [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
658AC_SUBST([DRI_DRIVER_SEARCH_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800659dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700660AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800661 [AS_HELP_STRING([--disable-driglx-direct],
662 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700663 [driglx_direct="$enableval"],
664 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800665dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700666AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800667 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700668 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200669 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700670 [with_dri_drivers="$withval"],
671 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800672if test "x$with_dri_drivers" = x; then
673 with_dri_drivers=no
674fi
675
676dnl If $with_dri_drivers is yes, directories will be added through
677dnl platform checks
678DRI_DIRS=""
679case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100680no) ;;
681yes)
682 DRI_DIRS="yes"
683 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800684*)
685 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700686 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800687 for driver in $dri_drivers; do
688 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
689 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
690 done
691 DRI_DIRS="$dri_drivers"
692 ;;
693esac
694
Dan Nicholson44d99142007-12-05 18:47:01 -0800695dnl Just default to no EGL for now
696USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700697AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800698
699dnl Set DRI_DIRS, DEFINES and LIB_DEPS
700if test "$mesa_driver" = dri; then
701 # Use TLS in GLX?
702 if test "x$GLX_USE_TLS" = xyes; then
703 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
704 fi
705
706 if test "x$USING_EGL" = x1; then
707 PROGRAM_DIRS="egl"
708 fi
709
710 # Platform specific settings and drivers to build
711 case "$host_os" in
712 linux*)
713 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800714 if test "x$driglx_direct" = xyes; then
715 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
716 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100717 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800718
719 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800720 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800721 # ffb, gamma, and sis are missing because they have not be
722 # converted to use the new interface. i810 are missing
723 # because there is no x86-64 system where they could *ever*
724 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100725 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400726 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300727 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800728 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800729 ;;
730 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800731 # Build only the drivers for cards that exist on PowerPC.
732 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100733 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400734 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800735 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800736 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000737 sparc*)
738 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100739 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400740 DRI_DIRS="mach64 r128 r200 r300 r600 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000741 fi
742 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800743 esac
744 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700745 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800746 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
747 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
748 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
749 if test "x$driglx_direct" = xyes; then
750 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
751 fi
752 if test "x$GXX" = xyes; then
753 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
754 fi
755
Dan Nicholsona76e2452007-12-07 11:25:08 -0800756 # ffb and gamma are missing because they have not been converted
757 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100758 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400759 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300760 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800761 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800762 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700763 gnu*)
764 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
765 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
766 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700767 solaris*)
768 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
769 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
770 if test "x$driglx_direct" = xyes; then
771 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
772 fi
773 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800774 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800775
776 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100777 if test "x$DRI_DIRS" = "xyes"; then
Corbin Simpson8e4657a2009-10-22 12:29:30 -0700778 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
Corbin Simpsonfd7ee2b2009-10-22 12:57:13 -0700779 savage sis tdfx unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800780 fi
781
Dan Nicholson44d99142007-12-05 18:47:01 -0800782 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
783
784 # Check for expat
785 EXPAT_INCLUDES=""
786 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700787 AC_ARG_WITH([expat],
788 [AS_HELP_STRING([--with-expat=DIR],
789 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800790 EXPAT_INCLUDES="-I$withval/include"
791 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
792 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
793 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
794 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700795 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
796 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
797 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800798
799 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700800 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800801fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700802AC_SUBST([DRI_DIRS])
803AC_SUBST([EXPAT_INCLUDES])
804AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800805
806dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700807dnl OSMesa configuration
808dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800809if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800810 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800811else
Dan Nicholson544ab202007-12-30 08:41:53 -0800812 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800813fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700814AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800815 [AS_HELP_STRING([--enable-gl-osmesa],
816 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700817 [gl_osmesa="$enableval"],
818 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800819if test "x$gl_osmesa" = xyes; then
820 if test "$mesa_driver" = osmesa; then
821 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800822 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800823 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800824 fi
825fi
826
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800827dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700828AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800829 [AS_HELP_STRING([--with-osmesa-bits=BITS],
830 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700831 [osmesa_bits="$withval"],
832 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800833if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
834 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
835 osmesa_bits=8
836fi
837case "x$osmesa_bits" in
838x8)
839 OSMESA_LIB=OSMesa
840 ;;
841x16|x32)
842 OSMESA_LIB="OSMesa$osmesa_bits"
843 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
844 ;;
845*)
846 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
847 ;;
848esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700849AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800850
Dan Nicholson979ff512007-12-05 18:47:01 -0800851case "$mesa_driver" in
852osmesa)
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
Dan Nicholson4795dd52009-06-04 19:42:08 -0700855 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800856 else
857 OSMESA_LIB_DEPS=""
858 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800859 OSMESA_MESA_DEPS=""
Dan Nicholson4795dd52009-06-04 19:42:08 -0700860 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800861 ;;
862*)
863 # Link OSMesa to libGL otherwise
864 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700865 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800866 if test "$enable_static" = no; then
867 OSMESA_MESA_DEPS='-l$(GL_LIB)'
868 else
869 OSMESA_MESA_DEPS=""
870 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800871 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800872 ;;
873esac
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700874OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700875AC_SUBST([OSMESA_LIB_DEPS])
876AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800877AC_SUBST([OSMESA_PC_REQ])
878AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700879
880dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800881dnl EGL configuration
882dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700883AC_ARG_ENABLE([egl],
884 [AS_HELP_STRING([--disable-egl],
885 [disable EGL library @<:@default=enabled@:>@])],
886 [enable_egl="$enableval"],
887 [enable_egl=yes])
888if test "x$enable_egl" = xyes; then
889 SRC_DIRS="$SRC_DIRS egl"
890
891 if test "$x11_pkgconfig" = yes; then
892 PKG_CHECK_MODULES([EGL], [x11])
893 EGL_LIB_DEPS="$EGL_LIBS"
894 else
895 # should check these...
896 EGL_LIB_DEPS="$X_LIBS -lX11"
897 fi
898 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800899fi
Dan Nicholson53b37342009-02-25 17:45:34 -0800900AC_SUBST([EGL_LIB_DEPS])
901
902dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700903dnl GLU configuration
904dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700905AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800906 [AS_HELP_STRING([--disable-glu],
907 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700908 [enable_glu="$enableval"],
909 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700910if test "x$enable_glu" = xyes; then
911 SRC_DIRS="$SRC_DIRS glu"
912
Dan Nicholson979ff512007-12-05 18:47:01 -0800913 case "$mesa_driver" in
914 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800915 # If GLU is available and we have libOSMesa (not 16 or 32),
916 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800917 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800918 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
919 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700920
Dan Nicholson979ff512007-12-05 18:47:01 -0800921 # Link libGLU to libOSMesa instead of libGL
922 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800923 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800924 if test "$enable_static" = no; then
925 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
926 else
927 GLU_MESA_DEPS=""
928 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800929 ;;
930 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800931 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800932 GLU_PC_REQ="gl"
933 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800934 if test "$enable_static" = no; then
935 GLU_LIB_DEPS="-lm"
936 GLU_MESA_DEPS='-l$(GL_LIB)'
937 else
938 GLU_LIB_DEPS=""
939 GLU_MESA_DEPS=""
940 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
941 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800942 ;;
943 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700944fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700945if test "$enable_static" = no; then
946 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
947fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800948GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700949AC_SUBST([GLU_LIB_DEPS])
950AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800951AC_SUBST([GLU_PC_REQ])
952AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800953AC_SUBST([GLU_PC_LIB_PRIV])
954AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700955
956dnl
957dnl GLw configuration
958dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700959AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800960 [AS_HELP_STRING([--disable-glw],
961 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700962 [enable_glw="$enableval"],
963 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800964dnl Don't build GLw on osmesa
965if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
966 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
967 enable_glw=no
968fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700969AC_ARG_ENABLE([motif],
970 [AS_HELP_STRING([--enable-motif],
971 [use Motif widgets in GLw @<:@default=disabled@:>@])],
972 [enable_motif="$enableval"],
973 [enable_motif=no])
974
Dan Nicholsondca1b792007-10-23 09:25:58 -0700975if test "x$enable_glw" = xyes; then
976 SRC_DIRS="$SRC_DIRS glw"
977 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700978 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800979 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700980 GLW_LIB_DEPS="$GLW_LIBS"
981 else
982 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700983 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800984 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
985 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700986 fi
987
988 GLW_SOURCES="GLwDrawA.c"
989 MOTIF_CFLAGS=
990 if test "x$enable_motif" = xyes; then
991 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
992 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
993 if test "x$MOTIF_CONFIG" != xno; then
994 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
995 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
996 else
997 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
998 [AC_MSG_ERROR([Can't locate Motif headers])])
999 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
1000 [AC_MSG_ERROR([Can't locate Motif Xm library])])
1001 fi
1002 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
1003 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001004 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
1005 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001006 fi
1007
Dan Nicholson88586332007-11-15 08:59:57 -08001008 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001009 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001010 if test "$enable_static" = no; then
1011 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001012 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001013 else
1014 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1015 GLW_LIB_DEPS=""
1016 GLW_MESA_DEPS=""
1017 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001018fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001019AC_SUBST([GLW_LIB_DEPS])
1020AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001021AC_SUBST([GLW_SOURCES])
1022AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001023AC_SUBST([GLW_PC_REQ_PRIV])
1024AC_SUBST([GLW_PC_LIB_PRIV])
1025AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001026
1027dnl
1028dnl GLUT configuration
1029dnl
1030if test -f "$srcdir/include/GL/glut.h"; then
1031 default_glut=yes
1032else
1033 default_glut=no
1034fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001035AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001036 [AS_HELP_STRING([--disable-glut],
1037 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001038 [enable_glut="$enableval"],
1039 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001040
1041dnl Can't build glut if GLU not available
1042if test "x$enable_glu$enable_glut" = xnoyes; then
1043 AC_MSG_WARN([Disabling glut since GLU is disabled])
1044 enable_glut=no
1045fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001046dnl Don't build glut on osmesa
1047if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1048 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1049 enable_glut=no
1050fi
1051
Dan Nicholsondca1b792007-10-23 09:25:58 -07001052if test "x$enable_glut" = xyes; then
1053 SRC_DIRS="$SRC_DIRS glut/glx"
1054 GLUT_CFLAGS=""
1055 if test "x$GCC" = xyes; then
1056 GLUT_CFLAGS="-fexceptions"
1057 fi
1058 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001059 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001060 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001061 GLUT_LIB_DEPS="$GLUT_LIBS"
1062 else
1063 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001064 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001065 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1066 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001067 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001068 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1069 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001070
1071 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001072 if test "$with_demos" = yes; then
1073 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1074 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001075
Dan Nicholson88586332007-11-15 08:59:57 -08001076 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1077 if test "$enable_static" = no; then
1078 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1079 else
1080 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1081 GLUT_LIB_DEPS=""
1082 GLUT_MESA_DEPS=""
1083 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001084fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001085AC_SUBST([GLUT_LIB_DEPS])
1086AC_SUBST([GLUT_MESA_DEPS])
1087AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001088AC_SUBST([GLUT_PC_REQ_PRIV])
1089AC_SUBST([GLUT_PC_LIB_PRIV])
1090AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001091
1092dnl
1093dnl Program library dependencies
1094dnl Only libm is added here if necessary as the libraries should
1095dnl be pulled in by the linker
1096dnl
1097if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001098 case "$host_os" in
1099 solaris*)
1100 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1101 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001102 cygwin*)
1103 APP_LIB_DEPS="-lX11"
1104 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001105 *)
1106 APP_LIB_DEPS="-lm"
1107 ;;
1108 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001109fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001110AC_SUBST([APP_LIB_DEPS])
1111AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001112
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001113dnl
1114dnl Gallium configuration
1115dnl
1116AC_ARG_ENABLE([gallium],
1117 [AS_HELP_STRING([--disable-gallium],
1118 [build gallium @<:@default=enabled@:>@])],
1119 [enable_gallium="$enableval"],
1120 [enable_gallium=yes])
1121if test "x$enable_gallium" = xyes; then
1122 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1123fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001124
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001125dnl
1126dnl Gallium state trackers configuration
1127dnl
1128AC_ARG_WITH([state-trackers],
1129 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1130 [comma delimited state_trackers list, e.g.
1131 "egl,glx" @<:@default=auto@:>@])],
1132 [with_state_trackers="$withval"],
1133 [with_state_trackers=yes])
1134
1135case "$with_state_trackers" in
1136no)
1137 GALLIUM_STATE_TRACKERS_DIRS=""
1138 ;;
1139yes)
1140 # look at what else is built
1141 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001142 xlib)
1143 GALLIUM_STATE_TRACKERS_DIRS=glx
1144 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001145 dri)
Dan Nicholson66f97862009-04-29 12:11:43 -07001146 test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001147 ;;
1148 esac
1149 ;;
1150*)
1151 # verify the requested state tracker exist
1152 state_trackers=`IFS=', '; echo $with_state_trackers`
1153 for tracker in $state_trackers; do
1154 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1155 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
Dan Nicholson66f97862009-04-29 12:11:43 -07001156
Chia-I Wue5d351d2009-12-23 11:18:00 +08001157 case "$tracker" in
1158 egl)
1159 if test "x$enable_egl" != xyes; then
1160 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1161 fi
1162 ;;
1163 xorg)
Dave Airliee9d6ab72009-09-21 13:26:48 +10001164 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
Jakob Bornecrantz5c4bdbd2009-10-15 01:24:53 +01001165 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
Dave Airliee9d6ab72009-09-21 13:26:48 +10001166 HAVE_XEXTPROTO_71="no")
Chia-I Wue5d351d2009-12-23 11:18:00 +08001167 ;;
1168 es)
1169 # mesa/es is required to build es state tracker
1170 SRC_DIRS="mesa/es $SRC_DIRS"
1171 ;;
1172 esac
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001173 done
1174 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1175 ;;
1176esac
1177
Joel Bosveld8acca482009-03-06 08:46:08 +09001178AC_ARG_WITH([xorg-driver-dir],
1179 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1180 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1181 [XORG_DRIVER_INSTALL_DIR="$withval"],
1182 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1183AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1184
Tom Fogal7085dce2009-08-13 19:40:30 -06001185AC_ARG_WITH([max-width],
1186 [AS_HELP_STRING([--with-max-width=N],
1187 [Maximum framebuffer width (4096)])],
1188 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1189 AS_IF([test "${withval}" -gt "4096"],
1190 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1191)
1192AC_ARG_WITH([max-height],
1193 [AS_HELP_STRING([--with-max-height=N],
1194 [Maximum framebuffer height (4096)])],
1195 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1196 AS_IF([test "${withval}" -gt "4096"],
1197 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1198)
1199
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001200dnl
1201dnl Gallium Intel configuration
1202dnl
1203AC_ARG_ENABLE([gallium-intel],
1204 [AS_HELP_STRING([--disable-gallium-intel],
1205 [build gallium intel @<:@default=enabled@:>@])],
1206 [enable_gallium_intel="$enableval"],
1207 [enable_gallium_intel=yes])
1208if test "x$enable_gallium_intel" = xyes; then
1209 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzf00da2a2009-09-29 16:07:11 -07001210 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001211fi
1212
1213dnl
1214dnl Gallium Radeon configuration
1215dnl
1216AC_ARG_ENABLE([gallium-radeon],
1217 [AS_HELP_STRING([--enable-gallium-radeon],
1218 [build gallium radeon @<:@default=disabled@:>@])],
1219 [enable_gallium_radeon="$enableval"],
1220 [enable_gallium_radeon=no])
1221if test "x$enable_gallium_radeon" = xyes; then
1222 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001223 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001224fi
1225
1226dnl
Thierry Vignaud1402ea82009-09-14 11:48:51 -06001227dnl Gallium Nouveau configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001228dnl
1229AC_ARG_ENABLE([gallium-nouveau],
1230 [AS_HELP_STRING([--enable-gallium-nouveau],
1231 [build gallium nouveau @<:@default=disabled@:>@])],
1232 [enable_gallium_nouveau="$enableval"],
1233 [enable_gallium_nouveau=no])
1234if test "x$enable_gallium_nouveau" = xyes; then
1235 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Ben Skeggsbc466be2009-06-04 10:19:04 +10001236 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001237fi
1238
1239
Dan Nicholsondca1b792007-10-23 09:25:58 -07001240dnl Restore LDFLAGS and CPPFLAGS
1241LDFLAGS="$_SAVE_LDFLAGS"
1242CPPFLAGS="$_SAVE_CPPFLAGS"
1243
1244dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001245AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001246
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001247dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001248AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001249if test -f configs/current || test -L configs/current; then
1250 rm -f configs/current
1251fi
1252ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001253])
1254
1255AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001256
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001257dnl
1258dnl Output some configuration info for the user
1259dnl
1260echo ""
1261echo " prefix: $prefix"
1262echo " exec_prefix: $exec_prefix"
1263echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001264echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001265
1266dnl Driver info
1267echo ""
1268echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001269if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1270 echo " OSMesa: lib$OSMESA_LIB"
1271else
1272 echo " OSMesa: no"
1273fi
1274if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001275 # cleanup the drivers var
1276 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001277if test "x$DRI_DIRS" = x; then
1278 echo " DRI drivers: no"
1279else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001280 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001281fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001282 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001283fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001284echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001285
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001286echo ""
1287if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1288 echo " Gallium: yes"
1289 echo " Gallium dirs: $GALLIUM_DIRS"
1290 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001291 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001292 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001293 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001294 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1295else
1296 echo " Gallium: no"
1297fi
1298
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001299dnl Libraries
1300echo ""
1301echo " Shared libs: $enable_shared"
1302echo " Static libs: $enable_static"
Dan Nicholson66f97862009-04-29 12:11:43 -07001303echo " EGL: $enable_egl"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001304echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001305echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001306echo " glut: $enable_glut"
1307
1308dnl Programs
1309# cleanup the programs var for display
1310program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1311if test "x$program_dirs" = x; then
1312 echo " Demos: no"
1313else
1314 echo " Demos: $program_dirs"
1315fi
1316
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001317dnl Compiler options
1318# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1319cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1320 $SED 's/^ *//;s/ */ /;s/ *$//'`
1321cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1322 $SED 's/^ *//;s/ */ /;s/ *$//'`
1323defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1324echo ""
1325echo " CFLAGS: $cflags"
1326echo " CXXFLAGS: $cxxflags"
1327echo " Macros: $defines"
1328
Dan Nicholsondca1b792007-10-23 09:25:58 -07001329echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001330echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001331echo ""