blob: f1ff3d4f472a4f5dd8ed3485255562cd14c34058 [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
Brian44557bf2009-01-10 16:32:32 -070021LIBDRM_REQUIRED=2.4.3
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 Nicholsonbfb27b52008-06-30 09:40:30 -070032dnl We need a POSIX shell for parts of the build. Assume we have one
33dnl in most cases.
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070034case "$host_os" in
35solaris*)
36 # Solaris /bin/sh is too old/non-POSIX compliant
37 AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
Dan Nicholsonbfb27b52008-06-30 09:40:30 -070038 SHELL="$POSIX_SHELL"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070039 ;;
40esac
41
Dan Nicholsondb7fc632008-03-07 11:48:09 -080042MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050043dnl Ask gcc where it's keeping its secret headers
44if test "x$GCC" = xyes; then
Dan Nicholsona3d223f2009-01-30 10:52:09 -080045 for dir in include include-fixed; do
46 GCC_INCLUDES=`$CC -print-file-name=$dir`
47 if test "x$GCC_INCLUDES" != x && \
48 test "$GCC_INCLUDES" != "$dir" && \
49 test -d "$GCC_INCLUDES"; then
50 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
51 fi
52 done
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050053fi
Dan Nicholson297e16c2008-05-05 15:42:53 -070054AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050055
Dan Nicholson41b00702007-12-12 08:48:30 -080056dnl Make sure the pkg-config macros are defined
Dan Nicholson356f3112009-04-29 06:49:27 -070057m4_ifndef([PKG_PROG_PKG_CONFIG],
58 [m4_fatal([Could not locate the pkg-config autoconf macros.
59 These are usually located in /usr/share/aclocal/pkg.m4. If your macros
60 are in a different location, try setting the environment variable
61 ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
Dan Nicholsondca1b792007-10-23 09:25:58 -070062PKG_PROG_PKG_CONFIG()
63
64dnl LIB_DIR - library basename
65LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -070066AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -070067
68dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
69_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070070AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
71AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -070072
73dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
74_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070075AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
76AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070077
78dnl Compiler macros
79DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -070080AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070081case "$host_os" in
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -070082linux*|*-gnu*|gnu*)
Dan Nicholson29f603a2009-01-12 11:10:31 -080083 DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
Dan Nicholsondca1b792007-10-23 09:25:58 -070084 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -070085solaris*)
86 DEFINES="$DEFINES -DPTHREADS -DSVR4"
87 ;;
Dan Nicholsondca1b792007-10-23 09:25:58 -070088esac
89
90dnl Add flags for gcc and g++
91if test "x$GCC" = xyes; then
92 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
Dan Nicholson0c275b62008-01-15 22:52:25 -080093
94 # Work around aliasing bugs - developers should comment this out
95 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -070096fi
97if test "x$GXX" = xyes; then
98 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -080099
100 # Work around aliasing bugs - developers should comment this out
101 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700102fi
103
104dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700105AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700106 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700107AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700108 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700109AC_SUBST([OPT_FLAGS])
110AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700111
112dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600113dnl Hacks to enable 32 or 64 bit build
114dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700115AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600116 [AS_HELP_STRING([--enable-32-bit],
117 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700118 [enable_32bit="$enableval"],
119 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600120)
121if test "x$enable_32bit" = xyes; then
122 if test "x$GCC" = xyes; then
123 CFLAGS="$CFLAGS -m32"
124 fi
125 if test "x$GXX" = xyes; then
126 CXXFLAGS="$CXXFLAGS -m32"
127 fi
128fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700129AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600130 [AS_HELP_STRING([--enable-64-bit],
131 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700132 [enable_64bit="$enableval"],
133 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600134)
135if test "x$enable_64bit" = xyes; then
136 if test "x$GCC" = xyes; then
137 CFLAGS="$CFLAGS -m64"
138 fi
139 if test "x$GXX" = xyes; then
140 CXXFLAGS="$CXXFLAGS -m64"
141 fi
142fi
143
144dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800145dnl shared/static libraries, mimic libtool options
146dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700147AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800148 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800149 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700150 [enable_static="$enableval"],
151 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800152)
153case "x$enable_static" in
154xyes|xno ) ;;
155x ) enable_static=no ;;
156* )
157 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
158 ;;
159esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700160AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800161 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800162 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700163 [enable_shared="$enableval"],
164 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800165)
166case "x$enable_shared" in
167xyes|xno ) ;;
168x ) enable_shared=yes ;;
169* )
170 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
171 ;;
172esac
173
174dnl Can't have static and shared libraries, default to static if user
175dnl explicitly requested. If both disabled, set to static since shared
176dnl was explicitly requirested.
177case "x$enable_static$enable_shared" in
178xyesyes )
179 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
180 enable_shared=no
181 ;;
182xnono )
183 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
184 enable_static=yes
185 ;;
186esac
187
188dnl
189dnl mklib options
190dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700191AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800192if test "$enable_static" = yes; then
193 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
194fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700195AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800196
Dan Nicholson23656c42007-12-12 09:02:31 -0800197dnl
198dnl other compiler options
199dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700200AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800201 [AS_HELP_STRING([--enable-debug],
202 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700203 [enable_debug="$enableval"],
204 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800205)
206if test "x$enable_debug" = xyes; then
207 DEFINES="$DEFINES -DDEBUG"
208 if test "x$GCC" = xyes; then
209 CFLAGS="$CFLAGS -g"
210 fi
211 if test "x$GXX" = xyes; then
212 CXXFLAGS="$CXXFLAGS -g"
213 fi
214fi
Dan Nicholson88586332007-11-15 08:59:57 -0800215
216dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700217dnl library names
218dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800219if test "$enable_static" = yes; then
Dan Nicholson8217f242009-02-11 15:16:00 -0800220 LIB_EXTENSION='a'
Dan Nicholson88586332007-11-15 08:59:57 -0800221else
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700222 case "$host_os" in
223 darwin* )
224 LIB_EXTENSION='dylib' ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +0100225 cygwin* )
226 LIB_EXTENSION='dll' ;;
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700227 * )
228 LIB_EXTENSION='so' ;;
229 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800230fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800231
232GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
233GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
234GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
235GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
236OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
237
238GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
239GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
240GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
241GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
242OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
243
Dan Nicholson297e16c2008-05-05 15:42:53 -0700244AC_SUBST([GL_LIB_NAME])
245AC_SUBST([GLU_LIB_NAME])
246AC_SUBST([GLUT_LIB_NAME])
247AC_SUBST([GLW_LIB_NAME])
248AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700249
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700250AC_SUBST([GL_LIB_GLOB])
251AC_SUBST([GLU_LIB_GLOB])
252AC_SUBST([GLUT_LIB_GLOB])
253AC_SUBST([GLW_LIB_GLOB])
254AC_SUBST([OSMESA_LIB_GLOB])
255
Dan Nicholsondca1b792007-10-23 09:25:58 -0700256dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700257dnl Arch/platform-specific settings
258dnl
259AC_ARG_ENABLE([asm],
260 [AS_HELP_STRING([--disable-asm],
261 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
262 [enable_asm="$enableval"],
263 [enable_asm=yes]
264)
265asm_arch=""
266ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800267MESA_ASM_SOURCES=""
268GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700269AC_MSG_CHECKING([whether to enable assembly])
270test "x$enable_asm" = xno && AC_MSG_RESULT([no])
271# disable if cross compiling on x86/x86_64 since we must run gen_matypes
272if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
273 case "$host_cpu" in
274 i?86 | x86_64)
275 enable_asm=no
276 AC_MSG_RESULT([no, cross compiling])
277 ;;
278 esac
279fi
280# check for supported arches
281if test "x$enable_asm" = xyes; then
282 case "$host_cpu" in
283 i?86)
284 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100285 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700286 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
287 ;;
288 esac
289 ;;
290 x86_64)
291 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100292 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700293 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
294 ;;
295 esac
296 ;;
297 powerpc)
298 case "$host_os" in
299 linux*)
300 asm_arch=ppc
301 ;;
302 esac
303 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800304 sparc*)
305 case "$host_os" in
306 linux*)
307 asm_arch=sparc
308 ;;
309 esac
310 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700311 esac
312
313 case "$asm_arch" in
314 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800315 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800316 MESA_ASM_SOURCES='$(X86_SOURCES)'
317 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700318 AC_MSG_RESULT([yes, x86])
319 ;;
320 x86_64)
321 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800322 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
323 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700324 AC_MSG_RESULT([yes, x86_64])
325 ;;
326 ppc)
327 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800328 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700329 AC_MSG_RESULT([yes, ppc])
330 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800331 sparc)
332 ASM_FLAGS="-DUSE_SPARC_ASM"
333 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
334 GLAPI_ASM_SOURCES='$(SPARC_API)'
335 AC_MSG_RESULT([yes, sparc])
336 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700337 *)
338 AC_MSG_RESULT([no, platform not supported])
339 ;;
340 esac
341fi
342AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800343AC_SUBST([MESA_ASM_SOURCES])
344AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700345
346dnl PIC code macro
347MESA_PIC_FLAGS
348
349dnl Check to see if dlopen is in default libraries (like Solaris, which
350dnl has it in libc), or if libdl is needed to get it.
351AC_CHECK_FUNC([dlopen], [],
352 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
353
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700354dnl See if posix_memalign is available
355AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
356
Dan Nicholson871125a2008-06-04 13:00:35 -0700357dnl SELinux awareness.
358AC_ARG_ENABLE([selinux],
359 [AS_HELP_STRING([--enable-selinux],
360 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
361 [MESA_SELINUX="$enableval"],
362 [MESA_SELINUX=no])
363if test "x$enable_selinux" = "xyes"; then
364 AC_CHECK_HEADER([selinux/selinux.h],[],
365 [AC_MSG_ERROR([SELinux headers not found])])
366 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
367 [AC_MSG_ERROR([SELinux library not found])])
368 SELINUX_LIBS="-lselinux"
369 DEFINES="$DEFINES -DMESA_SELINUX"
370fi
371
Dan Nicholson871125a2008-06-04 13:00:35 -0700372dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800373dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800374dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800375dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700376default_driver="xlib"
377
378case "$host_os" in
379linux*)
380 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700381 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700382 esac
383 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100384*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700385 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500386 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700387 esac
388 ;;
389esac
390
Dan Nicholson297e16c2008-05-05 15:42:53 -0700391AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800392 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700393 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700394 [mesa_driver="$withval"],
395 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800396dnl Check for valid option
397case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800398xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800399 ;;
400*)
401 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
402 ;;
403esac
404
405dnl
406dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700407dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700408SRC_DIRS="mesa glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700409GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800410WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100411GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100412GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100413GALLIUM_WINSYS_DRM_DIRS=""
Michel Dänzer6bd4bc72009-04-21 18:32:42 +0100414GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000415GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100416GALLIUM_STATE_TRACKERS_DIRS=""
417
Dan Nicholson44d99142007-12-05 18:47:01 -0800418case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800419xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800420 DRIVER_DIRS="x11"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100421 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800422 ;;
423dri)
424 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100425 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800426 WINDOW_SYSTEM="dri"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100427 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
Dan Nicholson44d99142007-12-05 18:47:01 -0800428 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800429osmesa)
430 DRIVER_DIRS="osmesa"
431 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800432esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700433AC_SUBST([SRC_DIRS])
434AC_SUBST([GLU_DIRS])
435AC_SUBST([DRIVER_DIRS])
436AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100437AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100438AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100439AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000440AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100441AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100442AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700443
444dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800445dnl User supplied program configuration
446dnl
447if test -d "$srcdir/progs/demos"; then
448 default_demos=yes
449else
450 default_demos=no
451fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700452AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800453 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
454 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800455 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700456 [with_demos="$withval"],
457 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800458if test "x$with_demos" = x; then
459 with_demos=no
460fi
461
462dnl If $with_demos is yes, directories will be added as libs available
463PROGRAM_DIRS=""
464case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700465no) ;;
466yes)
467 # If the driver isn't osmesa, we have libGL and can build xdemos
468 if test "$mesa_driver" != osmesa; then
469 PROGRAM_DIRS="xdemos"
470 fi
471 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800472*)
473 # verify the requested demos directories exist
474 demos=`IFS=,; echo $with_demos`
475 for demo in $demos; do
476 test -d "$srcdir/progs/$demo" || \
477 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
478 done
479 PROGRAM_DIRS="$demos"
480 ;;
481esac
482
483dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700484dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700485dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700486dnl
487if test -n "$PKG_CONFIG"; then
488 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700489 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700490 x11_pkgconfig=yes
491 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700492 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700493 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700494 ])
495 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700496else
497 x11_pkgconfig=no
498fi
499dnl Use the autoconf macro if no pkg-config files
500if test "$x11_pkgconfig" = no; then
501 AC_PATH_XTRA
502fi
503
Dan Nicholson99803a42008-07-01 09:03:15 -0700504dnl Try to tell the user that the --x-* options are only used when
505dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
506m4_divert_once([HELP_BEGIN],
507[These options are only used when the X libraries cannot be found by the
508pkg-config utility.])
509
Dan Nicholson44d99142007-12-05 18:47:01 -0800510dnl We need X for xlib and dri, so bomb now if it's not found
511case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800512xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800513 if test "$no_x" = yes; then
514 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
515 fi
516 ;;
517esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700518
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700519dnl XCB - this is only used for GLX right now
520AC_ARG_ENABLE([xcb],
521 [AS_HELP_STRING([--enable-xcb],
522 [use XCB for GLX @<:@default=disabled@:>@])],
523 [enable_xcb="$enableval"],
524 [enable_xcb=no])
525if test "x$enable_xcb" = xyes; then
526 DEFINES="$DEFINES -DUSE_XCB"
527else
528 enable_xcb=no
529fi
530
Dan Nicholson44d99142007-12-05 18:47:01 -0800531dnl
532dnl libGL configuration per driver
533dnl
534case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800535xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800536 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700537 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800538 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800539 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
540 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800541 else
542 # should check these...
543 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
544 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800545 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
546 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800547 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700548 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
549 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800550
551 # if static, move the external libraries to the programs
552 # and empty the libraries for libGL
553 if test "$enable_static" = yes; then
554 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
555 GL_LIB_DEPS=""
556 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800557 ;;
558dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800559 # DRI must be shared, I think
560 if test "$enable_static" = yes; then
561 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
562 fi
563
Dan Nicholson44d99142007-12-05 18:47:01 -0800564 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700565 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
566 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800567 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
568 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800569
570 # find the DRI deps for libGL
571 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700572 # add xcb modules if necessary
573 dri_modules="x11 xext xxf86vm xdamage xfixes"
574 if test "$enable_xcb" = yes; then
575 dri_modules="$dri_modules x11-xcb xcb-glx"
576 fi
577
578 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800579 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800580 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
581 GL_LIB_DEPS="$DRIGL_LIBS"
582 else
583 # should check these...
584 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
585 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800586 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
587 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700588
589 # XCB can only be used from pkg-config
590 if test "$enable_xcb" = yes; then
591 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800592 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700593 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
594 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
595 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800596 fi
597
598 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700599 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
600 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800601 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800602osmesa)
603 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700604 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800605 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800606esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700607AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800608AC_SUBST([GL_PC_REQ_PRIV])
609AC_SUBST([GL_PC_LIB_PRIV])
610AC_SUBST([GL_PC_CFLAGS])
611AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700612
613dnl
614dnl More X11 setup
615dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800616if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700617 DEFINES="$DEFINES -DUSE_XSHM"
618fi
619
620dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800621dnl More DRI setup
622dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700623AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800624 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800625 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700626 [GLX_USE_TLS="$enableval"],
627 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800628dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700629AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800630 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700631 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700632 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700633 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700634AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800635dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700636AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800637 [AS_HELP_STRING([--disable-driglx-direct],
638 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700639 [driglx_direct="$enableval"],
640 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800641dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700642AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800643 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700644 [comma delimited DRI drivers list, e.g.
Michel Dänzercade0712009-07-10 14:49:46 +0200645 "swrast,i965,radeon" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700646 [with_dri_drivers="$withval"],
647 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800648if test "x$with_dri_drivers" = x; then
649 with_dri_drivers=no
650fi
651
652dnl If $with_dri_drivers is yes, directories will be added through
653dnl platform checks
654DRI_DIRS=""
655case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100656no) ;;
657yes)
658 DRI_DIRS="yes"
659 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800660*)
661 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700662 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800663 for driver in $dri_drivers; do
664 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
665 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
666 done
667 DRI_DIRS="$dri_drivers"
668 ;;
669esac
670
Dan Nicholson44d99142007-12-05 18:47:01 -0800671dnl Just default to no EGL for now
672USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700673AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800674
675dnl Set DRI_DIRS, DEFINES and LIB_DEPS
676if test "$mesa_driver" = dri; then
677 # Use TLS in GLX?
678 if test "x$GLX_USE_TLS" = xyes; then
679 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
680 fi
681
682 if test "x$USING_EGL" = x1; then
683 PROGRAM_DIRS="egl"
684 fi
685
686 # Platform specific settings and drivers to build
687 case "$host_os" in
688 linux*)
689 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800690 if test "x$driglx_direct" = xyes; then
691 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
692 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100693 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800694
695 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800696 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800697 # ffb, gamma, and sis are missing because they have not be
698 # converted to use the new interface. i810 are missing
699 # because there is no x86-64 system where they could *ever*
700 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100701 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800702 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300703 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800704 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800705 ;;
706 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800707 # Build only the drivers for cards that exist on PowerPC.
708 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100709 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300710 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800711 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800712 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000713 sparc*)
714 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100715 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000716 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000717 fi
718 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800719 esac
720 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700721 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800722 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
723 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
724 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
725 if test "x$driglx_direct" = xyes; then
726 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
727 fi
728 if test "x$GXX" = xyes; then
729 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
730 fi
731
Dan Nicholsona76e2452007-12-07 11:25:08 -0800732 # ffb and gamma are missing because they have not been converted
733 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100734 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800735 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300736 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800737 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800738 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700739 gnu*)
740 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
741 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
742 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700743 solaris*)
744 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
745 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
746 if test "x$driglx_direct" = xyes; then
747 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
748 fi
749 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800750 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800751
752 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100753 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholson112a40e2008-02-21 10:17:19 -0800754 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
George Sapountzis280bf892008-05-11 14:43:40 +0300755 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800756 fi
757
Dan Nicholson44d99142007-12-05 18:47:01 -0800758 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
759
760 # Check for expat
761 EXPAT_INCLUDES=""
762 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700763 AC_ARG_WITH([expat],
764 [AS_HELP_STRING([--with-expat=DIR],
765 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800766 EXPAT_INCLUDES="-I$withval/include"
767 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
768 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
769 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
770 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700771 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
772 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
773 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800774
775 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700776 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800777fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700778AC_SUBST([DRI_DIRS])
779AC_SUBST([EXPAT_INCLUDES])
780AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800781
782dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700783dnl OSMesa configuration
784dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800785if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800786 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800787else
Dan Nicholson544ab202007-12-30 08:41:53 -0800788 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800789fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700790AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800791 [AS_HELP_STRING([--enable-gl-osmesa],
792 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700793 [gl_osmesa="$enableval"],
794 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800795if test "x$gl_osmesa" = xyes; then
796 if test "$mesa_driver" = osmesa; then
797 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800798 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800799 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800800 fi
801fi
802
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800803dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700804AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800805 [AS_HELP_STRING([--with-osmesa-bits=BITS],
806 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700807 [osmesa_bits="$withval"],
808 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800809if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
810 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
811 osmesa_bits=8
812fi
813case "x$osmesa_bits" in
814x8)
815 OSMESA_LIB=OSMesa
816 ;;
817x16|x32)
818 OSMESA_LIB="OSMesa$osmesa_bits"
819 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
820 ;;
821*)
822 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
823 ;;
824esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700825AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800826
Dan Nicholson979ff512007-12-05 18:47:01 -0800827case "$mesa_driver" in
828osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700829 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800830 if test "$enable_static" = no; then
Dan Nicholson64536052009-06-04 19:42:08 -0700831 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800832 else
833 OSMESA_LIB_DEPS=""
834 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800835 OSMESA_MESA_DEPS=""
Dan Nicholson64536052009-06-04 19:42:08 -0700836 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800837 ;;
838*)
839 # Link OSMesa to libGL otherwise
840 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700841 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800842 if test "$enable_static" = no; then
843 OSMESA_MESA_DEPS='-l$(GL_LIB)'
844 else
845 OSMESA_MESA_DEPS=""
846 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800847 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800848 ;;
849esac
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700850OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700851AC_SUBST([OSMESA_LIB_DEPS])
852AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800853AC_SUBST([OSMESA_PC_REQ])
854AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700855
856dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800857dnl EGL configuration
858dnl
Dan Nicholson66f97862009-04-29 12:11:43 -0700859AC_ARG_ENABLE([egl],
860 [AS_HELP_STRING([--disable-egl],
861 [disable EGL library @<:@default=enabled@:>@])],
862 [enable_egl="$enableval"],
863 [enable_egl=yes])
864if test "x$enable_egl" = xyes; then
865 SRC_DIRS="$SRC_DIRS egl"
866
867 if test "$x11_pkgconfig" = yes; then
868 PKG_CHECK_MODULES([EGL], [x11])
869 EGL_LIB_DEPS="$EGL_LIBS"
870 else
871 # should check these...
872 EGL_LIB_DEPS="$X_LIBS -lX11"
873 fi
874 EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800875fi
Dan Nicholson53b37342009-02-25 17:45:34 -0800876AC_SUBST([EGL_LIB_DEPS])
877
878dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700879dnl GLU configuration
880dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700881AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800882 [AS_HELP_STRING([--disable-glu],
883 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700884 [enable_glu="$enableval"],
885 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700886if test "x$enable_glu" = xyes; then
887 SRC_DIRS="$SRC_DIRS glu"
888
Dan Nicholson979ff512007-12-05 18:47:01 -0800889 case "$mesa_driver" in
890 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800891 # If GLU is available and we have libOSMesa (not 16 or 32),
892 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800893 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800894 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
895 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700896
Dan Nicholson979ff512007-12-05 18:47:01 -0800897 # Link libGLU to libOSMesa instead of libGL
898 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800899 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800900 if test "$enable_static" = no; then
901 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
902 else
903 GLU_MESA_DEPS=""
904 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800905 ;;
906 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800907 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800908 GLU_PC_REQ="gl"
909 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800910 if test "$enable_static" = no; then
911 GLU_LIB_DEPS="-lm"
912 GLU_MESA_DEPS='-l$(GL_LIB)'
913 else
914 GLU_LIB_DEPS=""
915 GLU_MESA_DEPS=""
916 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
917 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800918 ;;
919 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700920fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700921if test "$enable_static" = no; then
922 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
923fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800924GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700925AC_SUBST([GLU_LIB_DEPS])
926AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800927AC_SUBST([GLU_PC_REQ])
928AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800929AC_SUBST([GLU_PC_LIB_PRIV])
930AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700931
932dnl
933dnl GLw configuration
934dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700935AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800936 [AS_HELP_STRING([--disable-glw],
937 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700938 [enable_glw="$enableval"],
939 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800940dnl Don't build GLw on osmesa
941if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
942 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
943 enable_glw=no
944fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700945AC_ARG_ENABLE([motif],
946 [AS_HELP_STRING([--enable-motif],
947 [use Motif widgets in GLw @<:@default=disabled@:>@])],
948 [enable_motif="$enableval"],
949 [enable_motif=no])
950
Dan Nicholsondca1b792007-10-23 09:25:58 -0700951if test "x$enable_glw" = xyes; then
952 SRC_DIRS="$SRC_DIRS glw"
953 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700954 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800955 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700956 GLW_LIB_DEPS="$GLW_LIBS"
957 else
958 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700959 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800960 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
961 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700962 fi
963
964 GLW_SOURCES="GLwDrawA.c"
965 MOTIF_CFLAGS=
966 if test "x$enable_motif" = xyes; then
967 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
968 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
969 if test "x$MOTIF_CONFIG" != xno; then
970 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
971 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
972 else
973 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
974 [AC_MSG_ERROR([Can't locate Motif headers])])
975 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
976 [AC_MSG_ERROR([Can't locate Motif Xm library])])
977 fi
978 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
979 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800980 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
981 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700982 fi
983
Dan Nicholson88586332007-11-15 08:59:57 -0800984 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700985 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -0800986 if test "$enable_static" = no; then
987 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700988 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -0800989 else
990 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
991 GLW_LIB_DEPS=""
992 GLW_MESA_DEPS=""
993 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700994fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700995AC_SUBST([GLW_LIB_DEPS])
996AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -0700997AC_SUBST([GLW_SOURCES])
998AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800999AC_SUBST([GLW_PC_REQ_PRIV])
1000AC_SUBST([GLW_PC_LIB_PRIV])
1001AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001002
1003dnl
1004dnl GLUT configuration
1005dnl
1006if test -f "$srcdir/include/GL/glut.h"; then
1007 default_glut=yes
1008else
1009 default_glut=no
1010fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001011AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001012 [AS_HELP_STRING([--disable-glut],
1013 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001014 [enable_glut="$enableval"],
1015 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001016
1017dnl Can't build glut if GLU not available
1018if test "x$enable_glu$enable_glut" = xnoyes; then
1019 AC_MSG_WARN([Disabling glut since GLU is disabled])
1020 enable_glut=no
1021fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001022dnl Don't build glut on osmesa
1023if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1024 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1025 enable_glut=no
1026fi
1027
Dan Nicholsondca1b792007-10-23 09:25:58 -07001028if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001029 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001030 GLUT_CFLAGS=""
1031 if test "x$GCC" = xyes; then
1032 GLUT_CFLAGS="-fexceptions"
1033 fi
1034 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001035 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001036 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001037 GLUT_LIB_DEPS="$GLUT_LIBS"
1038 else
1039 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001040 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001041 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1042 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001043 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001044 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1045 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001046
1047 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001048 if test "$with_demos" = yes; then
1049 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1050 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001051
Dan Nicholson88586332007-11-15 08:59:57 -08001052 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1053 if test "$enable_static" = no; then
1054 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1055 else
1056 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1057 GLUT_LIB_DEPS=""
1058 GLUT_MESA_DEPS=""
1059 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001060fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001061AC_SUBST([GLUT_LIB_DEPS])
1062AC_SUBST([GLUT_MESA_DEPS])
1063AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001064AC_SUBST([GLUT_PC_REQ_PRIV])
1065AC_SUBST([GLUT_PC_LIB_PRIV])
1066AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001067
1068dnl
1069dnl Program library dependencies
1070dnl Only libm is added here if necessary as the libraries should
1071dnl be pulled in by the linker
1072dnl
1073if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001074 case "$host_os" in
1075 solaris*)
1076 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1077 ;;
Jon TURNEY7eed6ab2009-06-08 16:02:18 +01001078 cygwin*)
1079 APP_LIB_DEPS="-lX11"
1080 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001081 *)
1082 APP_LIB_DEPS="-lm"
1083 ;;
1084 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001085fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001086AC_SUBST([APP_LIB_DEPS])
1087AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001088
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001089dnl
1090dnl Gallium configuration
1091dnl
1092AC_ARG_ENABLE([gallium],
1093 [AS_HELP_STRING([--disable-gallium],
1094 [build gallium @<:@default=enabled@:>@])],
1095 [enable_gallium="$enableval"],
1096 [enable_gallium=yes])
1097if test "x$enable_gallium" = xyes; then
1098 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1099fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001100
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001101dnl
1102dnl Gallium state trackers configuration
1103dnl
1104AC_ARG_WITH([state-trackers],
1105 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1106 [comma delimited state_trackers list, e.g.
1107 "egl,glx" @<:@default=auto@:>@])],
1108 [with_state_trackers="$withval"],
1109 [with_state_trackers=yes])
1110
1111case "$with_state_trackers" in
1112no)
1113 GALLIUM_STATE_TRACKERS_DIRS=""
1114 ;;
1115yes)
1116 # look at what else is built
1117 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001118 xlib)
1119 GALLIUM_STATE_TRACKERS_DIRS=glx
1120 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001121 dri)
Dan Nicholson66f97862009-04-29 12:11:43 -07001122 test "x$enable_egl" = xyes && GALLIUM_STATE_TRACKERS_DIRS=egl
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001123 ;;
1124 esac
1125 ;;
1126*)
1127 # verify the requested state tracker exist
1128 state_trackers=`IFS=', '; echo $with_state_trackers`
1129 for tracker in $state_trackers; do
1130 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1131 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
Dan Nicholson66f97862009-04-29 12:11:43 -07001132
1133 if test "$tracker" = egl && test "x$enable_egl" != xyes; then
1134 AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1135 fi
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001136 done
1137 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1138 ;;
1139esac
1140
Joel Bosveld8acca482009-03-06 08:46:08 +09001141AC_ARG_WITH([xorg-driver-dir],
1142 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1143 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1144 [XORG_DRIVER_INSTALL_DIR="$withval"],
1145 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1146AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1147
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001148dnl
1149dnl Gallium Intel configuration
1150dnl
1151AC_ARG_ENABLE([gallium-intel],
1152 [AS_HELP_STRING([--disable-gallium-intel],
1153 [build gallium intel @<:@default=enabled@:>@])],
1154 [enable_gallium_intel="$enableval"],
1155 [enable_gallium_intel=yes])
1156if test "x$enable_gallium_intel" = xyes; then
1157 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001158 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001159fi
1160
1161dnl
1162dnl Gallium Radeon configuration
1163dnl
1164AC_ARG_ENABLE([gallium-radeon],
1165 [AS_HELP_STRING([--enable-gallium-radeon],
1166 [build gallium radeon @<:@default=disabled@:>@])],
1167 [enable_gallium_radeon="$enableval"],
1168 [enable_gallium_radeon=no])
1169if test "x$enable_gallium_radeon" = xyes; then
1170 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001171 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001172fi
1173
1174dnl
1175dnl Gallium Radeon configuration
1176dnl
1177AC_ARG_ENABLE([gallium-nouveau],
1178 [AS_HELP_STRING([--enable-gallium-nouveau],
1179 [build gallium nouveau @<:@default=disabled@:>@])],
1180 [enable_gallium_nouveau="$enableval"],
1181 [enable_gallium_nouveau=no])
1182if test "x$enable_gallium_nouveau" = xyes; then
1183 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001184 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001185fi
1186
1187
Dan Nicholsondca1b792007-10-23 09:25:58 -07001188dnl Restore LDFLAGS and CPPFLAGS
1189LDFLAGS="$_SAVE_LDFLAGS"
1190CPPFLAGS="$_SAVE_CPPFLAGS"
1191
1192dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001193AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001194
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001195dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001196AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001197if test -f configs/current || test -L configs/current; then
1198 rm -f configs/current
1199fi
1200ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001201])
1202
1203AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001204
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001205dnl
1206dnl Output some configuration info for the user
1207dnl
1208echo ""
1209echo " prefix: $prefix"
1210echo " exec_prefix: $exec_prefix"
1211echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001212echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001213
1214dnl Driver info
1215echo ""
1216echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001217if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1218 echo " OSMesa: lib$OSMESA_LIB"
1219else
1220 echo " OSMesa: no"
1221fi
1222if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001223 # cleanup the drivers var
1224 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001225if test "x$DRI_DIRS" = x; then
1226 echo " DRI drivers: no"
1227else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001228 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001229fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001230 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001231fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001232echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001233
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001234echo ""
1235if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1236 echo " Gallium: yes"
1237 echo " Gallium dirs: $GALLIUM_DIRS"
1238 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001239 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001240 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001241 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001242 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1243else
1244 echo " Gallium: no"
1245fi
1246
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001247dnl Libraries
1248echo ""
1249echo " Shared libs: $enable_shared"
1250echo " Static libs: $enable_static"
Dan Nicholson66f97862009-04-29 12:11:43 -07001251echo " EGL: $enable_egl"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001252echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001253echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001254echo " glut: $enable_glut"
1255
1256dnl Programs
1257# cleanup the programs var for display
1258program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1259if test "x$program_dirs" = x; then
1260 echo " Demos: no"
1261else
1262 echo " Demos: $program_dirs"
1263fi
1264
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001265dnl Compiler options
1266# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1267cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1268 $SED 's/^ *//;s/ */ /;s/ *$//'`
1269cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1270 $SED 's/^ *//;s/ */ /;s/ *$//'`
1271defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1272echo ""
1273echo " CFLAGS: $cflags"
1274echo " CXXFLAGS: $cxxflags"
1275echo " Macros: $defines"
1276
Dan Nicholsondca1b792007-10-23 09:25:58 -07001277echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001278echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001279echo ""