summaryrefslogtreecommitdiff
path: root/m4/acx_with_external_zlib.m4
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2005-10-03 13:43:40 +0000
committer <>2014-09-25 11:25:48 +0000
commit10de491ef0bc43827ab8631a4c02860134e620a9 (patch)
tree22e734337cc9aa5d9b1d7c71261d160b6a60634d /m4/acx_with_external_zlib.m4
downloadcvs-tarball-10de491ef0bc43827ab8631a4c02860134e620a9.tar.gz
Imported from /home/lorry/working-area/delta_cvs-tarball/cvs-1.12.13.tar.bz2.HEADcvs-1.12.13master
Diffstat (limited to 'm4/acx_with_external_zlib.m4')
-rw-r--r--m4/acx_with_external_zlib.m4180
1 files changed, 180 insertions, 0 deletions
diff --git a/m4/acx_with_external_zlib.m4 b/m4/acx_with_external_zlib.m4
new file mode 100644
index 0000000..11a5af3
--- /dev/null
+++ b/m4/acx_with_external_zlib.m4
@@ -0,0 +1,180 @@
+# Allow the builder to specify an external ZLIB rather than the version
+# distributed with CVS.
+
+# Copyright (c) 2003
+# Anthon Pang <apang@telux.net>,
+# Derek R. Price, Ximbiot <http://ximbiot.com>,
+# and the Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# ACX_WITH_EXTERNAL_ZLIB
+# -------------------
+# Determine which ZLIB to use.
+AC_DEFUN([ACX_WITH_EXTERNAL_ZLIB],[
+#
+# Use --with-zlib to build with a zlib other than the version distributed
+# with CVS.
+#
+# defaults to the included snapshot of zlib
+#
+AC_ARG_WITH([external-zlib],
+ AC_HELP_STRING([--with-external-zlib],
+ [Use the specified ZLIB library (defaults to
+ the version distributed with the CVS source)]),
+ [with_external_zlib=$withval],
+ [with_external_zlib=no])
+
+#
+# Try to locate a ZLIB installation if no location was specified, assuming
+# external ZLIB was enabled.
+#
+if test -n "$acx_zlib_cv_external_zlib"; then
+ # Granted, this is a slightly ugly way to print this info, but the
+ # AC_CHECK_HEADER used in the search for a ZLIB installation makes using
+ # AC_CACHE_CHECK worse
+ AC_MSG_CHECKING([for external ZLIB])
+else :; fi
+AC_CACHE_VAL([acx_zlib_cv_external_zlib], [
+ #
+ # --with but no location specified
+ # assume zlib.h locates our install.
+ #
+ acx_zlib_save_CPPFLAGS=$CPPFLAGS
+ for acx_zlib_cv_external_zlib in yes /usr/local no; do
+ if test x$acx_zlib_cv_external_zlib = xno; then
+ break
+ fi
+ if test x$acx_zlib_cv_external_zlib = xyes; then
+ AC_MSG_CHECKING([for external ZLIB])
+ AC_MSG_RESULT([])
+ else
+ CPPFLAGS="$acx_zlib_save_CPPFLAGS -I$acx_zlib_cv_external_zlib/include"
+ AC_MSG_CHECKING([for external ZLIB in $acx_zlib_cv_external_zlib])
+ AC_MSG_RESULT([])
+ fi
+ unset ac_cv_header_zlib_h
+ AC_CHECK_HEADERS([zlib.h])
+ if test "$ac_cv_header_zlib_h" = yes; then
+ break
+ fi
+ done
+ CPPFLAGS=$acx_zlib_save_CPPFLAGS
+AC_MSG_CHECKING([for external ZLIB])
+])dnl
+AC_MSG_RESULT([$acx_zlib_cv_external_zlib])
+
+
+#
+# Output a pretty message naming our selected ZLIB "external" or "package"
+# so that any warnings printed by the version check make more sense.
+#
+AC_MSG_CHECKING([selected ZLIB])
+if test "x$with_external_zlib" = xno; then
+ AC_MSG_RESULT([package])
+else
+ AC_MSG_RESULT([external])
+fi
+
+
+#
+# Verify that the ZLIB we aren't using isn't newer than the one we are.
+#
+if test "x$acx_zlib_cv_external_zlib" != xno; then
+ LOCAL_ZLIB_VERSION=`sed -n '/^#define ZLIB_VERSION ".*"$/{
+ s/^#define ZLIB_VERSION "\(.*\)"$/\1/;
+ p;}' <$srcdir/zlib/zlib.h 2>&AS_MESSAGE_LOG_FD`
+ ACX_EXTRACT_HEADER_DEFN([ZLIB_VERSION], [zlib.h])
+ ZLIB_VERSION=`echo "$ZLIB_VERSION" |sed 's/"//g'`
+ ASX_VERSION_COMPARE([$LOCAL_ZLIB_VERSION], [$ZLIB_VERSION],
+ [if test "x$with_external_zlib" = xno; then
+ AC_MSG_WARN(
+ [Found external ZLIB with a more recent version than the
+ package version ($ZLIB_VERSION > $LOCAL_ZLIB_VERSION). configure with the
+ --with-external-zlib option to select the more recent version.])
+ fi],
+ [],
+ [if test "x$with_external_zlib" != xno; then
+ AC_MSG_WARN(
+ [Package ZLIB is more recent than requested external version
+ ($LOCAL_ZLIB_VERSION > $ZLIB_VERSION). configure with the --without-external-zlib
+ option to select the more recent version.])
+ fi])
+fi
+
+
+# Now set with_external_zlib to our discovered value or the user specified
+# value, as appropriate.
+if test x$with_external_zlib = xyes; then
+ with_external_zlib=$acx_zlib_cv_external_zlib
+fi
+# $with_external_zlib could still be "no"
+
+
+#
+# Set up ZLIB includes for later use.
+#
+if test x$with_external_zlib != xyes \
+ && test x$with_external_zlib != no; then
+ if test -z "$CPPFLAGS"; then
+ CPPFLAGS="-I$with_external_zlib/include"
+ else
+ CPPFLAGS="$CPPFLAGS -I$with_external_zlib/include"
+ fi
+ if test -z "$LDFLAGS"; then
+ LDFLAGS="-L$with_external_zlib/lib"
+ else
+ LDFLAGS="$LDFLAGS -L$with_external_zlib/lib"
+ fi
+fi
+
+ZLIB_CPPFLAGS=
+ZLIB_LIBS=
+ZLIB_SUBDIRS=
+if test x$with_external_zlib = xno; then
+ # We need ZLIB_CPPFLAGS so that later executions of cpp from configure
+ # don't try to interpret $(top_srcdir)
+ ZLIB_CPPFLAGS='-I$(top_srcdir)/zlib'
+ ZLIB_LIBS='$(top_builddir)/zlib/libz.a'
+ # ZLIB_SUBDIRS is only used in the top level Makefiles.
+ ZLIB_SUBDIRS=zlib
+else
+ # We know what to do now, so set up the CPPFLAGS, LDFLAGS, and LIBS for later
+ # use.
+ if test -z "$LIBS"; then
+ LIBS=-lz
+ else
+ LIBS="$LIBS -lz"
+ fi
+
+ #
+ # Verify external installed zlib works
+ #
+ # Ideally, we would also check that the version is newer
+ #
+ AC_MSG_CHECKING([that ZLIB library works])
+ AC_TRY_LINK([#include <zlib.h>],
+ [int i = Z_OK; const char *version = zlibVersion();],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ AC_MSG_ERROR([ZLIB failed to link])])
+fi
+
+dnl Subst for the local case
+AC_SUBST(ZLIB_SUBDIRS)dnl
+AC_SUBST(ZLIB_CPPFLAGS)dnl
+AC_SUBST(ZLIB_LIBS)dnl
+])