blob: 6aac482e1a8bd962c8aa66feb57539337448c9dc [file] [log] [blame]
Dan Nicholsondca1b792007-10-23 09:25:58 -07001dnl Process this file with autoconf to create configure.
2
Dan Nicholson297e16c2008-05-05 15:42:53 -07003AC_PREREQ([2.59])
Dan Nicholsondca1b792007-10-23 09:25:58 -07004
Dan Nicholson00994ac2008-04-30 15:06:00 -07005dnl Versioning - scrape the version from configs/default
6m4_define([mesa_version],
7 [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n'])])
8m4_ifval(mesa_version,[],[
9 m4_errprint([Error: Failed to get the Mesa version from the output of
10 running `make -f bin/version.mk version'
11])
12 m4_exit([1])
13])
Dan Nicholsondca1b792007-10-23 09:25:58 -070014
Dan 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
21LIBDRM_REQUIRED=2.3.1
22DRI2PROTO_REQUIRED=1.1
23
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 Nicholsondb7fc632008-03-07 11:48:09 -080032MKDEP_OPTIONS=-fdepend
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050033dnl Ask gcc where it's keeping its secret headers
34if test "x$GCC" = xyes; then
Dan Nicholsondb7fc632008-03-07 11:48:09 -080035 GCC_INCLUDES=`$CC -print-file-name=include`
36 if test "x$GCC_INCLUDES" != x; then
37 MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
38 fi
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050039fi
Dan Nicholson297e16c2008-05-05 15:42:53 -070040AC_SUBST([MKDEP_OPTIONS])
Kristian Høgsbergbcecea62008-02-25 18:50:26 -050041
Eric Anholt050c5332008-03-20 17:28:58 -070042dnl Check to see if dlopen is in default libraries (like Solaris, which
43dnl has it in libc), or if libdl is needed to get it.
44AC_CHECK_FUNC([dlopen], [],
Dan Nicholson297e16c2008-05-05 15:42:53 -070045 [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])
Eric Anholt050c5332008-03-20 17:28:58 -070046
Dan Nicholson41b00702007-12-12 08:48:30 -080047dnl Make sure the pkg-config macros are defined
Dan Nicholson297e16c2008-05-05 15:42:53 -070048m4_ifdef([PKG_PROG_PKG_CONFIG],[],[
Dan Nicholson7154d662008-04-30 13:53:37 -070049 m4_errprint([Error: Could not locate the pkg-config autoconf macros.
50 These are usually located in /usr/share/aclocal/pkg.m4. If your
51 macros are in a different location, try setting the environment
52 variable ACLOCAL="aclocal -I/other/macro/dir" before running
53 autoreconf.
54])
55 m4_exit([1])
56])
Dan Nicholsondca1b792007-10-23 09:25:58 -070057PKG_PROG_PKG_CONFIG()
58
59dnl LIB_DIR - library basename
60LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
Dan Nicholson297e16c2008-05-05 15:42:53 -070061AC_SUBST([LIB_DIR])
Dan Nicholsondca1b792007-10-23 09:25:58 -070062
63dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
64_SAVE_LDFLAGS="$LDFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070065AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
66AC_SUBST([EXTRA_LIB_PATH])
Dan Nicholsondca1b792007-10-23 09:25:58 -070067
68dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
69_SAVE_CPPFLAGS="$CPPFLAGS"
Dan Nicholson297e16c2008-05-05 15:42:53 -070070AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
71AC_SUBST([X11_INCLUDES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070072
73dnl Compiler macros
74DEFINES=""
Dan Nicholson297e16c2008-05-05 15:42:53 -070075AC_SUBST([DEFINES])
Dan Nicholsondca1b792007-10-23 09:25:58 -070076case "$host_os" in
77linux*)
Eric Anholt5ad06152008-03-20 17:14:20 -070078if test "x$GCC" = xyes; then
79 DEFINES="$DEFINES -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
80fi
Dan Nicholsondca1b792007-10-23 09:25:58 -070081 DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN"
82 ;;
83esac
84
85dnl Add flags for gcc and g++
86if test "x$GCC" = xyes; then
87 CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
Dan Nicholson0c275b62008-01-15 22:52:25 -080088
89 # Work around aliasing bugs - developers should comment this out
90 CFLAGS="$CFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -070091fi
92if test "x$GXX" = xyes; then
93 CXXFLAGS="$CXXFLAGS -Wall"
Dan Nicholson0c275b62008-01-15 22:52:25 -080094
95 # Work around aliasing bugs - developers should comment this out
96 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
Dan Nicholsondca1b792007-10-23 09:25:58 -070097fi
98
99dnl These should be unnecessary, but let the user set them if they want
Dan Nicholson297e16c2008-05-05 15:42:53 -0700100AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700101 Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700102AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
Dan Nicholsondca1b792007-10-23 09:25:58 -0700103 compiler. Default is to use CFLAGS.])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700104AC_SUBST([OPT_FLAGS])
105AC_SUBST([ARCH_FLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700106
107dnl
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600108dnl Hacks to enable 32 or 64 bit build
109dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700110AC_ARG_ENABLE([32-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600111 [AS_HELP_STRING([--enable-32-bit],
112 [build 32-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700113 [enable_32bit="$enableval"],
114 [enable_32bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600115)
116if test "x$enable_32bit" = xyes; then
117 if test "x$GCC" = xyes; then
118 CFLAGS="$CFLAGS -m32"
119 fi
120 if test "x$GXX" = xyes; then
121 CXXFLAGS="$CXXFLAGS -m32"
122 fi
123fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700124AC_ARG_ENABLE([64-bit],
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600125 [AS_HELP_STRING([--enable-64-bit],
126 [build 64-bit libraries @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700127 [enable_64bit="$enableval"],
128 [enable_64bit=auto]
Dan Nicholsonab57cba2007-12-26 11:12:29 -0600129)
130if test "x$enable_64bit" = xyes; then
131 if test "x$GCC" = xyes; then
132 CFLAGS="$CFLAGS -m64"
133 fi
134 if test "x$GXX" = xyes; then
135 CXXFLAGS="$CXXFLAGS -m64"
136 fi
137fi
138
139dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800140dnl shared/static libraries, mimic libtool options
141dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700142AC_ARG_ENABLE([static],
Dan Nicholson88586332007-11-15 08:59:57 -0800143 [AS_HELP_STRING([--enable-static],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800144 [build static libraries @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700145 [enable_static="$enableval"],
146 [enable_static=no]
Dan Nicholson88586332007-11-15 08:59:57 -0800147)
148case "x$enable_static" in
149xyes|xno ) ;;
150x ) enable_static=no ;;
151* )
152 AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
153 ;;
154esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700155AC_ARG_ENABLE([shared],
Dan Nicholson88586332007-11-15 08:59:57 -0800156 [AS_HELP_STRING([--disable-shared],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800157 [build shared libraries @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700158 [enable_shared="$enableval"],
159 [enable_shared=yes]
Dan Nicholson88586332007-11-15 08:59:57 -0800160)
161case "x$enable_shared" in
162xyes|xno ) ;;
163x ) enable_shared=yes ;;
164* )
165 AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
166 ;;
167esac
168
169dnl Can't have static and shared libraries, default to static if user
170dnl explicitly requested. If both disabled, set to static since shared
171dnl was explicitly requirested.
172case "x$enable_static$enable_shared" in
173xyesyes )
174 AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
175 enable_shared=no
176 ;;
177xnono )
178 AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
179 enable_static=yes
180 ;;
181esac
182
183dnl
184dnl mklib options
185dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700186AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
Dan Nicholson88586332007-11-15 08:59:57 -0800187if test "$enable_static" = yes; then
188 MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
189fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700190AC_SUBST([MKLIB_OPTIONS])
Dan Nicholson88586332007-11-15 08:59:57 -0800191
Dan Nicholson23656c42007-12-12 09:02:31 -0800192dnl
193dnl other compiler options
194dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700195AC_ARG_ENABLE([debug],
Dan Nicholson23656c42007-12-12 09:02:31 -0800196 [AS_HELP_STRING([--enable-debug],
197 [use debug compiler flags and macros @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700198 [enable_debug="$enableval"],
199 [enable_debug=no]
Dan Nicholson23656c42007-12-12 09:02:31 -0800200)
201if test "x$enable_debug" = xyes; then
202 DEFINES="$DEFINES -DDEBUG"
203 if test "x$GCC" = xyes; then
204 CFLAGS="$CFLAGS -g"
205 fi
206 if test "x$GXX" = xyes; then
207 CXXFLAGS="$CXXFLAGS -g"
208 fi
209fi
Dan Nicholson88586332007-11-15 08:59:57 -0800210
211dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700212dnl library names
213dnl
Dan Nicholson88586332007-11-15 08:59:57 -0800214if test "$enable_static" = yes; then
215 GL_LIB_NAME='lib$(GL_LIB).a'
216 GLU_LIB_NAME='lib$(GLU_LIB).a'
217 GLUT_LIB_NAME='lib$(GLUT_LIB).a'
218 GLW_LIB_NAME='lib$(GLW_LIB).a'
219 OSMESA_LIB_NAME='lib$(OSMESA_LIB).a'
220else
221 GL_LIB_NAME='lib$(GL_LIB).so'
222 GLU_LIB_NAME='lib$(GLU_LIB).so'
223 GLUT_LIB_NAME='lib$(GLUT_LIB).so'
224 GLW_LIB_NAME='lib$(GLW_LIB).so'
225 OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
226fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700227AC_SUBST([GL_LIB_NAME])
228AC_SUBST([GLU_LIB_NAME])
229AC_SUBST([GLUT_LIB_NAME])
230AC_SUBST([GLW_LIB_NAME])
231AC_SUBST([OSMESA_LIB_NAME])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700232
233dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800234dnl Driver configuration. Options are xlib, dri and osmesa right now.
Dan Nicholson979ff512007-12-05 18:47:01 -0800235dnl More later: directfb, fbdev, ...
Dan Nicholson44d99142007-12-05 18:47:01 -0800236dnl
Eric Anholt711222b2008-04-18 15:03:01 -0700237default_driver="xlib"
238
239case "$host_os" in
240linux*)
241 case "$host_cpu" in
242 i*86|x86_64|powerpc*) default_driver="dri";;
243 esac
244 ;;
245freebsd* | dragonfly*)
246 case "$host_cpu" in
247 i*86|x86_64) default_driver="dri";;
248 esac
249 ;;
250esac
251
Dan Nicholson297e16c2008-05-05 15:42:53 -0700252AC_ARG_WITH([driver],
Dan Nicholson44d99142007-12-05 18:47:01 -0800253 [AS_HELP_STRING([--with-driver=DRIVER],
Eric Anholt711222b2008-04-18 15:03:01 -0700254 [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700255 [mesa_driver="$withval"],
256 [mesa_driver="$default_driver"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800257dnl Check for valid option
258case "x$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800259xxlib|xdri|xosmesa)
Dan Nicholson44d99142007-12-05 18:47:01 -0800260 ;;
261*)
262 AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
263 ;;
264esac
265
266dnl
267dnl Driver specific build directories
Dan Nicholsondca1b792007-10-23 09:25:58 -0700268dnl
269SRC_DIRS="mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700270GLU_DIRS="sgi"
Dan Nicholson44d99142007-12-05 18:47:01 -0800271WINDOW_SYSTEM=""
272case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800273xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800274 DRIVER_DIRS="x11"
275 ;;
276dri)
277 SRC_DIRS="glx/x11 $SRC_DIRS"
278 DRIVER_DIRS="dri"
279 WINDOW_SYSTEM="dri"
280 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800281osmesa)
282 DRIVER_DIRS="osmesa"
283 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800284esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700285AC_SUBST([SRC_DIRS])
286AC_SUBST([GLU_DIRS])
287AC_SUBST([DRIVER_DIRS])
288AC_SUBST([WINDOW_SYSTEM])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700289
290dnl
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800291dnl User supplied program configuration
292dnl
293if test -d "$srcdir/progs/demos"; then
294 default_demos=yes
295else
296 default_demos=no
297fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700298AC_ARG_WITH([demos],
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800299 [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
300 [optional comma delimited demo directories to build
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800301 @<:@default=auto if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700302 [with_demos="$withval"],
303 [with_demos="$default_demos"])
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800304if test "x$with_demos" = x; then
305 with_demos=no
306fi
307
308dnl If $with_demos is yes, directories will be added as libs available
309PROGRAM_DIRS=""
310case "$with_demos" in
Dan Nicholsonb9576552008-03-10 14:05:46 -0700311no) ;;
312yes)
313 # If the driver isn't osmesa, we have libGL and can build xdemos
314 if test "$mesa_driver" != osmesa; then
315 PROGRAM_DIRS="xdemos"
316 fi
317 ;;
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800318*)
319 # verify the requested demos directories exist
320 demos=`IFS=,; echo $with_demos`
321 for demo in $demos; do
322 test -d "$srcdir/progs/$demo" || \
323 AC_MSG_ERROR([Program directory '$demo' doesn't exist])
324 done
325 PROGRAM_DIRS="$demos"
326 ;;
327esac
328
329dnl
Dan Nicholsone6a06092008-05-05 15:16:22 -0700330dnl Find out if X is available. The variable have_x is set if libX11 is
331dnl to mimic AC_PATH_XTRA.
Dan Nicholsondca1b792007-10-23 09:25:58 -0700332dnl
333if test -n "$PKG_CONFIG"; then
334 AC_MSG_CHECKING([pkg-config files for X11 are available])
Dan Nicholsone6a06092008-05-05 15:16:22 -0700335 PKG_CHECK_EXISTS([x11],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700336 x11_pkgconfig=yes
337 have_x=yes
Dan Nicholsone6a06092008-05-05 15:16:22 -0700338 ],[
Dan Nicholsondca1b792007-10-23 09:25:58 -0700339 x11_pkgconfig=no
Dan Nicholsone6a06092008-05-05 15:16:22 -0700340 ])
341 AC_MSG_RESULT([$x11_pkgconfig])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700342else
343 x11_pkgconfig=no
344fi
345dnl Use the autoconf macro if no pkg-config files
346if test "$x11_pkgconfig" = no; then
347 AC_PATH_XTRA
348fi
349
Dan Nicholson44d99142007-12-05 18:47:01 -0800350dnl We need X for xlib and dri, so bomb now if it's not found
351case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800352xlib|dri)
Dan Nicholson44d99142007-12-05 18:47:01 -0800353 if test "$no_x" = yes; then
354 AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
355 fi
356 ;;
357esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700358
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700359dnl XCB - this is only used for GLX right now
360AC_ARG_ENABLE([xcb],
361 [AS_HELP_STRING([--enable-xcb],
362 [use XCB for GLX @<:@default=disabled@:>@])],
363 [enable_xcb="$enableval"],
364 [enable_xcb=no])
365if test "x$enable_xcb" = xyes; then
366 DEFINES="$DEFINES -DUSE_XCB"
367else
368 enable_xcb=no
369fi
370
Adam Jackson66611f22008-02-15 13:49:12 -0500371# SELinux awareness.
Dan Nicholson297e16c2008-05-05 15:42:53 -0700372AC_ARG_ENABLE([selinux],
373 [AS_HELP_STRING([--enable-selinux],
374 [Build SELinux-aware Mesa (default: disabled)])],
375 [MESA_SELINUX="$enableval"],
376 [MESA_SELINUX=no])
Adam Jackson66611f22008-02-15 13:49:12 -0500377if test "x$enable_selinux" = "xyes"; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700378 AC_CHECK_HEADER([selinux/selinux.h],[],
379 [AC_MSG_ERROR([SELinux headers not found])])
380 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
381 [AC_MSG_ERROR([SELinux library not found])])
Adam Jackson66611f22008-02-15 13:49:12 -0500382 SELINUX_LIBS="-lselinux"
383 DEFINES="$DEFINES -DMESA_SELINUX"
384fi
385
Dan Nicholson44d99142007-12-05 18:47:01 -0800386dnl
387dnl libGL configuration per driver
388dnl
389case "$mesa_driver" in
Dan Nicholsona1307182007-12-12 17:49:49 -0800390xlib)
Dan Nicholson44d99142007-12-05 18:47:01 -0800391 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700392 PKG_CHECK_MODULES([XLIBGL], [x11 xext])
Dan Nicholsona1307182007-12-12 17:49:49 -0800393 X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
394 GL_LIB_DEPS="$XLIBGL_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800395 else
396 # should check these...
397 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
398 GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
399 fi
Adam Jackson66611f22008-02-15 13:49:12 -0500400 GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
Dan Nicholson88586332007-11-15 08:59:57 -0800401
402 # if static, move the external libraries to the programs
403 # and empty the libraries for libGL
404 if test "$enable_static" = yes; then
405 APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
406 GL_LIB_DEPS=""
407 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800408 ;;
409dri)
Dan Nicholson88586332007-11-15 08:59:57 -0800410 # DRI must be shared, I think
411 if test "$enable_static" = yes; then
412 AC_MSG_ERROR([Can't use static libraries for DRI drivers])
413 fi
414
Dan Nicholson44d99142007-12-05 18:47:01 -0800415 # Check for libdrm
Dan Nicholsoncc77e8f2008-05-05 14:38:22 -0700416 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
417 PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Dan Nicholson44d99142007-12-05 18:47:01 -0800418
419 # find the DRI deps for libGL
420 if test "$x11_pkgconfig" = yes; then
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700421 # add xcb modules if necessary
422 dri_modules="x11 xext xxf86vm xdamage xfixes"
423 if test "$enable_xcb" = yes; then
424 dri_modules="$dri_modules x11-xcb xcb-glx"
425 fi
426
427 PKG_CHECK_MODULES([DRIGL], [$dri_modules])
Dan Nicholson44d99142007-12-05 18:47:01 -0800428 X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
429 GL_LIB_DEPS="$DRIGL_LIBS"
430 else
431 # should check these...
432 X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
433 GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
Dan Nicholson2d709fe2008-05-06 10:51:49 -0700434
435 # XCB can only be used from pkg-config
436 if test "$enable_xcb" = yes; then
437 PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
438 X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
439 GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
440 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800441 fi
442
443 # need DRM libs, -lpthread, etc.
Eric Anholt050c5332008-03-20 17:28:58 -0700444 GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800445 ;;
Dan Nicholson979ff512007-12-05 18:47:01 -0800446osmesa)
447 # No libGL for osmesa
448 GL_LIB_DEPS=""
449 ;;
Dan Nicholson44d99142007-12-05 18:47:01 -0800450esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700451AC_SUBST([GL_LIB_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700452
453dnl
454dnl More X11 setup
455dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800456if test "$mesa_driver" = xlib; then
Dan Nicholsondca1b792007-10-23 09:25:58 -0700457 DEFINES="$DEFINES -DUSE_XSHM"
458fi
459
460dnl
Dan Nicholson44d99142007-12-05 18:47:01 -0800461dnl More DRI setup
462dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700463AC_ARG_ENABLE([glx-tls],
Dan Nicholson44d99142007-12-05 18:47:01 -0800464 [AS_HELP_STRING([--enable-glx-tls],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800465 [enable TLS support in GLX @<:@default=disabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700466 [GLX_USE_TLS="$enableval"],
467 [GLX_USE_TLS=no])
Dan Nicholson44d99142007-12-05 18:47:01 -0800468dnl Directory for DRI drivers
Dan Nicholson297e16c2008-05-05 15:42:53 -0700469AC_ARG_WITH([dri-driverdir],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800470 [AS_HELP_STRING([--with-dri-driverdir=DIR],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700471 [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700472 [DRI_DRIVER_INSTALL_DIR="$withval"],
Dan Nicholson5dbbde52008-05-06 06:21:41 -0700473 [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700474AC_SUBST([DRI_DRIVER_INSTALL_DIR])
Dan Nicholson44d99142007-12-05 18:47:01 -0800475dnl Direct rendering or just indirect rendering
Dan Nicholson297e16c2008-05-05 15:42:53 -0700476AC_ARG_ENABLE([driglx-direct],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800477 [AS_HELP_STRING([--disable-driglx-direct],
478 [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700479 [driglx_direct="$enableval"],
480 [driglx_direct="yes"])
Dan Nicholson44d99142007-12-05 18:47:01 -0800481
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800482dnl Which drivers to build - default is chosen by platform
Dan Nicholson297e16c2008-05-05 15:42:53 -0700483AC_ARG_WITH([dri-drivers],
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800484 [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
Dan Nicholsonc79c93c2007-12-12 18:13:04 -0800485 [comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700486 [with_dri_drivers="$withval"],
487 [with_dri_drivers=yes])
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800488if test "x$with_dri_drivers" = x; then
489 with_dri_drivers=no
490fi
491
492dnl If $with_dri_drivers is yes, directories will be added through
493dnl platform checks
494DRI_DIRS=""
495case "$with_dri_drivers" in
496no|yes) ;;
497*)
498 # verify the requested driver directories exist
499 dri_drivers=`IFS=,; echo $with_dri_drivers`
500 for driver in $dri_drivers; do
501 test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
502 AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
503 done
504 DRI_DIRS="$dri_drivers"
505 ;;
506esac
507
Dan Nicholson44d99142007-12-05 18:47:01 -0800508dnl Just default to no EGL for now
509USING_EGL=0
Dan Nicholson297e16c2008-05-05 15:42:53 -0700510AC_SUBST([USING_EGL])
Dan Nicholson44d99142007-12-05 18:47:01 -0800511
512dnl Set DRI_DIRS, DEFINES and LIB_DEPS
513if test "$mesa_driver" = dri; then
514 # Use TLS in GLX?
515 if test "x$GLX_USE_TLS" = xyes; then
516 DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
517 fi
518
519 if test "x$USING_EGL" = x1; then
520 PROGRAM_DIRS="egl"
521 fi
522
523 # Platform specific settings and drivers to build
524 case "$host_os" in
525 linux*)
526 DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
527 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
528 if test "x$driglx_direct" = xyes; then
529 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
530 fi
531
532 case "$host_cpu" in
Dan Nicholson44d99142007-12-05 18:47:01 -0800533 x86_64)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800534 # ffb, gamma, and sis are missing because they have not be
535 # converted to use the new interface. i810 are missing
536 # because there is no x86-64 system where they could *ever*
537 # be used.
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800538 if test "x$DRI_DIRS" = x; then
Dan Nicholsona76e2452007-12-07 11:25:08 -0800539 DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
540 savage tdfx unichrome"
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800541 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800542 ;;
543 powerpc*)
Dan Nicholsona76e2452007-12-07 11:25:08 -0800544 # Build only the drivers for cards that exist on PowerPC.
545 # At some point MGA will be added, but not yet.
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800546 if test "x$DRI_DIRS" = x; then
547 DRI_DIRS="mach64 r128 r200 r300 radeon tdfx"
548 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800549 ;;
550 esac
551 ;;
Hasso Tepper9f8df2d2008-04-09 10:51:21 -0700552 freebsd* | dragonfly*)
Dan Nicholson44d99142007-12-05 18:47:01 -0800553 DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
554 DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
555 DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
556 if test "x$driglx_direct" = xyes; then
557 DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
558 fi
559 if test "x$GXX" = xyes; then
560 CXXFLAGS="$CXXFLAGS -ansi -pedantic"
561 fi
562
Dan Nicholsona76e2452007-12-07 11:25:08 -0800563 # ffb and gamma are missing because they have not been converted
564 # to use the new interface.
Dan Nicholsonaf3d2f22007-11-15 08:59:57 -0800565 if test "x$DRI_DIRS" = x; then
566 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
567 unichrome savage sis"
568 fi
Dan Nicholson44d99142007-12-05 18:47:01 -0800569 ;;
570 esac
Dan Nicholson112a40e2008-02-21 10:17:19 -0800571
572 # default drivers
573 if test "x$DRI_DIRS" = x; then
574 DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
575 savage sis tdfx trident unichrome ffb"
576 fi
577
Dan Nicholson44d99142007-12-05 18:47:01 -0800578 DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
579
580 # Check for expat
581 EXPAT_INCLUDES=""
582 EXPAT_LIB=-lexpat
Dan Nicholson297e16c2008-05-05 15:42:53 -0700583 AC_ARG_WITH([expat],
584 [AS_HELP_STRING([--with-expat=DIR],
585 [expat install directory])],[
Dan Nicholson44d99142007-12-05 18:47:01 -0800586 EXPAT_INCLUDES="-I$withval/include"
587 CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
588 LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
589 EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
590 ])
Dan Nicholson297e16c2008-05-05 15:42:53 -0700591 AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
592 AC_CHECK_LIB([expat],[XML_ParserCreate],[],
593 [AC_MSG_ERROR([Expat required for DRI.])])
Dan Nicholson44d99142007-12-05 18:47:01 -0800594
595 # put all the necessary libs together
Eric Anholt050c5332008-03-20 17:28:58 -0700596 DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
Dan Nicholson44d99142007-12-05 18:47:01 -0800597fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700598AC_SUBST([DRI_DIRS])
599AC_SUBST([EXPAT_INCLUDES])
600AC_SUBST([DRI_LIB_DEPS])
Dan Nicholson44d99142007-12-05 18:47:01 -0800601
602dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700603dnl OSMesa configuration
604dnl
Dan Nicholsona1307182007-12-12 17:49:49 -0800605if test "$mesa_driver" = xlib; then
Dan Nicholson544ab202007-12-30 08:41:53 -0800606 default_gl_osmesa=yes
Dan Nicholson979ff512007-12-05 18:47:01 -0800607else
Dan Nicholson544ab202007-12-30 08:41:53 -0800608 default_gl_osmesa=no
Dan Nicholson44d99142007-12-05 18:47:01 -0800609fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700610AC_ARG_ENABLE([gl-osmesa],
Dan Nicholson544ab202007-12-30 08:41:53 -0800611 [AS_HELP_STRING([--enable-gl-osmesa],
612 [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700613 [gl_osmesa="$enableval"],
614 [gl_osmesa="$default_gl_osmesa"])
Dan Nicholson544ab202007-12-30 08:41:53 -0800615if test "x$gl_osmesa" = xyes; then
616 if test "$mesa_driver" = osmesa; then
617 AC_MSG_ERROR([libGL is not available for OSMesa driver])
Dan Nicholson979ff512007-12-05 18:47:01 -0800618 else
Dan Nicholson544ab202007-12-30 08:41:53 -0800619 DRIVER_DIRS="$DRIVER_DIRS osmesa"
Dan Nicholson979ff512007-12-05 18:47:01 -0800620 fi
621fi
622
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800623dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
Dan Nicholson297e16c2008-05-05 15:42:53 -0700624AC_ARG_WITH([osmesa-bits],
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800625 [AS_HELP_STRING([--with-osmesa-bits=BITS],
626 [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700627 [osmesa_bits="$withval"],
628 [osmesa_bits=8])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800629if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
630 AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
631 osmesa_bits=8
632fi
633case "x$osmesa_bits" in
634x8)
635 OSMESA_LIB=OSMesa
636 ;;
637x16|x32)
638 OSMESA_LIB="OSMesa$osmesa_bits"
639 DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
640 ;;
641*)
642 AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
643 ;;
644esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700645AC_SUBST([OSMESA_LIB])
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800646
Dan Nicholson979ff512007-12-05 18:47:01 -0800647case "$mesa_driver" in
648osmesa)
Dan Nicholson88586332007-11-15 08:59:57 -0800649 # only link librararies with osmesa if shared
650 if test "$enable_static" = no; then
Adam Jackson66611f22008-02-15 13:49:12 -0500651 OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
Dan Nicholson88586332007-11-15 08:59:57 -0800652 else
653 OSMESA_LIB_DEPS=""
654 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800655 OSMESA_MESA_DEPS=""
656 ;;
657*)
658 # Link OSMesa to libGL otherwise
659 OSMESA_LIB_DEPS=""
Dan Nicholson88586332007-11-15 08:59:57 -0800660 # only link librararies with osmesa if shared
661 if test "$enable_static" = no; then
662 OSMESA_MESA_DEPS='-l$(GL_LIB)'
663 else
664 OSMESA_MESA_DEPS=""
665 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800666 ;;
667esac
Dan Nicholson297e16c2008-05-05 15:42:53 -0700668AC_SUBST([OSMESA_LIB_DEPS])
669AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700670
671dnl
George Sapountzis2ed0f722008-04-26 12:34:11 +0300672dnl GLcore configuration
673dnl
674# delay pkg-config checks until `make glcore' run
675XORG_CFLAGS='`pkg-config --cflags xorg-server`'
676GLCORE_LIB_DEPS='-lm -lpthread'
677if test "$mesa_driver" = dri; then
678 GLCORE_LIB_DEPS="$GLCORE_LIB_DEPS $DLOPEN_LIBS"
679fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700680AC_SUBST([XORG_CFLAGS])
681AC_SUBST([GLCORE_LIB_DEPS])
George Sapountzis2ed0f722008-04-26 12:34:11 +0300682
683dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700684dnl GLU configuration
685dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700686AC_ARG_ENABLE([glu],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800687 [AS_HELP_STRING([--disable-glu],
688 [enable OpenGL Utility library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700689 [enable_glu="$enableval"],
690 [enable_glu=yes])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700691if test "x$enable_glu" = xyes; then
692 SRC_DIRS="$SRC_DIRS glu"
693
Dan Nicholson979ff512007-12-05 18:47:01 -0800694 case "$mesa_driver" in
695 osmesa)
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800696 # If GLU is available and we have libOSMesa (not 16 or 32),
697 # we can build the osdemos
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800698 if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
Dan Nicholson6689f9e2007-12-05 21:04:15 -0800699 PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
700 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700701
Dan Nicholson979ff512007-12-05 18:47:01 -0800702 # Link libGLU to libOSMesa instead of libGL
703 GLU_LIB_DEPS=""
Dan Nicholson88586332007-11-15 08:59:57 -0800704 if test "$enable_static" = no; then
705 GLU_MESA_DEPS='-l$(OSMESA_LIB)'
706 else
707 GLU_MESA_DEPS=""
708 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800709 ;;
710 *)
Dan Nicholson88586332007-11-15 08:59:57 -0800711 # If static, empty GLU_LIB_DEPS and add libs for programs to link
712 if test "$enable_static" = no; then
713 GLU_LIB_DEPS="-lm"
714 GLU_MESA_DEPS='-l$(GL_LIB)'
715 else
716 GLU_LIB_DEPS=""
717 GLU_MESA_DEPS=""
718 APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
719 fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800720 ;;
721 esac
Dan Nicholsondca1b792007-10-23 09:25:58 -0700722fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700723AC_SUBST([GLU_LIB_DEPS])
724AC_SUBST([GLU_MESA_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700725
726dnl
727dnl GLw configuration
728dnl
Dan Nicholson297e16c2008-05-05 15:42:53 -0700729AC_ARG_ENABLE([glw],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800730 [AS_HELP_STRING([--disable-glw],
731 [enable Xt/Motif widget library @<:@default=enabled@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700732 [enable_glw="$enableval"],
733 [enable_glw=yes])
Dan Nicholson979ff512007-12-05 18:47:01 -0800734dnl Don't build GLw on osmesa
735if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
736 AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
737 enable_glw=no
738fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700739if test "x$enable_glw" = xyes; then
740 SRC_DIRS="$SRC_DIRS glw"
741 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700742 PKG_CHECK_MODULES([GLW],[x11 xt])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700743 GLW_LIB_DEPS="$GLW_LIBS"
744 else
745 # should check these...
746 GLW_LIB_DEPS="$X_LIBS -lX11 -lXt"
747 fi
748
Dan Nicholson88586332007-11-15 08:59:57 -0800749 # If static, empty GLW_LIB_DEPS and add libs for programs to link
750 if test "$enable_static" = no; then
751 GLW_MESA_DEPS='-l$(GL_LIB)'
752 else
753 APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
754 GLW_LIB_DEPS=""
755 GLW_MESA_DEPS=""
756 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700757fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700758AC_SUBST([GLW_LIB_DEPS])
759AC_SUBST([GLW_MESA_DEPS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700760
761dnl
762dnl GLUT configuration
763dnl
764if test -f "$srcdir/include/GL/glut.h"; then
765 default_glut=yes
766else
767 default_glut=no
768fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700769AC_ARG_ENABLE([glut],
Dan Nicholson79ad4582007-12-07 19:11:01 -0800770 [AS_HELP_STRING([--disable-glut],
771 [enable GLUT library @<:@default=enabled if source available@:>@])],
Dan Nicholson297e16c2008-05-05 15:42:53 -0700772 [enable_glut="$enableval"],
773 [enable_glut="$default_glut"])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700774
775dnl Can't build glut if GLU not available
776if test "x$enable_glu$enable_glut" = xnoyes; then
777 AC_MSG_WARN([Disabling glut since GLU is disabled])
778 enable_glut=no
779fi
Dan Nicholson979ff512007-12-05 18:47:01 -0800780dnl Don't build glut on osmesa
781if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
782 AC_MSG_WARN([Disabling glut since the driver is OSMesa])
783 enable_glut=no
784fi
785
Dan Nicholsondca1b792007-10-23 09:25:58 -0700786if test "x$enable_glut" = xyes; then
787 SRC_DIRS="$SRC_DIRS glut/glx"
788 GLUT_CFLAGS=""
789 if test "x$GCC" = xyes; then
790 GLUT_CFLAGS="-fexceptions"
791 fi
792 if test "$x11_pkgconfig" = yes; then
Dan Nicholson297e16c2008-05-05 15:42:53 -0700793 PKG_CHECK_MODULES([GLUT],[x11 xmu xi])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700794 GLUT_LIB_DEPS="$GLUT_LIBS"
795 else
796 # should check these...
Dan Nicholson70d0c832007-12-07 11:12:20 -0800797 GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700798 fi
799 GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
800
801 # If glut is available, we can build most programs
Dan Nicholson8e4d1472007-11-15 08:59:57 -0800802 if test "$with_demos" = yes; then
803 PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
804 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700805
Dan Nicholson88586332007-11-15 08:59:57 -0800806 # If static, empty GLUT_LIB_DEPS and add libs for programs to link
807 if test "$enable_static" = no; then
808 GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
809 else
810 APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
811 GLUT_LIB_DEPS=""
812 GLUT_MESA_DEPS=""
813 fi
Dan Nicholsondca1b792007-10-23 09:25:58 -0700814fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700815AC_SUBST([GLUT_LIB_DEPS])
816AC_SUBST([GLUT_MESA_DEPS])
817AC_SUBST([GLUT_CFLAGS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700818
819dnl
820dnl Program library dependencies
821dnl Only libm is added here if necessary as the libraries should
822dnl be pulled in by the linker
823dnl
824if test "x$APP_LIB_DEPS" = x; then
825 APP_LIB_DEPS="-lm"
826fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700827AC_SUBST([APP_LIB_DEPS])
828AC_SUBST([PROGRAM_DIRS])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700829
Dan Nicholson7d016b72008-05-05 16:53:35 -0700830dnl
Dan Nicholsondca1b792007-10-23 09:25:58 -0700831dnl Arch/platform-specific settings
Dan Nicholson7d016b72008-05-05 16:53:35 -0700832dnl
833AC_ARG_ENABLE([asm],
834 [AS_HELP_STRING([--disable-asm],
835 [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
836 [enable_asm="$enableval"],
837 [enable_asm=yes]
838)
839asm_arch=""
Dan Nicholsondca1b792007-10-23 09:25:58 -0700840ASM_FLAGS=""
841ASM_SOURCES=""
842ASM_API=""
Dan Nicholson7d016b72008-05-05 16:53:35 -0700843AC_MSG_CHECKING([whether to enable assembly])
844test "x$enable_asm" = xno && AC_MSG_RESULT([no])
845# disable if cross compiling on x86/x86_64 since we must run gen_matypes
846if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
847 case "$host_cpu" in
848 i?86 | x86_64)
849 enable_asm=no
850 AC_MSG_RESULT([no, cross compiling])
851 ;;
852 esac
853fi
854# check for supported arches
855if test "x$enable_asm" = xyes; then
856 case "$host_cpu" in
857 i?86)
858 case "$host_os" in
859 linux* | freebsd* | dragonfly*)
860 test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
861 ;;
862 esac
863 ;;
864 x86_64)
865 case "$host_os" in
866 linux* | freebsd* | dragonfly*)
867 test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
868 ;;
869 esac
870 ;;
871 powerpc)
872 case "$host_os" in
873 linux*)
874 asm_arch=ppc
875 ;;
876 esac
877 ;;
878 esac
879
880 case "$asm_arch" in
881 x86)
882 ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
883 ASM_SOURCES='$(X86_SOURCES)'
884 ASM_API='$(X86_API)'
885 AC_MSG_RESULT([yes, x86])
886 ;;
887 x86_64)
888 ASM_FLAGS="-DUSE_X86_64_ASM"
889 ASM_SOURCES='$(X86-64_SOURCES)'
890 ASM_API='$(X86-64_API)'
891 AC_MSG_RESULT([yes, x86_64])
892 ;;
893 ppc)
894 ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
895 ASM_SOURCES='$(PPC_SOURCES)'
896 AC_MSG_RESULT([yes, ppc])
897 ;;
898 *)
899 AC_MSG_RESULT([no, platform not supported])
900 ;;
901 esac
902fi
Dan Nicholson297e16c2008-05-05 15:42:53 -0700903AC_SUBST([ASM_FLAGS])
904AC_SUBST([ASM_SOURCES])
905AC_SUBST([ASM_API])
Dan Nicholson7d016b72008-05-05 16:53:35 -0700906
Dan Nicholsond368eed2008-05-05 18:24:21 -0700907dnl PIC code macro
908MESA_PIC_FLAGS
909
Dan Nicholsondca1b792007-10-23 09:25:58 -0700910
911dnl Restore LDFLAGS and CPPFLAGS
912LDFLAGS="$_SAVE_LDFLAGS"
913CPPFLAGS="$_SAVE_CPPFLAGS"
914
915dnl Substitute the config
Dan Nicholsonf64d6fe2007-12-12 17:57:45 -0800916AC_CONFIG_FILES([configs/autoconf])
Dan Nicholsondca1b792007-10-23 09:25:58 -0700917
Dan Nicholsonaab38cf2007-12-11 08:21:51 -0800918dnl Replace the configs/current symlink
Dan Nicholsone14ebbc2008-05-06 11:28:43 -0700919AC_CONFIG_COMMANDS([configs],[
Dan Nicholsonaab38cf2007-12-11 08:21:51 -0800920if test -f configs/current || test -L configs/current; then
921 rm -f configs/current
922fi
923ln -s autoconf configs/current
Dan Nicholsone14ebbc2008-05-06 11:28:43 -0700924])
925
926AC_OUTPUT
Dan Nicholsonaab38cf2007-12-11 08:21:51 -0800927
Dan Nicholson9cad8e32007-11-30 08:49:57 -0800928dnl
929dnl Output some configuration info for the user
930dnl
931echo ""
932echo " prefix: $prefix"
933echo " exec_prefix: $exec_prefix"
934echo " libdir: $libdir"
935
936dnl Driver info
937echo ""
938echo " Driver: $mesa_driver"
Dan Nicholson544ab202007-12-30 08:41:53 -0800939if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
940 echo " OSMesa: lib$OSMESA_LIB"
941else
942 echo " OSMesa: no"
943fi
944if test "$mesa_driver" = dri; then
Dan Nicholson9cad8e32007-11-30 08:49:57 -0800945 # cleanup the drivers var
946 dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
947 echo " DRI drivers: $dri_dirs"
948 echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
Dan Nicholson544ab202007-12-30 08:41:53 -0800949fi
Dan Nicholson9cad8e32007-11-30 08:49:57 -0800950
951dnl Libraries
952echo ""
953echo " Shared libs: $enable_shared"
954echo " Static libs: $enable_static"
955echo " GLU: $enable_glu"
956echo " GLw: $enable_glw"
957echo " glut: $enable_glut"
958
959dnl Programs
960# cleanup the programs var for display
961program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
962if test "x$program_dirs" = x; then
963 echo " Demos: no"
964else
965 echo " Demos: $program_dirs"
966fi
967
Dan Nicholson16a07fb2007-12-12 09:12:15 -0800968dnl Compiler options
969# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
970cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
971 $SED 's/^ *//;s/ */ /;s/ *$//'`
972cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
973 $SED 's/^ *//;s/ */ /;s/ *$//'`
974defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
975echo ""
976echo " CFLAGS: $cflags"
977echo " CXXFLAGS: $cxxflags"
978echo " Macros: $defines"
979
Dan Nicholsondca1b792007-10-23 09:25:58 -0700980echo ""
Dan Nicholsonb6459422008-03-24 10:01:50 -0700981echo " Run '${MAKE-make}' to build Mesa"
Dan Nicholsondca1b792007-10-23 09:25:58 -0700982echo ""