X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=abfe3d7bd638ac7c057e7cef21b7d38536199453;hb=4cd4deab483f3ac18b43dfda626ec6115d35ee26;hp=3c328b64ae344de328fee3a0d6a3d1cde8acf40e;hpb=53c62d3fb0ee9aacc7a4aa08b4c42a3fb2127b2f;p=mesa.git diff --git a/configure.ac b/configure.ac index 3c328b64ae3..abfe3d7bd63 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ 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.]) -AC_INIT([Mesa], [9.1.0], +AC_INIT([Mesa], [9.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) AC_CONFIG_AUX_DIR([bin]) AC_CONFIG_MACRO_DIR([m4]) @@ -33,7 +33,7 @@ LIBDRM_REQUIRED=2.4.24 LIBDRM_RADEON_REQUIRED=2.4.40 LIBDRM_INTEL_REQUIRED=2.4.38 LIBDRM_NVVIEUX_REQUIRED=2.4.33 -LIBDRM_NOUVEAU_REQUIRED=2.4.33 +LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41" DRI2PROTO_REQUIRED=2.6 GLPROTO_REQUIRED=1.4.14 LIBDRM_XORG_REQUIRED=2.4.24 @@ -49,25 +49,19 @@ AM_PROG_CC_C_O AM_PROG_AS AC_CHECK_PROGS([MAKE], [gmake make]) AC_CHECK_PROGS([PYTHON2], [python2 python]) +AX_PYTHON_MODULE([libxml2], [needed]) AC_PROG_SED AC_PROG_MKDIR_P -AC_PATH_PROG([MKDEP], [makedepend]) LT_PREREQ([2.2]) LT_INIT([disable-static]) -if test "x$MKDEP" = "x"; then - AC_MSG_ERROR([makedepend is required to build Mesa]) -fi - -AC_PROG_YACC -AC_PATH_PROG([YACC_INST], $YACC) -if test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"; then - if test -z "$YACC_INST"; then - AC_MSG_ERROR([yacc not found - unable to compile glcpp-parse.y]) - fi -fi -AC_PROG_LEX +AX_PROG_BISON([], + AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"], + [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])])) +AX_PROG_FLEX([], + AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"], + [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])])) AC_PATH_PROG([PERL], [perl]) @@ -76,10 +70,7 @@ if test "x$INDENT" != "xcat"; then AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool') fi -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)' dnl We need a POSIX shell for parts of the build. Assume we have one dnl in most cases. @@ -126,21 +117,6 @@ if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then fi fi - -MKDEP_OPTIONS=-fdepend -dnl Ask gcc where it's keeping its secret headers -if test "x$GCC" = xyes; then - 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 -fi -AC_SUBST([MKDEP_OPTIONS]) - dnl Make sure the pkg-config macros are defined m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal([Could not locate the pkg-config autoconf macros. @@ -320,15 +296,6 @@ esac AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) -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 @@ -525,9 +492,6 @@ if test "x$enable_asm" = xyes; then fi AC_SUBST([MESA_ASM_FILES]) -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], [DEFINES="$DEFINES -DHAVE_DLOPEN"], @@ -644,8 +608,10 @@ AC_ARG_ENABLE([vdpau], [enable_vdpau=auto]) AC_ARG_ENABLE([opencl], [AS_HELP_STRING([--enable-opencl], - [enable OpenCL library @<:@default=no@:>@])], - [enable_opencl="$enableval"], + [enable OpenCL library NOTE: Enabling this option will also enable + --with-llvm-shared-libs + @<:@default=no@:>@])], + [], [enable_opencl=no]) AC_ARG_ENABLE([xlib_glx], [AS_HELP_STRING([--enable-xlib-glx], @@ -680,13 +646,15 @@ AC_ARG_ENABLE([gallium_tests], [enable_gallium_tests=no]) # Option for Gallium drivers + +# Keep this in sync with the --with-gallium-drivers help string default value GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast" AC_ARG_WITH([gallium-drivers], [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@], [comma delimited Gallium drivers list, e.g. "i915,nouveau,r300,r600,radeonsi,svga,swrast" - @<:@default=r300,r600,swrast@:>@])], + @<:@default=r300,r600,svga,swrast@:>@])], [with_gallium_drivers="$withval"], [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"]) @@ -733,6 +701,16 @@ if test "x$enable_dri$enable_xlib_glx" = xyesyes; then AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together]) fi +if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then + AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL]) +fi + +# Disable GLX if OpenGL is not enabled +if test "x$enable_glx$enable_opengl" = xyesno; then + AC_MSG_WARN([OpenGL not enabled, disabling GLX]) + enable_glx=no +fi + # Disable GLX if DRI and Xlib-GLX are not enabled if test "x$enable_glx" = xyes -a \ "x$enable_dri" = xno -a \ @@ -757,22 +735,17 @@ if test "x$enable_dri" = xno; then enable_shared_glapi=no fi -# TODO: Get rid of SHARED_GLAPI variable -SHARED_GLAPI="0" if test "x$enable_shared_glapi" = xyes; then - SHARED_GLAPI="1" # libGL will use libglapi for function lookups (IN_DRI_DRIVER means to use # the remap table) DEFINES="$DEFINES -DIN_DRI_DRIVER" CORE_DIRS="mapi/shared-glapi" fi -AC_SUBST([SHARED_GLAPI]) AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes) dnl dnl Driver specific build directories dnl -SRC_DIRS="gtest" GALLIUM_DIRS="auxiliary drivers state_trackers" GALLIUM_TARGET_DIRS="" GALLIUM_WINSYS_DIRS="sw" @@ -797,7 +770,7 @@ fi # build glsl and mesa if OpenGL or OpenGL ES is enabled case "x$enable_opengl$enable_gles1$enable_gles2" in x*yes*) - CORE_DIRS="mapi/glapi/gen $CORE_DIRS glsl mesa" + CORE_DIRS="mapi/glapi/gen $CORE_DIRS gtest glsl mesa" ;; esac @@ -1114,8 +1087,8 @@ if test "x$enable_dri" = xyes; then LIBS="$save_LIBS" fi - # if we are building any dri driver other than swrast ... - if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then + # if we are building any dri driver other than swrast or using the dri state tracker ... + if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast || test "x$enable_dri" = xyes; then # ... libdrm is required if test "x$have_libdrm" != xyes; then AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED]) @@ -1493,6 +1466,10 @@ if test "x$enable_opencl" = xyes; then enable_gallium_loader=yes fi +if test "x$enable_gallium_gbm" = xyes || test "x$enable_opencl" = xyes; then + GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS pipe-loader" +fi + dnl dnl Gallium configuration dnl @@ -1652,8 +1629,13 @@ AC_ARG_ENABLE([gallium-llvm], AC_ARG_WITH([llvm-shared-libs], [AS_HELP_STRING([--with-llvm-shared-libs], [link with LLVM shared libraries @<:@default=disabled@:>@])], - [with_llvm_shared_libs=yes], + [], [with_llvm_shared_libs=no]) +AS_IF([test x$enable_opencl = xyes], + [ + AC_MSG_WARN([OpenCL required, forcing LLVM shared libraries]) + with_llvm_shared_libs=yes + ]) AC_ARG_WITH([llvm-prefix], [AS_HELP_STRING([--with-llvm-prefix], @@ -1695,10 +1677,7 @@ if test "x$enable_gallium_llvm" = xyes; then if test "x$LLVM_CONFIG" != xno; then LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/svn.*//g'` LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'` - if test "x$with_llvm_shared_libs" = xyes; then - dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, - LLVM_LIBS="-lLLVM-`$LLVM_CONFIG --version`" - else + if test "x$with_llvm_shared_libs" != xyes; then LLVM_COMPONENTS="engine bitwriter" if $LLVM_CONFIG --components | grep -q '\'; then LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit" @@ -1707,7 +1686,6 @@ if test "x$enable_gallium_llvm" = xyes; then if test "x$enable_opencl" = xyes; then LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation" fi - LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" fi LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` LLVM_BINDIR=`$LLVM_CONFIG --bindir` @@ -1749,7 +1727,7 @@ dnl dnl Gallium Tests dnl if test "x$enable_gallium_tests" = xyes; then - SRC_DIRS="$SRC_DIRS gallium/tests/trivial" + SRC_DIRS="$SRC_DIRS gallium/tests/trivial gallium/tests/unit" enable_gallium_loader=yes fi @@ -1832,7 +1810,7 @@ radeon_llvm_check() { configure flag]) fi AC_MSG_WARN([Please ensure you use the latest llvm tree from git://people.freedesktop.org/~tstellar/llvm master before submitting a bug]) - LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs r600`" + LLVM_COMPONENTS="${LLVM_COMPONENTS} r600" } dnl Gallium drivers @@ -1861,7 +1839,7 @@ if test "x$with_gallium_drivers" != x; then PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) gallium_require_llvm "Gallium R300" GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300" - gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" + gallium_check_st "radeon/drm" "dri-r300" "" "" "xvmc-r300" "vdpau-r300" ;; xr600) HAVE_GALLIUM_R600=yes @@ -1871,13 +1849,12 @@ if test "x$with_gallium_drivers" != x; then if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then radeon_llvm_check NEED_RADEON_GALLIUM=yes; + R600_NEED_RADEON_GALLIUM=yes; + LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo bitreader asmparser" fi if test "x$enable_r600_llvm" = xyes; then USE_R600_LLVM_COMPILER=yes; fi - if test "x$enable_opencl" = xyes -a "x$with_llvm_shared_libs" = xno; then - LLVM_LIBS="${LLVM_LIBS} `$LLVM_CONFIG --libs bitreader asmparser`" - fi gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" ;; xradeonsi) @@ -1926,6 +1903,50 @@ if test "x$with_gallium_drivers" != x; then esac done fi + +dnl Set LLVM_LIBS - This is done after the driver configuration so +dnl that drivers can add additonal components to LLVM_COMPONENTS. +dnl Previously, gallium drivers were updating LLVM_LIBS directly +dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but +dnl this was causing the same libraries to be appear multiple times +dnl in LLVM_LIBS. + +if test "x$MESA_LLVM" != x0; then + + LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" + + if test "x$with_llvm_shared_libs" = xyes; then + dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, + LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version` + AC_CHECK_FILE("$LLVM_LIBDIR/lib$LLVM_SO_NAME.so", llvm_have_one_so=yes,) + + if test "x$llvm_have_one_so" = xyes; then + dnl LLVM was built using auto*, so there is only one shared object. + LLVM_LIBS="-l$LLVM_SO_NAME" + else + dnl If LLVM was built with CMake, there will be one shared object per + dnl component. + AC_CHECK_FILE("$LLVM_LIBDIR/libLLVMTarget.so",, + AC_MSG_ERROR([Could not find llvm shared libraries: + Please make sure you have built llvm with the --enable-shared option + and that your llvm libraries are installed in $LLVM_LIBDIR + If you have installed your llvm libraries to a different directory you + can use the --with-llvm-prefix= configure flag to specify this directory. + NOTE: Mesa is attempting to use llvm shared libraries because you have + passed one of the following options to configure: + --with-llvm-shared-libs + --enable-opencl + If you do not want to build with llvm shared libraries and instead want to + use llvm static libraries then remove these options from your configure + invocation and reconfigure.])) + + dnl We don't need to update LLVM_LIBS in this case because the LLVM + dnl install uses a shared object for each compoenent and we have + dnl already added all of these objects to LLVM_LIBS. + fi + fi +fi + AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes) AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes) @@ -1982,6 +2003,7 @@ AM_CONDITIONAL(HAVE_GALAHAD_GALLIUM, test x$HAVE_GALAHAD_GALLIUM = xyes) AM_CONDITIONAL(HAVE_IDENTITY_GALLIUM, test x$HAVE_IDENTITY_GALLIUM = xyes) AM_CONDITIONAL(HAVE_NOOP_GALLIUM, test x$HAVE_NOOP_GALLIUM = xyes) AM_CONDITIONAL(NEED_RADEON_GALLIUM, test x$NEED_RADEON_GALLIUM = xyes) +AM_CONDITIONAL(R600_NEED_RADEON_GALLIUM, test x$R600_NEED_RADEON_GALLIUM = xyes) AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes) AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes) AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes) @@ -2000,6 +2022,8 @@ AM_CONDITIONAL(HAVE_X86_ASM, echo "$DEFINES" | grep 'X86_ASM' >/dev/null 2>&1) AM_CONDITIONAL(HAVE_X86_64_ASM, echo "$DEFINES" | grep 'X86_64_ASM' >/dev/null 2>&1) AM_CONDITIONAL(HAVE_SPARC_ASM, echo "$DEFINES" | grep 'SPARC_ASM' >/dev/null 2>&1) +AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes) + AC_SUBST([VDPAU_MAJOR], 1) AC_SUBST([VDPAU_MINOR], 0) @@ -2023,8 +2047,7 @@ CFLAGS="$CFLAGS $USER_CFLAGS" CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" dnl Substitute the config -AC_CONFIG_FILES([configs/current - Makefile +AC_CONFIG_FILES([Makefile src/Makefile src/egl/Makefile src/egl/drivers/Makefile @@ -2078,6 +2101,7 @@ AC_CONFIG_FILES([configs/current src/gallium/targets/egl-static/Makefile src/gallium/targets/gbm/Makefile src/gallium/targets/opencl/Makefile + src/gallium/targets/pipe-loader/Makefile src/gallium/targets/libgl-xlib/Makefile src/gallium/targets/vdpau-nouveau/Makefile src/gallium/targets/vdpau-r300/Makefile @@ -2088,13 +2112,14 @@ AC_CONFIG_FILES([configs/current src/gallium/targets/xa-vmwgfx/xatracker.pc src/gallium/targets/xorg-i915/Makefile src/gallium/targets/xorg-nouveau/Makefile - src/gallium/targets/xorg-r300/Makefile src/gallium/targets/xorg-r600/Makefile src/gallium/targets/xorg-radeonsi/Makefile src/gallium/targets/xvmc-nouveau/Makefile src/gallium/targets/xvmc-r300/Makefile src/gallium/targets/xvmc-r600/Makefile src/gallium/targets/xvmc-softpipe/Makefile + src/gallium/tests/trivial/Makefile + src/gallium/tests/unit/Makefile src/gallium/winsys/Makefile src/gallium/winsys/i915/drm/Makefile src/gallium/winsys/i915/sw/Makefile @@ -2112,8 +2137,6 @@ AC_CONFIG_FILES([configs/current src/gbm/main/gbm.pc src/glsl/Makefile src/glsl/builtin_compiler/Makefile - src/glsl/glcpp/Makefile - src/glsl/tests/Makefile src/glx/Makefile src/glx/tests/Makefile src/gtest/Makefile @@ -2133,6 +2156,7 @@ AC_CONFIG_FILES([configs/current src/mesa/drivers/Makefile src/mesa/drivers/dri/dri.pc src/mesa/drivers/dri/common/Makefile + src/mesa/drivers/dri/common/xmlpool/Makefile src/mesa/drivers/dri/i915/Makefile src/mesa/drivers/dri/i965/Makefile src/mesa/drivers/dri/Makefile @@ -2256,9 +2280,9 @@ echo " Shared-glapi: $enable_shared_glapi" dnl Compiler options # cleanup the CFLAGS/CXXFLAGS/DEFINES vars -cflags=`echo $CFLAGS $PIC_FLAGS | \ +cflags=`echo $CFLAGS | \ $SED 's/^ *//;s/ */ /;s/ *$//'` -cxxflags=`echo $CXXFLAGS $PIC_FLAGS | \ +cxxflags=`echo $CXXFLAGS | \ $SED 's/^ *//;s/ */ /;s/ *$//'` defines=`echo $DEFINES | $SED 's/^ *//;s/ */ /;s/ *$//'` echo ""