-dnl Checks needed for gnumeric reader
-gnm_support=yes;
-PKG_CHECK_MODULES(LIBXML2, libxml-2.0,,
- [PSPP_OPTIONAL_PREREQ([libxml2]); gnm_support=no;]);
-AC_SEARCH_LIBS(gzopen,z,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
-AC_CHECK_HEADERS(zlib.h,,[PSPP_OPTIONAL_PREREQ([zlib]); gnm_support=no;])
+dnl Check for libxml2
+PKG_CHECK_MODULES(
+ [LIBXML2], [libxml-2.0],
+ [HAVE_LIBXML2=yes],
+ [HAVE_LIBXML2=no
+ PSPP_OPTIONAL_PREREQ([libxml2])])
+
+dnl Check for zlib.
+AC_SEARCH_LIBS(
+ [gzopen], [z],
+ [HAVE_ZLIB=yes],
+ [HAVE_ZLIB=no
+ PSPP_OPTIONAL_PREREQ([zlib])])
+AC_CHECK_HEADERS(
+ [zlib.h],
+ [],
+ [HAVE_ZLIB=no
+ PSPP_OPTIONAL_PREREQ([zlib])])
+
+dnl Avoid interference between zlib's crc32() function and gnulib's
+dnl crc32() function, which have different signatures. PSPP calls
+dnl only gnulib's crc32() directly, but it calls zlib's crc32()
+dnl indirectly through other zlib calls. If we don't rename gnulib's
+dnl crc32(), then zlib will call gnulib's version instead of its own,
+dnl causing failures. (This can happen even if zlib isn't detected
+dnl directly, because other libraries that PSPP uses, e.g. libpng,
+dnl sometimes use zlib themselves.)
+AC_DEFINE(
+ [crc32], [gl_crc32],
+ [Avoid making zlib call gnulib's crc32() instead of its own.])
+
+dnl Gnumeric support requires libxml2 and zlib.
+if test $HAVE_LIBXML2 = yes && test $HAVE_ZLIB = yes; then
+ GNM_SUPPORT=yes
+ AC_DEFINE(
+ [GNM_SUPPORT], [1],
+ [Define to 1 if building in support for reading Gnumeric files.])
+else
+ GNM_SUPPORT=no
+fi
+AM_CONDITIONAL([GNM_SUPPORT], [test $GNM_SUPPORT = yes])