blob: 154f6e6352ad4d43975bbe1fc39d51dd2a701817 [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' ;;
225 * )
226 LIB_EXTENSION='so' ;;
227 esac
Dan Nicholson88586332007-11-15 08:59:57 -0800228fi
Dan Nicholson8217f242009-02-11 15:16:00 -0800229
230GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
231GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
232GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
233GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
234OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
235
236GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
237GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
238GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
239GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
240OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
241
Dan Nicholson297e16c2008-05-05 15:42:53 -0700242AC_SUBST([GL_LIB_NAME])
243AC_SUBST([GLU_LIB_NAME])
244AC_SUBST([GLUT_LIB_NAME])
245AC_SUBST([GLW_LIB_NAME])
246AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700247
Siddhartha Chaudhuri1a46c8a2009-02-09 07:58:38 -0700248AC_SUBST([GL_LIB_GLOB])
249AC_SUBST([GLU_LIB_GLOB])
250AC_SUBST([GLUT_LIB_GLOB])
251AC_SUBST([GLW_LIB_GLOB])
252AC_SUBST([OSMESA_LIB_GLOB])
253
Dan Nicholsondca1b792007-10-23 09:25:58 -0700254dnl
Dan Nicholson871125a2008-06-04 13:00:35 -0700255dnl Arch/platform-specific settings
256dnl
257AC_ARG_ENABLE([asm],
258 [AS_HELP_STRING([--disable-asm],
259 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
260 [enable_asm="$enableval"],
261 [enable_asm=yes]
262)
263asm_arch=""
264ASM_FLAGS=""
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800265MESA_ASM_SOURCES=""
266GLAPI_ASM_SOURCES=""
Dan Nicholson871125a2008-06-04 13:00:35 -0700267AC_MSG_CHECKING([whether to enable assembly])
268test "x$enable_asm" = xno && AC_MSG_RESULT([no])
269# disable if cross compiling on x86/x86_64 since we must run gen_matypes
270if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
271 case "$host_cpu" in
272 i?86 | x86_64)
273 enable_asm=no
274 AC_MSG_RESULT([no, cross compiling])
275 ;;
276 esac
277fi
278# check for supported arches
279if test "x$enable_asm" = xyes; then
280 case "$host_cpu" in
281 i?86)
282 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100283 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700284 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
285 ;;
286 esac
287 ;;
288 x86_64)
289 case "$host_os" in
Julien Cristau98fcdf32008-10-28 18:56:05 +0100290 linux* | *freebsd* | dragonfly*)
Dan Nicholson871125a2008-06-04 13:00:35 -0700291 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
292 ;;
293 esac
294 ;;
295 powerpc)
296 case "$host_os" in
297 linux*)
298 asm_arch=ppc
299 ;;
300 esac
301 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800302 sparc*)
303 case "$host_os" in
304 linux*)
305 asm_arch=sparc
306 ;;
307 esac
308 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700309 esac
310
311 case "$asm_arch" in
312 x86)
Dan Nicholson61e925f2009-02-11 10:42:34 -0800313 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800314 MESA_ASM_SOURCES='$(X86_SOURCES)'
315 GLAPI_ASM_SOURCES='$(X86_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700316 AC_MSG_RESULT([yes, x86])
317 ;;
318 x86_64)
319 ASM_FLAGS="-DUSE_X86_64_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800320 MESA_ASM_SOURCES='$(X86-64_SOURCES)'
321 GLAPI_ASM_SOURCES='$(X86-64_API)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700322 AC_MSG_RESULT([yes, x86_64])
323 ;;
324 ppc)
325 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800326 MESA_ASM_SOURCES='$(PPC_SOURCES)'
Dan Nicholson871125a2008-06-04 13:00:35 -0700327 AC_MSG_RESULT([yes, ppc])
328 ;;
David S. Miller857ac1e2009-02-26 05:35:15 -0800329 sparc)
330 ASM_FLAGS="-DUSE_SPARC_ASM"
331 MESA_ASM_SOURCES='$(SPARC_SOURCES)'
332 GLAPI_ASM_SOURCES='$(SPARC_API)'
333 AC_MSG_RESULT([yes, sparc])
334 ;;
Dan Nicholson871125a2008-06-04 13:00:35 -0700335 *)
336 AC_MSG_RESULT([no, platform not supported])
337 ;;
338 esac
339fi
340AC_SUBST([ASM_FLAGS])
Dan Nicholsonc5bae142009-02-11 11:04:29 -0800341AC_SUBST([MESA_ASM_SOURCES])
342AC_SUBST([GLAPI_ASM_SOURCES])
Dan Nicholson871125a2008-06-04 13:00:35 -0700343
344dnl PIC code macro
345MESA_PIC_FLAGS
346
347dnl Check to see if dlopen is in default libraries (like Solaris, which
348dnl has it in libc), or if libdl is needed to get it.
349AC_CHECK_FUNC([dlopen], [],
350 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
351
Dan Nicholson985e1cd2008-06-04 13:17:06 -0700352dnl See if posix_memalign is available
353AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
354
Dan Nicholson871125a2008-06-04 13:00:35 -0700355dnl SELinux awareness.
356AC_ARG_ENABLE([selinux],
357 [AS_HELP_STRING([--enable-selinux],
358 [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
359 [MESA_SELINUX="$enableval"],
360 [MESA_SELINUX=no])
361if test "x$enable_selinux" = "xyes"; then
362 AC_CHECK_HEADER([selinux/selinux.h],[],
363 [AC_MSG_ERROR([SELinux headers not found])])
364 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
365 [AC_MSG_ERROR([SELinux library not found])])
366 SELINUX_LIBS="-lselinux"
367 DEFINES="$DEFINES -DMESA_SELINUX"
368fi
369
Dan Nicholson871125a2008-06-04 13:00:35 -0700370dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800371dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800372dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800373dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700374default_driver="xlib"
375
376case "$host_os" in
377linux*)
378 case "$host_cpu" in
David S. Miller32dc28a2009-02-24 20:06:05 -0700379 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700380 esac
381 ;;
Julien Cristau98fcdf32008-10-28 18:56:05 +0100382*freebsd* | dragonfly*)
Eric Anholt711222b2008-04-18 15:03:01 -0700383 case "$host_cpu" in
Robert Noland48f05432009-04-10 11:41:27 -0500384 i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
Eric Anholt711222b2008-04-18 15:03:01 -0700385 esac
386 ;;
387esac
388
Dan Nicholson297e16c2008-05-05 15:42:53 -0700389AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800390 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700391 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700392 [mesa_driver="$withval"],
393 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800394dnl Check for valid option
395case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800396xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800397 ;;
398*)
399 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
400 ;;
401esac
402
403dnl
404dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700405dnl
Dan Nicholson252671f2009-02-16 09:28:35 -0800406SRC_DIRS="mesa egl glew"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700407GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800408WINDOW_SYSTEM=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100409GALLIUM_DIRS="auxiliary drivers state_trackers"
Jerome Glisse14f79d42008-12-18 13:36:07 +0100410GALLIUM_WINSYS_DIRS=""
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100411GALLIUM_WINSYS_DRM_DIRS=""
Michel Dänzer6bd4bc72009-04-21 18:32:42 +0100412GALLIUM_AUXILIARY_DIRS="draw translate cso_cache pipebuffer tgsi sct rtasm util indices"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000413GALLIUM_DRIVERS_DIRS="softpipe failover trace"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100414GALLIUM_STATE_TRACKERS_DIRS=""
415
Dan Nicholson44d99142007-12-05 18:47:01 -0800416case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800417xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800418 DRIVER_DIRS="x11"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100419 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS xlib"
Dan Nicholson44d99142007-12-05 18:47:01 -0800420 ;;
421dri)
422 SRC_DIRS="glx/x11 $SRC_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100423 DRIVER_DIRS="dri"
Dan Nicholson44d99142007-12-05 18:47:01 -0800424 WINDOW_SYSTEM="dri"
Jakob Bornecrantz373e6712009-04-18 23:13:56 +0100425 GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS drm"
Dan Nicholson44d99142007-12-05 18:47:01 -0800426 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800427osmesa)
428 DRIVER_DIRS="osmesa"
429 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800430esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700431AC_SUBST([SRC_DIRS])
432AC_SUBST([GLU_DIRS])
433AC_SUBST([DRIVER_DIRS])
434AC_SUBST([WINDOW_SYSTEM])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100435AC_SUBST([GALLIUM_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100436AC_SUBST([GALLIUM_WINSYS_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100437AC_SUBST([GALLIUM_WINSYS_DRM_DIRS])
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +0000438AC_SUBST([GALLIUM_DRIVERS_DIRS])
Jerome Glisse14f79d42008-12-18 13:36:07 +0100439AC_SUBST([GALLIUM_AUXILIARY_DIRS])
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +0100440AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700441
442dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800443dnl User supplied program configuration
444dnl
445if test -d "$srcdir/progs/demos"; then
446 default_demos=yes
447else
448 default_demos=no
449fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700450AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800451 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
452 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800453 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700454 [with_demos="$withval"],
455 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800456if test "x$with_demos" = x; then
457 with_demos=no
458fi
459
460dnl If $with_demos is yes, directories will be added as libs available
461PROGRAM_DIRS=""
462case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700463no) ;;
464yes)
465 # If the driver isn't osmesa, we have libGL and can build xdemos
466 if test "$mesa_driver" != osmesa; then
467 PROGRAM_DIRS="xdemos"
468 fi
469 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800470*)
471 # verify the requested demos directories exist
472 demos=`IFS=,; echo $with_demos`
473 for demo in $demos; do
474 test -d "$srcdir/progs/$demo" || \
475 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
476 done
477 PROGRAM_DIRS="$demos"
478 ;;
479esac
480
481dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700482dnl Find out if X is available. The variable have_x is set if libX11 is
Dan Nicholson99803a42008-07-01 09:03:15 -0700483dnl found to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700484dnl
485if test -n "$PKG_CONFIG"; then
486 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700487 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700488 x11_pkgconfig=yes
489 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700490 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700491 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700492 ])
493 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700494else
495 x11_pkgconfig=no
496fi
497dnl Use the autoconf macro if no pkg-config files
498if test "$x11_pkgconfig" = no; then
499 AC_PATH_XTRA
500fi
501
Dan Nicholson99803a42008-07-01 09:03:15 -0700502dnl Try to tell the user that the --x-* options are only used when
503dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
504m4_divert_once([HELP_BEGIN],
505[These options are only used when the X libraries cannot be found by the
506pkg-config utility.])
507
Dan Nicholson44d99142007-12-05 18:47:01 -0800508dnl We need X for xlib and dri, so bomb now if it's not found
509case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800510xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800511 if test "$no_x" = yes; then
512 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
513 fi
514 ;;
515esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700516
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700517dnl XCB - this is only used for GLX right now
518AC_ARG_ENABLE([xcb],
519 [AS_HELP_STRING([--enable-xcb],
520 [use XCB for GLX @<:@default=disabled@:>@])],
521 [enable_xcb="$enableval"],
522 [enable_xcb=no])
523if test "x$enable_xcb" = xyes; then
524 DEFINES="$DEFINES -DUSE_XCB"
525else
526 enable_xcb=no
527fi
528
Dan Nicholson44d99142007-12-05 18:47:01 -0800529dnl
530dnl libGL configuration per driver
531dnl
532case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800533xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800534 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700535 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800536 GL_PC_REQ_PRIV="x11 xext"
Dan Nicholsona1307182007-12-12 17:49:49 -0800537 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
538 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800539 else
540 # should check these...
541 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
542 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800543 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
544 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson44d99142007-12-05 18:47:01 -0800545 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700546 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
547 GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800548
549 # if static, move the external libraries to the programs
550 # and empty the libraries for libGL
551 if test "$enable_static" = yes; then
552 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
553 GL_LIB_DEPS=""
554 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800555 ;;
556dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800557 # DRI must be shared, I think
558 if test "$enable_static" = yes; then
559 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
560 fi
561
Dan Nicholson44d99142007-12-05 18:47:01 -0800562 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700563 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
564 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800565 GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED"
566 DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
Dan Nicholson44d99142007-12-05 18:47:01 -0800567
568 # find the DRI deps for libGL
569 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700570 # add xcb modules if necessary
571 dri_modules="x11 xext xxf86vm xdamage xfixes"
572 if test "$enable_xcb" = yes; then
573 dri_modules="$dri_modules x11-xcb xcb-glx"
574 fi
575
576 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800577 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
Dan Nicholson44d99142007-12-05 18:47:01 -0800578 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
579 GL_LIB_DEPS="$DRIGL_LIBS"
580 else
581 # should check these...
582 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
583 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800584 GL_PC_LIB_PRIV="$GL_LIB_DEPS"
585 GL_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700586
587 # XCB can only be used from pkg-config
588 if test "$enable_xcb" = yes; then
589 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800590 GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700591 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
592 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
593 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800594 fi
595
596 # need DRM libs, -lpthread, etc.
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700597 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
598 GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800599 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800600osmesa)
601 # No libGL for osmesa
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700602 GL_LIB_DEPS=""
Dan Nicholson979ff512007-12-05 18:47:01 -0800603 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800604esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700605AC_SUBST([GL_LIB_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800606AC_SUBST([GL_PC_REQ_PRIV])
607AC_SUBST([GL_PC_LIB_PRIV])
608AC_SUBST([GL_PC_CFLAGS])
609AC_SUBST([DRI_PC_REQ_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700610
611dnl
612dnl More X11 setup
613dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800614if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700615 DEFINES="$DEFINES -DUSE_XSHM"
616fi
617
618dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800619dnl More DRI setup
620dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700621AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800622 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800623 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700624 [GLX_USE_TLS="$enableval"],
625 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800626dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700627AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800628 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700629 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700630 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700631 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700632AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800633dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700634AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800635 [AS_HELP_STRING([--disable-driglx-direct],
636 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700637 [driglx_direct="$enableval"],
638 [driglx_direct="yes"])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800639dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700640AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800641 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholson5cae1b72008-06-30 10:28:02 -0700642 [comma delimited DRI drivers list, e.g.
643 "swrast,i965,radeon,nouveau" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700644 [with_dri_drivers="$withval"],
645 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800646if test "x$with_dri_drivers" = x; then
647 with_dri_drivers=no
648fi
649
650dnl If $with_dri_drivers is yes, directories will be added through
651dnl platform checks
652DRI_DIRS=""
653case "$with_dri_drivers" in
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100654no) ;;
655yes)
656 DRI_DIRS="yes"
657 ;;
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800658*)
659 # verify the requested driver directories exist
Dan Nicholsone6e4f252008-07-06 14:17:39 -0700660 dri_drivers=`IFS=', '; echo $with_dri_drivers`
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800661 for driver in $dri_drivers; do
662 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
663 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
664 done
665 DRI_DIRS="$dri_drivers"
666 ;;
667esac
668
Dan Nicholson44d99142007-12-05 18:47:01 -0800669dnl Just default to no EGL for now
670USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700671AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800672
673dnl Set DRI_DIRS, DEFINES and LIB_DEPS
674if test "$mesa_driver" = dri; then
675 # Use TLS in GLX?
676 if test "x$GLX_USE_TLS" = xyes; then
677 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
678 fi
679
680 if test "x$USING_EGL" = x1; then
681 PROGRAM_DIRS="egl"
682 fi
683
684 # Platform specific settings and drivers to build
685 case "$host_os" in
686 linux*)
687 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
Dan Nicholson44d99142007-12-05 18:47:01 -0800688 if test "x$driglx_direct" = xyes; then
689 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
690 fi
Jerome Glisse14f79d42008-12-18 13:36:07 +0100691 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800692
693 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800694 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800695 # ffb, gamma, and sis are missing because they have not be
696 # converted to use the new interface. i810 are missing
697 # because there is no x86-64 system where they could *ever*
698 # be used.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100699 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800700 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
George Sapountzis280bf892008-05-11 14:43:40 +0300701 savage tdfx unichrome swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800702 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800703 ;;
704 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800705 # Build only the drivers for cards that exist on PowerPC.
706 # At some point MGA will be added, but not yet.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100707 if test "x$DRI_DIRS" = "xyes"; then
George Sapountzis280bf892008-05-11 14:43:40 +0300708 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800709 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800710 ;;
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000711 sparc*)
712 # Build only the drivers for cards that exist on sparc`
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100713 if test "x$DRI_DIRS" = "xyes"; then
Dave Airlie41bdb882008-06-12 16:26:46 +1000714 DRI_DIRS="mach64 r128 r200 r300 radeon ffb swrast"
Dave Airlie2b0e75e2008-06-12 12:06:50 +1000715 fi
716 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800717 esac
718 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700719 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800720 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
721 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
722 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
723 if test "x$driglx_direct" = xyes; then
724 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
725 fi
726 if test "x$GXX" = xyes; then
727 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
728 fi
729
Dan Nicholsona76e2452007-12-07 11:25:08 -0800730 # ffb and gamma are missing because they have not been converted
731 # to use the new interface.
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100732 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800733 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
George Sapountzis280bf892008-05-11 14:43:40 +0300734 unichrome savage sis swrast"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800735 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800736 ;;
Samuel Thibaultd18dd6a2009-04-23 05:43:22 -0700737 gnu*)
738 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
739 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
740 ;;
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700741 solaris*)
742 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
743 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
744 if test "x$driglx_direct" = xyes; then
745 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
746 fi
747 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800748 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800749
750 # default drivers
Florent Thoumieb5095ab2008-07-28 14:44:43 +0100751 if test "x$DRI_DIRS" = "xyes"; then
Dan Nicholson112a40e2008-02-21 10:17:19 -0800752 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
George Sapountzis280bf892008-05-11 14:43:40 +0300753 savage sis tdfx trident unichrome ffb swrast"
Dan Nicholson112a40e2008-02-21 10:17:19 -0800754 fi
755
Dan Nicholson44d99142007-12-05 18:47:01 -0800756 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
757
758 # Check for expat
759 EXPAT_INCLUDES=""
760 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700761 AC_ARG_WITH([expat],
762 [AS_HELP_STRING([--with-expat=DIR],
763 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800764 EXPAT_INCLUDES="-I$withval/include"
765 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
766 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
767 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
768 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700769 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
770 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
771 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800772
773 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700774 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800775fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700776AC_SUBST([DRI_DIRS])
777AC_SUBST([EXPAT_INCLUDES])
778AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800779
780dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700781dnl OSMesa configuration
782dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800783if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800784 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800785else
Dan Nicholson544ab202007-12-30 08:41:53 -0800786 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800787fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700788AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800789 [AS_HELP_STRING([--enable-gl-osmesa],
790 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700791 [gl_osmesa="$enableval"],
792 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800793if test "x$gl_osmesa" = xyes; then
794 if test "$mesa_driver" = osmesa; then
795 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800796 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800797 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800798 fi
799fi
800
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800801dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700802AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800803 [AS_HELP_STRING([--with-osmesa-bits=BITS],
804 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700805 [osmesa_bits="$withval"],
806 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800807if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
808 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
809 osmesa_bits=8
810fi
811case "x$osmesa_bits" in
812x8)
813 OSMESA_LIB=OSMesa
814 ;;
815x16|x32)
816 OSMESA_LIB="OSMesa$osmesa_bits"
817 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
818 ;;
819*)
820 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
821 ;;
822esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700823AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800824
Dan Nicholson979ff512007-12-05 18:47:01 -0800825case "$mesa_driver" in
826osmesa)
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700827 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800828 if test "$enable_static" = no; then
Adam Jackson66611f22008-02-15 13:49:12 -0500829 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800830 else
831 OSMESA_LIB_DEPS=""
832 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800833 OSMESA_MESA_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800834 OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson979ff512007-12-05 18:47:01 -0800835 ;;
836*)
837 # Link OSMesa to libGL otherwise
838 OSMESA_LIB_DEPS=""
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700839 # only link libraries with osmesa if shared
Dan Nicholson88586332007-11-15 08:59:57 -0800840 if test "$enable_static" = no; then
841 OSMESA_MESA_DEPS='-l$(GL_LIB)'
842 else
843 OSMESA_MESA_DEPS=""
844 fi
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800845 OSMESA_PC_REQ="gl"
Dan Nicholson979ff512007-12-05 18:47:01 -0800846 ;;
847esac
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700848if test "$enable_static" = no; then
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700849 OSMESA_LIB_DEPS="$OSMESA_LIB_DEPS"
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700850fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700851OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700852AC_SUBST([OSMESA_LIB_DEPS])
853AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800854AC_SUBST([OSMESA_PC_REQ])
855AC_SUBST([OSMESA_PC_LIB_PRIV])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700856
857dnl
Dan Nicholson53b37342009-02-25 17:45:34 -0800858dnl EGL configuration
859dnl
860if test "$x11_pkgconfig" = yes; then
861 PKG_CHECK_MODULES([EGL],[x11])
862 EGL_LIB_DEPS="$EGL_LIBS"
863else
864 # should check these...
865 EGL_LIB_DEPS="$X_LIBS -lX11"
866fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700867EGL_LIB_DEPS="$EGL_LIB_DEPS $DLOPEN_LIBS"
Dan Nicholson53b37342009-02-25 17:45:34 -0800868AC_SUBST([EGL_LIB_DEPS])
869
870dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700871dnl GLU configuration
872dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700873AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800874 [AS_HELP_STRING([--disable-glu],
875 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700876 [enable_glu="$enableval"],
877 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700878if test "x$enable_glu" = xyes; then
879 SRC_DIRS="$SRC_DIRS glu"
880
Dan Nicholson979ff512007-12-05 18:47:01 -0800881 case "$mesa_driver" in
882 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800883 # If GLU is available and we have libOSMesa (not 16 or 32),
884 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800885 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800886 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
887 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700888
Dan Nicholson979ff512007-12-05 18:47:01 -0800889 # Link libGLU to libOSMesa instead of libGL
890 GLU_LIB_DEPS=""
Dan Nicholson8be02fc2008-12-14 09:35:29 -0800891 GLU_PC_REQ="osmesa"
Dan Nicholson88586332007-11-15 08:59:57 -0800892 if test "$enable_static" = no; then
893 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
894 else
895 GLU_MESA_DEPS=""
896 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800897 ;;
898 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800899 # If static, empty GLU_LIB_DEPS and add libs for programs to link
Dan Nicholson71e208b2008-11-24 11:01:57 -0800900 GLU_PC_REQ="gl"
901 GLU_PC_LIB_PRIV="-lm"
Dan Nicholson88586332007-11-15 08:59:57 -0800902 if test "$enable_static" = no; then
903 GLU_LIB_DEPS="-lm"
904 GLU_MESA_DEPS='-l$(GL_LIB)'
905 else
906 GLU_LIB_DEPS=""
907 GLU_MESA_DEPS=""
908 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
909 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800910 ;;
911 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700912fi
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -0700913if test "$enable_static" = no; then
914 GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
915fi
Dan Nicholson71e208b2008-11-24 11:01:57 -0800916GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
Dan Nicholson297e16c2008-05-05 15:42:53 -0700917AC_SUBST([GLU_LIB_DEPS])
918AC_SUBST([GLU_MESA_DEPS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800919AC_SUBST([GLU_PC_REQ])
920AC_SUBST([GLU_PC_REQ_PRIV])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800921AC_SUBST([GLU_PC_LIB_PRIV])
922AC_SUBST([GLU_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700923
924dnl
925dnl GLw configuration
926dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700927AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800928 [AS_HELP_STRING([--disable-glw],
929 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700930 [enable_glw="$enableval"],
931 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800932dnl Don't build GLw on osmesa
933if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
934 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
935 enable_glw=no
936fi
Dan Nicholson776c60d2008-07-18 07:40:41 -0700937AC_ARG_ENABLE([motif],
938 [AS_HELP_STRING([--enable-motif],
939 [use Motif widgets in GLw @<:@default=disabled@:>@])],
940 [enable_motif="$enableval"],
941 [enable_motif=no])
942
Dan Nicholsondca1b792007-10-23 09:25:58 -0700943if test "x$enable_glw" = xyes; then
944 SRC_DIRS="$SRC_DIRS glw"
945 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700946 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800947 GLW_PC_REQ_PRIV="x11 xt"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700948 GLW_LIB_DEPS="$GLW_LIBS"
949 else
950 # should check these...
Dan Nicholson776c60d2008-07-18 07:40:41 -0700951 GLW_LIB_DEPS="$X_LIBS -lXt -lX11"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800952 GLW_PC_LIB_PRIV="$GLW_LIB_DEPS"
953 GLW_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholson776c60d2008-07-18 07:40:41 -0700954 fi
955
956 GLW_SOURCES="GLwDrawA.c"
957 MOTIF_CFLAGS=
958 if test "x$enable_motif" = xyes; then
959 GLW_SOURCES="$GLW_SOURCES GLwMDrawA.c"
960 AC_PATH_PROG([MOTIF_CONFIG], [motif-config], [no])
961 if test "x$MOTIF_CONFIG" != xno; then
962 MOTIF_CFLAGS=`$MOTIF_CONFIG --cflags`
963 MOTIF_LIBS=`$MOTIF_CONFIG --libs`
964 else
965 AC_CHECK_HEADER([Xm/PrimitiveP.h], [],
966 [AC_MSG_ERROR([Can't locate Motif headers])])
967 AC_CHECK_LIB([Xm], [XmGetPixmap], [MOTIF_LIBS="-lXm"],
968 [AC_MSG_ERROR([Can't locate Motif Xm library])])
969 fi
970 # MOTIF_LIBS is prepended to GLW_LIB_DEPS since Xm needs Xt/X11
971 GLW_LIB_DEPS="$MOTIF_LIBS $GLW_LIB_DEPS"
Dan Nicholson71e208b2008-11-24 11:01:57 -0800972 GLW_PC_LIB_PRIV="$MOTIF_LIBS $GLW_PC_LIB_PRIV"
973 GLW_PC_CFLAGS="$MOTIF_CFLAGS $GLW_PC_CFLAGS"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700974 fi
975
Dan Nicholson88586332007-11-15 08:59:57 -0800976 # If static, empty GLW_LIB_DEPS and add libs for programs to link
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700977 GLW_PC_LIB_PRIV="$GLW_PC_LIB_PRIV"
Dan Nicholson88586332007-11-15 08:59:57 -0800978 if test "$enable_static" = no; then
979 GLW_MESA_DEPS='-l$(GL_LIB)'
Alan Coopersmith3cf6e622009-03-23 16:51:54 -0700980 GLW_LIB_DEPS="$GLW_LIB_DEPS"
Dan Nicholson88586332007-11-15 08:59:57 -0800981 else
982 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
983 GLW_LIB_DEPS=""
984 GLW_MESA_DEPS=""
985 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700986fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700987AC_SUBST([GLW_LIB_DEPS])
988AC_SUBST([GLW_MESA_DEPS])
Dan Nicholson776c60d2008-07-18 07:40:41 -0700989AC_SUBST([GLW_SOURCES])
990AC_SUBST([MOTIF_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -0800991AC_SUBST([GLW_PC_REQ_PRIV])
992AC_SUBST([GLW_PC_LIB_PRIV])
993AC_SUBST([GLW_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700994
995dnl
996dnl GLUT configuration
997dnl
998if test -f "$srcdir/include/GL/glut.h"; then
999 default_glut=yes
1000else
1001 default_glut=no
1002fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001003AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -08001004 [AS_HELP_STRING([--disable-glut],
1005 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -07001006 [enable_glut="$enableval"],
1007 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001008
1009dnl Can't build glut if GLU not available
1010if test "x$enable_glu$enable_glut" = xnoyes; then
1011 AC_MSG_WARN([Disabling glut since GLU is disabled])
1012 enable_glut=no
1013fi
Dan Nicholson979ff512007-12-05 18:47:01 -08001014dnl Don't build glut on osmesa
1015if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
1016 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
1017 enable_glut=no
1018fi
1019
Dan Nicholsondca1b792007-10-23 09:25:58 -07001020if test "x$enable_glut" = xyes; then
Dan Nicholson252671f2009-02-16 09:28:35 -08001021 SRC_DIRS="$SRC_DIRS glut/glx"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001022 GLUT_CFLAGS=""
1023 if test "x$GCC" = xyes; then
1024 GLUT_CFLAGS="-fexceptions"
1025 fi
1026 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -07001027 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001028 GLUT_PC_REQ_PRIV="x11 xmu xi"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001029 GLUT_LIB_DEPS="$GLUT_LIBS"
1030 else
1031 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -08001032 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholson71e208b2008-11-24 11:01:57 -08001033 GLUT_PC_LIB_PRIV="$GLUT_LIB_DEPS"
1034 GLUT_PC_CFLAGS="$X11_INCLUDES"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001035 fi
Alan Coopersmith3cf6e622009-03-23 16:51:54 -07001036 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
1037 GLUT_PC_LIB_PRIV="$GLUT_PC_LIB_PRIV -lm"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001038
1039 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -08001040 if test "$with_demos" = yes; then
1041 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
1042 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001043
Dan Nicholson88586332007-11-15 08:59:57 -08001044 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
1045 if test "$enable_static" = no; then
1046 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
1047 else
1048 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
1049 GLUT_LIB_DEPS=""
1050 GLUT_MESA_DEPS=""
1051 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001052fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001053AC_SUBST([GLUT_LIB_DEPS])
1054AC_SUBST([GLUT_MESA_DEPS])
1055AC_SUBST([GLUT_CFLAGS])
Dan Nicholson71e208b2008-11-24 11:01:57 -08001056AC_SUBST([GLUT_PC_REQ_PRIV])
1057AC_SUBST([GLUT_PC_LIB_PRIV])
1058AC_SUBST([GLUT_PC_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001059
1060dnl
1061dnl Program library dependencies
1062dnl Only libm is added here if necessary as the libraries should
1063dnl be pulled in by the linker
1064dnl
1065if test "x$APP_LIB_DEPS" = x; then
Alan Coopersmithe1f9adc2008-06-20 17:58:53 -07001066 case "$host_os" in
1067 solaris*)
1068 APP_LIB_DEPS="-lX11 -lsocket -lnsl -lm"
1069 ;;
1070 *)
1071 APP_LIB_DEPS="-lm"
1072 ;;
1073 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -07001074fi
Dan Nicholson297e16c2008-05-05 15:42:53 -07001075AC_SUBST([APP_LIB_DEPS])
1076AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001077
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001078dnl
1079dnl Gallium configuration
1080dnl
1081AC_ARG_ENABLE([gallium],
1082 [AS_HELP_STRING([--disable-gallium],
1083 [build gallium @<:@default=enabled@:>@])],
1084 [enable_gallium="$enableval"],
1085 [enable_gallium=yes])
1086if test "x$enable_gallium" = xyes; then
1087 SRC_DIRS="$SRC_DIRS gallium gallium/winsys"
1088fi
Dan Nicholsondca1b792007-10-23 09:25:58 -07001089
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001090dnl
1091dnl Gallium state trackers configuration
1092dnl
1093AC_ARG_WITH([state-trackers],
1094 [AS_HELP_STRING([--with-state-trackers@<:@=DIRS...@:>@],
1095 [comma delimited state_trackers list, e.g.
1096 "egl,glx" @<:@default=auto@:>@])],
1097 [with_state_trackers="$withval"],
1098 [with_state_trackers=yes])
1099
1100case "$with_state_trackers" in
1101no)
1102 GALLIUM_STATE_TRACKERS_DIRS=""
1103 ;;
1104yes)
1105 # look at what else is built
1106 case "$mesa_driver" in
Jakob Bornecrantz373e6712009-04-18 23:13:56 +01001107 xlib)
1108 GALLIUM_STATE_TRACKERS_DIRS=glx
1109 ;;
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001110 dri)
1111 GALLIUM_STATE_TRACKERS_DIRS=egl
1112 ;;
1113 esac
1114 ;;
1115*)
1116 # verify the requested state tracker exist
1117 state_trackers=`IFS=', '; echo $with_state_trackers`
1118 for tracker in $state_trackers; do
1119 test -d "$srcdir/src/gallium/state_trackers/$tracker" || \
1120 AC_MSG_ERROR([state tracker '$tracker' doesn't exist])
1121 done
1122 GALLIUM_STATE_TRACKERS_DIRS="$state_trackers"
1123 ;;
1124esac
1125
Joel Bosveld8acca482009-03-06 08:46:08 +09001126AC_ARG_WITH([xorg-driver-dir],
1127 [AS_HELP_STRING([--with-xorg-driver-dir=DIR],
1128 [Default xorg driver directory[[default=${libdir}/xorg/modules/drivers]]])],
1129 [XORG_DRIVER_INSTALL_DIR="$withval"],
1130 [XORG_DRIVER_INSTALL_DIR="${libdir}/xorg/modules/drivers"])
1131AC_SUBST([XORG_DRIVER_INSTALL_DIR])
1132
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001133dnl
1134dnl Gallium Intel configuration
1135dnl
1136AC_ARG_ENABLE([gallium-intel],
1137 [AS_HELP_STRING([--disable-gallium-intel],
1138 [build gallium intel @<:@default=enabled@:>@])],
1139 [enable_gallium_intel="$enableval"],
1140 [enable_gallium_intel=yes])
1141if test "x$enable_gallium_intel" = xyes; then
1142 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS intel"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001143 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915simple"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001144fi
1145
1146dnl
1147dnl Gallium Radeon configuration
1148dnl
1149AC_ARG_ENABLE([gallium-radeon],
1150 [AS_HELP_STRING([--enable-gallium-radeon],
1151 [build gallium radeon @<:@default=disabled@:>@])],
1152 [enable_gallium_radeon="$enableval"],
1153 [enable_gallium_radeon=no])
1154if test "x$enable_gallium_radeon" = xyes; then
1155 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS radeon"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001156 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001157fi
1158
1159dnl
1160dnl Gallium Radeon configuration
1161dnl
1162AC_ARG_ENABLE([gallium-nouveau],
1163 [AS_HELP_STRING([--enable-gallium-nouveau],
1164 [build gallium nouveau @<:@default=disabled@:>@])],
1165 [enable_gallium_nouveau="$enableval"],
1166 [enable_gallium_nouveau=no])
1167if test "x$enable_gallium_nouveau" = xyes; then
1168 GALLIUM_WINSYS_DRM_DIRS="$GALLIUM_WINSYS_DRM_DIRS nouveau"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001169 GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nv04 nv10 nv20 nv30 nv40 nv50"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001170fi
1171
1172
Dan Nicholsondca1b792007-10-23 09:25:58 -07001173dnl Restore LDFLAGS and CPPFLAGS
1174LDFLAGS="$_SAVE_LDFLAGS"
1175CPPFLAGS="$_SAVE_CPPFLAGS"
1176
1177dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -08001178AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -07001179
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001180dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001181AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001182if test -f configs/current || test -L configs/current; then
1183 rm -f configs/current
1184fi
1185ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -07001186])
1187
1188AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -08001189
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001190dnl
1191dnl Output some configuration info for the user
1192dnl
1193echo ""
1194echo " prefix: $prefix"
1195echo " exec_prefix: $exec_prefix"
1196echo " libdir: $libdir"
Dan Nicholson11ac5b22008-07-03 09:17:44 -07001197echo " includedir: $includedir"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001198
1199dnl Driver info
1200echo ""
1201echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -08001202if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
1203 echo " OSMesa: lib$OSMESA_LIB"
1204else
1205 echo " OSMesa: no"
1206fi
1207if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001208 # cleanup the drivers var
1209 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001210if test "x$DRI_DIRS" = x; then
1211 echo " DRI drivers: no"
1212else
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001213 echo " DRI drivers: $dri_dirs"
Florent Thoumieb5095ab2008-07-28 14:44:43 +01001214fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001215 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -08001216fi
RALOVICH, Kristóf5f19f5c2008-11-04 11:53:32 +01001217echo " Use XCB: $enable_xcb"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001218
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001219echo ""
1220if echo "$SRC_DIRS" | grep 'gallium' >/dev/null 2>&1; then
1221 echo " Gallium: yes"
1222 echo " Gallium dirs: $GALLIUM_DIRS"
1223 echo " Winsys dirs: $GALLIUM_WINSYS_DIRS"
Jakob Bornecrantz3ede3772009-02-13 00:57:47 +01001224 echo " Winsys drm dirs:$GALLIUM_WINSYS_DRM_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001225 echo " Auxiliary dirs: $GALLIUM_AUXILIARY_DIRS"
Jakob Bornecrantzd67bd602009-02-20 11:03:18 +00001226 echo " Driver dirs: $GALLIUM_DRIVERS_DIRS"
Jakob Bornecrantz7e54d7d2009-02-11 02:38:21 +01001227 echo " Trackers dirs: $GALLIUM_STATE_TRACKERS_DIRS"
1228else
1229 echo " Gallium: no"
1230fi
1231
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001232dnl Libraries
1233echo ""
1234echo " Shared libs: $enable_shared"
1235echo " Static libs: $enable_static"
1236echo " GLU: $enable_glu"
Dan Nicholson776c60d2008-07-18 07:40:41 -07001237echo " GLw: $enable_glw (Motif: $enable_motif)"
Dan Nicholson9cad8e32007-11-30 08:49:57 -08001238echo " glut: $enable_glut"
1239
1240dnl Programs
1241# cleanup the programs var for display
1242program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1243if test "x$program_dirs" = x; then
1244 echo " Demos: no"
1245else
1246 echo " Demos: $program_dirs"
1247fi
1248
Dan Nicholson16a07fb2007-12-12 09:12:15 -08001249dnl Compiler options
1250# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
1251cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1252 $SED 's/^ *//;s/ */ /;s/ *$//'`
1253cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
1254 $SED 's/^ *//;s/ */ /;s/ *$//'`
1255defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
1256echo ""
1257echo " CFLAGS: $cflags"
1258echo " CXXFLAGS: $cxxflags"
1259echo " Macros: $defines"
1260
Dan Nicholsondca1b792007-10-23 09:25:58 -07001261echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -07001262echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -07001263echo ""