datarootdir = @datarootdir@
installcmd = @INSTALL@
+AR = @AR@
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@ -I. -I$(srcdir)
LDFLAGS = @LDFLAGS@
EXEEXT = @EXEEXT@
+RANLIB = @RANLIB@
-libs = @LIBS@ -lm
+libs = @LIBS@ -lm -lz
base_sources = \
ccache.c mdfour.c hash.c execute.c util.c args.c stats.c version.c \
murmurhashneutral2.c hashutil.c getopt_long.c exitfn.c
base_objs = $(base_sources:.c=.o)
-ccache_sources = main.c $(base_sources) @extra_sources@
+ccache_sources = main.c $(base_sources)
ccache_objs = $(ccache_sources:.c=.o)
+zlib_sources = \
+ zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzio.c \
+ zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c zlib/zutil.c
+zlib_objs = $(zlib_sources:.c=.o)
+
test_suites = \
$(srcdir)/test/test_util.c
test_sources = test/main.c test/framework.c $(test_suites)
test_objs = $(test_sources:.c=.o)
all_sources = $(ccache_sources) $(test_sources)
-all_objs = $(ccache_objs) $(test_objs)
+all_objs = $(ccache_objs) $(test_objs) $(zlib_objs)
generated_docs = ccache.1 INSTALL.html manual.html NEWS.html README.html
.PHONY: docs
docs: $(generated_docs)
-ccache$(EXEEXT): $(ccache_objs)
+ccache$(EXEEXT): $(ccache_objs) @extra_deps@
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(libs)
.PHONY: install
clean:
rm -f $(files_to_clean)
+zlib/libz.a: $(zlib_objs)
+ $(AR) cr $@ $^
+ $(RANLIB) $@
+
.PHONY: perf
perf: ccache$(EXEEXT)
$(srcdir)/perf.py --ccache ccache$(EXEEXT) $(CC) $(CFLAGS) $(CPPFLAGS) $(srcdir)/ccache.c
test/main$(EXEEXT)
CC='$(CC)' $(srcdir)/test.sh
-test/main$(EXEEXT): $(base_objs) $(test_objs)
+test/main$(EXEEXT): $(base_objs) $(test_objs) @extra_deps@
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(libs)
test/main.o: test/suites.h
AC_CONFIG_HEADER(config.h)
-AC_SUBST(extra_sources)
+AC_SUBST(extra_deps)
AC_SUBST(include_dev_mk)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR, ar)
+if test -z "$ac_ct_AR"; then
+ AC_MSG_ERROR(cannot find ar)
+fi
dnl ===========================================================================
dnl Feature macro stuff borrowed from Python's configure.in
AC_CHECK_LIB(z, gzdopen, true)
if test $ccache_cv_zlib_1_2_3 = yes && test $ac_cv_lib_z_gzdopen = yes; then
use_bundled_zlib=no
- LIBS="-lz $LIBS"
else
use_bundled_zlib=yes
- extra_sources="$extra_sources zlib/adler32.c zlib/compress.c zlib/crc32.c"
- extra_sources="$extra_sources zlib/deflate.c zlib/gzio.c zlib/inffast.c"
- extra_sources="$extra_sources zlib/inflate.c zlib/inftrees.c zlib/trees.c"
- extra_sources="$extra_sources zlib/zutil.c"
+ extra_deps="zlib/libz.a"
CPPFLAGS="$CPPFLAGS -I\$(srcdir)/zlib"
+ LIBS="-Lzlib $LIBS"
mkdir -p zlib
fi