Browse Source

actual coverage reports and api docs can be build via make again ... now project name and version are taken from configure ... ahh and configure holds version information from git.

release0.1.6
Georg Hopp 12 years ago
parent
commit
f18c86461e
  1. 14
      Makefile.am
  2. 34
      Makefile.am.coverage
  3. 23
      configure.ac
  4. 17
      docs/Makefile.am
  5. 58
      tests/Makefile.am

14
Makefile.am

@ -7,6 +7,16 @@ ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = include assets certs config run
SUBDIRS = src tests
SUBDIRS = src tests docs
include $(top_srcdir)/Makefile.am.coverage
.PHONY: docs coverage-html
if HAVE_DOXYGEN
docs:
-$(MAKE) -C docs $(AM_MAKEFLAGS) -k $@
endif
if HAVE_GCOV
coverage-html:
-$(MAKE) -C tests $(AM_MAKEFLAGS) -k $@
endif

34
Makefile.am.coverage

@ -1,34 +0,0 @@
# Coverage targets
#if HAVE_GCOV
.PHONY: clean-gcda
clean-gcda:
@echo Removing old coverage results
-find -name '*.gcda' -print | xargs -r rm
.PHONY: coverage-html generate-coverage-html clean-coverage-html
coverage-html: clean-gcda
-$(MAKE) -C tests $(AM_MAKEFLAGS) -k check-build
$(MAKE) $(AM_MAKEFLAGS) init-coverage-html
-$(MAKE) $(AM_MAKEFLAGS) -k check
$(MAKE) $(AM_MAKEFLAGS) generate-coverage-html
init-coverage-html:
$(LCOV) -d $(top_builddir) -z
$(LCOV) -d $(top_builddir) -c -i -o coverage.base
generate-coverage-html:
@echo Collecting coverage data
$(LCOV) -d $(top_builddir) -c -o coverage.run --gcov-tool /usr/bin/gcov
$(LCOV) -d $(top_builddir) -a ./coverage.base -a ./coverage.run -o coverage.info
LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --branch-coverage --show-details coverage.run
clean-coverage-html: clean-gcda
-$(LCOV) --directory $(top_builddir) -z
-rm -rf coverage.info coveragereport
clean-local: clean-coverage-html
#endif # HAVE_GCOV

23
configure.ac

@ -2,13 +2,15 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT([taskrambler], [0.1.6], [Georg Hopp <georg@steffers.org>])
AC_INIT([taskrambler],
[m4_esyscmd_s([git describe --always --abbrev=0])],
[Georg Hopp <georg@steffers.org>])
LT_INIT
AM_INIT_AUTOMAKE
#AM_INIT_AUTOMAKE([subdir-objects])
#AM_SILENT_RULES([yes])
AM_SILENT_RULES([yes])
AC_COPYRIGHT([Copyright © 2013 Georg Hopp])
AC_REVISION([$Id:$])
AC_REVISION([m4_esyscmd_s([git describe --always])])
AC_CONFIG_SRCDIR([src/taskrambler.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
@ -22,9 +24,6 @@ AC_SUBST(COVERAGE_LDFLAGS)
m4_include([m4/memopt.m4])
AC_MEM_OPT
m4_include([m4/dragonegg.m4])
AC_DRAGONEGG
PWD=$(/bin/pwd)
AC_SUBST(PWD)
@ -35,6 +34,17 @@ AC_PROG_CC_C99
AC_PROG_LIBTOOL
AM_PROG_CC_C_O
# Doxygen
AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN";
then AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
fi
AM_CONDITIONAL([HAVE_DOXYGEN],
[test -n "$DOXYGEN"])
AM_COND_IF([HAVE_DOXYGEN],
[AC_CONFIG_FILES([docs/Doxyfile])])
# # Checks for libraries.
# AC_CHECK_LIB([json], [json_object_new_object], [],
# [AC_MSG_ERROR([json-c library not found], [1])])
@ -73,5 +83,6 @@ AC_CONFIG_FILES([Makefile
src/application/Makefile
src/storage/Makefile
src/user/Makefile
docs/Makefile
tests/Makefile])
AC_OUTPUT

17
docs/Makefile.am

@ -0,0 +1,17 @@
if HAVE_DOXYGEN
# directory = $(top_srcdir)/docs/man/man3/
#
# dist_man_MANS = $(directory)/man_page_1.3 $(directory)/man_page_2.3
# $(directory)/man_page_1.3: doxyfile.stamp
# $(directory)/man_page_2.3: doxyfile.stamp
.PHONY: docs
docs:
mkdir $(PACKAGE_VERSION)
$(DOXYGEN) Doxyfile
echo Timestamp > doxyfile.stamp
clean-local:
rm -rf $(top_srcdir)/docs/$(PACKAGE_VERSION)
endif

58
tests/Makefile.am

@ -47,20 +47,62 @@ SERVER = $(SOCKET) $(STREAM) \
../src/utils/signalHandling.c \
mock/mock_worker.c
AM_CFLAGS = -O0 -Wall -ggdb -I ../include -I .. -I . $(MEM_OPT_FLAGS)
AM_LDFLAGS =
if HAVE_GCOV
AM_CFLAGS += $(COVERAGE_CFLAGS)
AM_LDFLAGS += $(COVERAGE_LDFLAGS)
endif
classTest_SOURCES = $(CLASS) classTest.c
classTest_CFLAGS = -Wall -ggdb -O0 -fprofile-arcs -ftest-coverage -pg -I ../include -I .. -I .
classTest_LDFLAGS = -lgcov -pg
classTest_CFLAGS = $(AM_CFLAGS) -pg
classTest_LDFLAGS = $(AM_LDFLAGS) -pg
loggerTest_SOURCES = $(LOGGER) loggerTest.c
loggerTest_CFLAGS = -Wall -ggdb -O0 -fprofile-arcs -ftest-coverage -pg -I ../include -I .. -I .
loggerTest_LDFLAGS = -lgcov -pg
loggerTest_CFLAGS = $(AM_CFLAGS) -pg
loggerTest_LDFLAGS = $(AM_LDFLAGS) -pg
socketTest_SOURCES = $(SOCKET) socketTest.c
socketTest_CFLAGS = -Wall -ggdb -O0 -fprofile-arcs -ftest-coverage -pg -I ../include -I .. -I .
socketTest_LDFLAGS = -lgcov -pg
socketTest_CFLAGS = $(AM_CFLAGS) -pg
socketTest_LDFLAGS = $(AM_LDFLAGS) -pg
serverTest_SOURCES = $(SERVER) serverTest.c
serverTest_CFLAGS = -Wall -ggdb -O0 -fprofile-arcs -ftest-coverage -pg -I ../include -I .. -I .
serverTest_LDFLAGS = $(STREAM_OBJ) -lgcov -lcrypto -pg
serverTest_CFLAGS = $(AM_CFLAGS) -pg
serverTest_LDFLAGS = $(STREAM_OBJ) $(AM_LDFLAGS) -lcrypto -pg
EXTRA_DIST = runtest.h mock/mock_class.h mock/mock_logger.h
if HAVE_GCOV
.PHONY: clean-gcda clean-gcno coverage-html clean-coverage
cov_dir = $(top_srcdir)/tests/coverage/$(PACKAGE_VERSION)
coverage-html: clean clean-coverage check
@echo Collecting coverage data
$(LCOV) -d $(top_srcdir) -c -i -o coverage.base
$(LCOV) -d $(top_srcdir) -c -o coverage.run --gcov-tool /usr/bin/gcov
$(LCOV) -d $(top_srcdir) \
-a ./coverage.base -a ./coverage.run \
-o coverage.info
LANG=C $(GENHTML) --prefix $(top_srcdir) \
--output-directory $(cov_dir) \
--title "$(PACKAGE_NAME) $(PACKAGE_VERSION)" \
--legend --branch-coverage --show-details coverage.run
clean-coverage: clean-gcda clean-gcno
$(LCOV) -d $(top_srcdir) -z
-rm -rf coverage.info coverage.base coverage.run $(cov_dir)
clean-gcda:
@echo Removing old coverage results
-find $(top_srcdir) -name '*.gcda' -print | xargs -r rm
clean-gcno:
@echo Removing old coverage results
-find $(top_srcdir) -name '*.gcno' -print | xargs -r rm
clean-local: clean-coverage
endif # HAVE_GCOV
Loading…
Cancel
Save