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 |
Dan Nicholson | 8e4d147 | 2007-11-15 08:59:57 -0800 | [diff] [blame^] | 133 | dnl User supplied program configuration |
| 134 | dnl |
| 135 | if test -d "$srcdir/progs/demos"; then |
| 136 | default_demos=yes |
| 137 | else |
| 138 | default_demos=no |
| 139 | fi |
| 140 | AC_ARG_WITH(demos, |
| 141 | [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@], |
| 142 | [optional comma delimited demo directories to build |
| 143 | @<:@default=yes if source available@:>@])], |
| 144 | with_demos="$withval", |
| 145 | with_demos="$default_demos") |
| 146 | if test "x$with_demos" = x; then |
| 147 | with_demos=no |
| 148 | fi |
| 149 | |
| 150 | dnl If $with_demos is yes, directories will be added as libs available |
| 151 | PROGRAM_DIRS="" |
| 152 | case "$with_demos" in |
| 153 | no|yes) ;; |
| 154 | *) |
| 155 | # verify the requested demos directories exist |
| 156 | demos=`IFS=,; echo $with_demos` |
| 157 | for demo in $demos; do |
| 158 | test -d "$srcdir/progs/$demo" || \ |
| 159 | AC_MSG_ERROR([Program directory '$demo' doesn't exist]) |
| 160 | done |
| 161 | PROGRAM_DIRS="$demos" |
| 162 | ;; |
| 163 | esac |
| 164 | |
| 165 | dnl |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 166 | dnl Find out if X is available. The variables have_x or no_x will be |
| 167 | dnl set and used later in the driver setups |
| 168 | dnl |
| 169 | if test -n "$PKG_CONFIG"; then |
| 170 | AC_MSG_CHECKING([pkg-config files for X11 are available]) |
| 171 | if $PKG_CONFIG --exists x11; then |
| 172 | x11_pkgconfig=yes |
| 173 | have_x=yes |
| 174 | AC_MSG_RESULT(yes) |
| 175 | else |
| 176 | x11_pkgconfig=no |
| 177 | no_x=yes |
| 178 | AC_MSG_RESULT(no) |
| 179 | fi |
| 180 | else |
| 181 | x11_pkgconfig=no |
| 182 | fi |
| 183 | dnl Use the autoconf macro if no pkg-config files |
| 184 | if test "$x11_pkgconfig" = no; then |
| 185 | AC_PATH_XTRA |
| 186 | fi |
| 187 | |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 188 | dnl We need X for xlib and dri, so bomb now if it's not found |
| 189 | case "$mesa_driver" in |
| 190 | x11|dri) |
| 191 | if test "$no_x" = yes; then |
| 192 | AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver]) |
| 193 | fi |
| 194 | ;; |
| 195 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 196 | |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 197 | dnl |
| 198 | dnl libGL configuration per driver |
| 199 | dnl |
| 200 | case "$mesa_driver" in |
| 201 | x11) |
| 202 | if test "$x11_pkgconfig" = yes; then |
| 203 | PKG_CHECK_MODULES(X11GL, x11 xext) |
| 204 | X11_INCLUDES="$X11_INCLUDES $X11GL_CFLAGS" |
| 205 | GL_LIB_DEPS="$X11GL_LIBS" |
| 206 | else |
| 207 | # should check these... |
| 208 | X11_INCLUDES="$X11_INCLUDES $X_CFLAGS" |
| 209 | GL_LIB_DEPS="$X_LIBS -lX11 -lXext" |
| 210 | fi |
| 211 | GL_LIB_DEPS="$GL_LIB_DEPS -lm -lpthread" |
| 212 | ;; |
| 213 | dri) |
| 214 | # Check for libdrm |
| 215 | PKG_CHECK_MODULES(LIBDRM, libdrm) |
| 216 | |
| 217 | # find the DRI deps for libGL |
| 218 | if test "$x11_pkgconfig" = yes; then |
| 219 | PKG_CHECK_MODULES(DRIGL, x11 xext xxf86vm xdamage xfixes) |
| 220 | X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS" |
| 221 | GL_LIB_DEPS="$DRIGL_LIBS" |
| 222 | else |
| 223 | # should check these... |
| 224 | X11_INCLUDES="$X11_INCLUDES $X_CFLAGS" |
| 225 | GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes" |
| 226 | fi |
| 227 | |
| 228 | # need DRM libs, -lpthread, etc. |
| 229 | GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread -ldl" |
| 230 | ;; |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 231 | osmesa) |
| 232 | # No libGL for osmesa |
| 233 | GL_LIB_DEPS="" |
| 234 | ;; |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 235 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 236 | AC_SUBST(GL_LIB_DEPS) |
| 237 | |
| 238 | dnl |
| 239 | dnl More X11 setup |
| 240 | dnl |
| 241 | if test "$mesa_driver" = x11; then |
| 242 | DEFINES="$DEFINES -DUSE_XSHM" |
| 243 | fi |
| 244 | |
| 245 | dnl |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 246 | dnl More DRI setup |
| 247 | dnl |
| 248 | AC_ARG_ENABLE(glx-tls, |
| 249 | [AS_HELP_STRING([--enable-glx-tls], |
| 250 | [enable TLS support in GLX @<:@default=no@:>@])], |
| 251 | GLX_USE_TLS="$enableval", |
| 252 | GLX_USE_TLS=no) |
| 253 | dnl Directory for DRI drivers |
| 254 | AC_ARG_WITH(dridriverdir, |
| 255 | [AS_HELP_STRING([--with-dridriverdir=DIR], |
| 256 | [directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])], |
| 257 | DRI_DRIVER_INSTALL_DIR="$withval", |
| 258 | DRI_DRIVER_INSTALL_DIR='/usr/X11R6/lib/modules/dri') |
| 259 | AC_SUBST(DRI_DRIVER_INSTALL_DIR) |
| 260 | dnl Direct rendering or just indirect rendering |
| 261 | AC_ARG_ENABLE(driglx-direct, |
| 262 | [AS_HELP_STRING([--enable-driglx-direct], |
| 263 | [enable direct rendering in GLX for DRI @<:@default=yes@:>@])], |
| 264 | driglx_direct="$enableval", |
| 265 | driglx_direct="yes") |
| 266 | |
| 267 | dnl Just default to no EGL for now |
| 268 | USING_EGL=0 |
| 269 | AC_SUBST(USING_EGL) |
| 270 | |
| 271 | dnl Set DRI_DIRS, DEFINES and LIB_DEPS |
| 272 | if test "$mesa_driver" = dri; then |
| 273 | # Use TLS in GLX? |
| 274 | if test "x$GLX_USE_TLS" = xyes; then |
| 275 | DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS" |
| 276 | fi |
| 277 | |
| 278 | if test "x$USING_EGL" = x1; then |
| 279 | PROGRAM_DIRS="egl" |
| 280 | fi |
| 281 | |
| 282 | # Platform specific settings and drivers to build |
| 283 | case "$host_os" in |
| 284 | linux*) |
| 285 | DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER" |
| 286 | DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS" |
| 287 | if test "x$driglx_direct" = xyes; then |
| 288 | DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" |
| 289 | fi |
| 290 | |
| 291 | case "$host_cpu" in |
| 292 | i*86) |
| 293 | DRI_DIRS="i810 i915tex i915 i965 mach64 mga r128 r200 r300 \ |
| 294 | radeon s3v savage sis tdfx trident unichrome ffb" |
| 295 | ;; |
| 296 | x86_64) |
| 297 | DRI_DIRS="i915tex i915 i965 mach64 mga r128 r200 radeon tdfx \ |
| 298 | unichrome savage r300" |
| 299 | ;; |
| 300 | powerpc*) |
| 301 | DRI_DIRS="mach64 r128 r200 r300 radeon tdfx" |
| 302 | ;; |
| 303 | esac |
| 304 | ;; |
| 305 | freebsd*) |
| 306 | DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1" |
| 307 | DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" |
| 308 | DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING" |
| 309 | if test "x$driglx_direct" = xyes; then |
| 310 | DEFINES="$DEFINES -DGLX_DIRECT_RENDERING" |
| 311 | fi |
| 312 | if test "x$GXX" = xyes; then |
| 313 | CXXFLAGS="$CXXFLAGS -ansi -pedantic" |
| 314 | fi |
| 315 | |
| 316 | DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \ |
| 317 | unichrome savage sis" |
| 318 | ;; |
| 319 | esac |
| 320 | DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'` |
| 321 | |
| 322 | # Check for expat |
| 323 | EXPAT_INCLUDES="" |
| 324 | EXPAT_LIB=-lexpat |
| 325 | AC_ARG_WITH(expat, AS_HELP_STRING([--with-expat=DIR], |
| 326 | [expat install directory]),[ |
| 327 | EXPAT_INCLUDES="-I$withval/include" |
| 328 | CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES" |
| 329 | LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR" |
| 330 | EXPAT_LIB="-L$withval/$LIB_DIR -lexpat" |
| 331 | ]) |
| 332 | AC_CHECK_HEADER(expat.h,,AC_MSG_ERROR([Expat required for DRI.])) |
| 333 | AC_CHECK_LIB(expat, XML_ParserCreate,, |
| 334 | AC_MSG_ERROR([Expat required for DRI.])) |
| 335 | |
| 336 | # put all the necessary libs together |
| 337 | DRI_LIB_DEPS="$LIBDRM_LIBS $EXPAT_LIB -lm -lpthread -ldl" |
| 338 | fi |
| 339 | AC_SUBST(DRI_DIRS) |
| 340 | AC_SUBST(EXPAT_INCLUDES) |
| 341 | AC_SUBST(DRI_LIB_DEPS) |
| 342 | |
| 343 | dnl |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 344 | dnl OSMesa configuration |
| 345 | dnl |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 346 | if test "$mesa_driver" = x11; then |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 347 | default_x11_osmesa=yes |
| 348 | else |
| 349 | default_x11_osmesa=no |
Dan Nicholson | 44d9914 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 350 | fi |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 351 | AC_ARG_ENABLE(x11-osmesa, |
| 352 | [AS_HELP_STRING([--enable-x11-osmesa], |
| 353 | [enable OSMesa on X11 libGL @<:@default=yes for x11 driver@:>@])], |
| 354 | x11_osmesa="$enableval", |
| 355 | x11_osmesa="$default_x11_osmesa") |
| 356 | if test "x$x11_osmesa" = xyes; then |
| 357 | if test "$mesa_driver" = x11; then |
| 358 | DRIVER_DIRS="$DRIVER_DIRS osmesa" |
| 359 | else |
| 360 | AC_MSG_ERROR([Can only enable OSMesa on libGL for X11]) |
| 361 | fi |
| 362 | fi |
| 363 | |
Dan Nicholson | 6689f9e | 2007-12-05 21:04:15 -0800 | [diff] [blame] | 364 | dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...) |
| 365 | AC_ARG_WITH(osmesa-bits, |
| 366 | [AS_HELP_STRING([--with-osmesa-bits=BITS], |
| 367 | [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])], |
| 368 | osmesa_bits="$withval", |
| 369 | osmesa_bits=8) |
| 370 | if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then |
| 371 | AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver]) |
| 372 | osmesa_bits=8 |
| 373 | fi |
| 374 | case "x$osmesa_bits" in |
| 375 | x8) |
| 376 | OSMESA_LIB=OSMesa |
| 377 | ;; |
| 378 | x16|x32) |
| 379 | OSMESA_LIB="OSMesa$osmesa_bits" |
| 380 | DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31" |
| 381 | ;; |
| 382 | *) |
| 383 | AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option]) |
| 384 | ;; |
| 385 | esac |
| 386 | AC_SUBST(OSMESA_LIB) |
| 387 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 388 | case "$mesa_driver" in |
| 389 | osmesa) |
| 390 | OSMESA_LIB_DEPS="-lm -lpthread" |
| 391 | OSMESA_MESA_DEPS="" |
| 392 | ;; |
| 393 | *) |
| 394 | # Link OSMesa to libGL otherwise |
| 395 | OSMESA_LIB_DEPS="" |
| 396 | OSMESA_MESA_DEPS='-l$(GL_LIB)' |
| 397 | ;; |
| 398 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 399 | AC_SUBST(OSMESA_LIB_DEPS) |
| 400 | AC_SUBST(OSMESA_MESA_DEPS) |
| 401 | |
| 402 | dnl |
| 403 | dnl GLU configuration |
| 404 | dnl |
| 405 | AC_ARG_ENABLE(glu, |
| 406 | [AS_HELP_STRING([--enable-glu], |
| 407 | [enable OpenGL Utility library @<:@default=yes@:>@])], |
| 408 | enable_glu="$enableval", |
| 409 | enable_glu=yes) |
| 410 | if test "x$enable_glu" = xyes; then |
| 411 | SRC_DIRS="$SRC_DIRS glu" |
| 412 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 413 | case "$mesa_driver" in |
| 414 | osmesa) |
Dan Nicholson | 6689f9e | 2007-12-05 21:04:15 -0800 | [diff] [blame] | 415 | # If GLU is available and we have libOSMesa (not 16 or 32), |
| 416 | # we can build the osdemos |
Dan Nicholson | 8e4d147 | 2007-11-15 08:59:57 -0800 | [diff] [blame^] | 417 | if test "$with_demos" = yes && test "$osmesa_bits" = 8; then |
Dan Nicholson | 6689f9e | 2007-12-05 21:04:15 -0800 | [diff] [blame] | 418 | PROGRAM_DIRS="$PROGRAM_DIRS osdemos" |
| 419 | fi |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 420 | |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 421 | # Link libGLU to libOSMesa instead of libGL |
| 422 | GLU_LIB_DEPS="" |
| 423 | GLU_MESA_DEPS='-l$(OSMESA_LIB)' |
| 424 | ;; |
| 425 | *) |
| 426 | # If GLU is available, we can build the xdemos |
Dan Nicholson | 8e4d147 | 2007-11-15 08:59:57 -0800 | [diff] [blame^] | 427 | if test "$with_demos" = yes; then |
| 428 | PROGRAM_DIRS="$PROGRAM_DIRS xdemos" |
| 429 | fi |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 430 | |
| 431 | GLU_LIB_DEPS="-lm" |
| 432 | GLU_MESA_DEPS='-l$(GL_LIB)' |
| 433 | ;; |
| 434 | esac |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 435 | fi |
| 436 | AC_SUBST(GLU_LIB_DEPS) |
| 437 | AC_SUBST(GLU_MESA_DEPS) |
| 438 | |
| 439 | dnl |
| 440 | dnl GLw configuration |
| 441 | dnl |
| 442 | AC_ARG_ENABLE(glw, |
| 443 | [AS_HELP_STRING([--enable-glw], |
| 444 | [enable Xt/Motif widget library @<:@default=yes@:>@])], |
| 445 | enable_glw="$enableval", |
| 446 | enable_glw=yes) |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 447 | dnl Don't build GLw on osmesa |
| 448 | if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then |
| 449 | AC_MSG_WARN([Disabling GLw since the driver is OSMesa]) |
| 450 | enable_glw=no |
| 451 | fi |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 452 | if test "x$enable_glw" = xyes; then |
| 453 | SRC_DIRS="$SRC_DIRS glw" |
| 454 | if test "$x11_pkgconfig" = yes; then |
| 455 | PKG_CHECK_MODULES(GLW, x11 xt) |
| 456 | GLW_LIB_DEPS="$GLW_LIBS" |
| 457 | else |
| 458 | # should check these... |
| 459 | GLW_LIB_DEPS="$X_LIBS -lX11 -lXt" |
| 460 | fi |
| 461 | |
| 462 | GLW_MESA_DEPS='-l$(GL_LIB)' |
| 463 | fi |
| 464 | AC_SUBST(GLW_LIB_DEPS) |
| 465 | AC_SUBST(GLW_MESA_DEPS) |
| 466 | |
| 467 | dnl |
| 468 | dnl GLUT configuration |
| 469 | dnl |
| 470 | if test -f "$srcdir/include/GL/glut.h"; then |
| 471 | default_glut=yes |
| 472 | else |
| 473 | default_glut=no |
| 474 | fi |
| 475 | AC_ARG_ENABLE(glut, |
| 476 | [AS_HELP_STRING([--enable-glut], |
| 477 | [enable GLUT library @<:@default=yes if source available@:>@])], |
| 478 | enable_glut="$enableval", |
| 479 | enable_glut="$default_glut") |
| 480 | |
| 481 | dnl Can't build glut if GLU not available |
| 482 | if test "x$enable_glu$enable_glut" = xnoyes; then |
| 483 | AC_MSG_WARN([Disabling glut since GLU is disabled]) |
| 484 | enable_glut=no |
| 485 | fi |
Dan Nicholson | 979ff51 | 2007-12-05 18:47:01 -0800 | [diff] [blame] | 486 | dnl Don't build glut on osmesa |
| 487 | if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then |
| 488 | AC_MSG_WARN([Disabling glut since the driver is OSMesa]) |
| 489 | enable_glut=no |
| 490 | fi |
| 491 | |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 492 | if test "x$enable_glut" = xyes; then |
| 493 | SRC_DIRS="$SRC_DIRS glut/glx" |
| 494 | GLUT_CFLAGS="" |
| 495 | if test "x$GCC" = xyes; then |
| 496 | GLUT_CFLAGS="-fexceptions" |
| 497 | fi |
| 498 | if test "$x11_pkgconfig" = yes; then |
| 499 | PKG_CHECK_MODULES(GLUT, x11 xmu xt xi) |
| 500 | GLUT_LIB_DEPS="$GLUT_LIBS" |
| 501 | else |
| 502 | # should check these... |
| 503 | GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXt -lXi" |
| 504 | fi |
| 505 | GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm" |
| 506 | |
| 507 | # If glut is available, we can build most programs |
Dan Nicholson | 8e4d147 | 2007-11-15 08:59:57 -0800 | [diff] [blame^] | 508 | if test "$with_demos" = yes; then |
| 509 | PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl" |
| 510 | fi |
Dan Nicholson | dca1b79 | 2007-10-23 09:25:58 -0700 | [diff] [blame] | 511 | |
| 512 | GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)' |
| 513 | fi |
| 514 | AC_SUBST(GLUT_LIB_DEPS) |
| 515 | AC_SUBST(GLUT_MESA_DEPS) |
| 516 | AC_SUBST(GLUT_CFLAGS) |
| 517 | |
| 518 | dnl |
| 519 | dnl Program library dependencies |
| 520 | dnl Only libm is added here if necessary as the libraries should |
| 521 | dnl be pulled in by the linker |
| 522 | dnl |
| 523 | if test "x$APP_LIB_DEPS" = x; then |
| 524 | APP_LIB_DEPS="-lm" |
| 525 | fi |
| 526 | AC_SUBST(APP_LIB_DEPS) |
| 527 | AC_SUBST(PROGRAM_DIRS) |
| 528 | |
| 529 | dnl Arch/platform-specific settings |
| 530 | PIC_FLAGS="" |
| 531 | ASM_FLAGS="" |
| 532 | ASM_SOURCES="" |
| 533 | ASM_API="" |
| 534 | AC_SUBST(PIC_FLAGS) |
| 535 | AC_SUBST(ASM_FLAGS) |
| 536 | AC_SUBST(ASM_SOURCES) |
| 537 | AC_SUBST(ASM_API) |
| 538 | case "$host_os" in |
| 539 | linux*) |
| 540 | PIC_FLAGS="-fPIC" |
| 541 | case "$host_cpu" in |
| 542 | i*86) |
| 543 | ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" |
| 544 | ASM_SOURCES='$(X86_SOURCES)' |
| 545 | ASM_API='$(X86_API)' |
| 546 | ;; |
| 547 | x86_64) |
| 548 | ASM_FLAGS="-DUSE_X86_64_ASM" |
| 549 | ASM_SOURCES='$(X86-64_SOURCES)' |
| 550 | ASM_API='$(X86-64_API)' |
| 551 | ;; |
| 552 | powerpc) |
| 553 | ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM" |
| 554 | ASM_SOURCES='$(PPC_SOURCES)' |
| 555 | ;; |
| 556 | esac |
| 557 | ;; |
| 558 | freebsd*) |
| 559 | PIC_FLAGS="-fPIC" |
| 560 | case "$host_os" in |
| 561 | i*86) |
| 562 | PIC_FLAGS="" |
| 563 | ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM" |
| 564 | ASM_SOURCES='$(X86_SOURCES)' |
| 565 | ASM_API='$(X86_API)' |
| 566 | ;; |
| 567 | x86_64) |
| 568 | ASM_FLAGS="-DUSE_X86_64_ASM" |
| 569 | ASM_SOURCES='$(X86-64_SOURCES)' |
| 570 | ASM_API='$(X86-64_API)' |
| 571 | ;; |
| 572 | esac |
| 573 | ;; |
| 574 | esac |
| 575 | |
| 576 | dnl Restore LDFLAGS and CPPFLAGS |
| 577 | LDFLAGS="$_SAVE_LDFLAGS" |
| 578 | CPPFLAGS="$_SAVE_CPPFLAGS" |
| 579 | |
| 580 | dnl Substitute the config |
| 581 | AC_OUTPUT([configs/autoconf]) |
| 582 | |
| 583 | echo "" |
| 584 | echo " Run 'make autoconf' to build Mesa" |
| 585 | echo "" |