1srcdir = @srcdir@ 2builddir = @builddir@ 3VPATH = @srcdir@ 4 5prefix = @prefix@ 6exec_prefix = @exec_prefix@ 7bindir = @bindir@ 8mandir = @mandir@ 9datarootdir = @datarootdir@ 10sysconfdir = @sysconfdir@ 11installcmd = @INSTALL@ 12 13AR = @AR@ 14BASH = @BASH@ 15CC = @CC@ 16CFLAGS = @CFLAGS@ 17CPPFLAGS = @CPPFLAGS@ 18EXEEXT = @EXEEXT@ 19LDFLAGS = @LDFLAGS@ 20LIBS = @LIBS@ 21RANLIB = @RANLIB@ 22 23all_cflags = $(CFLAGS) 24all_cppflags = @DEFS@ -DSYSCONFDIR=$(sysconfdir) -I. -I$(srcdir)/src -I$(builddir)/unittest $(CPPFLAGS) 25extra_libs = @extra_libs@ 26 27v_at_0 = yes 28v_at_ = $(v_at_0) 29quiet := $(v_at_$(V)) 30Q=$(if $(quiet),@) 31 32non_3pp_sources = \ 33 src/args.c \ 34 src/ccache.c \ 35 src/cleanup.c \ 36 src/compopt.c \ 37 src/conf.c \ 38 src/confitems.c \ 39 src/counters.c \ 40 src/execute.c \ 41 src/exitfn.c \ 42 src/hash.c \ 43 src/hashutil.c \ 44 src/language.c \ 45 src/lockfile.c \ 46 src/manifest.c \ 47 src/mdfour.c \ 48 src/stats.c \ 49 src/util.c 50generated_sources = \ 51 src/confitems_lookup.c \ 52 src/envtoconfitems_lookup.c \ 53 src/version.c 543pp_sources = \ 55 src/getopt_long.c \ 56 src/hashtable.c \ 57 src/hashtable_itr.c \ 58 src/murmurhashneutral2.c \ 59 src/snprintf.c 60extra_sources = @extra_sources@ 61base_sources = $(non_3pp_sources) $(generated_sources) $(3pp_sources) $(extra_sources) 62base_objs = $(base_sources:.c=.o) 63 64non_3pp_objs = $(non_3pp_sources:.c=.o) 65 66ccache_sources = src/main.c $(base_sources) 67ccache_objs = $(ccache_sources:.c=.o) 68 69zlib_sources = \ 70 src/zlib/adler32.c \ 71 src/zlib/crc32.c \ 72 src/zlib/deflate.c \ 73 src/zlib/gzclose.c \ 74 src/zlib/gzlib.c \ 75 src/zlib/gzread.c \ 76 src/zlib/gzwrite.c \ 77 src/zlib/inffast.c \ 78 src/zlib/inflate.c \ 79 src/zlib/inftrees.c \ 80 src/zlib/trees.c \ 81 src/zlib/zutil.c 82 83zlib_objs = $(zlib_sources:.c=.o) 84 85test_suites = @test_suites@ 86test_sources = unittest/main.c unittest/framework.c unittest/util.c 87test_sources += $(test_suites) 88test_objs = $(test_sources:.c=.o) 89 90all_sources = $(ccache_sources) $(test_sources) 91all_objs = $(ccache_objs) $(test_objs) $(zlib_objs) 92 93files_to_clean = \ 94 $(all_objs) \ 95 ccache$(EXEEXT) \ 96 src/*~ \ 97 src/zlib/libz.a \ 98 testdir.* \ 99 unittest/run$(EXEEXT) \ 100 *~ 101 102files_to_distclean = Makefile config.h config.log config.status 103 104.PHONY: all 105all: ccache$(EXEEXT) 106 107ccache$(EXEEXT): $(ccache_objs) $(extra_libs) 108 $(if $(quiet),@echo " LD $@") 109 $(Q)$(CC) -o $@ $(ccache_objs) $(LDFLAGS) $(extra_libs) $(LIBS) 110 111ccache.1: doc/ccache.1 112 $(if $(quiet),@echo " CP $@") 113 $(Q)cp $< $@ 114 115.PHONY: install 116install: ccache$(EXEEXT) @disable_man@ccache.1 117 $(if $(quiet),@echo " INSTALL ccache$(EXEEXT)") 118 $(Q)$(installcmd) -d $(DESTDIR)$(bindir) 119 $(Q)$(installcmd) -m 755 ccache$(EXEEXT) $(DESTDIR)$(bindir) 120@disable_man@ $(if $(quiet),@echo " INSTALL ccache.1") 121@disable_man@ $(Q)$(installcmd) -d $(DESTDIR)$(mandir)/man1 122@disable_man@ $(Q)-$(installcmd) -m 644 ccache.1 $(DESTDIR)$(mandir)/man1/ 123 124.PHONY: clean 125clean: 126 rm -rf $(files_to_clean) 127 128src/zlib/libz.a: $(zlib_objs) 129 $(if $(quiet),@echo " AR $@") 130 $(Q)$(AR) cr $@ $(zlib_objs) 131 $(if $(quiet),@echo " RANLIB $@") 132 $(Q)$(RANLIB) $@ 133 134.PHONY: performance 135performance: ccache$(EXEEXT) 136 $(srcdir)/misc/performance --ccache ccache$(EXEEXT) $(CC) $(all_cppflags) $(all_cflags) $(srcdir)/src/ccache.c 137 138.PHONY: test 139test: ccache$(EXEEXT) unittest/run$(EXEEXT) 140 $(if $(quiet),@echo " TEST unittest/run$(EXEEXT)") 141 $(Q)unittest/run$(EXEEXT) 142 $(if $(quiet),@echo " TEST $(srcdir)/test/run") 143 $(Q)CC='$(CC)' $(BASH) $(srcdir)/test/run 144 145.PHONY: unittest 146unittest: unittest/run$(EXEEXT) 147 $(if $(quiet),@echo " TEST $@") 148 $(Q)unittest/run$(EXEEXT) 149 150unittest/run$(EXEEXT): $(base_objs) $(test_objs) $(extra_libs) 151 $(if $(quiet),@echo " LD $@") 152 $(Q)$(CC) -o $@ $(base_objs) $(test_objs) $(LDFLAGS) $(extra_libs) $(LIBS) 153 154unittest/main.o: unittest/suites.h 155 156unittest/suites.h: $(test_suites) Makefile 157 $(if $(quiet),@echo " GEN $@") 158 $(Q)ls $^ | grep -v Makefile | xargs sed -n 's/TEST_SUITE(\(.*\))/SUITE(\1)/p' >$@ 159 160.PHONY: check 161check: test 162 163.PHONY: distclean 164distclean: clean 165 rm -rf $(files_to_distclean) 166 167.PHONY: installcheck 168installcheck: ccache$(EXEEXT) unittest/run$(EXEEXT) 169 unittest/run$(EXEEXT) 170 CCACHE=$(bindir)/ccache CC='$(CC)' $(BASH) $(srcdir)/test/run 171 172.c.o: 173 $(if $(quiet),@echo " CC $@") 174 $(Q)$(CC) $(all_cppflags) $(all_cflags) -c -o $@ $< 175 176@include_dev_mk@ 177