X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=configure.ac;h=f484dc4d6a20cacdbd270afad8031c68e605d26e;hb=c6ed42a89ede459e72b18cd8890cc3aba39905f5;hp=e9d4e7937756f0bfe01742a365d6658be768be72;hpb=a6b8b709cdc280d3dc77cd9f78654726132d22bb;p=mesa.git diff --git a/configure.ac b/configure.ac index e9d4e793775..f484dc4d6a2 100644 --- a/configure.ac +++ b/configure.ac @@ -6,10 +6,11 @@ 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], [8.1.0], +AC_INIT([Mesa], [9.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa]) AC_CONFIG_AUX_DIR([bin]) -AC_CANONICAL_HOST +AC_CONFIG_MACRO_DIR([m4]) +AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([foreign]) dnl http://people.gnome.org/~walters/docs/build-api.txt @@ -23,13 +24,14 @@ 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.38 -LIBDRM_INTEL_REQUIRED=2.4.37 +LIBDRM_RADEON_REQUIRED=2.4.40 +LIBDRM_INTEL_REQUIRED=2.4.38 LIBDRM_NVVIEUX_REQUIRED=2.4.33 LIBDRM_NOUVEAU_REQUIRED=2.4.33 DRI2PROTO_REQUIRED=2.6 @@ -40,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]) @@ -49,13 +53,16 @@ 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.y"; then +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 @@ -150,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 @@ -194,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 @@ -217,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 @@ -283,6 +318,8 @@ xnono ) ;; esac +AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) + dnl dnl mklib options dnl @@ -302,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" @@ -338,18 +383,12 @@ AC_ARG_WITH([gl-lib-name], [specify GL library name @<:@default=GL@:>@])], [GL_LIB=$withval], [GL_LIB=GL]) -AC_ARG_WITH([glu-lib-name], - [AS_HELP_STRING([--with-glu-lib-name@<:@=NAME@:>@], - [specify GLU library name @<:@default=GLU@:>@])], - [GLU_LIB=$withval], - [GLU_LIB=GLU]) AC_ARG_WITH([osmesa-lib-name], [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@], [specify OSMesa library name @<:@default=OSMesa@:>@])], [OSMESA_LIB=$withval], [OSMESA_LIB=OSMesa]) AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL]) -AS_IF([test "x$GLU_LIB" = xyes], [GLU_LIB=GLU]) AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa]) dnl @@ -364,11 +403,9 @@ AC_ARG_ENABLE([mangling], if test "x${enable_mangling}" = "xyes" ; then DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE" GL_LIB="Mangled${GL_LIB}" - GLU_LIB="Mangled${GLU_LIB}" OSMESA_LIB="Mangled${OSMESA_LIB}" fi AC_SUBST([GL_LIB]) -AC_SUBST([GLU_LIB]) AC_SUBST([OSMESA_LIB]) dnl @@ -387,7 +424,6 @@ if test "x$enable_texture_float" = xyes; then fi GL_LIB_NAME='lib$(GL_LIB).'${LIB_EXTENSION} -GLU_LIB_NAME='lib$(GLU_LIB).'${LIB_EXTENSION} OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION} EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION} GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION} @@ -396,7 +432,6 @@ VG_LIB_NAME='lib$(VG_LIB).'${LIB_EXTENSION} GLAPI_LIB_NAME='lib$(GLAPI_LIB).'${LIB_EXTENSION} GL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' -GLU_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLU_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' EGL_LIB_GLOB=${LIB_PREFIX_GLOB}'$(EGL_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' GLESv1_CM_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLESv1_CM_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' @@ -405,7 +440,6 @@ VG_LIB_GLOB=${LIB_PREFIX_GLOB}'$(VG_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENS GLAPI_LIB_GLOB=${LIB_PREFIX_GLOB}'$(GLAPI_LIB)'${LIB_VERSION_SEPARATOR}'*'${LIB_EXTENSION}'*' AC_SUBST([GL_LIB_NAME]) -AC_SUBST([GLU_LIB_NAME]) AC_SUBST([OSMESA_LIB_NAME]) AC_SUBST([EGL_LIB_NAME]) AC_SUBST([GLESv1_CM_LIB_NAME]) @@ -414,7 +448,6 @@ AC_SUBST([VG_LIB_NAME]) AC_SUBST([GLAPI_LIB_NAME]) AC_SUBST([GL_LIB_GLOB]) -AC_SUBST([GLU_LIB_GLOB]) AC_SUBST([EGL_LIB_GLOB]) AC_SUBST([GLESv1_CM_LIB_GLOB]) AC_SUBST([GLESv2_LIB_GLOB]) @@ -497,13 +530,21 @@ MESA_PIC_FLAGS dnl Check to see if dlopen is in default libraries (like Solaris, which dnl has it in libc), or if libdl is needed to get it. -AC_CHECK_FUNC([dlopen], [], - [AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"])]) +AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"], + [AC_CHECK_LIB([dl], [dlopen], + [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])]) AC_SUBST([DLOPEN_LIBS]) dnl See if posix_memalign is available AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"]) +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], [AS_HELP_STRING([--enable-selinux], @@ -518,6 +559,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], @@ -572,11 +614,13 @@ AC_ARG_ENABLE([xa], [enable build of the XA X Acceleration API @<:@default=no@:>@])], [enable_xa="$enableval"], [enable_xa=no]) -AC_ARG_ENABLE([d3d1x], - [AS_HELP_STRING([--enable-d3d1x], - [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])], - [enable_d3d1x="$enableval"], - [enable_d3d1x=no]) +dnl Broken, unmaintained. Don't want to see bug reports about it without patches. +enable_d3d1x=no +dnl AC_ARG_ENABLE([d3d1x], +dnl [AS_HELP_STRING([--enable-d3d1x], +dnl [enable support for Direct3D 10 & 11 low-level API @<:@default=no@:>@])], +dnl [enable_d3d1x="$enableval"], +dnl [enable_d3d1x=no]) AC_ARG_ENABLE([gbm], [AS_HELP_STRING([--enable-gbm], [enable gbm library @<:@default=auto@:>@])], @@ -593,11 +637,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@:>@])], @@ -641,7 +680,7 @@ 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,svga,swrast" + "i915,nouveau,r300,r600,radeonsi,svga,swrast" @<:@default=r300,r600,swrast@:>@])], [with_gallium_drivers="$withval"], [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"]) @@ -662,7 +701,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 @@ -698,7 +736,9 @@ if test "x$enable_glx" = xyes -a \ enable_glx=no fi -AM_CONDITIONAL(HAVE_DRI, test x"$enable_dri" = xyes) +AM_CONDITIONAL(HAVE_DRI, test "x$enable_dri" = xyes) +AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \ + "x$enable_osmesa" = xyes) AC_ARG_ENABLE([shared-glapi], [AS_HELP_STRING([--enable-shared-glapi], @@ -728,7 +768,6 @@ dnl dnl Driver specific build directories dnl SRC_DIRS="gtest" -GLU_DIRS="sgi" GALLIUM_DIRS="auxiliary drivers state_trackers" GALLIUM_TARGET_DIRS="" GALLIUM_WINSYS_DIRS="sw" @@ -784,7 +823,6 @@ if test "x$enable_osmesa" = xyes; then fi AC_SUBST([SRC_DIRS]) -AC_SUBST([GLU_DIRS]) AC_SUBST([DRIVER_DIRS]) AC_SUBST([GALLIUM_DIRS]) AC_SUBST([GALLIUM_TARGET_DIRS]) @@ -810,7 +848,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. @@ -823,10 +861,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*) @@ -843,7 +877,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"]) @@ -858,23 +892,22 @@ 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 PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED]) - GL_PC_REQ_PRIV="glproto >= $GLPROTO_REQUIRED" if test x"$driglx_direct" = xyes; then if test "x$have_libdrm" != xyes; then AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED]) fi PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED]) - GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED dri2proto >= $DRI2PROTO_REQUIRED" + GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED" 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) @@ -887,9 +920,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 @@ -897,11 +930,12 @@ 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]) AC_SUBST([GL_PC_REQ_PRIV]) AC_SUBST([GL_PC_LIB_PRIV]) @@ -912,14 +946,7 @@ 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" -GALLIUM_DRI_LIB_DEPS="\$(TOP)/\$(LIB_DIR)/libdricore${VERSION}.so" - -AM_CONDITIONAL(HAVE_DRICORE, test "x$enable_dri" = xyes) AC_SUBST([HAVE_XF86VIDMODE]) @@ -949,8 +976,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 @@ -1034,7 +1061,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 @@ -1093,9 +1120,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 $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]) @@ -1190,21 +1218,18 @@ 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 -OSMESA_VERSION=`echo "$VERSION" | $SED 's/\./:/g'` - AC_SUBST([OSMESA_LIB_DEPS]) AC_SUBST([OSMESA_MESA_DEPS]) AC_SUBST([OSMESA_PC_REQ]) AC_SUBST([OSMESA_PC_LIB_PRIV]) -AC_SUBST([OSMESA_VERSION]) dnl dnl gbm configuration @@ -1242,7 +1267,7 @@ 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"]) @@ -1365,10 +1390,12 @@ 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 $PTHREAD_LIBS $DLOPEN_LIBS" + AC_SUBST([VG_PC_LIB_PRIV]) fi dnl @@ -1404,12 +1431,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 @@ -1424,13 +1445,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 @@ -1463,60 +1477,6 @@ if test "x$enable_opencl" = xyes; then enable_gallium_loader=yes fi -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 - if test "x$enable_glx" = xno -a "x$enable_osmesa" = xno; then - AC_MSG_NOTICE([Disabling GLU since there is no OpenGL driver]) - enable_glu=no - fi -fi - -if test "x$enable_glu" = xyes; then - SRC_DIRS="$SRC_DIRS glu" - - if test "x$enable_glx" = xno; then - # Link libGLU to libOSMesa instead of libGL - GLU_LIB_DEPS="" - GLU_PC_REQ="osmesa" - if test "$enable_static" = no; then - GLU_MESA_DEPS='-l$(OSMESA_LIB)' - else - GLU_MESA_DEPS="" - fi - else - # If static, empty GLU_LIB_DEPS and add libs for programs to link - GLU_PC_REQ="gl" - GLU_PC_LIB_PRIV="-lm" - if test "$enable_static" = no; then - GLU_LIB_DEPS="-lm" - GLU_MESA_DEPS='-l$(GL_LIB)' - else - GLU_LIB_DEPS="" - GLU_MESA_DEPS="" - fi - fi -fi -if test "$enable_static" = no; then - GLU_LIB_DEPS="$GLU_LIB_DEPS $OS_CPLUSPLUS_LIBS" -fi -GLU_PC_LIB_PRIV="$GLU_PC_LIB_PRIV $OS_CPLUSPLUS_LIBS" -AC_SUBST([GLU_LIB_DEPS]) -AC_SUBST([GLU_MESA_DEPS]) -AC_SUBST([GLU_PC_REQ]) -AC_SUBST([GLU_PC_REQ_PRIV]) -AC_SUBST([GLU_PC_LIB_PRIV]) -AC_SUBST([GLU_PC_CFLAGS]) - -AC_SUBST([PROGRAM_DIRS]) - dnl dnl Gallium configuration dnl @@ -1574,7 +1534,7 @@ for plat in $egl_platforms; do ;; wayland) - PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server],, \ + PKG_CHECK_MODULES([WAYLAND], [wayland-client >= 0.99.0 wayland-server >= 0.99.0],, \ [AC_MSG_ERROR([cannot find libwayland-client])]) GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/wayland" @@ -1584,12 +1544,7 @@ 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]) ;; drm) @@ -1712,6 +1667,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 @@ -1719,8 +1675,8 @@ 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_CXXFLAGS=`$LLVM_CONFIG --cxxflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'` + LLVM_CPPFLAGS=`$LLVM_CONFIG --cppflags|sed -e 's/-DNDEBUG\>//g' -e 's/-pedantic//g' -e 's/-Wcovered-switch-default//g'` 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'`" @@ -1766,14 +1722,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], @@ -1788,7 +1736,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 @@ -1809,9 +1757,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() { @@ -1833,6 +1778,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 @@ -1856,16 +1824,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 @@ -1874,15 +1840,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" "" ;; @@ -1907,12 +1871,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 @@ -1979,7 +1939,6 @@ AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) AC_SUBST([GALLIUM_MAKE_DIRS]) AM_CONDITIONAL(HAVE_X11_DRIVER, echo "$DRIVER_DIRS" | grep 'x11' >/dev/null 2>&1) -AM_CONDITIONAL(HAVE_DRI_DRIVER, echo "$DRIVER_DIRS" | grep 'dri' >/dev/null 2>&1) 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) @@ -2000,59 +1959,64 @@ dnl Substitute the config AC_CONFIG_FILES([configs/current Makefile src/Makefile - src/gallium/Makefile - src/gallium/auxiliary/pipe-loader/Makefile - src/gallium/state_trackers/clover/Makefile - src/gallium/drivers/Makefile - src/gallium/drivers/r300/Makefile - src/gallium/drivers/r600/Makefile - src/gallium/targets/opencl/Makefile - src/gbm/Makefile - src/gbm/main/gbm.pc + src/egl/Makefile src/egl/drivers/Makefile src/egl/drivers/dri2/Makefile src/egl/drivers/glx/Makefile - src/egl/Makefile src/egl/main/Makefile src/egl/main/egl.pc src/egl/wayland/Makefile + src/egl/wayland/wayland-drm/Makefile src/egl/wayland/wayland-egl/Makefile src/egl/wayland/wayland-egl/wayland-egl.pc - src/egl/wayland/wayland-drm/Makefile + src/gallium/Makefile + src/gallium/auxiliary/pipe-loader/Makefile + src/gallium/drivers/Makefile + src/gallium/drivers/r300/Makefile + src/gallium/drivers/r600/Makefile + src/gallium/state_trackers/clover/Makefile + src/gallium/targets/opencl/Makefile + 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/mapi/es1api/Makefile src/mapi/es1api/glesv1_cm.pc src/mapi/es2api/Makefile src/mapi/es2api/glesv2.pc src/mapi/glapi/Makefile src/mapi/glapi/gen/Makefile - src/mapi/shared-glapi/Makefile src/mapi/glapi/tests/Makefile + src/mapi/shared-glapi/Makefile src/mapi/shared-glapi/tests/Makefile - src/gtest/Makefile + src/mapi/vgapi/Makefile + src/mapi/vgapi/vg.pc src/mesa/Makefile - src/mesa/libdricore/Makefile - src/mesa/main/tests/Makefile - src/mesa/x86/Makefile - src/mesa/x86-64/Makefile + src/mesa/gl.pc src/mesa/drivers/Makefile src/mesa/drivers/dri/dri.pc - src/mesa/drivers/dri/Makefile src/mesa/drivers/dri/common/Makefile src/mesa/drivers/dri/i915/Makefile src/mesa/drivers/dri/i965/Makefile + src/mesa/drivers/dri/Makefile src/mesa/drivers/dri/nouveau/Makefile src/mesa/drivers/dri/r200/Makefile src/mesa/drivers/dri/radeon/Makefile src/mesa/drivers/dri/swrast/Makefile src/mesa/drivers/osmesa/Makefile + src/mesa/drivers/osmesa/osmesa.pc src/mesa/drivers/x11/Makefile - src/mesa/gl.pc - src/mesa/drivers/osmesa/osmesa.pc]) + 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]) dnl Sort the dirs alphabetically GALLIUM_TARGET_DIRS=`echo $GALLIUM_TARGET_DIRS|tr " " "\n"|sort -u|tr "\n" " "` @@ -2108,9 +2072,6 @@ xyesno) ;; esac -echo "" -echo " GLU: $enable_glu" - dnl EGL echo "" echo " EGL: $enable_egl"