summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2015-01-14 15:53:00 -0800
committerCarl Worth <cworth@cworth.org>2015-01-15 11:39:51 -0800
commita18eaf8b8d90a023ad6e9b403d53a8dd94b58675 (patch)
tree185aad6bf18fc278a6e928a5f823356883d55c70
parent4036c6298e9188d05d04daf2d066689a4f0ba5ca (diff)
configure: Add machinery for --enable-shader-cache (and --disable-shader-cache)sha1
We don't actually have the code for the shader cache just yet, but this configure machinery puts everything in place so that the shader cache can be optionally compiled in. Specifically, if the user passes no option (neither --disable-shader-cache, nor --enable-shader-cache), then this feature will be automatically detected based on the presence of a usable SHA-1 library. If no suitable library can be found, then the shader cache will be automatically disabled, (and reported in the final output from configure). The user can force the shader-cache feature to not be compiled, (even if a SHA-1 library is detected), by passing --disable-shader-cache. This will prevent the compiled Mesa libraries from depending on any library for SHA-1 implementation. Finally, the user can also force the shader cache on with --enable-shader-cache. This will cause configure to trigger a fatal error if no sutiable SHA-1 implementation can be found for the shader-cache feature. Bug fix by José Fonseca <jfonseca@vmware.com>: Fix to put conditional assignment in Makefile.am, not Makefile.sources to avoid breaking scons build. Note: As recommended by José, with this commit the scons build will not compile any of the SHA-1-using code. This is waiting for someone to write SConstruct detection of the available SHA-1 libraries, (and set the appropriate HAVE_SHA1_* variables).
-rw-r--r--configure.ac23
-rw-r--r--src/util/Makefile.am4
-rw-r--r--src/util/Makefile.sources2
-rw-r--r--src/util/SConscript5
4 files changed, 30 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index 4e7b630b33..719f6951c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1043,11 +1043,26 @@ if test "x$with_sha1" = xlibcrypto; then
fi
fi
AC_MSG_CHECKING([for SHA1 implementation])
-AM_CONDITIONAL([HAVE_SHA1], [ test x$with_sha1 != x ])
AC_MSG_RESULT([$with_sha1])
AC_SUBST(SHA1_LIBS)
AC_SUBST(SHA1_CFLAGS)
+# Allow user to configure out the shader-cache feature
+AC_ARG_ENABLE([shader-cache],
+ AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]),
+ [enable_shader_cache="$enableval"],
+ [if test "x$with_sha1" != "x"; then
+ enable_shader_cache=yes
+ else
+ enable_shader_cache=no
+ fi])
+if test "x$with_sha1" = "x"; then
+ if test "x$enable_shader_cache" = "xyes"; then
+ AC_MSG_ERROR([Cannot enable shader cache (no SHA-1 implementation found)])
+ fi
+fi
+AM_CONDITIONAL([ENABLE_SHADER_CACHE], [ test x$enable_shader_cache = xyes ])
+
# Check for libdrm
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
[have_libdrm=yes], [have_libdrm=no])
@@ -2490,6 +2505,12 @@ else
echo " Gallium: no"
fi
+dnl Shader cache
+echo ""
+echo " Shader cache: $enable_shader_cache"
+if test "x$enable_shader_cache" = "xyes"; then
+ echo " With SHA1 from: $with_sha1"
+fi
dnl Libraries
echo ""
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 03b619efeb..7512138a89 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -38,8 +38,8 @@ libmesautil_la_SOURCES = \
$(MESA_UTIL_FILES) \
$(MESA_UTIL_GENERATED_FILES)
-if HAVE_SHA1
-libmesautil_la_SOURCES += $(MESA_UTIL_SHA1_FILES)
+if ENABLE_SHADER_CACHE
+libmesautil_la_SOURCES += $(MESA_UTIL_SHADER_CACHE_FILES)
endif
libmesautil_la_LIBADD = $(SHA1_LIBS)
diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources
index 0d0b8a54de..0c1cc2d277 100644
--- a/src/util/Makefile.sources
+++ b/src/util/Makefile.sources
@@ -1,4 +1,4 @@
-MESA_UTIL_SHA1_FILES := \
+MESA_UTIL_SHADER_CACHE_FILES := \
sha1.c \
sha1.h
diff --git a/src/util/SConscript b/src/util/SConscript
index 34b9a2deaa..28fedd80cd 100644
--- a/src/util/SConscript
+++ b/src/util/SConscript
@@ -29,6 +29,11 @@ mesautil_sources = (
source_lists['MESA_UTIL_GENERATED_FILES']
)
+# XXX We don't yet have scons support for detecting any of the various
+# HAVE_SHA1_* definitions, so for now simply disable the shader cache.
+if False:
+ mesautil_sources += source_lists['MESA_UTIL_SHADER_CACHE_FILES']
+
mesautil = env.ConvenienceLibrary(
target = 'mesautil',
source = mesautil_sources,