1263646SbaptACLOCAL_AMFLAGS = -I m4 2279549SbaptEXTRA_DIST = uthash klib README.md 3263646Sbapt 4263646Sbaptpkgconfigdir = $(libdir)/pkgconfig 5263646Sbaptpkgconfig_DATA = libucl.pc 6263646Sbapt 7275223Sbaptif LUA_SUB 8275223Sbapt LUA_SUBDIR = lua 9275223Sbaptendif 10275223Sbapt 11298166SbaptCOVERAGE_INFO_FILE = $(top_builddir)/coverage.info 12298166SbaptCOVERAGE_REPORT_DIR = $(top_builddir)/coverage 13298166Sbapt 14298166Sbapt.PHONY = coverage-requirement-check clean-coverage-report 15298166Sbapt 16298166Sbaptcoverage-requirement-check: 17298166Sbapt @if test ! -e $(GCOV); then \ 18298166Sbapt echo "Cannot find $(GCOV). Please install gcov."; \ 19298166Sbapt exit 1; \ 20298166Sbapt fi 21298166Sbapt 22298166Sbaptcoverage: coverage-requirement-check clean-coverage coverage-build coverage-check coverage-report 23298166Sbapt @echo "Please execute 'make clean' before 'make' or 'make check' to remove instrumented object files(compiled with -O0 etc.). Note that 'make clean' also remove coverage data." 24298166Sbapt 25298166Sbaptcoverage-build: coverage-requirement-check 26298166Sbapt @if test `find $(top_builddir) -name "*.gcno" | wc -l` -eq 0; then \ 27298166Sbapt echo "Start to remove old non-instrumented object files..."; \ 28298166Sbapt $(MAKE) $(AM_MAKEFLAGS) clean; \ 29298166Sbapt echo "Successfully removed old non-instrumented object files."; \ 30298166Sbapt fi 31298166Sbapt @echo "Start to build libraries with coverage options..." 32298166Sbapt $(MAKE) $(AM_MAKEFLAGS) \ 33298166Sbapt CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \ 34298166Sbapt CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \ 35298166Sbapt LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \ 36298166Sbapt LIBS="$(LIBS) $(COVERAGE_LIBS)" 37298166Sbapt @echo "Successfully built libraries with coverage options." 38298166Sbapt 39298166Sbaptcoverage-check: coverage-requirement-check 40298166Sbapt @echo "Start to run tests with instrumented libraries..." 41298166Sbapt $(MAKE) $(AM_MAKEFLAGS) check \ 42298166Sbapt CFLAGS="$(CFLAGS) $(COVERAGE_CFLAGS) $(COVERAGE_OPTFLAGS)" \ 43298166Sbapt CXXFLAGS="$(CXXFLAGS) $(COVERAGE_CXXFLAGS) $(COVERAGE_OPTFLAGS)" \ 44298166Sbapt LDFLAGS="$(LDFLAGS) $(COVERAGE_LDFLAGS)" \ 45298166Sbapt LIBS="$(LIBS) $(COVERAGE_LIBS)" 46298166Sbapt @echo "Successfully run tests with instrumented libraries." 47298166Sbapt 48298166Sbaptcoverage-lcov: coverage-check coverage-requirement-check 49298166Sbapt $(LCOV) --capture \ 50298166Sbapt --directory "$(top_builddir)/" \ 51298166Sbapt --output-file $(COVERAGE_INFO_FILE) \ 52298166Sbapt --gcov-tool $(GCOV) \ 53298166Sbapt --compat-libtool --checksum 54298166Sbapt $(LCOV) --extract $(COVERAGE_INFO_FILE) `pwd`/src/ucl_\* \ 55298166Sbapt --output-file $(COVERAGE_INFO_FILE) 56298166Sbapt 57298166Sbaptcoverage-report: coverage-lcov 58298166Sbapt @echo "Start to create coverage reports..." 59298166Sbapt $(GENHTML) --prefix "$(top_srcdir)" \ 60298166Sbapt --output-directory $(COVERAGE_REPORT_DIR) \ 61298166Sbapt --title $(PACKAGE_NAME) \ 62298166Sbapt --legend --show-details \ 63298166Sbapt $(GENHTML_OPTIONS) \ 64298166Sbapt $(COVERAGE_INFO_FILE) 65298166Sbapt @echo "Successfully created coverage reports into $(COVERAGE_REPORT_DIR) directory." 66298166Sbapt 67298166Sbaptclean-coverage-report: 68298166Sbapt -rm -rf $(COVERAGE_INFO_FILE) 69298166Sbapt -rm -rf $(COVERAGE_REPORT_DIR) 70298166Sbapt 71298166Sbaptclean-coverage: clean-coverage-report 72298166Sbapt -$(LCOV) --gcov-tool $(GCOV) --zerocounters --directory $(top_builddir) 73298166Sbapt @if xargs --version 2>/dev/null; then \ 74298166Sbapt find $(top_builddir) -name "*.gcno" | xargs --no-run-if-empty rm; \ 75298166Sbapt else \ 76298166Sbapt find $(top_builddir) -name "*.gcno" | xargs rm; \ 77298166Sbapt fi 78298166Sbapt 79298166Sbaptclean-local: clean-coverage 80298166Sbapt 81298166SbaptSUBDIRS = src tests utils doc $(LUA_SUBDIR) 82