aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-09-15 17:15:43 +0000
committerkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2009-09-15 17:15:43 +0000
commit32f330f7a464dc87be4e79b21b1ea3f35e9f143b (patch)
treec2f63d4c181dd33ee51b406fd75d1288a68b6a90 /configure.ac
parentf4c6e4b37e131b771a8a8eac0534ce8ade504dd7 (diff)
downloadprotobuf-32f330f7a464dc87be4e79b21b1ea3f35e9f143b.tar.gz
protobuf-32f330f7a464dc87be4e79b21b1ea3f35e9f143b.tar.bz2
protobuf-32f330f7a464dc87be4e79b21b1ea3f35e9f143b.zip
Detect whether zlib is new enough. Based on patch from Oliver Jowett.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac38
1 files changed, 31 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 754a190f..eb81a7eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,14 +82,38 @@ AC_FUNC_MEMCMP
AC_FUNC_STRTOD
AC_CHECK_FUNCS([ftruncate memset mkdir strchr strerror strtol])
+# Check for zlib.
HAVE_ZLIB=0
-AS_IF([test "$with_zlib" != no],
- [AC_SEARCH_LIBS([zlibVersion], [z],
- [AC_DEFINE([HAVE_ZLIB], [1], [Enable classes using zlib compression.])
- HAVE_ZLIB=1],
- [if test "$with_zlib" != check; then
- AC_MSG_FAILURE([--with-zlib was given, but test for zlib failed])
- fi])])
+AS_IF([test "$with_zlib" != no], [
+ AC_MSG_CHECKING([zlib version])
+
+ # First check the zlib header version.
+ AC_COMPILE_IFELSE(
+ AC_LANG_PROGRAM([[
+ #include <zlib.h>
+ #if !defined(ZLIB_VERNUM) || (ZLIB_VERNUM < 0x1204)
+ # error zlib version too old
+ #endif
+ ]], []), [
+ AC_MSG_RESULT([ok (1.2.0.4 or later)])
+
+ # Also need to add -lz to the linker flags and make sure this succeeds.
+ AC_SEARCH_LIBS([zlibVersion], [z], [
+ AC_DEFINE([HAVE_ZLIB], [1], [Enable classes using zlib compression.])
+ HAVE_ZLIB=1
+ ], [
+ AS_IF([test "$with_zlib" != check], [
+ AC_MSG_FAILURE([--with-zlib was given, but no working zlib library was found])
+ ])
+ ])
+ ], [
+ AS_IF([test "$with_zlib" = check], [
+ AC_MSG_RESULT([headers missing or too old (requires 1.2.0.4)])
+ ], [
+ AC_MSG_FAILURE([--with-zlib was given, but zlib headers were not present or were too old (requires 1.2.0.4)])
+ ])
+ ])
+])
AM_CONDITIONAL([HAVE_ZLIB], [test $HAVE_ZLIB = 1])
AS_IF([test "$with_protoc" != "no"], [