aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-01-16 14:37:34 +0100
committerBjörn Gustavsson <[email protected]>2014-01-17 16:42:50 +0100
commit9f57d8c4f86323cf7481c9a7e512486087bb5542 (patch)
tree07c02b2dc2bc012d1c4fa5b298712a8bc8576e94 /erts
parent3f53b27f9c4af8f91c3a66e8ebe81efe5ea02b62 (diff)
downloadotp-9f57d8c4f86323cf7481c9a7e512486087bb5542.tar.gz
otp-9f57d8c4f86323cf7481c9a7e512486087bb5542.tar.bz2
otp-9f57d8c4f86323cf7481c9a7e512486087bb5542.zip
configure: Prefer the system's zlib over own our zlib source
WxWidgets (used by the wx application) also uses zlib. To ensure that the run-time system and WxWidgets use the same version of zlib, use the system's zlib if present. Also, the system's zlib may be specially optimized and thus faster than our own generic source code. We only use zlib versions that are "good enough". For now, that means 1.2.5 or higher. Remove the option --enable-shared-zlib and add the option --enable-builtin-zlib to force the use of the built-in zlib.
Diffstat (limited to 'erts')
-rw-r--r--erts/configure.in46
1 files changed, 33 insertions, 13 deletions
diff --git a/erts/configure.in b/erts/configure.in
index 3b4c46d4a5..f03296a89f 100644
--- a/erts/configure.in
+++ b/erts/configure.in
@@ -1372,24 +1372,44 @@ dnl -------------
dnl zlib
dnl -------------
-AC_ARG_ENABLE(shared-zlib,
-AS_HELP_STRING([--enable-shared-zlib], [enable using shared zlib library]),
-[ case "$enableval" in
- no) enable_shared_zlib=no ;;
- *) enable_shared_zlib=yes ;;
- esac ], enable_shared_zlib=no)
+AC_ARG_ENABLE(builtin-zlib,
+ AS_HELP_STRING([--enable-builtin-zlib],
+ [force use of our own built-in zlib]),
+ [ case "$enableval" in
+ no) enable_builtin_zlib=no ;;
+ *) enable_builtin_zlib=yes ;;
+ esac ], enable_builtin_zlib=no)
Z_LIB=
-if test "x$enable_shared_zlib" = "xyes" ; then
- AC_CHECK_LIB(z, adler32_combine,
- [Z_LIB="-lz"
- AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if you have the `z' library (-lz).])],
- [AC_MSG_ERROR([cannot find any shared zlib])])
+if test "x$enable_builtin_zlib" = "xyes"; then
+ AC_MSG_NOTICE([Using our own built-in zlib source])
else
- AC_MSG_NOTICE([Using own zlib source])
+AC_MSG_CHECKING(for zlib 1.2.5 or higher)
+zlib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include "zlib.h"
+]],[[
+#if ZLIB_VERNUM >= 0x1250
+ Bytef s[1];
+ s[0] = 0;
+ (void) adler32((uLong)0, s, 1);
+#else
+#error "No zlib 1.2.5 or higher found"
+error
+#endif
+]])],
+[
+ Z_LIB="-lz"
+ AC_DEFINE(HAVE_LIBZ, 1, [Define to 1 if you have the `z' library (-lz).])
+ AC_MSG_RESULT(yes)
+],[
+ AC_MSG_RESULT(no)
+])
+LIBS=$zlib_save_LIBS
fi
-
AC_SUBST(Z_LIB)
dnl