From 4d8267ef209f29cbfe0075500083a2721a9aa885 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Wed, 12 Mar 2014 18:13:02 +0000 Subject: [PATCH] Partially revert "automake: allow only shared builds" Evidently at least static OSMesa is still used as shared one causes substantial increase in the load time for some programs that use it (from seconds up-to ~30min). Rather than forcing everyone to use shared mesa, revert commit a6efbac9fb502c4f0166e7a0680b6828e1f6926c and default to shared build when both shared and static are disabled. v2: Whitespace cleanup, drop silly comment. Reported-by: Burlen Loring Reviewed-by: Matt Turner --- configure.ac | 29 ++++++++++++++++++++++------- install-gallium-links.mk | 2 ++ install-lib-links.mk | 2 ++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index ecf66a3ecd6..cad4b05242a 100644 --- a/configure.ac +++ b/configure.ac @@ -284,15 +284,18 @@ 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 requested. case "x$enable_static$enable_shared" in -xnoyes ) +xyesyes) + AC_MSG_WARN([Cannot build static and shared libraries, disabling shared]) + enable_shared=no ;; -* ) - AC_MSG_WARN([Messa build supports only shared libraries, enabling shared]) +xnono) + AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared]) enable_shared=yes - enable_static=no ;; esac +AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes) + dnl dnl other compiler options dnl @@ -782,6 +785,10 @@ PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED], have_libudev=yes, have_libudev=no) if test "x$enable_dri" = xyes; then + if test "$enable_static" = yes; then + AC_MSG_ERROR([Cannot use static libraries for DRI drivers]) + fi + # not a hard requirement as swrast does not depend on it if test "x$have_libdrm" = xyes; then DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED" @@ -1110,7 +1117,12 @@ x16|x32) esac if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then - OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" + # only link libraries with osmesa if shared + if test "$enable_static" = no; then + OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" + else + OSMESA_LIB_DEPS="" + fi OSMESA_MESA_DEPS="" OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS" fi @@ -1159,8 +1171,11 @@ if test "x$enable_egl" = xyes; then AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"]) - if test "x$enable_dri" = xyes; then - HAVE_EGL_DRIVER_DRI2=1 + if test "$enable_static" != yes; then + if test "x$enable_dri" = xyes; then + HAVE_EGL_DRIVER_DRI2=1 + fi + fi fi AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes) diff --git a/install-gallium-links.mk b/install-gallium-links.mk index 5ee923b25df..6ed8a24a707 100644 --- a/install-gallium-links.mk +++ b/install-gallium-links.mk @@ -1,6 +1,7 @@ # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the driver into /lib of the build tree. +if BUILD_SHARED if HAVE_COMPAT_SYMLINKS all-local : .libs/install-gallium-links @@ -23,3 +24,4 @@ all-local : .libs/install-gallium-links fi; \ done && touch $@ endif +endif diff --git a/install-lib-links.mk b/install-lib-links.mk index 0e137198722..09fb86a0b45 100644 --- a/install-lib-links.mk +++ b/install-lib-links.mk @@ -1,6 +1,7 @@ # Provide compatibility with scripts for the old Mesa build system for # a while by putting a link to the driver into /lib of the build tree. +if BUILD_SHARED if HAVE_COMPAT_SYMLINKS all-local : .libs/install-mesa-links @@ -14,3 +15,4 @@ all-local : .libs/install-mesa-links fi; \ done && touch $@ endif +endif -- 2.30.2