-SUBDIRS = src man init testing
+SUBDIRS = src man conf init testing
if USE_SCRIPTS
SUBDIRS += scripts
nodist_config_include_HEADERS = config.h
endif
-Android.common.mk : Android.common.mk.in configure.in
+# we leave config files behind intentionally so prevent distcheck from complaining
+distuninstallcheck_listfiles = find . -type f \! -name '*.conf' -print
+
+Android.common.mk : Android.common.mk.in configure.ac
$(AM_V_GEN) \
sed \
-e "s:\@PACKAGE_VERSION\@:$(PACKAGE_VERSION):" \
sed \
-e "s:\@PACKAGE_VERSION\@:$(PACKAGE_VERSION):" \
-e "s:\@PACKAGE_NAME\@:$(PACKAGE_NAME):" \
- -e "s:\@SRC_DIR\@:$(srcdir):" \
+ -e "s:\@SRC_DIR\@:$(srcdir):g" \
$(srcdir)/$@.in > $@
apidoc : Doxyfile
- doxygen
+ @test -d apidoc || doxygen
+ @! find Doxyfile src/ \( -name '*.h' -o -name '*.md' \) -newer apidoc | \
+ grep -q '' || doxygen && touch apidoc
-if COVERAGE
-cov-reset:
+cov-reset-common:
@rm -rf $(top_builddir)/coverage
- @find $(top_builddir) -name "*.gcda" -delete
+ @find $(top_builddir)/src $(top_builddir)/scripts -name "*.gcda" -delete
+
+if COVERAGE
+cov-reset: cov-reset-common
@lcov --zerocounters --directory $(top_builddir)
cov-report:
@mkdir $(top_builddir)/coverage
- lcov -c -o $(top_builddir)/coverage/coverage.info -d $(top_builddir)
- genhtml --num-spaces 4 --legend \
+ lcov -c -o $(top_builddir)/coverage/coverage.info -d $(top_builddir) \
+ --rc lcov_branch_coverage=1
+ lcov -r $(top_builddir)/coverage/coverage.info '*/tests/*' \
+ -o $(top_builddir)/coverage/coverage.cleaned.info \
+ --rc lcov_branch_coverage=1
+ genhtml --num-spaces 4 --legend --branch-coverage --ignore-errors source \
-t "$(PACKAGE_STRING)" \
-o $(top_builddir)/coverage/html \
-p `readlink -m $(abs_top_srcdir)`/src \
- $(top_builddir)/coverage/coverage.info
+ $(top_builddir)/coverage/coverage.cleaned.info
@echo "Coverage Report at $(top_builddir)/coverage/html" >&2
coverage:
@$(MAKE) check
@$(MAKE) cov-report
else
-cov-reset:
-
coverage:
@echo "reconfigure with --enable-coverage"
endif
-clean-local:
- @$(MAKE) cov-reset
- rm -rf apidoc
+clean-local: cov-reset-common
+ @find $(top_builddir)/src $(top_builddir)/scripts -name "*.gcno" -delete
+ @rm -rf apidoc
+
+.PHONY: cov-reset-common cov-reset cov-report coverage apidoc