123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886 |
- 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()])
-
- AC_INIT([Mesa],[mesa_version()],
- [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
- 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
- AC_PATH_PROG(MAKE, make)
- AC_PATH_PROG(MKDEP, makedepend)
- AC_PATH_PROG(SED, sed)
-
- 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'?])]
- )
- 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)
- if test "x$GCC" = xyes; then
- DEFINES="-D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE"
- fi
- case "$host_os" in
- linux*)
- 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"
-
- # Work around aliasing bugs - developers should comment this out
- CFLAGS="$CFLAGS -fno-strict-aliasing"
- fi
- if test "x$GXX" = xyes; then
- CXXFLAGS="$CXXFLAGS -Wall"
-
- # Work around aliasing bugs - developers should comment this out
- CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
- 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)
-
- 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
-
- dnl
- dnl shared/static libraries, mimic libtool options
- dnl
- AC_ARG_ENABLE(static,
- [AS_HELP_STRING([--enable-static],
- [build static libraries @<:@default=disabled@:>@])],
- 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],
- [build shared libraries @<:@default=enabled@:>@])],
- 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)
-
- 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
- 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
- )
-
- dnl
- dnl library names
- dnl
- 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
- 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
- dnl Driver configuration. Options are xlib, dri and osmesa right now.
- dnl More later: directfb, fbdev, ...
- dnl
- AC_ARG_WITH(driver,
- [AS_HELP_STRING([--with-driver=DRIVER],
- [driver for Mesa: xlib,dri,osmesa @<:@default=xlib@:>@])],
- mesa_driver="$withval",
- mesa_driver="xlib")
- dnl Check for valid option
- case "x$mesa_driver" in
- xxlib|xdri|xosmesa)
- ;;
- *)
- AC_MSG_ERROR([Driver '$mesa_driver' is not a valid option])
- ;;
- esac
-
- dnl
- dnl Driver specific build directories
- dnl
- SRC_DIRS="mesa"
- GLU_DIRS="sgi"
- WINDOW_SYSTEM=""
- case "$mesa_driver" in
- xlib)
- DRIVER_DIRS="x11"
- ;;
- dri)
- SRC_DIRS="glx/x11 $SRC_DIRS"
- DRIVER_DIRS="dri"
- WINDOW_SYSTEM="dri"
- ;;
- osmesa)
- DRIVER_DIRS="osmesa"
- ;;
- esac
- AC_SUBST(SRC_DIRS)
- AC_SUBST(GLU_DIRS)
- AC_SUBST(DRIVER_DIRS)
- AC_SUBST(WINDOW_SYSTEM)
-
- 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
- @<:@default=auto if source available@:>@])],
- 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
- no|yes) ;;
- *)
- # 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
-
- 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
-
- dnl We need X for xlib and dri, so bomb now if it's not found
- case "$mesa_driver" in
- xlib|dri)
- if test "$no_x" = yes; then
- AC_MSG_ERROR([X11 development libraries needed for $mesa_driver driver])
- fi
- ;;
- esac
-
- # 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
-
- dnl
- dnl libGL configuration per driver
- dnl
- case "$mesa_driver" in
- xlib)
- if test "$x11_pkgconfig" = yes; then
- PKG_CHECK_MODULES(XLIBGL, x11 xext)
- X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
- GL_LIB_DEPS="$XLIBGL_LIBS"
- else
- # should check these...
- X11_INCLUDES="$X11_INCLUDES $X_CFLAGS"
- GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
- fi
- GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
-
- # 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
- ;;
- dri)
- # DRI must be shared, I think
- if test "$enable_static" = yes; then
- AC_MSG_ERROR([Can't use static libraries for DRI drivers])
- fi
-
- # Check for libdrm
- PKG_CHECK_MODULES(LIBDRM, libdrm)
-
- # 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.
- GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread -ldl"
- ;;
- osmesa)
- # No libGL for osmesa
- GL_LIB_DEPS=""
- ;;
- esac
- AC_SUBST(GL_LIB_DEPS)
-
- dnl
- dnl More X11 setup
- dnl
- if test "$mesa_driver" = xlib; then
- DEFINES="$DEFINES -DUSE_XSHM"
- fi
-
- dnl
- dnl More DRI setup
- dnl
- AC_ARG_ENABLE(glx-tls,
- [AS_HELP_STRING([--enable-glx-tls],
- [enable TLS support in GLX @<:@default=disabled@:>@])],
- GLX_USE_TLS="$enableval",
- GLX_USE_TLS=no)
- dnl Directory for DRI drivers
- AC_ARG_WITH(dri-driverdir,
- [AS_HELP_STRING([--with-dri-driverdir=DIR],
- [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,
- [AS_HELP_STRING([--disable-driglx-direct],
- [enable direct rendering in GLX for DRI @<:@default=enabled@:>@])],
- driglx_direct="$enableval",
- driglx_direct="yes")
-
- dnl Which drivers to build - default is chosen by platform
- AC_ARG_WITH(dri-drivers,
- [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
- [comma delimited DRI drivers, e.g. "i965,radeon,nouveau" @<:@default=auto@:>@])],
- 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
-
- 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)
- # 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.
- if test "x$DRI_DIRS" = x; then
- DRI_DIRS="i915 i965 mach64 mga r128 r200 r300 radeon \
- savage tdfx unichrome"
- fi
- ;;
- powerpc*)
- # Build only the drivers for cards that exist on PowerPC.
- # At some point MGA will be added, but not yet.
- if test "x$DRI_DIRS" = x; then
- DRI_DIRS="mach64 r128 r200 r300 radeon tdfx"
- fi
- ;;
- 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
-
- # ffb and gamma are missing because they have not been converted
- # to use the new interface.
- if test "x$DRI_DIRS" = x; then
- DRI_DIRS="i810 i915 i965 mach64 mga r128 r200 r300 radeon tdfx \
- unichrome savage sis"
- fi
- ;;
- esac
-
- # 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
-
- 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
- DRI_LIB_DEPS="$SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread -ldl"
- fi
- AC_SUBST(DRI_DIRS)
- AC_SUBST(EXPAT_INCLUDES)
- AC_SUBST(DRI_LIB_DEPS)
-
- dnl
- dnl OSMesa configuration
- dnl
- if test "$mesa_driver" = xlib; then
- default_gl_osmesa=yes
- else
- default_gl_osmesa=no
- fi
- 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])
- else
- DRIVER_DIRS="$DRIVER_DIRS osmesa"
- fi
- fi
-
- 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)
-
- case "$mesa_driver" in
- osmesa)
- # only link librararies with osmesa if shared
- if test "$enable_static" = no; then
- OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS"
- else
- OSMESA_LIB_DEPS=""
- fi
- OSMESA_MESA_DEPS=""
- ;;
- *)
- # Link OSMesa to libGL otherwise
- OSMESA_LIB_DEPS=""
- # only link librararies with osmesa if shared
- if test "$enable_static" = no; then
- OSMESA_MESA_DEPS='-l$(GL_LIB)'
- else
- OSMESA_MESA_DEPS=""
- fi
- ;;
- esac
- AC_SUBST(OSMESA_LIB_DEPS)
- AC_SUBST(OSMESA_MESA_DEPS)
-
- dnl
- dnl GLU configuration
- dnl
- AC_ARG_ENABLE(glu,
- [AS_HELP_STRING([--disable-glu],
- [enable OpenGL Utility library @<:@default=enabled@:>@])],
- enable_glu="$enableval",
- enable_glu=yes)
- if test "x$enable_glu" = xyes; then
- SRC_DIRS="$SRC_DIRS glu"
-
- case "$mesa_driver" in
- osmesa)
- # If GLU is available and we have libOSMesa (not 16 or 32),
- # we can build the osdemos
- if test "$with_demos" = yes && test "$osmesa_bits" = 8; then
- PROGRAM_DIRS="$PROGRAM_DIRS osdemos"
- fi
-
- # Link libGLU to libOSMesa instead of libGL
- GLU_LIB_DEPS=""
- if test "$enable_static" = no; then
- GLU_MESA_DEPS='-l$(OSMESA_LIB)'
- else
- GLU_MESA_DEPS=""
- fi
- ;;
- *)
- # If GLU is available, we can build the xdemos
- if test "$with_demos" = yes; then
- PROGRAM_DIRS="$PROGRAM_DIRS xdemos"
- fi
-
- # 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
- ;;
- esac
- fi
- AC_SUBST(GLU_LIB_DEPS)
- AC_SUBST(GLU_MESA_DEPS)
-
- dnl
- dnl GLw configuration
- dnl
- AC_ARG_ENABLE(glw,
- [AS_HELP_STRING([--disable-glw],
- [enable Xt/Motif widget library @<:@default=enabled@:>@])],
- enable_glw="$enableval",
- enable_glw=yes)
- 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
- 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
-
- # 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
- 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,
- [AS_HELP_STRING([--disable-glut],
- [enable GLUT library @<:@default=enabled if source available@:>@])],
- 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
- 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
-
- 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
- PKG_CHECK_MODULES(GLUT, x11 xmu xi)
- GLUT_LIB_DEPS="$GLUT_LIBS"
- else
- # should check these...
- GLUT_LIB_DEPS="$X_LIBS -lX11 -lXmu -lXi"
- fi
- GLUT_LIB_DEPS="$GLUT_LIB_DEPS -lm"
-
- # If glut is available, we can build most programs
- if test "$with_demos" = yes; then
- PROGRAM_DIRS="$PROGRAM_DIRS demos redbook samples glsl"
- fi
-
- # 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
- 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)
- 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
- ;;
- x86_64)
- if test "x$enable_asm" = xyes; then
- ASM_FLAGS="-DUSE_X86_64_ASM"
- ASM_SOURCES='$(X86-64_SOURCES)'
- ASM_API='$(X86-64_API)'
- fi
- ;;
- powerpc)
- if test "x$enable_asm" = xyes; then
- ASM_FLAGS="-DUSE_PPC_ASM -DUSE_VMX_ASM"
- ASM_SOURCES='$(PPC_SOURCES)'
- fi
- ;;
- esac
- ;;
- freebsd*)
- PIC_FLAGS="-fPIC"
- case "$host_cpu" in
- i*86)
- PIC_FLAGS=""
- 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
- ;;
- x86_64)
- if test "x$enable_asm" = xyes; then
- ASM_FLAGS="-DUSE_X86_64_ASM"
- ASM_SOURCES='$(X86-64_SOURCES)'
- ASM_API='$(X86-64_API)'
- fi
- ;;
- esac
- ;;
- esac
-
- dnl Restore LDFLAGS and CPPFLAGS
- LDFLAGS="$_SAVE_LDFLAGS"
- CPPFLAGS="$_SAVE_CPPFLAGS"
-
- dnl Substitute the config
- AC_CONFIG_FILES([configs/autoconf])
- AC_OUTPUT
-
- 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
-
- 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"
- 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
- # 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"
- fi
-
- 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
-
- 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"
-
- echo ""
- echo " Run 'make' to build Mesa"
- echo ""
|