Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 1 | dnl Process this file with autoconf to create configure. |
| 2 | |
| 3 | AC_PREREQ(2.59) |
| 4 | |
| 5 | dnl Versioning |
| 6 | dnl Make version number available to autoconf and configure |
| 7 | m4_define(mesa_major, 7) |
| 8 | m4_define(mesa_minor, 1) |
| 9 | m4_define(mesa_tiny, 0) |
| 10 | m4_define(mesa_version, [mesa_major().mesa_minor().mesa_tiny()]) |
| 11 | |
| 12 | AC_INIT(Mesa, mesa_version(), mesa3d@sourceforge.net) |
| 13 | AC_CONFIG_AUX_DIR(bin) |
| 14 | AC_CANONICAL_HOST |
| 15 | |
| 16 | dnl Substitute the version number into shell variables |
| 17 | MESA_MAJOR=mesa_major() |
| 18 | MESA_MINOR=mesa_minor() |
| 19 | MESA_TINY=mesa_tiny() |
| 20 | AC_SUBST(MESA_MAJOR) |
| 21 | AC_SUBST(MESA_MINOR) |
| 22 | AC_SUBST(MESA_TINY) |
| 23 | |
| 24 | dnl Check for progs |
| 25 | AC_PROG_CPP |
| 26 | AC_PROG_CC |
| 27 | AC_PROG_CXX |
| 28 | AC_PATH_PROG(MAKE, make) |
| 29 | AC_PATH_PROG(MKDEP, makedepend) |
| 30 | AC_PATH_PROG(SED, sed) |
| 31 | PKG_PROG_PKG_CONFIG() |
| 32 | |
| 33 | dnl LIB_DIR - library basename |
| 34 | LIB_DIR=`echo $libdir | $SED 's%.*/%%'` |
| 35 | AC_SUBST(LIB_DIR) |
| 36 | |
| 37 | dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later |
| 38 | _SAVE_LDFLAGS="$LDFLAGS" |
| 39 | AC_ARG_VAR(EXTRA_LIB_PATH,[Extra -L paths for the linker]) |
| 40 | AC_SUBST(EXTRA_LIB_PATH) |
| 41 | |
| 42 | dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later |
| 43 | _SAVE_CPPFLAGS="$CPPFLAGS" |
| 44 | AC_ARG_VAR(X11_INCLUDES,[Extra -I paths for X11 headers]) |
| 45 | AC_SUBST(X11_INCLUDES) |
| 46 | |
| 47 | dnl Compiler macros |
| 48 | DEFINES="" |
| 49 | AC_SUBST(DEFINES) |
| 50 | if test "x$GCC" = xyes; then |
| 51 | DEFINES="-D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE" |
| 52 | fi |
| 53 | case "$host_os" in |
| 54 | linux*) |
| 55 | DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN" |
| 56 | ;; |
| 57 | esac |
| 58 | |
| 59 | dnl Add flags for gcc and g++ |
| 60 | if test "x$GCC" = xyes; then |
| 61 | CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math" |
| 62 | fi |
| 63 | if test "x$GXX" = xyes; then |
| 64 | CXXFLAGS="$CXXFLAGS -Wall" |
| 65 | fi |
| 66 | |
| 67 | dnl These should be unnecessary, but let the user set them if they want |
| 68 | AC_ARG_VAR(OPT_FLAGS, [Additional optimization flags for the compiler. |
| 69 | Default is to use CFLAGS.]) |
| 70 | AC_ARG_VAR(ARCH_FLAGS, [Additional architecture specific flags for the |
| 71 | compiler. Default is to use CFLAGS.]) |
| 72 | AC_SUBST(OPT_FLAGS) |
| 73 | AC_SUBST(ARCH_FLAGS) |
| 74 | |
| 75 | dnl |
| 76 | dnl library names |
| 77 | dnl |
| 78 | GL_LIB_NAME='lib$(GL_LIB).so' |
| 79 | GLU_LIB_NAME='lib$(GLU_LIB).so' |
| 80 | GLUT_LIB_NAME='lib$(GLUT_LIB).so' |
| 81 | GLW_LIB_NAME='lib$(GLW_LIB).so' |
| 82 | OSMESA_LIB_NAME='lib$(OSMESA_LIB).so' |
| 83 | AC_SUBST(GL_LIB_NAME) |
| 84 | AC_SUBST(GLU_LIB_NAME) |
| 85 | AC_SUBST(GLUT_LIB_NAME) |
| 86 | AC_SUBST(GLW_LIB_NAME) |
| 87 | AC_SUBST(OSMESA_LIB_NAME) |
| 88 | |
| 89 | dnl |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 90 | dnl Driver configuration. Options are x11 (Xlib), dri and osmesa right now. |
| 91 | dnl More later: directfb, fbdev, ... |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 92 | dnl |
| 93 | AC_ARG_WITH(driver, |
| 94 | [AS_HELP_STRING([--with-driver=DRIVER], |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 95 | [driver for Mesa: x11,dri,osmesa @<:@default=x11@:>@])], |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 96 | mesa_driver="$withval", |
| 97 | mesa_driver="x11") |
| 98 | dnl Check for valid option |
| 99 | case "x$mesa_driver" in |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 100 | xx11|xdri|xosmesa) |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 101 | ;; |
| 102 | *) |
| 103 | AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option]) |
| 104 | ;; |
| 105 | esac |
| 106 | |
| 107 | dnl |
| 108 | dnl Driver specific build directories |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 109 | dnl |
| 110 | SRC_DIRS="mesa" |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 111 | GLU_DIRS="sgi" |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 112 | DRI_DIRS="" |
| 113 | WINDOW_SYSTEM="" |
| 114 | case "$mesa_driver" in |
| 115 | x11) |
| 116 | DRIVER_DIRS="x11" |
| 117 | ;; |
| 118 | dri) |
| 119 | SRC_DIRS="glx/x11 $SRC_DIRS" |
| 120 | DRIVER_DIRS="dri" |
| 121 | WINDOW_SYSTEM="dri" |
| 122 | ;; |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 123 | osmesa) |
| 124 | DRIVER_DIRS="osmesa" |
| 125 | ;; |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 126 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 127 | AC_SUBST(SRC_DIRS) |
| 128 | AC_SUBST(GLU_DIRS) |
| 129 | AC_SUBST(DRIVER_DIRS) |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 130 | AC_SUBST(WINDOW_SYSTEM) |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 131 | |
| 132 | dnl |
| 133 | dnl Find out if X is available. The variables have_x or no_x will be |
| 134 | dnl set and used later in the driver setups |
| 135 | dnl |
| 136 | if test -n "$PKG_CONFIG"; then |
| 137 | AC_MSG_CHECKING([pkg-config files for X11 are available]) |
| 138 | if $PKG_CONFIG --exists x11; then |
| 139 | x11_pkgconfig=yes |
| 140 | have_x=yes |
| 141 | AC_MSG_RESULT(yes) |
| 142 | else |
| 143 | x11_pkgconfig=no |
| 144 | no_x=yes |
| 145 | AC_MSG_RESULT(no) |
| 146 | fi |
| 147 | else |
| 148 | x11_pkgconfig=no |
| 149 | fi |
| 150 | dnl Use the autoconf macro if no pkg-config files |
| 151 | if test "$x11_pkgconfig" = no; then |
| 152 | AC_PATH_XTRA |
| 153 | fi |
| 154 | |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 155 | dnl We need X for xlib and dri, so bomb now if it's not found |
| 156 | case "$mesa_driver" in |
| 157 | x11|dri) |
| 158 | if test "$no_x" = yes; then |
| 159 | AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver]) |
| 160 | fi |
| 161 | ;; |
| 162 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 163 | |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 164 | dnl |
| 165 | dnl libGL configuration per driver |
| 166 | dnl |
| 167 | case "$mesa_driver" in |
| 168 | x11) |
| 169 | if test "$x11_pkgconfig" = yes; then |
| 170 | PKG_CHECK_MODULES(X11GL, x11 xext) |
| 171 | X11_INCLUDES="$X11_INCLUDES $X11GL_CFLAGS" |
| 172 | GL_LIB_DEPS="$X11GL_LIBS" |
| 173 | else |
| 174 | # should check these... |
| 175 | X11_INCLUDES="$X11_INCLUDES $X_CFLAGS" |
| 176 | GL_LIB_DEPS="$X_LIBS -lX11 -lXext" |
| 177 | fi |
| 178 | GL_LIB_DEPS="$GL_LIB_DEPS -lm -lpthread" |
| 179 | ;; |
| 180 | dri) |
| 181 | # Check for libdrm |
| 182 | PKG_CHECK_MODULES(LIBDRM, libdrm) |
| 183 | |
| 184 | # find the DRI deps for libGL |
| 185 | if test "$x11_pkgconfig" = yes; then |
| 186 | PKG_CHECK_MODULES(DRIGL, x11 xext xxf86vm xdamage xfixes) |
| 187 | X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS" |
| 188 | GL_LIB_DEPS="$DRIGL_LIBS" |
| 189 | else |
| 190 | # should check these... |
| 191 | X11_INCLUDES="$X11_INCLUDES $X_CFLAGS" |
| 192 | GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes" |
| 193 | fi |
| 194 | |
| 195 | # need DRM libs, -lpthread, etc. |
| 196 | GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread -ldl" |
| 197 | ;; |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 198 | osmesa) |
| 199 | # No libGL for osmesa |
| 200 | GL_LIB_DEPS="" |
| 201 | ;; |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 202 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 203 | AC_SUBST(GL_LIB_DEPS) |
| 204 | |
| 205 | dnl |
| 206 | dnl More X11 setup |
| 207 | dnl |
| 208 | if test "$mesa_driver" = x11; then |
| 209 | DEFINES="$DEFINES -DUSE_XSHM" |
| 210 | fi |
| 211 | |
| 212 | dnl |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 213 | dnl More DRI setup |
| 214 | dnl |
| 215 | AC_ARG_ENABLE(glx-tls, |
| 216 | [AS_HELP_STRING([--enable-glx-tls], |
| 217 | [enable TLS support in GLX @<:@default=no@:>@])], |
| 218 | GLX_USE_TLS="$enableval", |
| 219 | GLX_USE_TLS=no) |
| 220 | dnl Directory for DRI drivers |
| 221 | AC_ARG_WITH(dridriverdir, |
| 222 | [AS_HELP_STRING([--with-dridriverdir=DIR], |
| 223 | [directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])], |
| 224 | DRI_DRIVER_INSTALL_DIR="$withval", |
| 225 | DRI_DRIVER_INSTALL_DIR='/usr/X11R6/lib/modules/dri') |
| 226 | AC_SUBST(DRI_DRIVER_INSTALL_DIR) |
| 227 | dnl Direct rendering or just indirect rendering |
| 228 | AC_ARG_ENABLE(driglx-direct, |
| 229 | [AS_HELP_STRING([--enable-driglx-direct], |
| 230 | [enable direct rendering in GLX for DRI @<:@default=yes@:>@])], |
| 231 | driglx_direct="$enableval", |
| 232 | driglx_direct="yes") |
| 233 | |
| 234 | dnl Just default to no EGL for now |
| 235 | USING_EGL=0 |
| 236 | AC_SUBST(USING_EGL) |
| 237 | |
| 238 | dnl Set DRI_DIRS, DEFINES and LIB_DEPS |
| 239 | if test "$mesa_driver" = dri; then |
| 240 | # Use TLS in GLX? |
| 241 | if test "x$GLX_USE_TLS" = xyes; then |
| 242 | DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS" |
| 243 | fi |
| 244 | |
| 245 | if test "x$USING_EGL" = x1; then |
| 246 | PROGRAM_DIRS="egl" |
| 247 | fi |
| 248 | |
| 249 | # Platform specific settings and drivers to build |
| 250 | case "$host_os" in |
| 251 | linux*) |
| 252 | DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" |
| 253 | DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS" |
| 254 | if test "x$driglx_direct" = xyes; then |
| 255 | DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" |
| 256 | fi |
| 257 | |
| 258 | case "$host_cpu" in |
| 259 | i*86) |
| 260 | DRI_DIRS="i810 i915tex i915 i965 mach64 mga r128 r200 r300 \ |
| 261 | radeon s3v savage sis tdfx trident unichrome ffb" |
| 262 | ;; |
| 263 | x86_64) |
| 264 | DRI_DIRS="i915tex i915 i965 mach64 mga r128 r200 radeon tdfx \ |
| 265 | unichrome savage r300" |
| 266 | ;; |
| 267 | powerpc*) |
| 268 | DRI_DIRS="mach64 r128 r200 r300 radeon tdfx" |
| 269 | ;; |
| 270 | esac |
| 271 | ;; |
| 272 | freebsd*) |
| 273 | DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1" |
| 274 | DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" |
| 275 | DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" |
| 276 | if test "x$driglx_direct" = xyes; then |
| 277 | DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" |
| 278 | fi |
| 279 | if test "x$GXX" = xyes; then |
| 280 | CXXFLAGS="$CXXFLAGS -ansi -pedantic" |
| 281 | fi |
| 282 | |
| 283 | DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \ |
| 284 | unichrome savage sis" |
| 285 | ;; |
| 286 | esac |
| 287 | DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` |
| 288 | |
| 289 | # Check for expat |
| 290 | EXPAT_INCLUDES="" |
| 291 | EXPAT_LIB=-lexpat |
| 292 | AC_ARG_WITH(expat, AS_HELP_STRING([--with-expat=DIR], |
| 293 | [expat install directory]),[ |
| 294 | EXPAT_INCLUDES="-I$withval/include" |
| 295 | CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES" |
| 296 | LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR" |
| 297 | EXPAT_LIB="-L$withval/$LIB_DIR -lexpat" |
| 298 | ]) |
| 299 | AC_CHECK_HEADER(expat.h,,AC_MSG_ERROR([Expat required for DRI.])) |
| 300 | AC_CHECK_LIB(expat, XML_ParserCreate,, |
| 301 | AC_MSG_ERROR([Expat required for DRI.])) |
| 302 | |
| 303 | # put all the necessary libs together |
| 304 | DRI_LIB_DEPS="$LIBDRM_LIBS $EXPAT_LIB -lm -lpthread -ldl" |
| 305 | fi |
| 306 | AC_SUBST(DRI_DIRS) |
| 307 | AC_SUBST(EXPAT_INCLUDES) |
| 308 | AC_SUBST(DRI_LIB_DEPS) |
| 309 | |
| 310 | dnl |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 311 | dnl OSMesa configuration |
| 312 | dnl |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 313 | if test "$mesa_driver" = x11; then |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 314 | default_x11_osmesa=yes |
| 315 | else |
| 316 | default_x11_osmesa=no |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 317 | fi |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 318 | AC_ARG_ENABLE(x11-osmesa, |
| 319 | [AS_HELP_STRING([--enable-x11-osmesa], |
| 320 | [enable OSMesa on X11 libGL @<:@default=yes for x11 driver@:>@])], |
| 321 | x11_osmesa="$enableval", |
| 322 | x11_osmesa="$default_x11_osmesa") |
| 323 | if test "x$x11_osmesa" = xyes; then |
| 324 | if test "$mesa_driver" = x11; then |
| 325 | DRIVER_DIRS="$DRIVER_DIRS osmesa" |
| 326 | else |
| 327 | AC_MSG_ERROR([Can only enable OSMesa on libGL for X11]) |
| 328 | fi |
| 329 | fi |
| 330 | |
Dan Nicholson | 6689f9e | 2007-12-05 21:04:15 -0800 | [diff] [blame^] | 331 | dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...) |
| 332 | AC_ARG_WITH(osmesa-bits, |
| 333 | [AS_HELP_STRING([--with-osmesa-bits=BITS], |
| 334 | [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])], |
| 335 | osmesa_bits="$withval", |
| 336 | osmesa_bits=8) |
| 337 | if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then |
| 338 | AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver]) |
| 339 | osmesa_bits=8 |
| 340 | fi |
| 341 | case "x$osmesa_bits" in |
| 342 | x8) |
| 343 | OSMESA_LIB=OSMesa |
| 344 | ;; |
| 345 | x16|x32) |
| 346 | OSMESA_LIB="OSMesa$osmesa_bits" |
| 347 | DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31" |
| 348 | ;; |
| 349 | *) |
| 350 | AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option]) |
| 351 | ;; |
| 352 | esac |
| 353 | AC_SUBST(OSMESA_LIB) |
| 354 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 355 | case "$mesa_driver" in |
| 356 | osmesa) |
| 357 | OSMESA_LIB_DEPS="-lm -lpthread" |
| 358 | OSMESA_MESA_DEPS="" |
| 359 | ;; |
| 360 | *) |
| 361 | # Link OSMesa to libGL otherwise |
| 362 | OSMESA_LIB_DEPS="" |
| 363 | OSMESA_MESA_DEPS='-l$(GL_LIB)' |
| 364 | ;; |
| 365 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 366 | AC_SUBST(OSMESA_LIB_DEPS) |
| 367 | AC_SUBST(OSMESA_MESA_DEPS) |
| 368 | |
| 369 | dnl |
| 370 | dnl GLU configuration |
| 371 | dnl |
| 372 | AC_ARG_ENABLE(glu, |
| 373 | [AS_HELP_STRING([--enable-glu], |
| 374 | [enable OpenGL Utility library @<:@default=yes@:>@])], |
| 375 | enable_glu="$enableval", |
| 376 | enable_glu=yes) |
| 377 | if test "x$enable_glu" = xyes; then |
| 378 | SRC_DIRS="$SRC_DIRS glu" |
| 379 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 380 | case "$mesa_driver" in |
| 381 | osmesa) |
Dan Nicholson | 6689f9e | 2007-12-05 21:04:15 -0800 | [diff] [blame^] | 382 | # If GLU is available and we have libOSMesa (not 16 or 32), |
| 383 | # we can build the osdemos |
| 384 | if test "$osmesa_bits" = 8; then |
| 385 | PROGRAM_DIRS="$PROGRAM_DIRS osdemos" |
| 386 | fi |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 387 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 388 | # Link libGLU to libOSMesa instead of libGL |
| 389 | GLU_LIB_DEPS="" |
| 390 | GLU_MESA_DEPS='-l$(OSMESA_LIB)' |
| 391 | ;; |
| 392 | *) |
| 393 | # If GLU is available, we can build the xdemos |
| 394 | PROGRAM_DIRS="$PROGRAM_DIRS xdemos" |
| 395 | |
| 396 | GLU_LIB_DEPS="-lm" |
| 397 | GLU_MESA_DEPS='-l$(GL_LIB)' |
| 398 | ;; |
| 399 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 400 | fi |
| 401 | AC_SUBST(GLU_LIB_DEPS) |
| 402 | AC_SUBST(GLU_MESA_DEPS) |
| 403 | |
| 404 | dnl |
| 405 | dnl GLw configuration |
| 406 | dnl |
| 407 | AC_ARG_ENABLE(glw, |
| 408 | [AS_HELP_STRING([--enable-glw], |
| 409 | [enable Xt/Motif widget library @<:@default=yes@:>@])], |
| 410 | enable_glw="$enableval", |
| 411 | enable_glw=yes) |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 412 | dnl Don't build GLw on osmesa |
| 413 | if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then |
| 414 | AC_MSG_WARN([Disabling GLw since the driver is OSMesa]) |
| 415 | enable_glw=no |
| 416 | fi |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 417 | if test "x$enable_glw" = xyes; then |
| 418 | SRC_DIRS="$SRC_DIRS glw" |
| 419 | if test "$x11_pkgconfig" = yes; then |
| 420 | PKG_CHECK_MODULES(GLW, x11 xt) |
| 421 | GLW_LIB_DEPS="$GLW_LIBS" |
| 422 | else |
| 423 | # should check these... |
| 424 | GLW_LIB_DEPS="$X_LIBS -lX11 -lXt" |
| 425 | fi |
| 426 | |
| 427 | GLW_MESA_DEPS='-l$(GL_LIB)' |
| 428 | fi |
| 429 | AC_SUBST(GLW_LIB_DEPS) |
| 430 | AC_SUBST(GLW_MESA_DEPS) |
| 431 | |
| 432 | dnl |
| 433 | dnl GLUT configuration |
| 434 | dnl |
| 435 | if test -f "$srcdir/include/GL/glut.h"; then |
| 436 | default_glut=yes |
| 437 | else |
| 438 | default_glut=no |
| 439 | fi |
| 440 | AC_ARG_ENABLE(glut, |
| 441 | [AS_HELP_STRING([--enable-glut], |
| 442 | [enable GLUT library @<:@default=yes if source available@:>@])], |
| 443 | enable_glut="$enableval", |
| 444 | enable_glut="$default_glut") |
| 445 | |
| 446 | dnl Can't build glut if GLU not available |
| 447 | if test "x$enable_glu$enable_glut" = xnoyes; then |
| 448 | AC_MSG_WARN([Disabling glut since GLU is disabled]) |
| 449 | enable_glut=no |
| 450 | fi |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 451 | dnl Don't build glut on osmesa |
| 452 | if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then |
| 453 | AC_MSG_WARN([Disabling glut since the driver is OSMesa]) |
| 454 | enable_glut=no |
| 455 | fi |
| 456 | |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 457 | if test "x$enable_glut" = xyes; then |
| 458 | SRC_DIRS="$SRC_DIRS glut/glx" |
| 459 | GLUT_CFLAGS="" |
| 460 | if test "x$GCC" = xyes; then |
| 461 | GLUT_CFLAGS="-fexceptions" |
| 462 | fi |
| 463 | if test "$x11_pkgconfig" = yes; then |
| 464 | PKG_CHECK_MODULES(GLUT, x11 xmu xt xi) |
| 465 | GLUT_LIB_DEPS="$GLUT_LIBS" |
| 466 | else |
| 467 | # should check these... |
| 468 | GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXt -lXi" |
| 469 | fi |
| 470 | GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm" |
| 471 | |
| 472 | # If glut is available, we can build most programs |
| 473 | PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl" |
| 474 | |
| 475 | GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)' |
| 476 | fi |
| 477 | AC_SUBST(GLUT_LIB_DEPS) |
| 478 | AC_SUBST(GLUT_MESA_DEPS) |
| 479 | AC_SUBST(GLUT_CFLAGS) |
| 480 | |
| 481 | dnl |
| 482 | dnl Program library dependencies |
| 483 | dnl Only libm is added here if necessary as the libraries should |
| 484 | dnl be pulled in by the linker |
| 485 | dnl |
| 486 | if test "x$APP_LIB_DEPS" = x; then |
| 487 | APP_LIB_DEPS="-lm" |
| 488 | fi |
| 489 | AC_SUBST(APP_LIB_DEPS) |
| 490 | AC_SUBST(PROGRAM_DIRS) |
| 491 | |
| 492 | dnl Arch/platform-specific settings |
| 493 | PIC_FLAGS="" |
| 494 | ASM_FLAGS="" |
| 495 | ASM_SOURCES="" |
| 496 | ASM_API="" |
| 497 | AC_SUBST(PIC_FLAGS) |
| 498 | AC_SUBST(ASM_FLAGS) |
| 499 | AC_SUBST(ASM_SOURCES) |
| 500 | AC_SUBST(ASM_API) |
| 501 | case "$host_os" in |
| 502 | linux*) |
| 503 | PIC_FLAGS="-fPIC" |
| 504 | case "$host_cpu" in |
| 505 | i*86) |
| 506 | ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" |
| 507 | ASM_SOURCES='$(X86_SOURCES)' |
| 508 | ASM_API='$(X86_API)' |
| 509 | ;; |
| 510 | x86_64) |
| 511 | ASM_FLAGS="-DUSE_X86_64_ASM" |
| 512 | ASM_SOURCES='$(X86-64_SOURCES)' |
| 513 | ASM_API='$(X86-64_API)' |
| 514 | ;; |
| 515 | powerpc) |
| 516 | ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM" |
| 517 | ASM_SOURCES='$(PPC_SOURCES)' |
| 518 | ;; |
| 519 | esac |
| 520 | ;; |
| 521 | freebsd*) |
| 522 | PIC_FLAGS="-fPIC" |
| 523 | case "$host_os" in |
| 524 | i*86) |
| 525 | PIC_FLAGS="" |
| 526 | ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" |
| 527 | ASM_SOURCES='$(X86_SOURCES)' |
| 528 | ASM_API='$(X86_API)' |
| 529 | ;; |
| 530 | x86_64) |
| 531 | ASM_FLAGS="-DUSE_X86_64_ASM" |
| 532 | ASM_SOURCES='$(X86-64_SOURCES)' |
| 533 | ASM_API='$(X86-64_API)' |
| 534 | ;; |
| 535 | esac |
| 536 | ;; |
| 537 | esac |
| 538 | |
| 539 | dnl Restore LDFLAGS and CPPFLAGS |
| 540 | LDFLAGS="$_SAVE_LDFLAGS" |
| 541 | CPPFLAGS="$_SAVE_CPPFLAGS" |
| 542 | |
| 543 | dnl Substitute the config |
| 544 | AC_OUTPUT([configs/autoconf]) |
| 545 | |
| 546 | echo "" |
| 547 | echo " Run 'make autoconf' to build Mesa" |
| 548 | echo "" |