after i play with HAVE_Z_LIBRARY in log.c -> gzip_logfile() and monitor.c -> flush_monitor_buffer() it compiles and link to an binary.
Here is my patch:
diff -rupN /src/hiawatha-9.6/src/log.c /src/hiawatha-9.6-dev/src/log.c
--- /src/hiawatha-9.6/src/log.c 2014-06-01 10:03:18.000000000 +0200
+++ /src/hiawatha-9.6-dev/src/log.c     2014-06-02 15:43:14.979966267 +0200
@@ -17,7 +17,9 @@
 #include <stdarg.h>
 #include <unistd.h>
 #include <fcntl.h>
-#include <zlib.h>
+#ifdef HAVE_Z_LIBRARY
+    #include <zlib.h>
+#endif
 #include <errno.h>
 #include <string.h>
 #include <time.h>
@@ -522,6 +524,7 @@ static int gzip_logfile(char *file) {
        int result = -1, fd_in = -1, fd_out = -1;
        int bytes_read, bytes_written, total_written;
        struct stat stat_in;
+#ifdef HAVE_Z_LIBRARY
        gzFile gzhandle = NULL;
        /* Input file
@@ -595,6 +598,7 @@ gzip_fail:
        if (gz_file != NULL) {
                free(gz_file);
        }
+#endif
        return result;
 }
diff -rupN /src/hiawatha-9.6/src/monitor.c /src/hiawatha-9.6-dev/src/monitor.c
--- /src/hiawatha-9.6/src/monitor.c     2014-06-01 10:03:18.000000000 +0200
+++ /src/hiawatha-9.6-dev/src/monitor.c 2014-06-02 15:44:15.396447887 +0200
@@ -23,7 +23,9 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <pthread.h>
-#include <zlib.h>
+#ifdef HAVE_Z_LIBRARY
+    #include <zlib.h>
+#endif
 #include "global.h"
 #include "monitor.h"
 #include "libstr.h"
@@ -80,6 +82,8 @@ static void reset_cgi_stats(t_monitor_ho
  */
 static int flush_monitor_buffer(void) {
        int handle, bytes_written, total_written;
+
+#ifdef HAVE_Z_LIBRARY
        gzFile gzhandle;
        if (monitor_buffer_size == 0) {
@@ -113,7 +117,7 @@ static int flush_monitor_buffer(void) {
        if (gzclose(gzhandle) != Z_OK) {
                close(handle);
        }
-
+#endif
        monitor_buffer_size = 0;
        return 0;