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
28 generated_docs = ccache.1 AUTHORS.html LICENSE.html MANUAL.html NEWS.html
29 built_dist_files = $(generated_docs)
45 murmurhashneutral2.h \
51 files_to_clean += *.tar.bz2 *.tar.gz *.tar.xz *.xml .deps/* perfdir.*
52 files_to_distclean += $(built_dist_files) version.c test/suites.h
53 files_to_distclean += .deps version.c dev.mk
76 envtoconfitems.gperf \
77 envtoconfitems_lookup.c \
86 $(addprefix $(srcdir)/, $(source_dist_files)) \
89 uncrustify_exclude_files = \
95 ifneq ($(shell sed 's/.*"\(.*\)".*/\1/' version.c 2>/dev/null),$(version))
96 $(shell echo 'const char CCACHE_VERSION[] = "$(version)";' >version.c)
101 $(GPERF) $< | awk '/#ifdef __GNUC__/ { ++i; if (i == 2) { print "static"; }} {print}' >$@
102 echo "static const size_t `echo $* | tr a-z A-Z`_TOTAL_KEYWORDS = `sed -nr 's/.*TOTAL_KEYWORDS = ([0-9]+).*/\1/p' $@`;" >>$@
105 dist: $(dist_archives)
107 $(dist_archives): $(dist_files)
108 tmpdir=$$(mktemp -d /tmp/tmp-ccache-dist.XXXXXX) && \
109 dir=$$tmpdir/$(dist_dir) && \
112 rsync -r --relative $(source_dist_files) $$dir) && \
113 cp $(srcdir)/INSTALL-from-release-archive.md $$dir/INSTALL.md && \
114 cp $(built_dist_files) $$dir && \
115 echo "Remove this file to enable developer mode." >$$dir/dev_mode_disabled && \
119 *.bz2) tarcompression=-j ;; \
120 *.gz) tarcompression=-z ;; \
121 *.xz) tarcompression=-J ;; \
123 tar -c $$tarcompression -f $(CURDIR)/$@ $(dist_dir)) && \
127 distcheck: $(firstword $(dist_archives))
128 tmpdir=$$(mktemp -d /tmp/tmp-ccache-distcheck.XXXXXX) && \
130 tar xjf $(CURDIR)/$< && \
131 mkdir -p $(dist_dir)/build && \
132 cd $(dist_dir)/build && \
133 ../configure --prefix=$$tmpdir/root && \
135 $(MAKE) installcheck) && \
139 docs: $(generated_docs)
142 $(ASCIIDOC) -a revnumber=$(version) -a toc -b xhtml11 $<
145 $(ASCIIDOC) -a revnumber=$(version) -d manpage -b docbook $<
148 $(XSLTPROC) --nonet $(MANPAGE_XSL) $<
152 $(CC) $(all_cppflags) -I. $(all_cflags) -S -o /dev/null $(CHK_SOURCES)
156 $(CPPCHECK) --suppressions-list=$(CPPCHECK_SUPPRESSIONS) \
157 --inline-suppr -q --enable=all \
158 $(non_3pp_sources) main.c $(test_sources)
162 uncrustify -c uncrustify.cfg --no-backup --replace $(filter-out $(uncrustify_exclude_files), $(base_sources)) $(test_sources)