summaryrefslogtreecommitdiff
path: root/dev.mk.in
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-02-17 21:28:53 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-02-17 21:28:53 +0000
commit189d7eb970b025c570c7ccce916759083373bdde (patch)
treef4f7c3a71ecc7851a8a7b86206bbb202b5cab551 /dev.mk.in
downloadccache-tarball-master.tar.gz
Diffstat (limited to 'dev.mk.in')
-rw-r--r--dev.mk.in164
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