diff lib/swig/swigwin-2.0.11/CCache/debian/patches/02_ccache-compressed.diff @ 1899:b3009adc0e2f

Adding swig, gitignore, hgignore
author Nomad
date Mon, 21 Oct 2013 10:42:27 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/swig/swigwin-2.0.11/CCache/debian/patches/02_ccache-compressed.diff	Mon Oct 21 10:42:27 2013 +0200
@@ -0,0 +1,1026 @@
+Index: ccache.1
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/ccache.1,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.6
+diff -u -r1.1.1.1.2.1 -r1.6
+--- ccache.1	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ ccache.1	21 Nov 2004 18:19:28 -0000	1.6
+@@ -210,7 +210,8 @@
+ CCACHE_HARDLINK then ccache will attempt to use hard links from the
+ cache directory when creating the compiler output rather than using a
+ file copy\&. Using hard links is faster, but can confuse programs like
+-\&'make\&' that rely on modification times\&.
++\&'make\&' that rely on modification times\&. Hard links are never made for
++compressed cache files\&.
+ .IP 
+ .IP "\fBCCACHE_RECACHE\fP" 
+ This forces ccache to not use any cached
+@@ -257,6 +258,11 @@
+ the default\&. On HP-UX set this environment variable to "i" if you use
+ the aCC compiler\&.
+ .IP 
++.IP "\fBCCACHE_NOCOMPRESS\fP" 
++If you set the environment variable
++CCACHE_NOCOMPRESS then there is no compression used on files that go
++into the cache\&.
++.IP 
+ .PP 
+ .SH "CACHE SIZE MANAGEMENT" 
+ .PP 
+@@ -269,6 +275,14 @@
+ below the numbers you specified in order to avoid doing the cache
+ clean operation too often\&.
+ .PP 
++.SH "CACHE COMPRESSION" 
++.PP 
++By default ccache will compress all files it puts into the cache
++using the zlib compression\&. While this involves a negligible
++performance slowdown, it significantly increases the number of files
++that fit in the cache\&. You can turn off compression setting the
++CCACHE_NOCOMPRESS environment variable\&.
++.PP 
+ .SH "HOW IT WORKS" 
+ .PP 
+ The basic idea is to detect when you are compiling exactly the same
+Index: ccache.c
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/ccache.c,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.9
+diff -u -r1.1.1.1.2.1 -r1.9
+--- ccache.c	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ ccache.c	21 Nov 2004 18:19:28 -0000	1.9
+@@ -199,7 +199,7 @@
+ 		fd = open(tmp_stderr, O_RDONLY | O_BINARY);
+ 		if (fd != -1) {
+ 			if (strcmp(output_file, "/dev/null") == 0 ||
+-			    rename(tmp_hashname, output_file) == 0 || errno == ENOENT) {
++			    move_file(tmp_hashname, output_file) == 0 || errno == ENOENT) {
+ 				if (cpp_stderr) {
+ 					/* we might have some stderr from cpp */
+ 					int fd2 = open(cpp_stderr, O_RDONLY | O_BINARY);
+@@ -231,14 +231,25 @@
+ 	x_asprintf(&path_stderr, "%s.stderr", hashname);
+ 
+ 	if (stat(tmp_stderr, &st1) != 0 ||
+-	    stat(tmp_hashname, &st2) != 0 ||
+-	    rename(tmp_hashname, hashname) != 0 ||
+-	    rename(tmp_stderr, path_stderr) != 0) {
++		stat(tmp_hashname, &st2) != 0 ||
++		move_file(tmp_hashname, hashname) != 0 ||
++		move_file(tmp_stderr, path_stderr) != 0) {
+ 		cc_log("failed to rename tmp files - %s\n", strerror(errno));
+ 		stats_update(STATS_ERROR);
+ 		failed();
+ 	}
+ 
++#if ENABLE_ZLIB
++	/* do an extra stat on the cache files for
++	   the size statistics */
++	if (stat(path_stderr, &st1) != 0 ||
++		stat(hashname, &st2) != 0) {
++		cc_log("failed to stat cache files - %s\n", strerror(errno));
++		stats_update(STATS_ERROR);
++		failed();
++    }
++#endif
++
+ 	cc_log("Placed %s into cache\n", output_file);
+ 	stats_tocache(file_size(&st1) + file_size(&st2));
+ 
+@@ -474,7 +485,13 @@
+ 	}
+ 
+ 	/* the user might be disabling cache hits */
++#ifndef ENABLE_ZLIB
++	/* if the cache file is compressed we must recache */
++	if ((first && getenv("CCACHE_RECACHE")) ||
++		test_if_compressed(hashname) == 1) {
++#else
+ 	if (first && getenv("CCACHE_RECACHE")) {
++#endif
+ 		close(fd_stderr);
+ 		unlink(stderr_file);
+ 		free(stderr_file);
+@@ -487,7 +504,9 @@
+ 		ret = 0;
+ 	} else {
+ 		unlink(output_file);
+-		if (getenv("CCACHE_HARDLINK")) {
++		/* only make a hardlink if the cache file is uncompressed */
++		if (getenv("CCACHE_HARDLINK") &&
++			test_if_compressed(hashname) == 0) {
+ 			ret = link(hashname, output_file);
+ 		} else {
+ 			ret = copy_file(hashname, output_file);
+Index: ccache.h
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/ccache.h,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.7
+diff -u -r1.1.1.1.2.1 -r1.7
+--- ccache.h	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ ccache.h	21 Nov 2004 18:19:28 -0000	1.7
+@@ -23,6 +23,10 @@
+ #include <pwd.h>
+ #endif
+ 
++#ifdef ENABLE_ZLIB
++#include <zlib.h>
++#endif
++
+ #define STATUS_NOTFOUND 3
+ #define STATUS_FATAL 4
+ #define STATUS_NOCACHE 5
+@@ -36,6 +40,13 @@
+ #define DEFAULT_MAXSIZE (1000*1000)
+ #endif
+ 
++/* file copy mode */
++#ifdef ENABLE_ZLIB
++#define COPY_UNCOMPRESSED 0
++#define COPY_FROM_CACHE 1
++#define COPY_TO_CACHE 2
++#endif
++
+ enum stats {
+ 	STATS_NONE=0,
+ 	STATS_STDOUT,
+@@ -79,6 +90,8 @@
+ 
+ void copy_fd(int fd_in, int fd_out);
+ int copy_file(const char *src, const char *dest);
++int move_file(const char *src, const char *dest);
++int test_if_compressed(const char *filename);
+ 
+ int create_dir(const char *dir);
+ void x_asprintf(char **ptr, const char *format, ...);
+Index: ccache.yo
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/ccache.yo,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.5
+diff -u -r1.1.1.1.2.1 -r1.5
+--- ccache.yo	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ ccache.yo	21 Nov 2004 18:19:28 -0000	1.5
+@@ -169,6 +169,11 @@
+ this optimisation, in which case this option could allow ccache to be
+ used.
+ 
++dit(bf(CCACHE_NOCOMPRESS)) If you set the environment variable
++CCACHE_NOCOMPRESS then there is no compression used on files that go
++into the cache. However, this setting has no effect on how files are
++retrieved from the cache, compressed results will still be usable.
++
+ dit(bf(CCACHE_NOSTATS)) If you set the environment variable
+ CCACHE_NOSTATS then ccache will not update the statistics files on
+ each compile.
+@@ -181,7 +186,8 @@
+ CCACHE_HARDLINK then ccache will attempt to use hard links from the
+ cache directory when creating the compiler output rather than using a
+ file copy. Using hard links is faster, but can confuse programs like
+-'make' that rely on modification times.
++'make' that rely on modification times. Hard links are never made for
++compressed cache files.
+ 
+ dit(bf(CCACHE_RECACHE)) This forces ccache to not use any cached
+ results, even if it finds them. New results are still cached, but
+@@ -236,6 +242,14 @@
+ below the numbers you specified in order to avoid doing the cache
+ clean operation too often.
+ 
++manpagesection(CACHE COMPRESSION)
++
++By default ccache will compress all files it puts into the cache
++using the zlib compression. While this involves a negligible
++performance slowdown, it significantly increases the number of files
++that fit in the cache. You can turn off compression setting the
++CCACHE_NOCOMPRESS environment variable.
++
+ manpagesection(HOW IT WORKS)
+ 
+ The basic idea is to detect when you are compiling exactly the same
+@@ -294,6 +308,8 @@
+   cache. This tells the filesystem to inherit group ownership for new
+   directories. The command "chmod g+s `find $CCACHE_DIR -type d`" might
+   be useful for this.
++  it() Set bf(CCACHE_NOCOMPRESS) for all users, if there are users with
++  versions of ccache that do not support compression.
+ )
+ 
+ manpagesection(HISTORY)
+Index: config.h.in
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/config.h.in,v
+retrieving revision 1.1.1.1
+retrieving revision 1.2
+diff -u -r1.1.1.1 -r1.2
+--- config.h.in	30 Apr 2004 13:13:41 -0000	1.1.1.1
++++ config.h.in	4 May 2004 20:49:26 -0000	1.2
+@@ -98,3 +98,6 @@
+ 
+ /* Define _GNU_SOURCE so that we get all necessary prototypes */
+ #undef _GNU_SOURCE
++
++/* Define to 1 if you like to have zlib compression for the ccache. */
++#undef ENABLE_ZLIB
+Index: configure
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/configure,v
+retrieving revision 1.1.1.1.2.1
+diff -u -r1.1.1.1.2.1 configure
+--- configure	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ configure	21 Nov 2004 18:24:42 -0000
+@@ -836,6 +836,11 @@
+ 
+   cat <<\_ACEOF
+ 
++Optional Features:
++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++  --enable-zlib           enable zlib support for ccache compression
++
+ Some influential environment variables:
+   CC          C compiler command
+   CFLAGS      C compiler flags
+@@ -936,7 +941,7 @@
+     else
+       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+     fi
+-    cd "$ac_popdir"
++    cd $ac_popdir
+   done
+ fi
+ 
+@@ -1859,7 +1864,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -1917,7 +1923,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2033,7 +2040,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2087,7 +2095,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2132,7 +2141,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2176,7 +2186,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2609,7 +2620,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2681,7 +2693,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2735,7 +2748,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2806,7 +2820,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2860,7 +2875,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2927,7 +2943,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -2997,7 +3014,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3078,7 +3096,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3248,7 +3267,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3319,7 +3339,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3509,7 +3530,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3611,7 +3633,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3676,7 +3699,8 @@
+   cat conftest.err >&5
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
+   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+@@ -3775,6 +3799,229 @@
+ 
+ fi
+ 
++# Check whether --enable-zlib or --disable-zlib was given.
++if test "${enable_zlib+set}" = set; then
++  enableval="$enable_zlib"
++
++else
++  enable_zlib=yes
++fi;
++
++if test x"$enable_zlib" = x"yes"; then
++    if test "${ac_cv_header_zlib_h+set}" = set; then
++  echo "$as_me:$LINENO: checking for zlib.h" >&5
++echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
++if test "${ac_cv_header_zlib_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
++echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
++else
++  # Is the header compilable?
++echo "$as_me:$LINENO: checking zlib.h usability" >&5
++echo $ECHO_N "checking zlib.h usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
++#include <zlib.h>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; } &&
++	 { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_header_compiler=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking zlib.h presence" >&5
++echo $ECHO_N "checking zlib.h presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <zlib.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  ac_header_preproc=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So?  What about this header?
++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
++  yes:no: )
++    { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
++echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
++    ac_header_preproc=yes
++    ;;
++  no:yes:* )
++    { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h:     check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: zlib.h:     check for missing prerequisite headers?" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
++echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&5
++echo "$as_me: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
++    { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
++echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------------ ##
++## Report this to the AC_PACKAGE_NAME lists.  ##
++## ------------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++esac
++echo "$as_me:$LINENO: checking for zlib.h" >&5
++echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
++if test "${ac_cv_header_zlib_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_header_zlib_h=$ac_header_preproc
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
++echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
++
++fi
++if test $ac_cv_header_zlib_h = yes; then
++  echo "$as_me:$LINENO: checking for gzdopen in -lz" >&5
++echo $ECHO_N "checking for gzdopen in -lz... $ECHO_C" >&6
++if test "${ac_cv_lib_z_gzdopen+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-lz  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++/* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++   builtin and then its argument prototype would still apply.  */
++char gzdopen ();
++int
++main ()
++{
++gzdopen ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++	 { ac_try='test -z "$ac_c_werror_flag"
++			 || test ! -s conftest.err'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; } &&
++	 { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_z_gzdopen=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_z_gzdopen=no
++fi
++rm -f conftest.err conftest.$ac_objext \
++      conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzdopen" >&5
++echo "${ECHO_T}$ac_cv_lib_z_gzdopen" >&6
++if test $ac_cv_lib_z_gzdopen = yes; then
++  LIBS="-lz $LIBS"; cat >>confdefs.h <<\_ACEOF
++#define ENABLE_ZLIB 1
++_ACEOF
++
++fi
++
++fi
++
++
++fi
++
+           ac_config_files="$ac_config_files Makefile"
+ 
+ cat >confcache <<\_ACEOF
+@@ -4568,6 +4815,11 @@
+   *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+   esac
+ 
++  if test x"$ac_file" != x-; then
++    { echo "$as_me:$LINENO: creating $ac_file" >&5
++echo "$as_me: creating $ac_file" >&6;}
++    rm -f "$ac_file"
++  fi
+   # Let's still pretend it is `configure' which instantiates (i.e., don't
+   # use $as_me), people would be surprised to read:
+   #    /* config.h.  Generated by config.status.  */
+@@ -4606,12 +4858,6 @@
+ 	 fi;;
+       esac
+     done` || { (exit 1); exit 1; }
+-
+-  if test x"$ac_file" != x-; then
+-    { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-    rm -f "$ac_file"
+-  fi
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF
+   sed "$ac_vpsub
+Index: configure.in
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/configure.in,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.4
+diff -u -r1.1.1.1.2.1 -r1.4
+--- configure.in	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ configure.in	21 Nov 2004 18:19:28 -0000	1.4
+@@ -68,5 +68,14 @@
+     AC_DEFINE(HAVE_C99_VSNPRINTF, 1, [ ])
+ fi
+ 
++dnl Check for zlib.
++AC_ARG_ENABLE([zlib],
++              AS_HELP_STRING([--enable-zlib], [enable zlib support for ccache compression]),,
++              [enable_zlib=yes])
++
++if test x"$enable_zlib" = x"yes"; then
++    AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, gzdopen, LIBS="-lz $LIBS"; AC_DEFINE(ENABLE_ZLIB)))
++fi
++
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+Index: util.c
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/util.c,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.11
+diff -u -r1.1.1.1.2.1 -r1.11
+--- util.c	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ util.c	21 Nov 2004 18:19:28 -0000	1.11
+@@ -44,6 +44,7 @@
+ 	exit(1);
+ }
+ 
++#ifndef ENABLE_ZLIB
+ /* copy all data from one file descriptor to another */
+ void copy_fd(int fd_in, int fd_out)
+ {
+@@ -57,6 +58,11 @@
+ 	}
+ }
+ 
++/* move a file using rename */
++int move_file(const char *src, const char *dest) {
++	return rename(src, dest);
++}
++
+ /* copy a file - used when hard links don't work 
+    the copy is done via a temporary file and atomic rename
+ */
+@@ -120,6 +126,174 @@
+ 	return 0;
+ }
+ 
++#else /* ENABLE_ZLIB */
++
++/* copy all data from one file descriptor to another
++   possibly decompressing it
++*/
++void copy_fd(int fd_in, int fd_out) {
++	char buf[10240];
++	int n;
++	gzFile gz_in;
++
++	gz_in = gzdopen(dup(fd_in), "rb");
++
++	if (!gz_in) {
++		fatal("Failed to copy fd");
++	}
++
++	while ((n = gzread(gz_in, buf, sizeof(buf))) > 0) {
++		if (write(fd_out, buf, n) != n) {
++			fatal("Failed to copy fd");
++		}
++	}
++}
++
++static int _copy_file(const char *src, const char *dest, int mode) {
++	int fd_in, fd_out;
++	gzFile gz_in, gz_out = NULL;
++	char buf[10240];
++	int n, ret;
++	char *tmp_name;
++	mode_t mask;
++	struct stat st;
++
++	x_asprintf(&tmp_name, "%s.XXXXXX", dest);
++
++	if (getenv("CCACHE_NOCOMPRESS")) {
++		mode = COPY_UNCOMPRESSED;
++	}
++
++	/* open source file */
++	fd_in = open(src, O_RDONLY);
++	if (fd_in == -1) {
++		return -1;
++	}
++
++	gz_in = gzdopen(fd_in, "rb");
++	if (!gz_in) {
++		close(fd_in);
++		return -1;
++	}
++
++	/* open destination file */
++	fd_out = mkstemp(tmp_name);
++	if (fd_out == -1) {
++		gzclose(gz_in);
++		free(tmp_name);
++		return -1;
++	}
++
++	if (mode == COPY_TO_CACHE) {
++		/* The gzip file format occupies at least 20 bytes. So
++		   it will always occupy an entire filesystem block,
++		   even for empty files.
++		   Since most stderr files will be empty, we turn off
++		   compression in this case to save space.
++		*/
++		if (fstat(fd_in, &st) != 0) {
++			gzclose(gz_in);
++			close(fd_out);
++			free(tmp_name);
++			return -1;
++		}
++		if (file_size(&st) == 0) {
++			mode = COPY_UNCOMPRESSED;
++		}
++	}
++
++	if (mode == COPY_TO_CACHE) {
++		gz_out = gzdopen(dup(fd_out), "wb");
++		if (!gz_out) {
++			gzclose(gz_in);
++			close(fd_out);
++			free(tmp_name);
++			return -1;
++		}
++	}
++
++	while ((n = gzread(gz_in, buf, sizeof(buf))) > 0) {
++		if (mode == COPY_TO_CACHE) {
++			ret = gzwrite(gz_out, buf, n);
++		} else {
++			ret = write(fd_out, buf, n);
++		}
++		if (ret != n) {
++			gzclose(gz_in);
++			if (gz_out) {
++				gzclose(gz_out);
++			}
++			close(fd_out);
++			unlink(tmp_name);
++			free(tmp_name);
++			return -1;
++		}
++	}
++
++	gzclose(gz_in);
++	if (gz_out) {
++		gzclose(gz_out);
++	}
++
++	/* get perms right on the tmp file */
++	mask = umask(0);
++	fchmod(fd_out, 0666 & ~mask);
++	umask(mask);
++
++	/* the close can fail on NFS if out of space */
++	if (close(fd_out) == -1) {
++		unlink(tmp_name);
++		free(tmp_name);
++		return -1;
++	}
++
++	unlink(dest);
++
++	if (rename(tmp_name, dest) == -1) {
++		unlink(tmp_name);
++		free(tmp_name);
++		return -1;
++	}
++
++	free(tmp_name);
++
++	return 0;
++}
++
++/* move a file to the cache, compressing it */
++int move_file(const char *src, const char *dest) {
++	int ret;
++
++	ret = _copy_file(src, dest, COPY_TO_CACHE);
++	if (ret != -1) unlink(src);
++	return ret;
++}
++
++/* copy a file from the cache, decompressing it */
++int copy_file(const char *src, const char *dest) {
++	return _copy_file(src, dest, COPY_FROM_CACHE);
++}
++#endif /* ENABLE_ZLIB */
++
++/* test if a file is zlib compressed */
++int test_if_compressed(const char *filename) {
++	FILE *f;
++
++	f = fopen(filename, "rb");
++	if (!f) {
++		return 0;
++	}
++
++	/* test if file starts with 1F8B, which is zlib's
++	 * magic number */
++	if ((fgetc(f) != 0x1f) || (fgetc(f) != 0x8b)) {
++		fclose(f);
++		return 0;
++	}
++	
++	fclose(f);
++	return 1;
++}
+ 
+ /* make sure a directory exists */
+ int create_dir(const char *dir)
+Index: manage-cache.sh
+===================================================================
+RCS file: manage-cache.sh
+diff -N manage-cache.sh
+--- manage-cache.sh	1 Jan 1970 00:00:00 -0000
++++ manage-cache.sh-cache.sh	12 May 2004 19:22:20 -0000	1.1
+@@ -0,0 +1,68 @@
++#!/bin/bash
++#
++# 2004-05-12 lars@gustaebel.de
++
++CCACHE_DIR=${CCACHE_DIR:-$HOME/.ccache}
++
++echo "Do you want to compress or decompress the ccache in $CCACHE_DIR?"
++read -p "Type c or d: " mode
++
++if [ "$mode" != "c" ] && [ "$mode" != "d" ]
++then
++    exit 1
++fi
++
++is_compressed() {
++    test "$(head -c 2 $1)" = $'\x1f\x8b'
++    return $?
++}
++
++tmpfile=$(mktemp)
++
++for dir in 0 1 2 3 4 5 6 7 8 9 a b c d e f
++do
++    # process ccache subdir
++    echo -n "$dir "
++
++    # find cache files
++    find $CCACHE_DIR/$dir -type f -name '*-*' |
++    sort > $tmpfile
++
++    oldsize=$(cat $CCACHE_DIR/$dir/stats | cut -d ' ' -f 13)
++    newsize=0
++
++    while read file
++    do
++        # empty files will be ignored since compressing
++        # them makes them bigger
++        test $(stat -c %s $file) -eq 0 && continue
++
++        if [ $mode = c ]
++        then
++            if ! is_compressed $file
++            then
++                gzip $file
++                mv $file.gz $file
++            fi
++        else
++            if is_compressed $file
++            then
++                mv $file $file.gz
++                gzip -d $file.gz
++            fi
++        fi
++
++        # calculate new size statistic for this subdir
++        let newsize=$newsize+$(stat -c "%B*%b" $file)/1024
++    done < $tmpfile
++
++    # update statistic file
++    read -a numbers < $CCACHE_DIR/$dir/stats
++    numbers[12]=$newsize
++    echo "${numbers[*]} " > $CCACHE_DIR/$dir/stats
++done
++echo
++
++# clean up
++rm $tmpfile
++
+Index: Makefile.in
+===================================================================
+RCS file: /home/cvsroot/lars/ccache/Makefile.in,v
+retrieving revision 1.1.1.1.2.1
+retrieving revision 1.12
+diff -u -r1.1.1.1.2.1 -r1.12
+--- Makefile.in	21 Nov 2004 17:55:36 -0000	1.1.1.1.2.1
++++ Makefile.in	21 Nov 2004 18:19:28 -0000	1.12
+@@ -11,6 +11,7 @@
+ CFLAGS=@CFLAGS@ -I.
+ EXEEXT=@EXEEXT@
+ 
++LIBS= @LIBS@
+ OBJS= ccache.o mdfour.o hash.o execute.o util.o args.o stats.o \
+ 	cleanup.o snprintf.o unify.o
+ HEADERS = ccache.h mdfour.h
+@@ -20,7 +21,7 @@
+ docs: ccache.1 web/ccache-man.html
+ 
+ ccache$(EXEEXT): $(OBJS) $(HEADERS)
+-	$(CC) $(CFLAGS) -o $@ $(OBJS)
++	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
+ 
+ ccache.1: ccache.yo
+ 	-yodl2man -o ccache.1 ccache.yo