diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-02-17 21:28:53 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-02-17 21:28:53 +0000 |
commit | 189d7eb970b025c570c7ccce916759083373bdde (patch) | |
tree | f4f7c3a71ecc7851a8a7b86206bbb202b5cab551 /dev.mk.in | |
download | ccache-tarball-master.tar.gz |
ccache-3.3.4HEADccache-3.3.4master
Diffstat (limited to 'dev.mk.in')
-rw-r--r-- | dev.mk.in | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/dev.mk.in b/dev.mk.in new file mode 100644 index 0000000..d141b78 --- /dev/null +++ b/dev.mk.in @@ -0,0 +1,164 @@ +# GNU make syntax reigns in this file. + +all_cflags += -Werror +all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$<)).d + +ASCIIDOC = asciidoc +CPPCHECK = cppcheck +CPPCHECK_SUPPRESSIONS = cppcheck-suppressions.txt +GPERF = gperf +XSLTPROC = xsltproc +MANPAGE_XSL = $(shell if [ -e /usr/local/etc/asciidoc/docbook-xsl/manpage.xsl ]; \ + then echo /usr/local/etc/asciidoc/docbook-xsl/manpage.xsl; \ + else echo /etc/asciidoc/docbook-xsl/manpage.xsl; fi) + + +version := \ + $(shell (git --git-dir=$(srcdir)/.git describe --dirty || git --git-dir=$(srcdir)/.git describe || echo vunknown) \ + 2>/dev/null | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g') + +dist_dir = ccache-$(version) +dist_archives = \ + ccache-$(version).tar.bz2 \ + ccache-$(version).tar.gz +ifneq ($(shell uname), Darwin) + dist_archives += ccache-$(version).tar.xz +endif + +generated_docs = ccache.1 AUTHORS.html LICENSE.html MANUAL.html NEWS.html +built_dist_files = $(generated_docs) + +headers = \ + ccache.h \ + compopt.h \ + conf.h \ + counters.h \ + getopt_long.h \ + hashtable.h \ + hashtable_itr.h \ + hashtable_private.h \ + hashutil.h \ + language.h \ + macroskip.h \ + manifest.h \ + mdfour.h \ + murmurhashneutral2.h \ + system.h \ + test/framework.h \ + test/suites.h \ + test/util.h + +files_to_clean += *.tar.bz2 *.tar.gz *.tar.xz *.xml .deps/* perfdir.* +files_to_distclean += $(built_dist_files) version.c test/suites.h +files_to_distclean += .deps version.c dev.mk + +source_dist_files = \ + $(base_sources) \ + $(headers) \ + $(test_sources) \ + AUTHORS.txt \ + GPL-3.0.txt \ + HACKING.txt \ + LICENSE.txt \ + MANUAL.txt \ + Makefile.in \ + NEWS.txt \ + README.md \ + autogen.sh \ + config.guess \ + config.h.in \ + config.sub \ + configure \ + configure.ac \ + confitems.gperf \ + confitems_lookup.c \ + dev.mk.in \ + envtoconfitems.gperf \ + envtoconfitems_lookup.c \ + install-sh \ + m4 \ + main.c \ + test.sh \ + zlib/*.c \ + zlib/*.h + +dist_files = \ + $(addprefix $(srcdir)/, $(source_dist_files)) \ + $(built_dist_files) + +uncrustify_exclude_files = \ + getopt_long.c \ + hashtable.c \ + hashtable_itr.c \ + snprintf.c + +ifneq ($(shell sed 's/.*"\(.*\)".*/\1/' version.c 2>/dev/null),$(version)) + $(shell echo 'const char CCACHE_VERSION[] = "$(version)";' >version.c) +endif +version.o: version.c + +%_lookup.c: %.gperf + $(GPERF) $< | awk '/#ifdef __GNUC__/ { ++i; if (i == 2) { print "static"; }} {print}' >$@ + echo "static const size_t `echo $* | tr a-z A-Z`_TOTAL_KEYWORDS = `sed -nr 's/.*TOTAL_KEYWORDS = ([0-9]+).*/\1/p' $@`;" >>$@ + +.PHONY: dist +dist: $(dist_archives) + +$(dist_archives): $(dist_files) + tmpdir=$$(mktemp -d /tmp/tmp-ccache-dist.XXXXXX) && \ + dir=$$tmpdir/$(dist_dir) && \ + mkdir $$dir && \ + (cd $(srcdir) && \ + rsync -r --relative $(source_dist_files) $$dir) && \ + cp $(srcdir)/INSTALL-from-release-archive.md $$dir/INSTALL.md && \ + cp $(built_dist_files) $$dir && \ + echo "Remove this file to enable developer mode." >$$dir/dev_mode_disabled && \ + (cd $$tmpdir && \ + tarcompression= && \ + case $@ in \ + *.bz2) tarcompression=-j ;; \ + *.gz) tarcompression=-z ;; \ + *.xz) tarcompression=-J ;; \ + esac && \ + tar -c $$tarcompression -f $(CURDIR)/$@ $(dist_dir)) && \ + rm -rf $$tmpdir + +.PHONY: distcheck +distcheck: $(firstword $(dist_archives)) + tmpdir=$$(mktemp -d /tmp/tmp-ccache-distcheck.XXXXXX) && \ + (cd $$tmpdir && \ + tar xjf $(CURDIR)/$< && \ + mkdir -p $(dist_dir)/build && \ + cd $(dist_dir)/build && \ + ../configure --prefix=$$tmpdir/root && \ + $(MAKE) install && \ + $(MAKE) installcheck) && \ + rm -rf $$tmpdir + +.PHONY: docs +docs: $(generated_docs) + +%.html: %.txt + $(ASCIIDOC) -a revnumber=$(version) -a toc -b xhtml11 $< + +%.xml: %.txt + $(ASCIIDOC) -a revnumber=$(version) -d manpage -b docbook $< + +ccache.1: MANUAL.xml + $(XSLTPROC) --nonet $(MANPAGE_XSL) $< + +.PHONY: check-syntax +check-syntax: + $(CC) $(all_cppflags) -I. $(all_cflags) -S -o /dev/null $(CHK_SOURCES) + +.PHONY: cppcheck +cppcheck: + $(CPPCHECK) --suppressions-list=$(CPPCHECK_SUPPRESSIONS) \ + --inline-suppr -q --enable=all \ + $(non_3pp_sources) main.c $(test_sources) + +.PHONY: uncrustify +uncrustify: + uncrustify -c uncrustify.cfg --no-backup --replace $(filter-out $(uncrustify_exclude_files), $(base_sources)) $(test_sources) + +-include .deps/*.d |