X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=a133902c69fe327c5a46c0e037878e63fe4b5d9b;hb=aac21547292cf0540e14679fc9bef260eb5092a3;hp=49cdb8249d0b148be40809f9c10c208e28fb31fd;hpb=7da12426f7682ffc44ae40e31d1b5712521fbb70;p=mesa.git diff --git a/configure.ac b/configure.ac index 49cdb8249d0..a133902c69f 100644 --- a/configure.ac +++ b/configure.ac @@ -10,7 +10,7 @@ AC_INIT([Mesa], [9.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) AC_CONFIG_AUX_DIR([bin]) AC_CONFIG_MACRO_DIR([m4]) -AC_CANONICAL_HOST +AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([foreign]) dnl http://people.gnome.org/~walters/docs/build-api.txt @@ -24,16 +24,13 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) -LT_PREREQ([2.2]) -LT_INIT([disable-static]) - dnl Set internal versions OSMESA_VERSION=8 AC_SUBST([OSMESA_VERSION]) dnl Versions for external dependencies LIBDRM_REQUIRED=2.4.24 -LIBDRM_RADEON_REQUIRED=2.4.39 +LIBDRM_RADEON_REQUIRED=2.4.40 LIBDRM_INTEL_REQUIRED=2.4.38 LIBDRM_NVVIEUX_REQUIRED=2.4.33 LIBDRM_NOUVEAU_REQUIRED=2.4.33 @@ -45,7 +42,9 @@ LIBKMS_XORG_REQUIRED=1.0.0 dnl Check for progs AC_PROG_CPP AC_PROG_CC +AX_PROG_CC_FOR_BUILD AC_PROG_CXX +AX_PROG_CXX_FOR_BUILD AM_PROG_CC_C_O AM_PROG_AS AC_CHECK_PROGS([MAKE], [gmake make]) @@ -54,6 +53,9 @@ 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 @@ -155,24 +157,47 @@ dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later _SAVE_LDFLAGS="$LDFLAGS" _SAVE_CPPFLAGS="$CPPFLAGS" +dnl build host compiler macros +DEFINES_FOR_BUILD="" +AC_SUBST([DEFINES_FOR_BUILD]) +case "$build_os" in +linux*|*-gnu*|gnu*) + DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -D_GNU_SOURCE" + ;; +solaris*) + DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DSVR4" + ;; +cygwin*) + DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD" + ;; +esac + dnl Compiler macros DEFINES="" AC_SUBST([DEFINES]) case "$host_os" in linux*|*-gnu*|gnu*) - DEFINES="$DEFINES -D_GNU_SOURCE -DPTHREADS" + DEFINES="$DEFINES -D_GNU_SOURCE -DHAVE_PTHREAD" ;; solaris*) - DEFINES="$DEFINES -DPTHREADS -DSVR4" + DEFINES="$DEFINES -DHAVE_PTHREAD -DSVR4" ;; cygwin*) - DEFINES="$DEFINES -DPTHREADS" + DEFINES="$DEFINES -DHAVE_PTHREAD" ;; esac dnl Add flags for gcc and g++ if test "x$GCC" = xyes; then - CFLAGS="$CFLAGS -Wall -std=c99" + case "$host_os" in + cygwin*) + CFLAGS="$CFLAGS -Wall -std=gnu99" + ;; + *) + CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -Wall -std=c99" + CFLAGS="$CFLAGS -Wall -std=c99" + ;; + esac # Enable -Werror=implicit-function-declaration and # -Werror=missing-prototypes, if available, or otherwise, just @@ -199,13 +224,16 @@ if test "x$GCC" = xyes; then CFLAGS=$save_CFLAGS # Work around aliasing bugs - developers should comment this out + CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-strict-aliasing" CFLAGS="$CFLAGS -fno-strict-aliasing" # gcc's builtin memcmp is slower than glibc's # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 + CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -fno-builtin-memcmp" CFLAGS="$CFLAGS -fno-builtin-memcmp" fi if test "x$GXX" = xyes; then + CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -Wall" CXXFLAGS="$CXXFLAGS -Wall" # Enable -fvisibility=hidden if using a gcc that supports it @@ -222,10 +250,12 @@ if test "x$GXX" = xyes; then CXXFLAGS=$save_CXXFLAGS # Work around aliasing bugs - developers should comment this out + CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-strict-aliasing" CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" # gcc's builtin memcmp is slower than glibc's # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052 + CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -fno-builtin-memcmp" CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp" fi @@ -309,6 +339,14 @@ AC_ARG_ENABLE([debug], [enable_debug=no] ) if test "x$enable_debug" = xyes; then + DEFINES_FOR_BUILD="$DEFINES_FOR_BUILD -DDEBUG" + if test "x$GCC_FOR_BUILD" = xyes; then + CFLAGS_FOR_BUILD="$CFLAGS_FOR_BUILD -g" + fi + if test "x$GXX_FOR_BUILD" = xyes; then + CXXFLAGS_FOR_BUILD="$CXXFLAGS_FOR_BUILD -g" + fi + DEFINES="$DEFINES -DDEBUG" if test "x$GCC" = xyes; then CFLAGS="$CFLAGS -g" @@ -497,18 +535,20 @@ AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"], [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])]) AC_SUBST([DLOPEN_LIBS]) +AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=], + [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt], + [AC_MSG_ERROR([Couldn't find clock_gettime])])]) +AC_SUBST([CLOCK_LIB]) + dnl See if posix_memalign is available AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) -dnl signbit() is a macro in glibc's math.h, so AC_CHECK_FUNC fails. To handle -dnl this, use AC_CHECK_DECLS and fallback to AC_CHECK_FUNC in case it fails. -AC_CHECK_DECLS([signbit],[], - AC_CHECK_FUNC([signbit],[], - AC_MSG_ERROR([could not find signbit()])), - [#include ]) - dnl Check for pthreads AX_PTHREAD +dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS +dnl to -pthread, which causes problems if we need -lpthread to appear in +dnl pkgconfig files. +test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" dnl SELinux awareness. AC_ARG_ENABLE([selinux], @@ -524,6 +564,7 @@ if test "x$enable_selinux" = "xyes"; then SELINUX_LIBS="-lselinux" DEFINES="$DEFINES -DMESA_SELINUX" fi +AC_SUBST([SELINUX_LIBS]) dnl Options for APIs AC_ARG_ENABLE([opengl], @@ -601,11 +642,6 @@ AC_ARG_ENABLE([vdpau], [enable vdpau library @<:@default=auto@:>@])], [enable_vdpau="$enableval"], [enable_vdpau=auto]) -AC_ARG_ENABLE([va], - [AS_HELP_STRING([--enable-va], - [enable va library @<:@default=auto@:>@])], - [enable_va="$enableval"], - [enable_va=auto]) AC_ARG_ENABLE([opencl], [AS_HELP_STRING([--enable-opencl], [enable OpenCL library @<:@default=no@:>@])], @@ -670,7 +706,6 @@ if test "x$enable_opengl" = xno -a \ "x$enable_d3d1x" = xno -a \ "x$enable_xvmc" = xno -a \ "x$enable_vdpau" = xno -a \ - "x$enable_va" = xno -a \ "x$enable_opencl" = xno; then AC_MSG_ERROR([at least one API should be enabled]) fi @@ -818,7 +853,7 @@ if test "x$enable_dri" = xyes; then fi dnl Find out if X is available. -PKG_CHECK_MODULES([X11], [x11]) +PKG_CHECK_MODULES([X11], [x11], [no_x=no], [no_x=yes]) 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. @@ -831,10 +866,6 @@ if test "x$enable_glx" = xyes -a "x$no_x" = xyes; then AC_MSG_ERROR([X11 development libraries needed for GLX]) fi -if test "x$enable_glx" = xyes; then - DEFINES="$DEFINES -DUSE_XCB" -fi - dnl Direct rendering or just indirect rendering case "$host_os" in gnu*) @@ -851,7 +882,7 @@ cygwin*) esac AC_ARG_ENABLE([driglx-direct], [AS_HELP_STRING([--disable-driglx-direct], - [enable direct rendering in GLX and EGL for DRI \ + [disable direct rendering in GLX and EGL for DRI \ @<:@default=auto@:>@])], [driglx_direct="$enableval"], [driglx_direct="$driglx_direct_default"]) @@ -866,8 +897,8 @@ xyesyes) GL_PC_REQ_PRIV="x11 xext" X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS" GL_LIB_DEPS="$XLIBGL_LIBS" - GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread $DLOPEN_LIBS" - GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm -lpthread" + GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" + GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS" ;; xyesno) # DRI-based GLX @@ -881,7 +912,7 @@ xyesno) fi # find the DRI deps for libGL - dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1" + dri_modules="x11 xext xdamage xfixes x11-xcb xcb-glx >= 1.8.1 xcb-dri2 >= 1.8" # add xf86vidmode if available PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no) @@ -894,9 +925,9 @@ xyesno) X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS" GL_LIB_DEPS="$DRIGL_LIBS" - # need DRM libs, -lpthread, etc. - GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" - GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" + # need DRM libs, $PTHREAD_LIBS, etc. + GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" + GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" ;; esac @@ -904,10 +935,10 @@ esac # builds. AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes) -GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" -GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" -GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" -GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" +GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" +GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" +GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS" +GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS" AC_SUBST([X11_INCLUDES]) AC_SUBST([GL_LIB_DEPS]) @@ -920,10 +951,6 @@ AC_SUBST([GLESv1_CM_PC_LIB_PRIV]) AC_SUBST([GLESv2_LIB_DEPS]) AC_SUBST([GLESv2_PC_LIB_PRIV]) -GLAPI_LIB_DEPS="-lpthread $SELINUX_LIBS" -AC_SUBST([GLAPI_LIB_DEPS]) - - DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la" AC_SUBST([HAVE_XF86VIDMODE]) @@ -954,8 +981,8 @@ AC_ARG_ENABLE([glx-tls], [GLX_USE_TLS=no]) AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) -AS_IF([test "x$GLX_USE_TLS" = xyes], - [DEFINES="${DEFINES} -DGLX_USE_TLS -DPTHREADS"]) +AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes], + [DEFINES="${DEFINES} -DGLX_USE_TLS -DHAVE_PTHREAD"]) dnl dnl More DRI setup @@ -1039,7 +1066,7 @@ if test "x$enable_dri" = xyes; then esac ;; freebsd* | dragonfly* | *netbsd*) - DEFINES="$DEFINES -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1" + DEFINES="$DEFINES -DHAVE_PTHREAD -DUSE_EXTERNAL_DXTN_LIB=1" DEFINES="$DEFINES -DIN_DRI_DRIVER -DHAVE_ALIAS" if test "x$DRI_DIRS" = "xyes"; then @@ -1098,9 +1125,10 @@ if test "x$enable_dri" = xyes; then fi # put all the necessary libs together - DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS" - GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm -lpthread $DLOPEN_LIBS" + DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS" + GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS" fi +AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS") AC_SUBST([DRI_DIRS]) AC_SUBST([EXPAT_INCLUDES]) AC_SUBST([DRI_LIB_DEPS]) @@ -1195,12 +1223,12 @@ esac if test "x$enable_osmesa" = xyes; then # only link libraries with osmesa if shared if test "$enable_static" = no; then - OSMESA_LIB_DEPS="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS" + OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" else OSMESA_LIB_DEPS="" fi OSMESA_MESA_DEPS="" - OSMESA_PC_LIB_PRIV="-lm -lpthread $SELINUX_LIBS $DLOPEN_LIBS" + OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" fi AC_SUBST([OSMESA_LIB_DEPS]) @@ -1230,8 +1258,6 @@ if test "x$enable_gbm" = xyes; then if test "x$enable_shared_glapi" = xno; then AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi]) fi - PKG_CHECK_MODULES([LIBKMS], [libkms], [], - AC_MSG_ERROR([gbm needs libkms])) fi fi GBM_PC_REQ_PRIV="libudev" @@ -1246,16 +1272,12 @@ EGL_CLIENT_APIS="" if test "x$enable_egl" = xyes; then SRC_DIRS="$SRC_DIRS egl" - EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS -lpthread" + EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS" AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) if test "$enable_static" != yes; then # build egl_glx when libGL is built - if test "x$enable_glx" = xyes; then - HAVE_EGL_DRIVER_GLX=1 - fi - PKG_CHECK_MODULES([LIBUDEV], [libudev > 150], [have_libudev=yes],[have_libudev=no]) if test "$have_libudev" = yes; then @@ -1369,11 +1391,11 @@ if test "x$enable_openvg" = xyes; then fi EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(VG_LIB)' - VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS -lpthread" + VG_LIB_DEPS="$VG_LIB_DEPS $SELINUX_LIBS $PTHREAD_LIBS" CORE_DIRS="$CORE_DIRS mapi/vgapi" GALLIUM_STATE_TRACKERS_DIRS="vega $GALLIUM_STATE_TRACKERS_DIRS" HAVE_ST_VEGA=yes - VG_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" + VG_PC_LIB_PRIV="-lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS" AC_SUBST([VG_PC_LIB_PRIV]) fi @@ -1410,12 +1432,6 @@ if test "x$enable_gallium_g3dvl" = xyes; then if test "x$enable_vdpau" = xauto; then PKG_CHECK_EXISTS([vdpau], [enable_vdpau=yes], [enable_vdpau=no]) fi - - if test "x$enable_va" = xauto; then - #don't enable vaapi state tracker even if package exists - #PKG_CHECK_EXISTS([libva], [enable_vdpau=yes], [enable_vdpau=no]) - enable_va=no - fi fi if test "x$enable_xvmc" = xyes; then @@ -1430,13 +1446,6 @@ if test "x$enable_vdpau" = xyes; then HAVE_ST_VDPAU="yes" fi -if test "x$enable_va" = xyes; then - PKG_CHECK_MODULES([LIBVA], [libva = 0.31.1 x11-xcb xcb-dri2 >= 1.8]) - AC_MSG_WARN([vaapi state tracker currently unmaintained]) - GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS va" - HAVE_ST_VA="yes" -fi - dnl dnl OpenCL configuration dnl @@ -1526,8 +1535,7 @@ for plat in $egl_platforms; do ;; wayland) - PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \ - [AC_MSG_ERROR([cannot find libwayland-client])]) + PKG_CHECK_MODULES([WAYLAND], [wayland-client >= 1.0.2 wayland-server >= 1.0.2]) GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland" WAYLAND_PREFIX=`$PKG_CONFIG --variable=prefix wayland-client` @@ -1536,12 +1544,11 @@ for plat in $egl_platforms; do ;; x11) - PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 xcb-xfixes]) - # workaround a bug in xcb-dri2 generated by xcb-proto 1.6 - save_LIBS="$LIBS" - AC_CHECK_LIB(xcb-dri2, xcb_dri2_connect_alignment_pad, [], - [DEFINES="$DEFINES -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN"]) - LIBS="$save_LIBS" + PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb-dri2 >= 1.8 xcb-xfixes]) + + if test "x$enable_glx" = xyes; then + HAVE_EGL_DRIVER_GLX=1 + fi ;; drm) @@ -1638,6 +1645,21 @@ AC_ARG_WITH([llvm-prefix], [llvm_prefix=""]) +# Call this inside ` ` to get the return value. +# $1 is the llvm-config command with arguments. +strip_unwanted_llvm_flags() { + # Use \> (marks the end of the word) + echo `$1` | sed \ + -e 's/-DNDEBUG\>//g' \ + -e 's/-pedantic\>//g' \ + -e 's/-Wcovered-switch-default\>//g' \ + -e 's/-O.\>//g' \ + -e 's/-g\>//g' \ + -e 's/-Wall\>//g' \ + -e 's/-fomit-frame-pointer\>//g' +} + + if test "x$with_gallium_drivers" = x; then enable_gallium_llvm=no fi @@ -1655,7 +1677,6 @@ 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_CFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//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`" @@ -1664,6 +1685,7 @@ if test "x$enable_gallium_llvm" = xyes; then if $LLVM_CONFIG --components | grep -q '\'; then LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit" fi + if test "x$enable_opencl" = xyes; then LLVM_COMPONENTS="${LLVM_COMPONENTS} ipo linker instrumentation" fi @@ -1671,8 +1693,9 @@ if test "x$enable_gallium_llvm" = xyes; then fi LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags` LLVM_BINDIR=`$LLVM_CONFIG --bindir` - LLVM_CXXFLAGS=`$LLVM_CONFIG --cxxflags` - LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags` + LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"` + LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient + LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"` LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir` LLVM_LIBDIR=`$LLVM_CONFIG --libdir` DEFINES="${DEFINES} -DHAVE_LLVM=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/0x0\10\2/g'`" @@ -1718,14 +1741,6 @@ AC_ARG_WITH([vdpau-libdir], [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau']) AC_SUBST([VDPAU_LIB_INSTALL_DIR]) -dnl Directory for VA libs -AC_ARG_WITH([va-libdir], - [AS_HELP_STRING([--with-va-libdir=DIR], - [directory for the VA libraries @<:@default=${libdir}/va@:>@])], - [VA_LIB_INSTALL_DIR="$withval"], - [VA_LIB_INSTALL_DIR='${libdir}/va']) -AC_SUBST([VA_LIB_INSTALL_DIR]) - dnl Directory for OpenCL libs AC_ARG_WITH([opencl-libdir], [AS_HELP_STRING([--with-opencl-libdir=DIR], @@ -1740,7 +1755,7 @@ dnl gallium_check_st() { if test "x$HAVE_ST_DRI" = xyes || test "x$HAVE_ST_XORG" = xyes || test "x$HAVE_ST_XA" = xyes || test "x$HAVE_ST_XVMC" = xyes || - test "x$HAVE_ST_VDPAU" = xyes || test "x$HAVE_ST_VA" = xyes; then + test "x$HAVE_ST_VDPAU" = xyes; then if test "x$have_libdrm" != xyes; then AC_MSG_ERROR([DRI or Xorg DDX requires libdrm >= $LIBDRM_REQUIRED]) fi @@ -1761,9 +1776,6 @@ gallium_check_st() { if test "x$HAVE_ST_VDPAU" = xyes && test "x$6" != x; then GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $6" fi - if test "x$HAVE_ST_VA" = xyes && test "x$7" != x; then - GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7" - fi } gallium_require_llvm() { @@ -1785,6 +1797,29 @@ gallium_require_drm_loader() { fi } +radeon_llvm_check() { + LLVM_REQUIRED_VERSION_MAJOR="3" + LLVM_REQUIRED_VERSION_MINOR="2" + LLVM_AVAILABLE_VERSION_MAJOR=`echo $LLVM_VERSION | cut -d. -f1` + LLVM_AVAILABLE_VERSION_MINOR=`echo $LLVM_VERSION | cut -d. -f2` + if test "$LLVM_AVAILABLE_VERSION_MAJOR" -lt "$LLVM_REQUIRED_VERSION_MAJOR" -o [ "$LLVM_AVAILABLE_VERSION_MAJOR" -eq "$LLVM_REQUIRED_VERSION_MAJOR" -a "$LLVM_AVAILABLE_VERSION_MINOR" -lt "$LLVM_REQUIRED_VERSION_MINOR" ] ; then + AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer with AMDGPU target enabled is required. + To use the r600/radeonsi LLVM backend, you need to fetch the LLVM source from: + git://people.freedesktop.org/~tstellar/llvm master + and build with --enable-experimental-targets=AMDGPU]) + fi + if test true && $LLVM_CONFIG --targets-built | grep -qv '\' ; then + AC_MSG_ERROR([LLVM AMDGPU Target not enabled. + To use the r600/radeonsi LLVM backend, you need to fetch the LLVM source from: + git://people.freedesktop.org/~tstellar/llvm master + and build with --enable-experimental-targets=AMDGPU]) + fi + AC_MSG_WARN([Please ensure you use the latest llvm tree from git://people.freedesktop.org/~tstellar/llvm master before submitting a bug]) + if test "x$LLVM_VERSION" = "x3.2"; then + LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --libs amdgpu`" + fi +} + dnl Gallium drivers dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block if test "x$with_gallium_drivers" != x; then @@ -1808,16 +1843,14 @@ 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" "va-r300" + gallium_check_st "radeon/drm" "dri-r300" "xorg-r300" "" "xvmc-r300" "vdpau-r300" ;; xr600) PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) gallium_require_drm_loader GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r600" if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then - if test "x$LLVM_VERSION" != "x3.1"; then - AC_MSG_ERROR([LLVM 3.1 is required for the r600 llvm compiler.]) - fi + radeon_llvm_check NEED_RADEON_GALLIUM=yes; fi if test "x$enable_r600_llvm" = xyes; then @@ -1826,15 +1859,13 @@ if test "x$with_gallium_drivers" != x; then 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" "va-r600" + gallium_check_st "radeon/drm" "dri-r600" "xorg-r600" "" "xvmc-r600" "vdpau-r600" ;; xradeonsi) PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED]) gallium_require_drm_loader GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi" - if test "x$LLVM_VERSION" != "x3.1"; then - AC_MSG_ERROR([LLVM 3.1 is required to build the radeonsi driver.]) - fi + radeon_llvm_check NEED_RADEON_GALLIUM=yes; gallium_check_st "radeon/drm" "dri-radeonsi" "xorg-radeonsi" "" "" "vdpau-radeonsi" "" ;; @@ -1859,12 +1890,8 @@ if test "x$with_gallium_drivers" != x; then if test "x$HAVE_ST_XVMC" = xyes; then GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS xvmc-softpipe" fi - if test "x$HAVE_ST_VA" = xyes; then - GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS va-softpipe" - fi if test "x$HAVE_ST_VDPAU" = xyes || - test "x$HAVE_ST_XVMC" = xyes || - test "x$HAVE_ST_VA" = xyes; then + test "x$HAVE_ST_XVMC" = xyes; then if test "x$HAVE_WINSYS_XLIB" != xyes; then GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib" fi @@ -1950,6 +1977,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS" dnl Substitute the config AC_CONFIG_FILES([configs/current Makefile + src/Makefile src/egl/Makefile src/egl/drivers/Makefile src/egl/drivers/dri2/Makefile @@ -1970,12 +1998,12 @@ AC_CONFIG_FILES([configs/current src/gbm/Makefile 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 - src/Makefile src/mapi/es1api/Makefile src/mapi/es1api/glesv1_cm.pc src/mapi/es2api/Makefile @@ -2004,6 +2032,8 @@ AC_CONFIG_FILES([configs/current src/mesa/drivers/x11/Makefile src/mesa/libdricore/Makefile src/mesa/main/tests/Makefile + src/mesa/main/tests/hash_table/Makefile + src/mesa/program/Makefile src/mesa/x86-64/Makefile src/mesa/x86/Makefile]) @@ -2123,6 +2153,12 @@ echo " CFLAGS: $cflags" echo " CXXFLAGS: $cxxflags" echo " Macros: $defines" echo "" +if test "x$MESA_LLVM" = x1; then + echo " LLVM_CFLAGS: $LLVM_CFLAGS" + echo " LLVM_CXXFLAGS: $LLVM_CXXFLAGS" + echo " LLVM_CPPFLAGS: $LLVM_CPPFLAGS" + echo "" +fi echo " PYTHON2: $PYTHON2" echo ""