blob: 6622b0aa494ee14d7369178206b108b8bf8ea2f8 [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])
Dan Nicholson44d99142007-12-05 18:47:01 -0800652dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700653AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800654 [AS_HELP_STRING([--disable-driglx-direct],
655 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700656 [driglx_direct="$enableval"],
657 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800658dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700659AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800660 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700661 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200662 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700663 [with_dri_drivers="$withval"],
664 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800665if test "x$with_dri_drivers" = x; then
666 with_dri_drivers=no
667fi
668
669dnl If $with_dri_drivers is yes, directories will be added through
670dnl platform checks
671DRI_DIRS=""
672case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100673no) ;;
674yes)
675 DRI_DIRS="yes"
676 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800677*)
678 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700679 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800680 for driver in $dri_drivers; do
681 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
682 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
683 done
684 DRI_DIRS="$dri_drivers"
685 ;;
686esac
687
Dan Nicholson44d99142007-12-05 18:47:01 -0800688dnl Just default to no EGL for now
689USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700690AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800691
692dnl Set DRI_DIRS, DEFINES and LIB_DEPS
693if test "$mesa_driver" = dri; then
694 # Use TLS in GLX?
695 if test "x$GLX_USE_TLS" = xyes; then
696 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
697 fi
698
699 if test "x$USING_EGL" = x1; then
700 PROGRAM_DIRS="egl"
701 fi
702
703 # Platform specific settings and drivers to build
704 case "$host_os" in
705 linux*)
706 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800707 if test "x$driglx_direct" = xyes; then
708 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
709 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100710 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800711
712 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800713 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800714 # ffb, gamma, and sis are missing because they have not be
715 # converted to use the new interface. i810 are missing
716 # because there is no x86-64 system where they could *ever*
717 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100718 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400719 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300720 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800721 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800722 ;;
723 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800724 # Build only the drivers for cards that exist on PowerPC.
725 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100726 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400727 DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800728 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800729 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000730 sparc*)
731 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100732 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400733 DRI_DIRS="mach64 r128 r200 r300 r600 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000734 fi
735 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800736 esac
737 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700738 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800739 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
740 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
741 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
742 if test "x$driglx_direct" = xyes; then
743 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
744 fi
745 if test "x$GXX" = xyes; then
746 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
747 fi
748
Dan Nicholsona76e2452007-12-07 11:25:08 -0800749 # ffb and gamma are missing because they have not been converted
750 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100751 if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher4138bdb2009-04-08 15:16:35 -0400752 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300753 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800754 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800755 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700756 gnu*)
757 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
758 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
759 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700760 solaris*)
761 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
762 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
763 if test "x$driglx_direct" = xyes; then
764 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
765 fi
766 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800767 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800768
769 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100770 if test "x$DRI_DIRS" = "xyes"; then
Corbin Simpson8e4657a2009-10-22 12:29:30 -0700771 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300772 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800773 fi
774
Dan Nicholson44d99142007-12-05 18:47:01 -0800775 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
776
777 # Check for expat
778 EXPAT_INCLUDES=""
779 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700780 AC_ARG_WITH([expat],
781 [AS_HELP_STRING([--with-expat=DIR],
782 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800783 EXPAT_INCLUDES="-I$withval/include"
784 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
785 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
786 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
787 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700788 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
789 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
790 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800791
792 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700793 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800794fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700795AC_SUBST([DRI_DIRS])
796AC_SUBST([EXPAT_INCLUDES])
797AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800798
799dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700800dnl OSMesa configuration
801dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800802if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800803 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800804else
Dan Nicholson544ab202007-12-30 08:41:53 -0800805 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800806fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700807AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800808 [AS_HELP_STRING([--enable-gl-osmesa],
809 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700810 [gl_osmesa="$enableval"],
811 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800812if test "x$gl_osmesa" = xyes; then
813 if test "$mesa_driver" = osmesa; then
814 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800815 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800816 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800817 fi
818fi
819
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800820dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700821AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800822 [AS_HELP_STRING([--with-osmesa-bits=BITS],
823 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700824 [osmesa_bits="$withval"],
825 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800826if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
827 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
828 osmesa_bits=8
829fi
830case "x$osmesa_bits" in
831x8)
832 OSMESA_LIB=OSMesa
833 ;;
834x16|x32)
835 OSMESA_LIB="OSMesa$osmesa_bits"
836 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
837 ;;
838*)
839 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
840 ;;
841esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700842AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800843
Dan Nicholson979ff512007-12-05 18:47:01 -0800844case "$mesa_driver" in
845osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700846 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800847 if test "$enable_static" = no; then
Dan Nicholson4795dd52009-06-04 19:42:08 -0700848 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800849 else
850 OSMESA_LIB_DEPS=""
851 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800852 OSMESA_MESA_DEPS=""
Dan Nicholson4795dd52009-06-04 19:42:08 -0700853 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800854 ;;
855*)
856 # Link OSMesa to libGL otherwise
857 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700858 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800859 if test "$enable_static" = no; then
860 OSMESA_MESA_DEPS='-l$(GL_LIB)'
861 else
862 OSMESA_MESA_DEPS=""
863 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800864 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800865 ;;
866esac
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700867OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700868AC_SUBST([OSMESA_LIB_DEPS])
869AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800870AC_SUBST([OSMESA_PC_REQ])
871AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700872
873dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800874dnl EGL configuration
875dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700876AC_ARG_ENABLE([egl],
877 [AS_HELP_STRING([--disable-egl],
878 [disable EGL library @<:@default=enabled@:>@])],
879 [enable_egl="$enableval"],
880 [enable_egl=yes])
881if test "x$enable_egl" = xyes; then
882 SRC_DIRS="$SRC_DIRS egl"
883
884 if test "$x11_pkgconfig" = yes; then
885 PKG_CHECK_MODULES([EGL], [x11])
886 EGL_LIB_DEPS="$EGL_LIBS"
887 else
888 # should check these...
889 EGL_LIB_DEPS="$X_LIBS -lX11"
890 fi
891 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800892fi
Dan Nicholson53b37342009-02-25 17:45:34 -0800893AC_SUBST([EGL_LIB_DEPS])
894
895dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700896dnl GLU configuration
897dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700898AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800899 [AS_HELP_STRING([--disable-glu],
900 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700901 [enable_glu="$enableval"],
902 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700903if test "x$enable_glu" = xyes; then
904 SRC_DIRS="$SRC_DIRS glu"
905
Dan Nicholson979ff512007-12-05 18:47:01 -0800906 case "$mesa_driver" in
907 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800908 # If GLU is available and we have libOSMesa (not 16 or 32),
909 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800910 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800911 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
912 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700913
Dan Nicholson979ff512007-12-05 18:47:01 -0800914 # Link libGLU to libOSMesa instead of libGL
915 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800916 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800917 if test "$enable_static" = no; then
918 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
919 else
920 GLU_MESA_DEPS=""
921 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800922 ;;
923 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800924 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800925 GLU_PC_REQ="gl"
926 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800927 if test "$enable_static" = no; then
928 GLU_LIB_DEPS="-lm"
929 GLU_MESA_DEPS='-l$(GL_LIB)'
930 else
931 GLU_LIB_DEPS=""
932 GLU_MESA_DEPS=""
933 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
934 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800935 ;;
936 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700937fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700938if test "$enable_static" = no; then
939 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
940fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800941GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700942AC_SUBST([GLU_LIB_DEPS])
943AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800944AC_SUBST([GLU_PC_REQ])
945AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800946AC_SUBST([GLU_PC_LIB_PRIV])
947AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700948
949dnl
950dnl GLw configuration
951dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700952AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800953 [AS_HELP_STRING([--disable-glw],
954 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700955 [enable_glw="$enableval"],
956 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800957dnl Don't build GLw on osmesa
958if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
959 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
960 enable_glw=no
961fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700962AC_ARG_ENABLE([motif],
963 [AS_HELP_STRING([--enable-motif],
964 [use Motif widgets in GLw @<:@default=disabled@:>@])],
965 [enable_motif="$enableval"],
966 [enable_motif=no])
967
Dan Nicholsondca1b792007-10-23 09:25:58 -0700968if test "x$enable_glw" = xyes; then
969 SRC_DIRS="$SRC_DIRS glw"
970 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700971 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800972 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700973 GLW_LIB_DEPS="$GLW_LIBS"
974 else
975 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700976 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800977 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
978 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700979 fi
980
981 GLW_SOURCES="GLwDrawA.c"
982 MOTIF_CFLAGS=
983 if test "x$enable_motif" = xyes; then
984 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
985 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
986 if test "x$MOTIF_CONFIG" != xno; then
987 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
988 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
989 else
990 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
991 [AC_MSG_ERROR([Can't locate Motif headers])])
992 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
993 [AC_MSG_ERROR([Can't locate Motif Xm library])])
994 fi
995 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
996 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800997 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
998 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700999 fi
1000
Dan Nicholson88586332007-11-15 08:59:57 -08001001 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001002 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -08001003 if test "$enable_static" = no; then
1004 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001005 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -08001006 else
1007 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
1008 GLW_LIB_DEPS=""
1009 GLW_MESA_DEPS=""
1010 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001011fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001012AC_SUBST([GLW_LIB_DEPS])
1013AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -07001014AC_SUBST([GLW_SOURCES])
1015AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001016AC_SUBST([GLW_PC_REQ_PRIV])
1017AC_SUBST([GLW_PC_LIB_PRIV])
1018AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001019
1020dnl
1021dnl GLUT configuration
1022dnl
1023if test -f "$srcdir/include/GL/glut.h"; then
1024 default_glut=yes
1025else
1026 default_glut=no
1027fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001028AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001029 [AS_HELP_STRING([--disable-glut],
1030 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001031 [enable_glut="$enableval"],
1032 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001033
1034dnl Can't build glut if GLU not available
1035if test "x$enable_glu$enable_glut" = xnoyes; then
1036 AC_MSG_WARN([Disabling glut since GLU is disabled])
1037 enable_glut=no
1038fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001039dnl Don't build glut on osmesa
1040if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1041 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1042 enable_glut=no
1043fi
1044
Dan Nicholsondca1b792007-10-23 09:25:58 -07001045if test "x$enable_glut" = xyes; then
1046 SRC_DIRS="$SRC_DIRS glut/glx"
1047 GLUT_CFLAGS=""
1048 if test "x$GCC" = xyes; then
1049 GLUT_CFLAGS="-fexceptions"
1050 fi
1051 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001052 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001053 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001054 GLUT_LIB_DEPS="$GLUT_LIBS"
1055 else
1056 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001057 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001058 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1059 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001060 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001061 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1062 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001063
1064 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001065 if test "$with_demos" = yes; then
1066 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1067 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001068
Dan Nicholson88586332007-11-15 08:59:57 -08001069 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1070 if test "$enable_static" = no; then
1071 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1072 else
1073 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1074 GLUT_LIB_DEPS=""
1075 GLUT_MESA_DEPS=""
1076 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001077fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001078AC_SUBST([GLUT_LIB_DEPS])
1079AC_SUBST([GLUT_MESA_DEPS])
1080AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001081AC_SUBST([GLUT_PC_REQ_PRIV])
1082AC_SUBST([GLUT_PC_LIB_PRIV])
1083AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001084
1085dnl
1086dnl Program library dependencies
1087dnl Only libm is added here if necessary as the libraries should
1088dnl be pulled in by the linker
1089dnl
1090if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001091 case "$host_os" in
1092 solaris*)
1093 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1094 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001095 cygwin*)
1096 APP_LIB_DEPS="-lX11"
1097 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001098 *)
1099 APP_LIB_DEPS="-lm"
1100 ;;
1101 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001102fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001103AC_SUBST([APP_LIB_DEPS])
1104AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001105
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001106dnl
1107dnl Gallium configuration
1108dnl
1109AC_ARG_ENABLE([gallium],
1110 [AS_HELP_STRING([--disable-gallium],
1111 [build gallium @<:@default=enabled@:>@])],
1112 [enable_gallium="$enableval"],
1113 [enable_gallium=yes])
1114if test "x$enable_gallium" = xyes; then
1115 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1116fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001117
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001118dnl
1119dnl Gallium state trackers configuration
1120dnl
1121AC_ARG_WITH([state-trackers],
1122 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1123 [comma delimited state_trackers list, e.g.
1124 "egl,glx" @<:@default=auto@:>@])],
1125 [with_state_trackers="$withval"],
1126 [with_state_trackers=yes])
1127
1128case "$with_state_trackers" in
1129no)
1130 GALLIUM_STATE_TRACKERS_DIRS=""
1131 ;;
1132yes)
1133 # look at what else is built
1134 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001135 xlib)
1136 GALLIUM_STATE_TRACKERS_DIRS=glx
1137 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001138 dri)
Dan Nicholson66f97862009-04-29 12:11:43 -07001139 test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001140 ;;
1141 esac
1142 ;;
1143*)
1144 # verify the requested state tracker exist
1145 state_trackers=`IFS=', '; echo $with_state_trackers`
1146 for tracker in $state_trackers; do
1147 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1148 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
Dan Nicholson66f97862009-04-29 12:11:43 -07001149
1150 if test "$tracker" = egl && test "x$enable_egl" != xyes; then
1151 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1152 fi
Dave Airliee9d6ab72009-09-21 13:26:48 +10001153 if test "$tracker" = xorg; then
1154 PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
Jakob Bornecrantz5c4bdbd2009-10-15 01:24:53 +01001155 HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71",
Dave Airliee9d6ab72009-09-21 13:26:48 +10001156 HAVE_XEXTPROTO_71="no")
Jakob Bornecrantz5c4bdbd2009-10-15 01:24:53 +01001157 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001158 done
1159 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1160 ;;
1161esac
1162
Joel Bosveld8acca482009-03-06 08:46:08 +09001163AC_ARG_WITH([xorg-driver-dir],
1164 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1165 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1166 [XORG_DRIVER_INSTALL_DIR="$withval"],
1167 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1168AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1169
Tom Fogal7085dce2009-08-13 19:40:30 -06001170AC_ARG_WITH([max-width],
1171 [AS_HELP_STRING([--with-max-width=N],
1172 [Maximum framebuffer width (4096)])],
1173 [DEFINES="${DEFINES} -DMAX_WIDTH=${withval}";
1174 AS_IF([test "${withval}" -gt "4096"],
1175 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1176)
1177AC_ARG_WITH([max-height],
1178 [AS_HELP_STRING([--with-max-height=N],
1179 [Maximum framebuffer height (4096)])],
1180 [DEFINES="${DEFINES} -DMAX_HEIGHT=${withval}";
1181 AS_IF([test "${withval}" -gt "4096"],
1182 [AC_MSG_WARN([Large framebuffer: see s_tritemp.h comments.])])]
1183)
1184
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001185dnl
1186dnl Gallium Intel configuration
1187dnl
1188AC_ARG_ENABLE([gallium-intel],
1189 [AS_HELP_STRING([--disable-gallium-intel],
1190 [build gallium intel @<:@default=enabled@:>@])],
1191 [enable_gallium_intel="$enableval"],
1192 [enable_gallium_intel=yes])
1193if test "x$enable_gallium_intel" = xyes; then
1194 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzf00da2a2009-09-29 16:07:11 -07001195 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001196fi
1197
1198dnl
1199dnl Gallium Radeon configuration
1200dnl
1201AC_ARG_ENABLE([gallium-radeon],
1202 [AS_HELP_STRING([--enable-gallium-radeon],
1203 [build gallium radeon @<:@default=disabled@:>@])],
1204 [enable_gallium_radeon="$enableval"],
1205 [enable_gallium_radeon=no])
1206if test "x$enable_gallium_radeon" = xyes; then
1207 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001208 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001209fi
1210
1211dnl
Thierry Vignaud1402ea82009-09-14 11:48:51 -06001212dnl Gallium Nouveau configuration
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001213dnl
1214AC_ARG_ENABLE([gallium-nouveau],
1215 [AS_HELP_STRING([--enable-gallium-nouveau],
1216 [build gallium nouveau @<:@default=disabled@:>@])],
1217 [enable_gallium_nouveau="$enableval"],
1218 [enable_gallium_nouveau=no])
1219if test "x$enable_gallium_nouveau" = xyes; then
1220 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Ben Skeggsbc466be2009-06-04 10:19:04 +10001221 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001222fi
1223
1224
Dan Nicholsondca1b792007-10-23 09:25:58 -07001225dnl Restore LDFLAGS and CPPFLAGS
1226LDFLAGS="$_SAVE_LDFLAGS"
1227CPPFLAGS="$_SAVE_CPPFLAGS"
1228
1229dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001230AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001231
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001232dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001233AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001234if test -f configs/current || test -L configs/current; then
1235 rm -f configs/current
1236fi
1237ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001238])
1239
1240AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001241
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001242dnl
1243dnl Output some configuration info for the user
1244dnl
1245echo ""
1246echo " prefix: $prefix"
1247echo " exec_prefix: $exec_prefix"
1248echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001249echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001250
1251dnl Driver info
1252echo ""
1253echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001254if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1255 echo " OSMesa: lib$OSMESA_LIB"
1256else
1257 echo " OSMesa: no"
1258fi
1259if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001260 # cleanup the drivers var
1261 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001262if test "x$DRI_DIRS" = x; then
1263 echo " DRI drivers: no"
1264else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001265 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001266fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001267 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001268fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001269echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001270
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001271echo ""
1272if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1273 echo " Gallium: yes"
1274 echo " Gallium dirs: $GALLIUM_DIRS"
1275 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001276 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001277 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001278 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001279 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1280else
1281 echo " Gallium: no"
1282fi
1283
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001284dnl Libraries
1285echo ""
1286echo " Shared libs: $enable_shared"
1287echo " Static libs: $enable_static"
Dan Nicholson66f97862009-04-29 12:11:43 -07001288echo " EGL: $enable_egl"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001289echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001290echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001291echo " glut: $enable_glut"
1292
1293dnl Programs
1294# cleanup the programs var for display
1295program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1296if test "x$program_dirs" = x; then
1297 echo " Demos: no"
1298else
1299 echo " Demos: $program_dirs"
1300fi
1301
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001302dnl Compiler options
1303# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1304cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1305 $SED 's/^ *//;s/ */ /;s/ *$//'`
1306cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1307 $SED 's/^ *//;s/ */ /;s/ *$//'`
1308defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1309echo ""
1310echo " CFLAGS: $cflags"
1311echo " CXXFLAGS: $cxxflags"
1312echo " Macros: $defines"
1313
Dan Nicholsondca1b792007-10-23 09:25:58 -07001314echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001315echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001316echo ""