1 # GNU make syntax reigns in this file.
4 all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$<)).d
8 CPPCHECK_SUPPRESSIONS = cppcheck-suppressions.txt
11 MANPAGE_XSL = $(shell if [ -e /usr/local/etc/asciidoc/docbook-xsl/manpage.xsl ]; \
12 then echo /usr/local/etc/asciidoc/docbook-xsl/manpage.xsl; \
13 else echo /etc/asciidoc/docbook-xsl/manpage.xsl; fi)
17 $(shell (git --git-dir=$(srcdir)/.git describe --dirty || git --git-dir=$(srcdir)/.git describe || echo vunknown) \
18 2>/dev/null | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g')
20 dist_dir = ccache-$(version)
22 ccache-$(version).tar.bz2 \
23 ccache-$(version).tar.gz
24 ifneq ($(shell uname), Darwin)
25 dist_archives += ccache-$(version).tar.xz
29 ccache.1 AUTHORS.html INSTALL.html LICENSE.html MANUAL.html NEWS.html \
31 built_dist_files = $(generated_docs)
47 murmurhashneutral2.h \
53 files_to_clean += *.tar.bz2 *.tar.gz *.tar.xz *.xml .deps/*
54 files_to_distclean += $(built_dist_files) version.c test/suites.h
55 files_to_distclean += .deps version.c dev.mk
79 envtoconfitems.gperf \
80 envtoconfitems_lookup.c \
89 $(addprefix $(srcdir)/, $(source_dist_files)) \
92 uncrustify_exclude_files = \
98 ifneq ($(shell sed 's/.*"\(.*\)".*/\1/' version.c 2>/dev/null),$(version))
99 $(shell echo 'const char CCACHE_VERSION[] = "$(version)";' >version.c)
104 $(GPERF) $< | awk '/#ifdef __GNUC__/ { ++i; if (i == 2) { print "static"; }} {print}' >$@
105 echo "static const size_t `echo $* | tr a-z A-Z`_TOTAL_KEYWORDS = `sed -nr 's/.*TOTAL_KEYWORDS = ([0-9]+).*/\1/p' $@`;" >>$@
108 dist: $(dist_archives)
110 $(dist_archives): $(dist_files)
111 tmpdir=$$(mktemp -d /tmp/tmp-ccache-dist.XXXXXX) && \
112 dir=$$tmpdir/$(dist_dir) && \
115 rsync -r --relative $(source_dist_files) $$dir) && \
116 cp $(built_dist_files) $$dir && \
117 echo "Remove this file to enable developer mode." >$$dir/dev_mode_disabled && \
121 *.bz2) tarcompression=-j ;; \
122 *.gz) tarcompression=-z ;; \
123 *.xz) tarcompression=-J ;; \
125 tar -c $$tarcompression -f $(CURDIR)/$@ $(dist_dir)) && \
129 distcheck: $(firstword $(dist_archives))
130 tmpdir=$$(mktemp -d /tmp/tmp-ccache-distcheck.XXXXXX) && \
132 tar xjf $(CURDIR)/$< && \
133 mkdir -p $(dist_dir)/build && \
134 cd $(dist_dir)/build && \
135 ../configure --prefix=$$tmpdir/root && \
137 $(MAKE) installcheck) && \
141 docs: $(generated_docs)
144 $(ASCIIDOC) -a revnumber=$(version) -a toc -b xhtml11 $<
147 $(ASCIIDOC) -a revnumber=$(version) -d manpage -b docbook $<
150 $(XSLTPROC) --nonet $(MANPAGE_XSL) $<
154 $(CC) $(all_cppflags) -I. $(all_cflags) -S -o /dev/null $(CHK_SOURCES)
158 $(CPPCHECK) --suppressions-list=$(CPPCHECK_SUPPRESSIONS) \
159 --inline-suppr -q --enable=all \
160 $(non_3pp_sources) main.c $(test_sources)
164 uncrustify -c uncrustify.cfg --no-backup --replace $(filter-out $(uncrustify_exclude_files), $(base_sources)) $(test_sources)