configure.ac 48.7 KB
Newer Older
1 2
dnl Process this file with autoconf to create configure.

3
AC_PREREQ([2.59])
4

5 6
dnl Versioning - scrape the version from configs/default
m4_define([mesa_version],
7
    [m4_esyscmd([${MAKE-make} -s -f bin/version.mk version | tr -d '\n' | tr -d '\r'])])
8 9
m4_ifval(mesa_version,,
    [m4_fatal([Failed to get the Mesa version from `make -f bin/version.mk version`])])
10

11 12 13 14
dnl Tell the user about autoconf.html in the --help output
m4_divert_once([HELP_END], [
See docs/autoconf.html for more details on the options for Mesa.])

15
AC_INIT([Mesa],[mesa_version],
16
    [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
17
AC_CONFIG_AUX_DIR([bin])
18 19
AC_CANONICAL_HOST

20
dnl Versions for external dependencies
21
LIBDRM_REQUIRED=2.4.15
22
LIBDRM_RADEON_REQUIRED=2.4.17
23
DRI2PROTO_REQUIRED=2.1
Jesse Barnes's avatar
Jesse Barnes committed
24
GLPROTO_REQUIRED=1.4.11
Jakob Bornecrantz's avatar
Jakob Bornecrantz committed
25 26
LIBDRM_XORG_REQUIRED=2.4.17
LIBKMS_XORG_REQUIRED=1.0.0
27

28 29 30 31
dnl Check for progs
AC_PROG_CPP
AC_PROG_CC
AC_PROG_CXX
32 33 34
AC_CHECK_PROGS([MAKE], [gmake make])
AC_PATH_PROG([MKDEP], [makedepend])
AC_PATH_PROG([SED], [sed])
35

36 37 38 39 40
dnl Our fallback install-sh is a symlink to minstall. Use the existing
dnl configuration in that case.
AC_PROG_INSTALL
test "x$INSTALL" = "x$ac_install_sh" && INSTALL='$(MINSTALL)'

41 42
dnl We need a POSIX shell for parts of the build. Assume we have one
dnl in most cases.
43 44 45 46
case "$host_os" in
solaris*)
    # Solaris /bin/sh is too old/non-POSIX compliant
    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
47
    SHELL="$POSIX_SHELL"
48 49 50
    ;;
esac

Ian Romanick's avatar
Ian Romanick committed
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
dnl If we're using GCC, make sure that it is at least version 3.3.0.  Older
dnl versions are explictly not supported.
if test "x$GCC" = xyes; then
    AC_MSG_CHECKING([whether gcc version is sufficient])
    major=0
    minor=0

    GCC_VERSION=`$CC -dumpversion`
    if test $? -eq 0; then
        major=`echo $GCC_VERSION | cut -d. -f1`
        minor=`echo $GCC_VERSION | cut -d. -f1`
    fi

    if test $major -lt 3 -o $major -eq 3 -a $minor -lt 3 ; then
        AC_MSG_RESULT([no])
        AC_MSG_ERROR([If using GCC, version 3.3.0 or later is required.])
    else
        AC_MSG_RESULT([yes])
    fi
fi


73
MKDEP_OPTIONS=-fdepend
74 75
dnl Ask gcc where it's keeping its secret headers
if test "x$GCC" = xyes; then
76 77 78 79 80 81 82 83
    for dir in include include-fixed; do
        GCC_INCLUDES=`$CC -print-file-name=$dir`
        if test "x$GCC_INCLUDES" != x && \
           test "$GCC_INCLUDES" != "$dir" && \
           test -d "$GCC_INCLUDES"; then
            MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
        fi
    done
84
fi
85
AC_SUBST([MKDEP_OPTIONS])
86

87
dnl Make sure the pkg-config macros are defined
88 89 90 91 92
m4_ifndef([PKG_PROG_PKG_CONFIG],
    [m4_fatal([Could not locate the pkg-config autoconf macros.
  These are usually located in /usr/share/aclocal/pkg.m4. If your macros
  are in a different location, try setting the environment variable
  ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
93 94 95 96
PKG_PROG_PKG_CONFIG()

dnl LIB_DIR - library basename
LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
97
AC_SUBST([LIB_DIR])
98 99 100

dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
_SAVE_LDFLAGS="$LDFLAGS"
101 102
AC_ARG_VAR([EXTRA_LIB_PATH],[Extra -L paths for the linker])
AC_SUBST([EXTRA_LIB_PATH])
103 104 105

dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
_SAVE_CPPFLAGS="$CPPFLAGS"
106 107
AC_ARG_VAR([X11_INCLUDES],[Extra -I paths for X11 headers])
AC_SUBST([X11_INCLUDES])
108 109 110

dnl Compiler macros
DEFINES=""
111
AC_SUBST([DEFINES])
112
case "$host_os" in
Samuel Thibault's avatar
Samuel Thibault committed
113
linux*|*-gnu*|gnu*)
114
    DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS"
115
    ;;
116 117 118
solaris*)
    DEFINES="$DEFINES -DPTHREADS -DSVR4"
    ;;
119 120 121
cygwin*)
    DEFINES="$DEFINES -DPTHREADS"
    ;;
122 123 124 125
esac

dnl Add flags for gcc and g++
if test "x$GCC" = xyes; then
126 127 128 129
    CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"

    # Enable -fvisibility=hidden if using a gcc that supports it
    save_CFLAGS="$CFLAGS"
130
    AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
131 132 133
    CFLAGS="$CFLAGS -fvisibility=hidden"
    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
		   [CFLAGS="$save_CFLAGS" ; AC_MSG_RESULT([no])]);
134 135 136

    # Work around aliasing bugs - developers should comment this out
    CFLAGS="$CFLAGS -fno-strict-aliasing"
137 138 139
fi
if test "x$GXX" = xyes; then
    CXXFLAGS="$CXXFLAGS -Wall"
140 141 142

    # Work around aliasing bugs - developers should comment this out
    CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
143 144 145
fi

dnl These should be unnecessary, but let the user set them if they want
146
AC_ARG_VAR([OPT_FLAGS], [Additional optimization flags for the compiler.
147
    Default is to use CFLAGS.])
148
AC_ARG_VAR([ARCH_FLAGS], [Additional architecture specific flags for the
149
    compiler. Default is to use CFLAGS.])
150 151
AC_SUBST([OPT_FLAGS])
AC_SUBST([ARCH_FLAGS])
152

153 154 155
dnl
dnl Hacks to enable 32 or 64 bit build
dnl
156
AC_ARG_ENABLE([32-bit],
157 158
    [AS_HELP_STRING([--enable-32-bit],
        [build 32-bit libraries @<:@default=auto@:>@])],
159 160
    [enable_32bit="$enableval"],
    [enable_32bit=auto]
161 162 163 164
)
if test "x$enable_32bit" = xyes; then
    if test "x$GCC" = xyes; then
        CFLAGS="$CFLAGS -m32"
165
        ARCH_FLAGS="$ARCH_FLAGS -m32"
166 167 168 169 170
    fi
    if test "x$GXX" = xyes; then
        CXXFLAGS="$CXXFLAGS -m32"
    fi
fi
171
AC_ARG_ENABLE([64-bit],
172 173
    [AS_HELP_STRING([--enable-64-bit],
        [build 64-bit libraries @<:@default=auto@:>@])],
174 175
    [enable_64bit="$enableval"],
    [enable_64bit=auto]
176 177 178 179 180 181 182 183 184 185
)
if test "x$enable_64bit" = xyes; then
    if test "x$GCC" = xyes; then
        CFLAGS="$CFLAGS -m64"
    fi
    if test "x$GXX" = xyes; then
        CXXFLAGS="$CXXFLAGS -m64"
    fi
fi

186 187 188
dnl
dnl shared/static libraries, mimic libtool options
dnl
189
AC_ARG_ENABLE([static],
190
    [AS_HELP_STRING([--enable-static],
191
        [build static libraries @<:@default=disabled@:>@])],
192 193
    [enable_static="$enableval"],
    [enable_static=no]
194 195 196 197 198 199 200 201
)
case "x$enable_static" in
xyes|xno ) ;;
x ) enable_static=no ;;
* )
    AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
    ;;
esac
202
AC_ARG_ENABLE([shared],
203
    [AS_HELP_STRING([--disable-shared],
204
        [build shared libraries @<:@default=enabled@:>@])],
205 206
    [enable_shared="$enableval"],
    [enable_shared=yes]
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232
)
case "x$enable_shared" in
xyes|xno ) ;;
x ) enable_shared=yes ;;
* )
    AC_MSG_ERROR([Shared library option '$enable_shared' is not a valid])
    ;;
esac

dnl Can't have static and shared libraries, default to static if user
dnl explicitly requested. If both disabled, set to static since shared
dnl was explicitly requirested.
case "x$enable_static$enable_shared" in
xyesyes )
    AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
    enable_shared=no
    ;;
xnono )
    AC_MSG_WARN([Can't disable both static and shared libraries, enabling static])
    enable_static=yes
    ;;
esac

dnl
dnl mklib options
dnl
233
AC_ARG_VAR([MKLIB_OPTIONS],[Options for the Mesa library script, mklib])
234 235 236
if test "$enable_static" = yes; then
    MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
fi
237
AC_SUBST([MKLIB_OPTIONS])
238

239 240 241
dnl
dnl other compiler options
dnl
242
AC_ARG_ENABLE([debug],
243 244
    [AS_HELP_STRING([--enable-debug],
        [use debug compiler flags and macros @<:@default=disabled@:>@])],
245 246
    [enable_debug="$enableval"],
    [enable_debug=no]
247 248 249 250 251 252 253 254 255 256
)
if test "x$enable_debug" = xyes; then
    DEFINES="$DEFINES -DDEBUG"
    if test "x$GCC" = xyes; then
        CFLAGS="$CFLAGS -g"
    fi
    if test "x$GXX" = xyes; then
        CXXFLAGS="$CXXFLAGS -g"
    fi
fi
257

258 259 260
dnl
dnl library names
dnl
261
if test "$enable_static" = yes; then
262
    LIB_EXTENSION='a'
263
else
264 265 266
    case "$host_os" in
    darwin* )
        LIB_EXTENSION='dylib' ;;
Jon TURNEY's avatar
Jon TURNEY committed
267
    cygwin* )
Chia-I Wu's avatar
Chia-I Wu committed
268
        LIB_EXTENSION='dll.a' ;;
Tom Fogal's avatar
Tom Fogal committed
269 270
    aix* )
        LIB_EXTENSION='a' ;;
271 272 273
    * )
        LIB_EXTENSION='so' ;;
    esac
274
fi
275

276 277 278 279 280
GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION}
GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION}
GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION}
GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION}
OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION}
Chia-I Wu's avatar
Chia-I Wu committed
281
EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION}
282 283
GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION}
GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION}
284
VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION}
285 286 287 288 289 290

GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*'
GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*'
GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*'
GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*'
OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*'
Chia-I Wu's avatar
Chia-I Wu committed
291
EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*'
292 293
GLESv1_CM_LIB_GLOB='lib$(GLESv1_CM_LIB).*'${LIB_EXTENSION}'*'
GLESv2_LIB_GLOB='lib$(GLESv2_LIB).*'${LIB_EXTENSION}'*'
294
VG_LIB_GLOB='lib$(VG_LIB).*'${LIB_EXTENSION}'*'
295

296 297 298 299 300
AC_SUBST([GL_LIB_NAME])
AC_SUBST([GLU_LIB_NAME])
AC_SUBST([GLUT_LIB_NAME])
AC_SUBST([GLW_LIB_NAME])
AC_SUBST([OSMESA_LIB_NAME])
Chia-I Wu's avatar
Chia-I Wu committed
301
AC_SUBST([EGL_LIB_NAME])
302 303
AC_SUBST([GLESv1_CM_LIB_NAME])
AC_SUBST([GLESv2_LIB_NAME])
304
AC_SUBST([VG_LIB_NAME])
305

306 307 308 309 310
AC_SUBST([GL_LIB_GLOB])
AC_SUBST([GLU_LIB_GLOB])
AC_SUBST([GLUT_LIB_GLOB])
AC_SUBST([GLW_LIB_GLOB])
AC_SUBST([OSMESA_LIB_GLOB])
Chia-I Wu's avatar
Chia-I Wu committed
311
AC_SUBST([EGL_LIB_GLOB])
312 313
AC_SUBST([GLESv1_CM_LIB_GLOB])
AC_SUBST([GLESv2_LIB_GLOB])
314
AC_SUBST([VG_LIB_GLOB])
315

316 317 318 319 320 321 322 323 324 325 326
dnl
dnl Arch/platform-specific settings
dnl
AC_ARG_ENABLE([asm],
    [AS_HELP_STRING([--disable-asm],
        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
    [enable_asm="$enableval"],
    [enable_asm=yes]
)
asm_arch=""
ASM_FLAGS=""
327 328
MESA_ASM_SOURCES=""
GLAPI_ASM_SOURCES=""
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344
AC_MSG_CHECKING([whether to enable assembly])
test "x$enable_asm" = xno && AC_MSG_RESULT([no])
# disable if cross compiling on x86/x86_64 since we must run gen_matypes
if test "x$enable_asm" = xyes && test "x$cross_compiling" = xyes; then
    case "$host_cpu" in
    i?86 | x86_64)
        enable_asm=no
        AC_MSG_RESULT([no, cross compiling])
        ;;
    esac
fi
# check for supported arches
if test "x$enable_asm" = xyes; then
    case "$host_cpu" in
    i?86)
        case "$host_os" in
345
        linux* | *freebsd* | dragonfly*)
346 347 348 349 350 351
            test "x$enable_64bit" = xyes && asm_arch=x86_64 || asm_arch=x86
            ;;
        esac
        ;;
    x86_64)
        case "$host_os" in
352
        linux* | *freebsd* | dragonfly*)
353 354 355 356 357 358 359 360 361 362 363
            test "x$enable_32bit" = xyes && asm_arch=x86 || asm_arch=x86_64
            ;;
        esac
        ;;
    powerpc)
        case "$host_os" in
        linux*)
            asm_arch=ppc
            ;;
        esac
        ;;
364 365 366 367 368 369 370
    sparc*)
        case "$host_os" in
        linux*)
            asm_arch=sparc
            ;;
        esac
        ;;
371 372 373 374
    esac

    case "$asm_arch" in
    x86)
375
        ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
376 377
        MESA_ASM_SOURCES='$(X86_SOURCES)'
        GLAPI_ASM_SOURCES='$(X86_API)'
378 379 380 381
        AC_MSG_RESULT([yes, x86])
        ;;
    x86_64)
        ASM_FLAGS="-DUSE_X86_64_ASM"
382 383
        MESA_ASM_SOURCES='$(X86-64_SOURCES)'
        GLAPI_ASM_SOURCES='$(X86-64_API)'
384 385 386 387
        AC_MSG_RESULT([yes, x86_64])
        ;;
    ppc)
        ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
388
        MESA_ASM_SOURCES='$(PPC_SOURCES)'
389 390
        AC_MSG_RESULT([yes, ppc])
        ;;
391 392 393 394 395 396
    sparc)
        ASM_FLAGS="-DUSE_SPARC_ASM"
        MESA_ASM_SOURCES='$(SPARC_SOURCES)'
        GLAPI_ASM_SOURCES='$(SPARC_API)'
        AC_MSG_RESULT([yes, sparc])
        ;;
397 398 399 400 401 402
    *)
        AC_MSG_RESULT([no, platform not supported])
        ;;
    esac
fi
AC_SUBST([ASM_FLAGS])
403 404
AC_SUBST([MESA_ASM_SOURCES])
AC_SUBST([GLAPI_ASM_SOURCES])
405 406 407 408 409 410 411 412 413

dnl PIC code macro
MESA_PIC_FLAGS

dnl Check to see if dlopen is in default libraries (like Solaris, which
dnl has it in libc), or if libdl is needed to get it.
AC_CHECK_FUNC([dlopen], [],
    [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])])

414 415 416
dnl See if posix_memalign is available
AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])

417 418 419 420 421 422 423 424 425 426 427 428 429 430 431
dnl SELinux awareness.
AC_ARG_ENABLE([selinux],
    [AS_HELP_STRING([--enable-selinux],
        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
    [MESA_SELINUX="$enableval"],
    [MESA_SELINUX=no])
if test "x$enable_selinux" = "xyes"; then
    AC_CHECK_HEADER([selinux/selinux.h],[],
                    [AC_MSG_ERROR([SELinux headers not found])])
    AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
                 [AC_MSG_ERROR([SELinux library not found])])
    SELINUX_LIBS="-lselinux"
    DEFINES="$DEFINES -DMESA_SELINUX"
fi

432
dnl
433
dnl Driver configuration. Options are xlib, dri and osmesa right now.
Kristian Høgsberg's avatar
Kristian Høgsberg committed
434
dnl More later: fbdev, ...
435
dnl
436 437 438 439 440
default_driver="xlib"

case "$host_os" in
linux*)
    case "$host_cpu" in
441
    i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
442 443
    esac
    ;;
444
*freebsd* | dragonfly*)
445
    case "$host_cpu" in
446
    i*86|x86_64|powerpc*|sparc*) default_driver="dri";;
447 448 449 450
    esac
    ;;
esac

451
AC_ARG_WITH([driver],
452
    [AS_HELP_STRING([--with-driver=DRIVER],
453
        [driver for Mesa: xlib,dri,osmesa @<:@default=dri when available, or xlib@:>@])],
454 455
    [mesa_driver="$withval"],
    [mesa_driver="$default_driver"])
456 457
dnl Check for valid option
case "x$mesa_driver" in
458
xxlib|xdri|xosmesa)
459 460 461 462 463 464 465 466
    ;;
*)
    AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
    ;;
esac

dnl
dnl Driver specific build directories
467
dnl
468 469

dnl this variable will be prepended to SRC_DIRS and is not exported
Chia-I Wu's avatar
Chia-I Wu committed
470
CORE_DIRS="mapi/glapi glsl mesa"
471 472

SRC_DIRS="glew"
473
GLU_DIRS="sgi"
474
GALLIUM_DIRS="auxiliary drivers state_trackers"
475
GALLIUM_TARGET_DIRS=""
476
GALLIUM_WINSYS_DIRS="sw"
Jakob Bornecrantz's avatar
Jakob Bornecrantz committed
477
GALLIUM_DRIVERS_DIRS="softpipe failover trace rbug identity"
478 479
GALLIUM_STATE_TRACKERS_DIRS=""

480
case "$mesa_driver" in
481
xlib)
482
    DRIVER_DIRS="x11"
483
    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
484
    GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS libgl-xlib"
485 486
    ;;
dri)
487
    SRC_DIRS="$SRC_DIRS glx"
488
    DRIVER_DIRS="dri"
489
    GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib sw/dri sw/drm"
490
    ;;
491 492 493
osmesa)
    DRIVER_DIRS="osmesa"
    ;;
494
esac
495 496 497
AC_SUBST([SRC_DIRS])
AC_SUBST([GLU_DIRS])
AC_SUBST([DRIVER_DIRS])
498
AC_SUBST([GALLIUM_DIRS])
499
AC_SUBST([GALLIUM_TARGET_DIRS])
Jerome Glisse's avatar
Jerome Glisse committed
500
AC_SUBST([GALLIUM_WINSYS_DIRS])
501
AC_SUBST([GALLIUM_DRIVERS_DIRS])
502
AC_SUBST([GALLIUM_STATE_TRACKERS_DIRS])
503
AC_SUBST([MESA_LLVM])
504

505 506 507 508 509 510 511 512
dnl
dnl User supplied program configuration
dnl
if test -d "$srcdir/progs/demos"; then
    default_demos=yes
else
    default_demos=no
fi
513
AC_ARG_WITH([demos],
514 515
    [AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
        [optional comma delimited demo directories to build
516
        @<:@default=auto if source available@:>@])],
517 518
    [with_demos="$withval"],
    [with_demos="$default_demos"])
519 520 521 522 523 524 525
if test "x$with_demos" = x; then
    with_demos=no
fi

dnl If $with_demos is yes, directories will be added as libs available
PROGRAM_DIRS=""
case "$with_demos" in
526
no) ;;
527
yes) ;;
528 529 530 531 532 533 534 535 536 537 538
*)
    # verify the requested demos directories exist
    demos=`IFS=,; echo $with_demos`
    for demo in $demos; do
        test -d "$srcdir/progs/$demo" || \
            AC_MSG_ERROR([Program directory '$demo' doesn't exist])
    done
    PROGRAM_DIRS="$demos"
    ;;
esac

539
dnl
540
dnl Find out if X is available. The variable have_x is set if libX11 is
541
dnl found to mimic AC_PATH_XTRA.
542 543 544
dnl
if test -n "$PKG_CONFIG"; then
    AC_MSG_CHECKING([pkg-config files for X11 are available])
545
    PKG_CHECK_EXISTS([x11],[
546 547
        x11_pkgconfig=yes
        have_x=yes
548
        ],[
549
        x11_pkgconfig=no
550 551
    ])
    AC_MSG_RESULT([$x11_pkgconfig])
552 553 554 555
else
    x11_pkgconfig=no
fi
dnl Use the autoconf macro if no pkg-config files
556
if test "$x11_pkgconfig" = yes; then
557
    PKG_CHECK_MODULES([X11], [x11])
558
else
559
    AC_PATH_XTRA
560 561 562 563
    test -z "$X11_CFLAGS" && X11_CFLAGS="$X_CFLAGS"
    test -z "$X11_LIBS" && X11_LIBS="$X_LIBS -lX11"
    AC_SUBST([X11_CFLAGS])
    AC_SUBST([X11_LIBS])
564 565
fi

566 567 568 569 570 571
dnl Try to tell the user that the --x-* options are only used when
dnl pkg-config is not available. This must be right after AC_PATH_XTRA.
m4_divert_once([HELP_BEGIN],
[These options are only used when the X libraries cannot be found by the
pkg-config utility.])

572 573
dnl We need X for xlib and dri, so bomb now if it's not found
case "$mesa_driver" in
574
xlib|dri)
575 576 577 578 579 580
    if test "$no_x" = yes; then
        AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
    fi
    ;;
esac

581 582 583 584 585 586 587 588 589 590 591 592
dnl XCB - this is only used for GLX right now
AC_ARG_ENABLE([xcb],
    [AS_HELP_STRING([--enable-xcb],
        [use XCB for GLX @<:@default=disabled@:>@])],
    [enable_xcb="$enableval"],
    [enable_xcb=no])
if test "x$enable_xcb" = xyes; then
    DEFINES="$DEFINES -DUSE_XCB"
else
    enable_xcb=no
fi

593
dnl
594
dnl libGL configuration per driver
595
dnl
596
case "$mesa_driver" in
597
xlib)
598
    if test "$x11_pkgconfig" = yes; then
599
        PKG_CHECK_MODULES([XLIBGL], [x11 xext])
600
        GL_PC_REQ_PRIV="x11 xext"
601 602
        X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
        GL_LIB_DEPS="$XLIBGL_LIBS"
603 604 605 606
    else
        # should check these...
        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
        GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
607 608
        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
        GL_PC_CFLAGS="$X11_INCLUDES"
609
    fi
610 611
    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread"
612 613 614 615 616 617 618

    # if static, move the external libraries to the programs
    # and empty the libraries for libGL
    if test "$enable_static" = yes; then
        APP_LIB_DEPS="$APP_LIB_DEPS $GL_LIB_DEPS"
        GL_LIB_DEPS=""
    fi
619 620
    ;;
dri)
621 622 623 624 625
    # DRI must be shared, I think
    if test "$enable_static" = yes; then
        AC_MSG_ERROR([Can't use static libraries for DRI drivers])
    fi

626
    # Check for libdrm
627 628
    PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
    PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
Jesse Barnes's avatar
Jesse Barnes committed
629
    PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
630 631
    GL_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED glproto >= $GLPROTO_REQUIRED"
    DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
632

633 634
    # find the DRI deps for libGL
    if test "$x11_pkgconfig" = yes; then
635 636 637 638 639 640 641
        # add xcb modules if necessary
        dri_modules="x11 xext xxf86vm xdamage xfixes"
        if test "$enable_xcb" = yes; then
            dri_modules="$dri_modules x11-xcb xcb-glx"
        fi

        PKG_CHECK_MODULES([DRIGL], [$dri_modules])
642
        GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
643 644 645 646 647 648
        X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
        GL_LIB_DEPS="$DRIGL_LIBS"
    else
        # should check these...
        X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
        GL_LIB_DEPS="$X_LIBS -lX11 -lXext -lXxf86vm -lXdamage -lXfixes"
649 650
        GL_PC_LIB_PRIV="$GL_LIB_DEPS"
        GL_PC_CFLAGS="$X11_INCLUDES"
651 652 653 654

        # XCB can only be used from pkg-config
        if test "$enable_xcb" = yes; then
            PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
655
            GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
656 657 658
            X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
            GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
        fi
659 660 661
    fi

    # need DRM libs, -lpthread, etc.
662 663
    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
    GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
664
    GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
665
    GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
666
    GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
667
    GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
668
    ;;
669 670
osmesa)
    # No libGL for osmesa
671
    GL_LIB_DEPS=""
672
    ;;
673
esac
674
AC_SUBST([GL_LIB_DEPS])
675 676 677 678
AC_SUBST([GL_PC_REQ_PRIV])
AC_SUBST([GL_PC_LIB_PRIV])
AC_SUBST([GL_PC_CFLAGS])
AC_SUBST([DRI_PC_REQ_PRIV])
679
AC_SUBST([GLESv1_LIB_DEPS])
680
AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
681
AC_SUBST([GLESv2_LIB_DEPS])
682 683
AC_SUBST([GLESv2_PC_LIB_PRIV])

684 685 686 687

dnl
dnl More X11 setup
dnl
688
if test "$mesa_driver" = xlib; then
689 690 691
    DEFINES="$DEFINES -DUSE_XSHM"
fi

692 693 694
dnl
dnl More DRI setup
dnl
695
AC_ARG_ENABLE([glx-tls],
696
    [AS_HELP_STRING([--enable-glx-tls],
697
        [enable TLS support in GLX @<:@default=disabled@:>@])],
698 699
    [GLX_USE_TLS="$enableval"],
    [GLX_USE_TLS=no])
700
dnl Directory for DRI drivers
701
AC_ARG_WITH([dri-driverdir],
702
    [AS_HELP_STRING([--with-dri-driverdir=DIR],
703
        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
704
    [DRI_DRIVER_INSTALL_DIR="$withval"],
705
    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
706
AC_SUBST([DRI_DRIVER_INSTALL_DIR])
707 708 709 710 711 712 713
dnl Extra search path for DRI drivers
AC_ARG_WITH([dri-searchpath],
    [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
        [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
    [DRI_DRIVER_SEARCH_DIR="$withval"],
    [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
AC_SUBST([DRI_DRIVER_SEARCH_DIR])
714
dnl Direct rendering or just indirect rendering
715
AC_ARG_ENABLE([driglx-direct],
716 717
    [AS_HELP_STRING([--disable-driglx-direct],
        [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
718 719
    [driglx_direct="$enableval"],
    [driglx_direct="yes"])
720
dnl Which drivers to build - default is chosen by platform
721
AC_ARG_WITH([dri-drivers],
722
    [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
723
        [comma delimited DRI drivers list, e.g.
724
        "swrast,i965,radeon" @<:@default=auto@:>@])],
725 726
    [with_dri_drivers="$withval"],
    [with_dri_drivers=yes])
727 728 729 730
if test "x$with_dri_drivers" = x; then
    with_dri_drivers=no
fi

731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746
dnl Determine which APIs to support
AC_ARG_ENABLE([opengl],
    [AS_HELP_STRING([--disable-opengl],
        [disable support for standard OpenGL API @<:@default=no@:>@])],
    [enable_opengl="$enableval"],
    [enable_opengl=yes])
AC_ARG_ENABLE([gles1],
    [AS_HELP_STRING([--enable-gles1],
        [enable support for OpenGL ES 1.x API @<:@default=no@:>@])],
    [enable_gles1="$enableval"],
    [enable_gles1=no])
AC_ARG_ENABLE([gles2],
    [AS_HELP_STRING([--enable-gles2],
        [enable support for OpenGL ES 2.x API @<:@default=no@:>@])],
    [enable_gles2="$enableval"],
    [enable_gles2=no])
Chia-I Wu's avatar
Chia-I Wu committed
747 748 749 750 751
AC_ARG_ENABLE([gles-overlay],
    [AS_HELP_STRING([--enable-gles-overlay],
        [build separate OpenGL ES only libraries @<:@default=no@:>@])],
    [enable_gles_overlay="$enableval"],
    [enable_gles_overlay=no])
752 753

API_DEFINES=""
754
APIS=""
Chia-I Wu's avatar
Chia-I Wu committed
755
GLES_OVERLAY=0
756 757 758 759
if test "x$enable_opengl" = xno; then
    API_DEFINES="$API_DEFINES -DFEATURE_GL=0"
else
    API_DEFINES="$API_DEFINES -DFEATURE_GL=1"
760
    APIS="$APIS gl"
761 762 763
fi
if test "x$enable_gles1" = xyes; then
    API_DEFINES="$API_DEFINES -DFEATURE_ES1=1"
764
    APIS="$APIS es1"
765 766 767
fi
if test "x$enable_gles2" = xyes; then
    API_DEFINES="$API_DEFINES -DFEATURE_ES2=1"
768
    APIS="$APIS es2"
769
fi
Chia-I Wu's avatar
Chia-I Wu committed
770 771
if test "x$enable_gles_overlay" = xyes -o \
    "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
Chia-I Wu's avatar
Chia-I Wu committed
772
    CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
Chia-I Wu's avatar
Chia-I Wu committed
773
    if test "x$enable_gles_overlay" = xyes; then
Chia-I Wu's avatar
Chia-I Wu committed
774
        GLES_OVERLAY=1
Chia-I Wu's avatar
Chia-I Wu committed
775
    fi
776
fi
777
AC_SUBST([API_DEFINES])
778
AC_SUBST([APIS])
Chia-I Wu's avatar
Chia-I Wu committed
779
AC_SUBST([GLES_OVERLAY])
780

781 782 783 784
dnl If $with_dri_drivers is yes, directories will be added through
dnl platform checks
DRI_DIRS=""
case "$with_dri_drivers" in
785 786 787 788
no) ;;
yes)
    DRI_DIRS="yes"
    ;;
789 790
*)
    # verify the requested driver directories exist
791
    dri_drivers=`IFS=', '; echo $with_dri_drivers`
792 793 794 795 796 797 798 799
    for driver in $dri_drivers; do
        test -d "$srcdir/src/mesa/drivers/dri/$driver" || \
            AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
    done
    DRI_DIRS="$dri_drivers"
    ;;
esac

800 801 802 803 804 805 806 807 808 809 810 811 812 813
dnl Set DRI_DIRS, DEFINES and LIB_DEPS
if test "$mesa_driver" = dri; then
    # Use TLS in GLX?
    if test "x$GLX_USE_TLS" = xyes; then
        DEFINES="$DEFINES -DGLX_USE_TLS -DPTHREADS"
    fi

    # Platform specific settings and drivers to build
    case "$host_os" in
    linux*)
        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
        if test "x$driglx_direct" = xyes; then
            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
        fi
Jerome Glisse's avatar
Jerome Glisse committed
814
        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
815 816 817

        case "$host_cpu" in
        x86_64)
818 819 820
            # sis is missing because they have not be converted to use
            # the new interface.  i810 are missing because there is no
            # x86-64 system where they could *ever* be used.
821
            if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher's avatar
Alex Deucher committed
822
                DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 r600 radeon \
823
                    savage tdfx unichrome swrast"
824
            fi
825 826
            ;;
        powerpc*)
827 828
            # Build only the drivers for cards that exist on PowerPC.
            # At some point MGA will be added, but not yet.
829
            if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher's avatar
Alex Deucher committed
830
                DRI_DIRS="mach64 r128 r200 r300 r600 radeon tdfx swrast"
831
            fi
832
            ;;
833 834
        sparc*)
            # Build only the drivers for cards that exist on sparc`
835
            if test "x$DRI_DIRS" = "xyes"; then
836
                DRI_DIRS="mach64 r128 r200 r300 r600 radeon swrast"
837 838
            fi
            ;;
839 840
        esac
        ;;
Hasso Tepper's avatar
Hasso Tepper committed
841
    freebsd* | dragonfly*)
842 843 844 845 846 847 848 849 850 851
        DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1"
        DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS"
        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
        if test "x$driglx_direct" = xyes; then
            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
        fi
        if test "x$GXX" = xyes; then
            CXXFLAGS="$CXXFLAGS -ansi -pedantic"
        fi

852
        if test "x$DRI_DIRS" = "xyes"; then
Alex Deucher's avatar
Alex Deucher committed
853
            DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon tdfx \
854
                unichrome savage sis swrast"
855
        fi
856
        ;;
Samuel Thibault's avatar
Samuel Thibault committed
857 858 859 860
    gnu*)
        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
	;;
861 862 863 864 865 866 867
    solaris*)
        DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
        DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
        if test "x$driglx_direct" = xyes; then
            DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
        fi
        ;;
868
    esac
869 870

    # default drivers
871
    if test "x$DRI_DIRS" = "xyes"; then
Corbin Simpson's avatar
Corbin Simpson committed
872
        DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon \
873
            savage sis tdfx unichrome swrast"
874 875
    fi

876 877 878 879 880
    DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`

    # Check for expat
    EXPAT_INCLUDES=""
    EXPAT_LIB=-lexpat
881 882 883
    AC_ARG_WITH([expat],
        [AS_HELP_STRING([--with-expat=DIR],
            [expat install directory])],[
884 885 886 887 888
        EXPAT_INCLUDES="-I$withval/include"
        CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
        LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
        EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
        ])
889 890 891
    AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
    AC_CHECK_LIB([expat],[XML_ParserCreate],[],
        [AC_MSG_ERROR([Expat required for DRI.])])
892 893

    # put all the necessary libs together
894
    DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
895
fi
896 897 898
AC_SUBST([DRI_DIRS])
AC_SUBST([EXPAT_INCLUDES])
AC_SUBST([DRI_LIB_DEPS])
899

900 901
case $DRI_DIRS in
*i915*|*i965*)
902
    PKG_CHECK_MODULES([INTEL], [libdrm_intel >= 2.4.19])
903
    ;;
904
esac
905

906
case $DRI_DIRS in
907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922
*radeon*|*r200*|*r300*|*r600*)
    PKG_CHECK_MODULES([LIBDRM_RADEON],
		      [libdrm_radeon libdrm >= $LIBDRM_RADEON_REQUIRED],
		      HAVE_LIBDRM_RADEON=yes,
		      HAVE_LIBDRM_RADEON=no)

    if test "$HAVE_LIBDRM_RADEON" = yes; then
	RADEON_CFLAGS="-DHAVE_LIBDRM_RADEON=1 $LIBDRM_RADEON_CFLAGS"
	RADEON_LDFLAGS=$LIBDRM_RADEON_LIBS
    fi
    ;;
esac
AC_SUBST([RADEON_CFLAGS])
AC_SUBST([RADEON_LDFLAGS])


923 924 925
dnl
dnl OSMesa configuration
dnl
926
if test "$mesa_driver" = xlib; then
927
    default_gl_osmesa=yes
928
else
929
    default_gl_osmesa=no
930
fi
931
AC_ARG_ENABLE([gl-osmesa],
932 933
    [AS_HELP_STRING([--enable-gl-osmesa],
        [enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
934 935
    [gl_osmesa="$enableval"],
    [gl_osmesa="$default_gl_osmesa"])
936 937 938
if test "x$gl_osmesa" = xyes; then
    if test "$mesa_driver" = osmesa; then
        AC_MSG_ERROR([libGL is not available for OSMesa driver])
939
    else
940
        DRIVER_DIRS="$DRIVER_DIRS osmesa"
941
    fi
942
fi
943

944
dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
945
AC_ARG_WITH([osmesa-bits],
946 947
    [AS_HELP_STRING([--with-osmesa-bits=BITS],
        [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
948 949
    [osmesa_bits="$withval"],
    [osmesa_bits=8])
950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965
if test "$mesa_driver" != osmesa && test "x$osmesa_bits" != x8; then
    AC_MSG_WARN([Ignoring OSMesa channel bits for non-OSMesa driver])
    osmesa_bits=8
fi
case "x$osmesa_bits" in
x8)
    OSMESA_LIB=OSMesa
    ;;
x16|x32)
    OSMESA_LIB="OSMesa$osmesa_bits"
    DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
    ;;
*)
    AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
    ;;
esac
966
AC_SUBST([OSMESA_LIB])
967

968 969
case "$mesa_driver" in
osmesa)
970
    # only link libraries with osmesa if shared
971
    if test "$enable_static" = no; then
972
        OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
973 974 975
    else
        OSMESA_LIB_DEPS=""
    fi
976
    OSMESA_MESA_DEPS=""
977
    OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS"
978 979 980 981
    ;;
*)
    # Link OSMesa to libGL otherwise
    OSMESA_LIB_DEPS=""
982
    # only link libraries with osmesa if shared
983 984 985 986 987
    if test "$enable_static" = no; then
        OSMESA_MESA_DEPS='-l$(GL_LIB)'
    else
        OSMESA_MESA_DEPS=""
    fi
Dan Nicholson's avatar
Dan Nicholson committed
988
    OSMESA_PC_REQ="gl"
989 990
    ;;
esac
991
OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV"
992 993
AC_SUBST([OSMESA_LIB_DEPS])
AC_SUBST([OSMESA_MESA_DEPS])
Dan Nicholson's avatar
Dan Nicholson committed
994 995
AC_SUBST([OSMESA_PC_REQ])
AC_SUBST([OSMESA_PC_LIB_PRIV])
996

Dan Nicholson's avatar
Dan Nicholson committed
997 998 999
dnl
dnl EGL configuration
dnl
1000 1001 1002 1003 1004 1005 1006
AC_ARG_ENABLE([egl],
    [AS_HELP_STRING([--disable-egl],
        [disable EGL library @<:@default=enabled@:>@])],
    [enable_egl="$enableval"],
    [enable_egl=yes])
if test "x$enable_egl" = xyes; then
    SRC_DIRS="$SRC_DIRS egl"
Chia-I Wu's avatar
Chia-I Wu committed
1007 1008
    EGL_LIB_DEPS="$DLOPEN_LIBS -lpthread"
    EGL_DRIVERS_DIRS=""
1009
    if test "$enable_static" != yes; then
Chia-I Wu's avatar
Chia-I Wu committed
1010
        # build egl_glx when libGL is built
1011 1012 1013 1014 1015
        if test "$mesa_driver" != osmesa; then
            EGL_DRIVERS_DIRS="glx"
        fi

        # build egl_dri2 when xcb-dri2 is available
1016 1017
        PKG_CHECK_MODULES([EGL_DRI2], [x11-xcb xcb-dri2 xcb-xfixes libdrm],
			  [have_xcb_dri2=yes],[have_xcb_dri2=no])
1018 1019 1020
        if test "$have_xcb_dri2" = yes; then
            EGL_DRIVERS_DIRS="$EGL_DRIVERS_DIRS dri2"
        fi
1021
    fi
1022 1023

    if test "$with_demos" = yes; then
1024
        PROGRAM_DIRS="$PROGRAM_DIRS egl/eglut"
1025
    fi
Dan Nicholson's avatar
Dan Nicholson committed
1026 1027
fi
AC_SUBST([EGL_LIB_DEPS])
Chia-I Wu's avatar
Chia-I Wu committed
1028
AC_SUBST([EGL_DRIVERS_DIRS])
Dan Nicholson's avatar
Dan Nicholson committed
1029

1030 1031 1032
dnl
dnl GLU configuration
dnl
1033
AC_ARG_ENABLE([glu],
1034 1035
    [AS_HELP_STRING([--disable-glu],
        [enable OpenGL Utility library @<:@default=enabled@:>@])],
1036 1037
    [enable_glu="$enableval"],
    [enable_glu=yes])
1038 1039 1040
if test "x$enable_glu" = xyes; then
    SRC_DIRS="$SRC_DIRS glu"

1041 1042 1043 1044
    case "$mesa_driver" in
    osmesa)
        # Link libGLU to libOSMesa instead of libGL
        GLU_LIB_DEPS=""
Dan Nicholson's avatar
Dan Nicholson committed
1045
        GLU_PC_REQ="osmesa"
1046 1047 1048 1049 1050
        if test "$enable_static" = no; then
            GLU_MESA_DEPS='-l$(OSMESA_LIB)'
        else
            GLU_MESA_DEPS=""
        fi
1051 1052
        ;;
    *)
1053
        # If static, empty GLU_LIB_DEPS and add libs for programs to link
1054 1055
        GLU_PC_REQ="gl"
        GLU_PC_LIB_PRIV="-lm"
1056 1057 1058 1059 1060 1061 1062 1063
        if test "$enable_static" = no; then
            GLU_LIB_DEPS="-lm"
            GLU_MESA_DEPS='-l$(GL_LIB)'
        else
            GLU_LIB_DEPS=""
            GLU_MESA_DEPS=""
            APP_LIB_DEPS="$APP_LIB_DEPS -lstdc++"
        fi
1064 1065
        ;;
    esac
1066
fi
1067 1068 1069
if test "$enable_static" = no; then
    GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS"
fi
1070
GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS"
1071 1072
AC_SUBST([GLU_LIB_DEPS])
AC_SUBST([GLU_MESA_DEPS])
1073 1074 1075 1076
AC_SUBST([GLU_PC_REQ])
AC_SUBST([GLU_PC_REQ_PRIV])
AC_SUBST([GLU_PC_LIB_PRIV])
AC_SUBST([GLU_PC_CFLAGS])
1077 1078 1079 1080

dnl
dnl GLw configuration
dnl
1081
AC_ARG_ENABLE([glw],
1082 1083
    [AS_HELP_STRING([--disable-glw],
        [enable Xt/Motif widget library @<:@default=enabled@:>@])],