diff options
Diffstat (limited to 'build/autoconf/zlib.m4')
-rw-r--r-- | build/autoconf/zlib.m4 | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/build/autoconf/zlib.m4 b/build/autoconf/zlib.m4 new file mode 100644 index 000000000..49a2ccc8b --- /dev/null +++ b/build/autoconf/zlib.m4 @@ -0,0 +1,54 @@ +dnl This Source Code Form is subject to the terms of the Mozilla Public +dnl License, v. 2.0. If a copy of the MPL was not distributed with this +dnl file, You can obtain one at http://mozilla.org/MPL/2.0/. + +dnl Usage: MOZ_ZLIB_CHECK([version]) + +AC_DEFUN([MOZ_ZLIB_CHECK], +[ + +MOZZLIB=$1 + +MOZ_ARG_WITH_STRING(system-zlib, +[ --with-system-zlib[=PFX] + Use system libz [installed at prefix PFX]], + ZLIB_DIR=$withval) + +if test -z "$MOZ_ZLIB_LIBS$MOZ_ZLIB_CFLAGS$SKIP_LIBRARY_CHECKS"; then + _SAVE_CFLAGS=$CFLAGS + _SAVE_LDFLAGS=$LDFLAGS + _SAVE_LIBS=$LIBS + + if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then + MOZ_ZLIB_CFLAGS="-I${ZLIB_DIR}/include" + MOZ_ZLIB_LIBS="-L${ZLIB_DIR}/lib" + CFLAGS="$MOZ_ZLIB_CFLAGS $CFLAGS" + LDFLAGS="$MOZ_ZLIB_LIBS $LDFLAGS" + fi + if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then + MOZ_SYSTEM_ZLIB= + else + AC_CHECK_LIB(z, gzread, [MOZ_SYSTEM_ZLIB=1 MOZ_ZLIB_LIBS="$MOZ_ZLIB_LIBS -lz"], + [MOZ_SYSTEM_ZLIB=]) + if test "$MOZ_SYSTEM_ZLIB" = 1; then + MOZZLIBNUM=`echo $MOZZLIB | awk -F. changequote(<<, >>)'{printf "0x%x\n", (((<<$>>1 * 16 + <<$>>2) * 16) + <<$>>3) * 16 + <<$>>4}'changequote([, ])` + AC_TRY_COMPILE([ #include <stdio.h> + #include <string.h> + #include <zlib.h> ], + [ #if ZLIB_VERNUM < $MOZZLIBNUM + #error "Insufficient zlib version ($MOZZLIBNUM required)." + #endif ], + MOZ_SYSTEM_ZLIB=1, + AC_MSG_ERROR([Insufficient zlib version for --with-system-zlib ($MOZZLIB required)])) + fi + fi + CFLAGS=$_SAVE_CFLAGS + LDFLAGS=$_SAVE_LDFLAGS + LIBS=$_SAVE_LIBS +fi + +AC_SUBST_LIST(MOZ_ZLIB_CFLAGS) +AC_SUBST_LIST(MOZ_ZLIB_LIBS) +AC_SUBST(MOZ_SYSTEM_ZLIB) + +]) |