2007-10-23 09:25:58 -07:00
|
|
|
dnl Process this file with autoconf to create configure.
|
|
|
|
|
|
|
|
AC_PREREQ(2.59)
|
|
|
|
|
|
|
|
dnl Versioning
|
|
|
|
dnl Make version number available to autoconf and configure
|
|
|
|
m4_define(mesa_major, 7)
|
|
|
|
m4_define(mesa_minor, 1)
|
|
|
|
m4_define(mesa_tiny, 0)
|
|
|
|
m4_define(mesa_version, [mesa_major().mesa_minor().mesa_tiny()])
|
|
|
|
|
2007-12-12 17:57:45 -08:00
|
|
|
AC_INIT([Mesa],[mesa_version()],
|
|
|
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
|
2007-10-23 09:25:58 -07:00
|
|
|
AC_CONFIG_AUX_DIR(bin)
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
|
|
|
|
dnl Substitute the version number into shell variables
|
|
|
|
MESA_MAJOR=mesa_major()
|
|
|
|
MESA_MINOR=mesa_minor()
|
|
|
|
MESA_TINY=mesa_tiny()
|
|
|
|
AC_SUBST(MESA_MAJOR)
|
|
|
|
AC_SUBST(MESA_MINOR)
|
|
|
|
AC_SUBST(MESA_TINY)
|
|
|
|
|
|
|
|
dnl Check for progs
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_CXX
|
2008-03-22 11:03:16 -07:00
|
|
|
AC_PATH_PROG(GMAKE, gmake, [not_found])
|
|
|
|
AC_PATH_PROG(MAKE, make)
|
|
|
|
if test "x$GMAKE" != "xnot_found"; then
|
|
|
|
MAKE="$GMAKE"
|
2008-03-20 17:14:20 -07:00
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
AC_PATH_PROG(MKDEP, makedepend)
|
|
|
|
AC_PATH_PROG(SED, sed)
|
2007-12-12 08:48:30 -08:00
|
|
|
|
2008-03-07 11:48:09 -08:00
|
|
|
MKDEP_OPTIONS=-fdepend
|
2008-02-25 18:50:26 -05:00
|
|
|
dnl Ask gcc where it's keeping its secret headers
|
|
|
|
if test "x$GCC" = xyes; then
|
2008-03-07 11:48:09 -08:00
|
|
|
GCC_INCLUDES=`$CC -print-file-name=include`
|
|
|
|
if test "x$GCC_INCLUDES" != x; then
|
|
|
|
MKDEP_OPTIONS="$MKDEP_OPTIONS -I$GCC_INCLUDES"
|
|
|
|
fi
|
2008-02-25 18:50:26 -05:00
|
|
|
fi
|
|
|
|
AC_SUBST(MKDEP_OPTIONS)
|
|
|
|
|
2008-03-20 17:28:58 -07:00
|
|
|
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"))
|
|
|
|
|
2007-12-12 08:48:30 -08:00
|
|
|
dnl Make sure the pkg-config macros are defined
|
|
|
|
m4_ifdef([PKG_PROG_PKG_CONFIG],,[
|
|
|
|
AC_MSG_ERROR([The pkg-config autoconf macros are not defined.
|
|
|
|
Did you run 'make configure'?])]
|
|
|
|
)
|
2007-10-23 09:25:58 -07:00
|
|
|
PKG_PROG_PKG_CONFIG()
|
|
|
|
|
|
|
|
dnl LIB_DIR - library basename
|
|
|
|
LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
|
|
|
|
AC_SUBST(LIB_DIR)
|
|
|
|
|
|
|
|
dnl Cache LDFLAGS so we can add EXTRA_LIB_PATH and restore it later
|
|
|
|
_SAVE_LDFLAGS="$LDFLAGS"
|
|
|
|
AC_ARG_VAR(EXTRA_LIB_PATH,[Extra -L paths for the linker])
|
|
|
|
AC_SUBST(EXTRA_LIB_PATH)
|
|
|
|
|
|
|
|
dnl Cache CPPFLAGS so we can add *_INCLUDES and restore it later
|
|
|
|
_SAVE_CPPFLAGS="$CPPFLAGS"
|
|
|
|
AC_ARG_VAR(X11_INCLUDES,[Extra -I paths for X11 headers])
|
|
|
|
AC_SUBST(X11_INCLUDES)
|
|
|
|
|
|
|
|
dnl Compiler macros
|
|
|
|
DEFINES=""
|
|
|
|
AC_SUBST(DEFINES)
|
|
|
|
case "$host_os" in
|
|
|
|
linux*)
|
2008-03-20 17:14:20 -07:00
|
|
|
if test "x$GCC" = xyes; then
|
|
|
|
DEFINES="$DEFINES -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
DEFINES="$DEFINES -D_SVID_SOURCE -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
dnl Add flags for gcc and g++
|
|
|
|
if test "x$GCC" = xyes; then
|
|
|
|
CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -std=c99 -ffast-math"
|
2008-01-15 22:52:25 -08:00
|
|
|
|
|
|
|
# Work around aliasing bugs - developers should comment this out
|
|
|
|
CFLAGS="$CFLAGS -fno-strict-aliasing"
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
if test "x$GXX" = xyes; then
|
|
|
|
CXXFLAGS="$CXXFLAGS -Wall"
|
2008-01-15 22:52:25 -08:00
|
|
|
|
|
|
|
# Work around aliasing bugs - developers should comment this out
|
|
|
|
CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
dnl These should be unnecessary, but let the user set them if they want
|
|
|
|
AC_ARG_VAR(OPT_FLAGS, [Additional optimization flags for the compiler.
|
|
|
|
Default is to use CFLAGS.])
|
|
|
|
AC_ARG_VAR(ARCH_FLAGS, [Additional architecture specific flags for the
|
|
|
|
compiler. Default is to use CFLAGS.])
|
|
|
|
AC_SUBST(OPT_FLAGS)
|
|
|
|
AC_SUBST(ARCH_FLAGS)
|
|
|
|
|
2007-12-26 11:12:29 -06:00
|
|
|
dnl
|
|
|
|
dnl Hacks to enable 32 or 64 bit build
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(32-bit,
|
|
|
|
[AS_HELP_STRING([--enable-32-bit],
|
|
|
|
[build 32-bit libraries @<:@default=auto@:>@])],
|
|
|
|
enable_32bit="$enableval",
|
|
|
|
enable_32bit=auto
|
|
|
|
)
|
|
|
|
if test "x$enable_32bit" = xyes; then
|
|
|
|
if test "x$GCC" = xyes; then
|
|
|
|
CFLAGS="$CFLAGS -m32"
|
|
|
|
fi
|
|
|
|
if test "x$GXX" = xyes; then
|
|
|
|
CXXFLAGS="$CXXFLAGS -m32"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_ARG_ENABLE(64-bit,
|
|
|
|
[AS_HELP_STRING([--enable-64-bit],
|
|
|
|
[build 64-bit libraries @<:@default=auto@:>@])],
|
|
|
|
enable_64bit="$enableval",
|
|
|
|
enable_64bit=auto
|
|
|
|
)
|
|
|
|
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
|
|
|
|
|
2007-11-15 08:59:57 -08:00
|
|
|
dnl
|
|
|
|
dnl shared/static libraries, mimic libtool options
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(static,
|
|
|
|
[AS_HELP_STRING([--enable-static],
|
2007-12-07 19:11:01 -08:00
|
|
|
[build static libraries @<:@default=disabled@:>@])],
|
2007-11-15 08:59:57 -08:00
|
|
|
enable_static="$enableval",
|
|
|
|
enable_static=no
|
|
|
|
)
|
|
|
|
case "x$enable_static" in
|
|
|
|
xyes|xno ) ;;
|
|
|
|
x ) enable_static=no ;;
|
|
|
|
* )
|
|
|
|
AC_MSG_ERROR([Static library option '$enable_static' is not a valid])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_ARG_ENABLE(shared,
|
|
|
|
[AS_HELP_STRING([--disable-shared],
|
2007-12-07 19:11:01 -08:00
|
|
|
[build shared libraries @<:@default=enabled@:>@])],
|
2007-11-15 08:59:57 -08:00
|
|
|
enable_shared="$enableval",
|
|
|
|
enable_shared=yes
|
|
|
|
)
|
|
|
|
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
|
|
|
|
AC_ARG_VAR(MKLIB_OPTIONS,[Options for the Mesa library script, mklib])
|
|
|
|
if test "$enable_static" = yes; then
|
|
|
|
MKLIB_OPTIONS="$MKLIB_OPTIONS -static"
|
|
|
|
fi
|
|
|
|
AC_SUBST(MKLIB_OPTIONS)
|
|
|
|
|
2007-12-12 09:02:31 -08:00
|
|
|
dnl
|
|
|
|
dnl other compiler options
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(debug,
|
|
|
|
[AS_HELP_STRING([--enable-debug],
|
|
|
|
[use debug compiler flags and macros @<:@default=disabled@:>@])],
|
|
|
|
enable_debug="$enableval",
|
|
|
|
enable_debug=no
|
|
|
|
)
|
|
|
|
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
|
2007-12-12 09:02:31 -08:00
|
|
|
dnl These will be used near the end in the arch specific options
|
|
|
|
AC_ARG_ENABLE(asm,
|
|
|
|
[AS_HELP_STRING([--disable-asm],
|
|
|
|
[disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
|
|
|
|
enable_asm="$enableval",
|
|
|
|
enable_asm=yes
|
|
|
|
)
|
2007-11-15 08:59:57 -08:00
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
|
|
|
dnl library names
|
|
|
|
dnl
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "$enable_static" = yes; then
|
|
|
|
GL_LIB_NAME='lib$(GL_LIB).a'
|
|
|
|
GLU_LIB_NAME='lib$(GLU_LIB).a'
|
|
|
|
GLUT_LIB_NAME='lib$(GLUT_LIB).a'
|
|
|
|
GLW_LIB_NAME='lib$(GLW_LIB).a'
|
|
|
|
OSMESA_LIB_NAME='lib$(OSMESA_LIB).a'
|
|
|
|
else
|
|
|
|
GL_LIB_NAME='lib$(GL_LIB).so'
|
|
|
|
GLU_LIB_NAME='lib$(GLU_LIB).so'
|
|
|
|
GLUT_LIB_NAME='lib$(GLUT_LIB).so'
|
|
|
|
GLW_LIB_NAME='lib$(GLW_LIB).so'
|
|
|
|
OSMESA_LIB_NAME='lib$(OSMESA_LIB).so'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
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)
|
|
|
|
|
|
|
|
dnl
|
2007-12-12 17:49:49 -08:00
|
|
|
dnl Driver configuration. Options are xlib, dri and osmesa right now.
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl More later: directfb, fbdev, ...
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl
|
|
|
|
AC_ARG_WITH(driver,
|
|
|
|
[AS_HELP_STRING([--with-driver=DRIVER],
|
2007-12-12 17:49:49 -08:00
|
|
|
[driver for Mesa: xlib,dri,osmesa @<:@default=xlib@:>@])],
|
2007-12-05 18:47:01 -08:00
|
|
|
mesa_driver="$withval",
|
2007-12-12 17:49:49 -08:00
|
|
|
mesa_driver="xlib")
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl Check for valid option
|
|
|
|
case "x$mesa_driver" in
|
2007-12-12 17:49:49 -08:00
|
|
|
xxlib|xdri|xosmesa)
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Driver specific build directories
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
|
|
|
SRC_DIRS="mesa"
|
|
|
|
GLU_DIRS="sgi"
|
2007-12-05 18:47:01 -08:00
|
|
|
WINDOW_SYSTEM=""
|
|
|
|
case "$mesa_driver" in
|
2007-12-12 17:49:49 -08:00
|
|
|
xlib)
|
2007-12-05 18:47:01 -08:00
|
|
|
DRIVER_DIRS="x11"
|
|
|
|
;;
|
|
|
|
dri)
|
|
|
|
SRC_DIRS="glx/x11 $SRC_DIRS"
|
|
|
|
DRIVER_DIRS="dri"
|
|
|
|
WINDOW_SYSTEM="dri"
|
|
|
|
;;
|
2007-12-05 18:47:01 -08:00
|
|
|
osmesa)
|
|
|
|
DRIVER_DIRS="osmesa"
|
|
|
|
;;
|
2007-12-05 18:47:01 -08:00
|
|
|
esac
|
2007-10-23 09:25:58 -07:00
|
|
|
AC_SUBST(SRC_DIRS)
|
|
|
|
AC_SUBST(GLU_DIRS)
|
|
|
|
AC_SUBST(DRIVER_DIRS)
|
2007-12-05 18:47:01 -08:00
|
|
|
AC_SUBST(WINDOW_SYSTEM)
|
2007-10-23 09:25:58 -07:00
|
|
|
|
2007-11-15 08:59:57 -08:00
|
|
|
dnl
|
|
|
|
dnl User supplied program configuration
|
|
|
|
dnl
|
|
|
|
if test -d "$srcdir/progs/demos"; then
|
|
|
|
default_demos=yes
|
|
|
|
else
|
|
|
|
default_demos=no
|
|
|
|
fi
|
|
|
|
AC_ARG_WITH(demos,
|
|
|
|
[AS_HELP_STRING([--with-demos@<:@=DIRS...@:>@],
|
|
|
|
[optional comma delimited demo directories to build
|
2007-12-12 18:13:04 -08:00
|
|
|
@<:@default=auto if source available@:>@])],
|
2007-11-15 08:59:57 -08:00
|
|
|
with_demos="$withval",
|
|
|
|
with_demos="$default_demos")
|
|
|
|
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
|
2008-03-10 14:05:46 -07:00
|
|
|
no) ;;
|
|
|
|
yes)
|
|
|
|
# If the driver isn't osmesa, we have libGL and can build xdemos
|
|
|
|
if test "$mesa_driver" != osmesa; then
|
|
|
|
PROGRAM_DIRS="xdemos"
|
|
|
|
fi
|
|
|
|
;;
|
2007-11-15 08:59:57 -08:00
|
|
|
*)
|
|
|
|
# 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
|
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
|
|
|
dnl Find out if X is available. The variables have_x or no_x will be
|
|
|
|
dnl set and used later in the driver setups
|
|
|
|
dnl
|
|
|
|
if test -n "$PKG_CONFIG"; then
|
|
|
|
AC_MSG_CHECKING([pkg-config files for X11 are available])
|
|
|
|
if $PKG_CONFIG --exists x11; then
|
|
|
|
x11_pkgconfig=yes
|
|
|
|
have_x=yes
|
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
else
|
|
|
|
x11_pkgconfig=no
|
|
|
|
no_x=yes
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
x11_pkgconfig=no
|
|
|
|
fi
|
|
|
|
dnl Use the autoconf macro if no pkg-config files
|
|
|
|
if test "$x11_pkgconfig" = no; then
|
|
|
|
AC_PATH_XTRA
|
|
|
|
fi
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl We need X for xlib and dri, so bomb now if it's not found
|
|
|
|
case "$mesa_driver" in
|
2007-12-12 17:49:49 -08:00
|
|
|
xlib|dri)
|
2007-12-05 18:47:01 -08:00
|
|
|
if test "$no_x" = yes; then
|
|
|
|
AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2008-02-15 13:49:12 -05:00
|
|
|
# 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
|
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl libGL configuration per driver
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
2007-12-05 18:47:01 -08:00
|
|
|
case "$mesa_driver" in
|
2007-12-12 17:49:49 -08:00
|
|
|
xlib)
|
2007-12-05 18:47:01 -08:00
|
|
|
if test "$x11_pkgconfig" = yes; then
|
2007-12-12 17:49:49 -08:00
|
|
|
PKG_CHECK_MODULES(XLIBGL, x11 xext)
|
|
|
|
X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
|
|
|
|
GL_LIB_DEPS="$XLIBGL_LIBS"
|
2007-12-05 18:47:01 -08:00
|
|
|
else
|
|
|
|
# should check these...
|
|
|
|
X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
|
|
|
|
GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
|
|
|
|
fi
|
2008-02-15 13:49:12 -05:00
|
|
|
GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
|
2007-11-15 08:59:57 -08:00
|
|
|
|
|
|
|
# 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
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
dri)
|
2007-11-15 08:59:57 -08:00
|
|
|
# DRI must be shared, I think
|
|
|
|
if test "$enable_static" = yes; then
|
|
|
|
AC_MSG_ERROR([Can't use static libraries for DRI drivers])
|
|
|
|
fi
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
# Check for libdrm
|
|
|
|
PKG_CHECK_MODULES(LIBDRM, libdrm)
|
DRI interface changes and DRI2 direct rendering support.
Add DRI2 direct rendering support to libGL and add DRI2 client side
protocol code. Extend the GLX 1.3 create drawable functions in
glx_pbuffer.c to call into the DRI driver when possible.
Introduce __DRIconfig, opaque struct that represents a DRI driver
configuration. Get's rid of the open coded __GLcontextModes in the
DRI driver interface and the context modes create and destroy
functions that the loader was requires to provide. glcore.h is no
longer part of the DRI driver interface. The DRI config is GL binding
agnostic, that is, not specific to GLX, EGL or other bindings.
The core API is now also an extension, and the driver exports a list
of extensions as the symbol __driDriverExtensions, which the loader
must dlsym() for. The list of extension will always include the DRI
core extension, which allows creating and manipulating DRI screens,
drawables and contexts. The DRI legacy extension, when available,
provides alternative entry points for creating the DRI objects that
work with the XF86DRI infrastructure.
Change DRI2 client code to not use drm drawables or contexts. We
never used drm_drawable_t's and the only use for drm_context_t was as
a unique identifier when taking the lock. We now just allocate a
unique lock ID out of the DRILock sarea block. Once we get rid of the
lock entirely, we can drop this hack.
Change the interface between dri_util.c and the drivers, so that the
drivers now export the DriverAPI struct as driDriverAPI instead of the
InitScreen entry point. This lets us avoid dlsym()'ing for the DRI2
init screen function to see if DRI2 is supported by the driver.
2008-03-26 19:26:59 -04:00
|
|
|
PKG_CHECK_MODULES(DRI2PROTO, dri2proto)
|
2007-10-23 09:25:58 -07:00
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
# find the DRI deps for libGL
|
|
|
|
if test "$x11_pkgconfig" = yes; then
|
|
|
|
PKG_CHECK_MODULES(DRIGL, x11 xext xxf86vm xdamage xfixes)
|
|
|
|
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"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# need DRM libs, -lpthread, etc.
|
2008-03-20 17:28:58 -07:00
|
|
|
GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
2007-12-05 18:47:01 -08:00
|
|
|
osmesa)
|
|
|
|
# No libGL for osmesa
|
|
|
|
GL_LIB_DEPS=""
|
|
|
|
;;
|
2007-12-05 18:47:01 -08:00
|
|
|
esac
|
2007-10-23 09:25:58 -07:00
|
|
|
AC_SUBST(GL_LIB_DEPS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl More X11 setup
|
|
|
|
dnl
|
2007-12-12 17:49:49 -08:00
|
|
|
if test "$mesa_driver" = xlib; then
|
2007-10-23 09:25:58 -07:00
|
|
|
DEFINES="$DEFINES -DUSE_XSHM"
|
|
|
|
fi
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl
|
|
|
|
dnl More DRI setup
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(glx-tls,
|
|
|
|
[AS_HELP_STRING([--enable-glx-tls],
|
2007-12-07 19:11:01 -08:00
|
|
|
[enable TLS support in GLX @<:@default=disabled@:>@])],
|
2007-12-05 18:47:01 -08:00
|
|
|
GLX_USE_TLS="$enableval",
|
|
|
|
GLX_USE_TLS=no)
|
|
|
|
dnl Directory for DRI drivers
|
2007-11-15 08:59:57 -08:00
|
|
|
AC_ARG_WITH(dri-driverdir,
|
|
|
|
[AS_HELP_STRING([--with-dri-driverdir=DIR],
|
2007-12-05 18:47:01 -08:00
|
|
|
[directory for the DRI drivers @<:@/usr/X11R6/lib/modules/dri@:>@])],
|
|
|
|
DRI_DRIVER_INSTALL_DIR="$withval",
|
|
|
|
DRI_DRIVER_INSTALL_DIR='/usr/X11R6/lib/modules/dri')
|
|
|
|
AC_SUBST(DRI_DRIVER_INSTALL_DIR)
|
|
|
|
dnl Direct rendering or just indirect rendering
|
|
|
|
AC_ARG_ENABLE(driglx-direct,
|
2007-12-07 19:11:01 -08:00
|
|
|
[AS_HELP_STRING([--disable-driglx-direct],
|
|
|
|
[enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
|
2007-12-05 18:47:01 -08:00
|
|
|
driglx_direct="$enableval",
|
|
|
|
driglx_direct="yes")
|
|
|
|
|
2007-11-15 08:59:57 -08:00
|
|
|
dnl Which drivers to build - default is chosen by platform
|
|
|
|
AC_ARG_WITH(dri-drivers,
|
|
|
|
[AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
|
2007-12-12 18:13:04 -08:00
|
|
|
[comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
|
2007-11-15 08:59:57 -08:00
|
|
|
with_dri_drivers="$withval",
|
|
|
|
with_dri_drivers=yes)
|
|
|
|
if test "x$with_dri_drivers" = x; then
|
|
|
|
with_dri_drivers=no
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl If $with_dri_drivers is yes, directories will be added through
|
|
|
|
dnl platform checks
|
|
|
|
DRI_DIRS=""
|
|
|
|
case "$with_dri_drivers" in
|
|
|
|
no|yes) ;;
|
|
|
|
*)
|
|
|
|
# verify the requested driver directories exist
|
|
|
|
dri_drivers=`IFS=,; echo $with_dri_drivers`
|
|
|
|
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
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl Just default to no EGL for now
|
|
|
|
USING_EGL=0
|
|
|
|
AC_SUBST(USING_EGL)
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
if test "x$USING_EGL" = x1; then
|
|
|
|
PROGRAM_DIRS="egl"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Platform specific settings and drivers to build
|
|
|
|
case "$host_os" in
|
|
|
|
linux*)
|
|
|
|
DEFINES="$DEFINES -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER"
|
|
|
|
DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING -DHAVE_ALIAS"
|
|
|
|
if test "x$driglx_direct" = xyes; then
|
|
|
|
DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
|
|
|
|
fi
|
|
|
|
|
|
|
|
case "$host_cpu" in
|
|
|
|
x86_64)
|
2007-12-07 11:25:08 -08:00
|
|
|
# ffb, gamma, and sis are 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.
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "x$DRI_DIRS" = x; then
|
2007-12-07 11:25:08 -08:00
|
|
|
DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
|
|
|
|
savage tdfx unichrome"
|
2007-11-15 08:59:57 -08:00
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
powerpc*)
|
2007-12-07 11:25:08 -08:00
|
|
|
# Build only the drivers for cards that exist on PowerPC.
|
|
|
|
# At some point MGA will be added, but not yet.
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "x$DRI_DIRS" = x; then
|
|
|
|
DRI_DIRS="mach64 r128 r200 r300 radeon tdfx"
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
freebsd*)
|
|
|
|
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
|
|
|
|
|
2007-12-07 11:25:08 -08:00
|
|
|
# ffb and gamma are missing because they have not been converted
|
|
|
|
# to use the new interface.
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "x$DRI_DIRS" = x; then
|
|
|
|
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
|
|
|
|
unichrome savage sis"
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
esac
|
2008-02-21 10:17:19 -08:00
|
|
|
|
|
|
|
# default drivers
|
|
|
|
if test "x$DRI_DIRS" = x; then
|
|
|
|
DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon s3v \
|
|
|
|
savage sis tdfx trident unichrome ffb"
|
|
|
|
fi
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/ */ /g'`
|
|
|
|
|
|
|
|
# Check for expat
|
|
|
|
EXPAT_INCLUDES=""
|
|
|
|
EXPAT_LIB=-lexpat
|
|
|
|
AC_ARG_WITH(expat, AS_HELP_STRING([--with-expat=DIR],
|
|
|
|
[expat install directory]),[
|
|
|
|
EXPAT_INCLUDES="-I$withval/include"
|
|
|
|
CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
|
|
|
|
LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
|
|
|
|
EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
|
|
|
|
])
|
|
|
|
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.]))
|
|
|
|
|
|
|
|
# put all the necessary libs together
|
2008-03-20 17:28:58 -07:00
|
|
|
DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS"
|
2007-12-05 18:47:01 -08:00
|
|
|
fi
|
|
|
|
AC_SUBST(DRI_DIRS)
|
|
|
|
AC_SUBST(EXPAT_INCLUDES)
|
|
|
|
AC_SUBST(DRI_LIB_DEPS)
|
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
dnl
|
|
|
|
dnl OSMesa configuration
|
|
|
|
dnl
|
2007-12-12 17:49:49 -08:00
|
|
|
if test "$mesa_driver" = xlib; then
|
2007-12-30 08:41:53 -08:00
|
|
|
default_gl_osmesa=yes
|
2007-12-05 18:47:01 -08:00
|
|
|
else
|
2007-12-30 08:41:53 -08:00
|
|
|
default_gl_osmesa=no
|
2007-12-05 18:47:01 -08:00
|
|
|
fi
|
2007-12-30 08:41:53 -08:00
|
|
|
AC_ARG_ENABLE(gl-osmesa,
|
|
|
|
[AS_HELP_STRING([--enable-gl-osmesa],
|
|
|
|
[enable OSMesa on libGL @<:@default=enabled for xlib driver@:>@])],
|
|
|
|
gl_osmesa="$enableval",
|
|
|
|
gl_osmesa="$default_gl_osmesa")
|
|
|
|
if test "x$gl_osmesa" = xyes; then
|
|
|
|
if test "$mesa_driver" = osmesa; then
|
|
|
|
AC_MSG_ERROR([libGL is not available for OSMesa driver])
|
2007-12-05 18:47:01 -08:00
|
|
|
else
|
2007-12-30 08:41:53 -08:00
|
|
|
DRIVER_DIRS="$DRIVER_DIRS osmesa"
|
2007-12-05 18:47:01 -08:00
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
|
2007-12-05 21:04:15 -08:00
|
|
|
dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
|
|
|
|
AC_ARG_WITH(osmesa-bits,
|
|
|
|
[AS_HELP_STRING([--with-osmesa-bits=BITS],
|
|
|
|
[OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
|
|
|
|
osmesa_bits="$withval",
|
|
|
|
osmesa_bits=8)
|
|
|
|
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
|
|
|
|
AC_SUBST(OSMESA_LIB)
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
case "$mesa_driver" in
|
|
|
|
osmesa)
|
2007-11-15 08:59:57 -08:00
|
|
|
# only link librararies with osmesa if shared
|
|
|
|
if test "$enable_static" = no; then
|
2008-02-15 13:49:12 -05:00
|
|
|
OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
|
2007-11-15 08:59:57 -08:00
|
|
|
else
|
|
|
|
OSMESA_LIB_DEPS=""
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
OSMESA_MESA_DEPS=""
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
# Link OSMesa to libGL otherwise
|
|
|
|
OSMESA_LIB_DEPS=""
|
2007-11-15 08:59:57 -08:00
|
|
|
# only link librararies with osmesa if shared
|
|
|
|
if test "$enable_static" = no; then
|
|
|
|
OSMESA_MESA_DEPS='-l$(GL_LIB)'
|
|
|
|
else
|
|
|
|
OSMESA_MESA_DEPS=""
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
esac
|
2007-10-23 09:25:58 -07:00
|
|
|
AC_SUBST(OSMESA_LIB_DEPS)
|
|
|
|
AC_SUBST(OSMESA_MESA_DEPS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl GLU configuration
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(glu,
|
2007-12-07 19:11:01 -08:00
|
|
|
[AS_HELP_STRING([--disable-glu],
|
|
|
|
[enable OpenGL Utility library @<:@default=enabled@:>@])],
|
2007-10-23 09:25:58 -07:00
|
|
|
enable_glu="$enableval",
|
|
|
|
enable_glu=yes)
|
|
|
|
if test "x$enable_glu" = xyes; then
|
|
|
|
SRC_DIRS="$SRC_DIRS glu"
|
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
case "$mesa_driver" in
|
|
|
|
osmesa)
|
2007-12-05 21:04:15 -08:00
|
|
|
# If GLU is available and we have libOSMesa (not 16 or 32),
|
|
|
|
# we can build the osdemos
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
|
2007-12-05 21:04:15 -08:00
|
|
|
PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
|
2007-12-05 18:47:01 -08:00
|
|
|
# Link libGLU to libOSMesa instead of libGL
|
|
|
|
GLU_LIB_DEPS=""
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "$enable_static" = no; then
|
|
|
|
GLU_MESA_DEPS='-l$(OSMESA_LIB)'
|
|
|
|
else
|
|
|
|
GLU_MESA_DEPS=""
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
*)
|
2007-11-15 08:59:57 -08:00
|
|
|
# If static, empty GLU_LIB_DEPS and add libs for programs to link
|
|
|
|
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
|
2007-12-05 18:47:01 -08:00
|
|
|
;;
|
|
|
|
esac
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
AC_SUBST(GLU_LIB_DEPS)
|
|
|
|
AC_SUBST(GLU_MESA_DEPS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl GLw configuration
|
|
|
|
dnl
|
|
|
|
AC_ARG_ENABLE(glw,
|
2007-12-07 19:11:01 -08:00
|
|
|
[AS_HELP_STRING([--disable-glw],
|
|
|
|
[enable Xt/Motif widget library @<:@default=enabled@:>@])],
|
2007-10-23 09:25:58 -07:00
|
|
|
enable_glw="$enableval",
|
|
|
|
enable_glw=yes)
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl Don't build GLw on osmesa
|
|
|
|
if test "x$enable_glw" = xyes && test "$mesa_driver" = osmesa; then
|
|
|
|
AC_MSG_WARN([Disabling GLw since the driver is OSMesa])
|
|
|
|
enable_glw=no
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
if test "x$enable_glw" = xyes; then
|
|
|
|
SRC_DIRS="$SRC_DIRS glw"
|
|
|
|
if test "$x11_pkgconfig" = yes; then
|
|
|
|
PKG_CHECK_MODULES(GLW, x11 xt)
|
|
|
|
GLW_LIB_DEPS="$GLW_LIBS"
|
|
|
|
else
|
|
|
|
# should check these...
|
|
|
|
GLW_LIB_DEPS="$X_LIBS -lX11 -lXt"
|
|
|
|
fi
|
|
|
|
|
2007-11-15 08:59:57 -08:00
|
|
|
# If static, empty GLW_LIB_DEPS and add libs for programs to link
|
|
|
|
if test "$enable_static" = no; then
|
|
|
|
GLW_MESA_DEPS='-l$(GL_LIB)'
|
|
|
|
else
|
|
|
|
APP_LIB_DEPS="$APP_LIB_DEPS $GLW_LIB_DEPS"
|
|
|
|
GLW_LIB_DEPS=""
|
|
|
|
GLW_MESA_DEPS=""
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
AC_SUBST(GLW_LIB_DEPS)
|
|
|
|
AC_SUBST(GLW_MESA_DEPS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl GLUT configuration
|
|
|
|
dnl
|
|
|
|
if test -f "$srcdir/include/GL/glut.h"; then
|
|
|
|
default_glut=yes
|
|
|
|
else
|
|
|
|
default_glut=no
|
|
|
|
fi
|
|
|
|
AC_ARG_ENABLE(glut,
|
2007-12-07 19:11:01 -08:00
|
|
|
[AS_HELP_STRING([--disable-glut],
|
|
|
|
[enable GLUT library @<:@default=enabled if source available@:>@])],
|
2007-10-23 09:25:58 -07:00
|
|
|
enable_glut="$enableval",
|
|
|
|
enable_glut="$default_glut")
|
|
|
|
|
|
|
|
dnl Can't build glut if GLU not available
|
|
|
|
if test "x$enable_glu$enable_glut" = xnoyes; then
|
|
|
|
AC_MSG_WARN([Disabling glut since GLU is disabled])
|
|
|
|
enable_glut=no
|
|
|
|
fi
|
2007-12-05 18:47:01 -08:00
|
|
|
dnl Don't build glut on osmesa
|
|
|
|
if test "x$enable_glut" = xyes && test "$mesa_driver" = osmesa; then
|
|
|
|
AC_MSG_WARN([Disabling glut since the driver is OSMesa])
|
|
|
|
enable_glut=no
|
|
|
|
fi
|
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
if test "x$enable_glut" = xyes; then
|
|
|
|
SRC_DIRS="$SRC_DIRS glut/glx"
|
|
|
|
GLUT_CFLAGS=""
|
|
|
|
if test "x$GCC" = xyes; then
|
|
|
|
GLUT_CFLAGS="-fexceptions"
|
|
|
|
fi
|
|
|
|
if test "$x11_pkgconfig" = yes; then
|
2007-12-07 11:12:20 -08:00
|
|
|
PKG_CHECK_MODULES(GLUT, x11 xmu xi)
|
2007-10-23 09:25:58 -07:00
|
|
|
GLUT_LIB_DEPS="$GLUT_LIBS"
|
|
|
|
else
|
|
|
|
# should check these...
|
2007-12-07 11:12:20 -08:00
|
|
|
GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
|
|
|
|
|
|
|
|
# If glut is available, we can build most programs
|
2007-11-15 08:59:57 -08:00
|
|
|
if test "$with_demos" = yes; then
|
|
|
|
PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
|
2007-11-15 08:59:57 -08:00
|
|
|
# If static, empty GLUT_LIB_DEPS and add libs for programs to link
|
|
|
|
if test "$enable_static" = no; then
|
|
|
|
GLUT_MESA_DEPS='-l$(GLU_LIB) -l$(GL_LIB)'
|
|
|
|
else
|
|
|
|
APP_LIB_DEPS="$APP_LIB_DEPS $GLUT_LIB_DEPS"
|
|
|
|
GLUT_LIB_DEPS=""
|
|
|
|
GLUT_MESA_DEPS=""
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
fi
|
|
|
|
AC_SUBST(GLUT_LIB_DEPS)
|
|
|
|
AC_SUBST(GLUT_MESA_DEPS)
|
|
|
|
AC_SUBST(GLUT_CFLAGS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Program library dependencies
|
|
|
|
dnl Only libm is added here if necessary as the libraries should
|
|
|
|
dnl be pulled in by the linker
|
|
|
|
dnl
|
|
|
|
if test "x$APP_LIB_DEPS" = x; then
|
|
|
|
APP_LIB_DEPS="-lm"
|
|
|
|
fi
|
|
|
|
AC_SUBST(APP_LIB_DEPS)
|
|
|
|
AC_SUBST(PROGRAM_DIRS)
|
|
|
|
|
|
|
|
dnl Arch/platform-specific settings
|
|
|
|
PIC_FLAGS=""
|
|
|
|
ASM_FLAGS=""
|
|
|
|
ASM_SOURCES=""
|
|
|
|
ASM_API=""
|
|
|
|
AC_SUBST(PIC_FLAGS)
|
|
|
|
AC_SUBST(ASM_FLAGS)
|
|
|
|
AC_SUBST(ASM_SOURCES)
|
|
|
|
AC_SUBST(ASM_API)
|
|
|
|
case "$host_os" in
|
|
|
|
linux*)
|
|
|
|
PIC_FLAGS="-fPIC"
|
|
|
|
case "$host_cpu" in
|
|
|
|
i*86)
|
2007-12-12 09:02:31 -08:00
|
|
|
if test "x$enable_asm" = xyes; then
|
|
|
|
ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
|
|
|
|
ASM_SOURCES='$(X86_SOURCES)'
|
|
|
|
ASM_API='$(X86_API)'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
;;
|
|
|
|
x86_64)
|
2007-12-12 09:02:31 -08:00
|
|
|
if test "x$enable_asm" = xyes; then
|
|
|
|
ASM_FLAGS="-DUSE_X86_64_ASM"
|
|
|
|
ASM_SOURCES='$(X86-64_SOURCES)'
|
|
|
|
ASM_API='$(X86-64_API)'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
;;
|
|
|
|
powerpc)
|
2007-12-12 09:02:31 -08:00
|
|
|
if test "x$enable_asm" = xyes; then
|
|
|
|
ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
|
|
|
|
ASM_SOURCES='$(PPC_SOURCES)'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
freebsd*)
|
|
|
|
PIC_FLAGS="-fPIC"
|
2008-02-21 10:32:04 -08:00
|
|
|
case "$host_cpu" in
|
2007-10-23 09:25:58 -07:00
|
|
|
i*86)
|
|
|
|
PIC_FLAGS=""
|
2007-12-12 09:02:31 -08:00
|
|
|
if test "x$enable_asm" = xyes; then
|
|
|
|
ASM_FLAGS="-DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
|
|
|
|
ASM_SOURCES='$(X86_SOURCES)'
|
|
|
|
ASM_API='$(X86_API)'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
;;
|
|
|
|
x86_64)
|
2007-12-12 09:02:31 -08:00
|
|
|
if test "x$enable_asm" = xyes; then
|
|
|
|
ASM_FLAGS="-DUSE_X86_64_ASM"
|
|
|
|
ASM_SOURCES='$(X86-64_SOURCES)'
|
|
|
|
ASM_API='$(X86-64_API)'
|
|
|
|
fi
|
2007-10-23 09:25:58 -07:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
dnl Restore LDFLAGS and CPPFLAGS
|
|
|
|
LDFLAGS="$_SAVE_LDFLAGS"
|
|
|
|
CPPFLAGS="$_SAVE_CPPFLAGS"
|
|
|
|
|
|
|
|
dnl Substitute the config
|
2007-12-12 17:57:45 -08:00
|
|
|
AC_CONFIG_FILES([configs/autoconf])
|
|
|
|
AC_OUTPUT
|
2007-10-23 09:25:58 -07:00
|
|
|
|
2007-12-11 08:21:51 -08:00
|
|
|
dnl Replace the configs/current symlink
|
|
|
|
if test -f configs/current || test -L configs/current; then
|
|
|
|
rm -f configs/current
|
|
|
|
fi
|
|
|
|
ln -s autoconf configs/current
|
|
|
|
|
2007-11-30 08:49:57 -08:00
|
|
|
dnl
|
|
|
|
dnl Output some configuration info for the user
|
|
|
|
dnl
|
|
|
|
echo ""
|
|
|
|
echo " prefix: $prefix"
|
|
|
|
echo " exec_prefix: $exec_prefix"
|
|
|
|
echo " libdir: $libdir"
|
|
|
|
|
|
|
|
dnl Driver info
|
|
|
|
echo ""
|
|
|
|
echo " Driver: $mesa_driver"
|
2007-12-30 08:41:53 -08:00
|
|
|
if echo "$DRIVER_DIRS" | grep 'osmesa' >/dev/null 2>&1; then
|
|
|
|
echo " OSMesa: lib$OSMESA_LIB"
|
|
|
|
else
|
|
|
|
echo " OSMesa: no"
|
|
|
|
fi
|
|
|
|
if test "$mesa_driver" = dri; then
|
2007-11-30 08:49:57 -08:00
|
|
|
# cleanup the drivers var
|
|
|
|
dri_dirs=`echo $DRI_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
|
|
|
|
echo " DRI drivers: $dri_dirs"
|
|
|
|
echo " DRI driver dir: $DRI_DRIVER_INSTALL_DIR"
|
2007-12-30 08:41:53 -08:00
|
|
|
fi
|
2007-11-30 08:49:57 -08:00
|
|
|
|
|
|
|
dnl Libraries
|
|
|
|
echo ""
|
|
|
|
echo " Shared libs: $enable_shared"
|
|
|
|
echo " Static libs: $enable_static"
|
|
|
|
echo " GLU: $enable_glu"
|
|
|
|
echo " GLw: $enable_glw"
|
|
|
|
echo " glut: $enable_glut"
|
|
|
|
|
|
|
|
dnl Programs
|
|
|
|
# cleanup the programs var for display
|
|
|
|
program_dirs=`echo $PROGRAM_DIRS | $SED 's/^ *//;s/ */ /;s/ *$//'`
|
|
|
|
if test "x$program_dirs" = x; then
|
|
|
|
echo " Demos: no"
|
|
|
|
else
|
|
|
|
echo " Demos: $program_dirs"
|
|
|
|
fi
|
|
|
|
|
2007-12-12 09:12:15 -08:00
|
|
|
dnl Compiler options
|
|
|
|
# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
|
|
|
|
cflags=`echo $CFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
|
|
|
|
$SED 's/^ *//;s/ */ /;s/ *$//'`
|
|
|
|
cxxflags=`echo $CXXFLAGS $OPT_FLAGS $PIC_FLAGS $ARCH_FLAGS | \
|
|
|
|
$SED 's/^ *//;s/ */ /;s/ *$//'`
|
|
|
|
defines=`echo $DEFINES $ASM_FLAGS | $SED 's/^ *//;s/ */ /;s/ *$//'`
|
|
|
|
echo ""
|
|
|
|
echo " CFLAGS: $cflags"
|
|
|
|
echo " CXXFLAGS: $cxxflags"
|
|
|
|
echo " Macros: $defines"
|
|
|
|
|
2007-10-23 09:25:58 -07:00
|
|
|
echo ""
|
2007-12-11 08:21:51 -08:00
|
|
|
echo " Run 'make' to build Mesa"
|
2007-10-23 09:25:58 -07:00
|
|
|
echo ""
|