implement zlib module loading.
diff --git a/configure.ac b/configure.ac
index b992188..b3bb218 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,6 +23,8 @@
AM_PROG_CC_C_O
AC_PROG_GCC_TRADITIONAL
+required_private_libs=""
+
AC_ARG_ENABLE([tools],
AS_HELP_STRING([--disable-tools], [disable building tools that provide same functionality as module-init-tools @<:@default=enabled@:>@]),
[], enable_tools=yes)
@@ -35,6 +37,43 @@
AC_DEFINE(ENABLE_LOGGING, [1], [System logging.])
])
+AC_ARG_ENABLE([zlib],
+ AS_HELP_STRING([--enable-zlib], [handle gzipped modules (options: static or dynamic) @<:@default=disabled@:>@]),
+ [], enable_zlib=no)
+if test "x$enable_zlib" = "xyes" -o "x$enable_zlib" = "xstatic"; then
+ enable_zlib="static"
+ zlib_libs="-Wl,-Bstatic -lz -Wl,-Bdynamic"
+ SAVE_LIBS="${LIBS}"
+ LIBS="${LIBS} ${zlib_libs}"
+ AC_MSG_CHECKING([if static zlib exists])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ #include <zlib.h>
+ ]], [[
+ gzFile f = gzopen("/tmp", "rb");
+ ]])],
+ [have_zlib=yes], [have_zlib=no])
+ LIBS="${SAVE_LIBS}"
+ AC_MSG_RESULT([$have_zlib])
+ if test "x$have_zlib" != "xyes"; then
+ zlib_libs=""
+ AC_MSG_ERROR([static zlib is not present])
+ fi
+elif test "x$enable_zlib" = "xdynamic"; then
+ AC_CHECK_LIB([z], [gzopen],
+ [
+ zlib_libs="-lz"
+ required_private_libs="${required_private_libs} ${zlib_libs}"
+ ],
+ [AC_MSG_ERROR([dynamic zlib is not present])])
+else
+ AC_MSG_NOTICE([zlib support not requested])
+ zlib_libs=""
+fi
+if test "x$zlib_libs" != "x"; then
+ AC_DEFINE(ENABLE_ZLIB, [1], [Enable zlib for modules.])
+fi
+AC_SUBST(zlib_libs)
+
AC_ARG_ENABLE([debug],
AS_HELP_STRING([--enable-debug], [enable debug messages @<:@default=disabled@:>@]),
[], [enable_debug=no])
@@ -92,6 +131,8 @@
-Wl,--gc-sections])
+AC_SUBST(required_private_libs)
+
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_FILES([
Makefile
@@ -115,5 +156,6 @@
tools: ${enable_tools}
logging: ${enable_logging}
+ zlib: ${enable_zlib}
debug: ${enable_debug}
])