summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2014-03-12 18:13:02 +0000
committerEmil Velikov <emil.l.velikov@gmail.com>2014-03-31 12:18:17 +0100
commit4d8267ef209f29cbfe0075500083a2721a9aa885 (patch)
tree4744b3824255873ee0afcc01df952d5f65400118
parent23740ed031f4a5fb308e03a4d239ab3db31fffd9 (diff)
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 <burlen.loring@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--configure.ac29
-rw-r--r--install-gallium-links.mk2
-rw-r--r--install-lib-links.mk2
3 files changed, 26 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index ecf66a3ecd..cad4b05242 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 5ee923b25d..6ed8a24a70 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 0e13719872..09fb86a0b4 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