Makefile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # Convenience defines that can be used by individual tests in makefiles/
  2. export UNITTEST_BUILD_DIR = build
  3. export PROJECT_ROOT_DIR := $(abspath ..)
  4. export UNITTEST_ROOT := $(abspath .)
  5. export PROJECT_SRC_DIR := $(PROJECT_ROOT_DIR)/src
  6. export UNITTEST_SRC_DIR := $(UNITTEST_ROOT)/src
  7. export UNITTEST_MAKEFILES_DIR := $(UNITTEST_ROOT)
  8. export CPPUTEST_MAKFILE_INFRA := $(UNITTEST_ROOT)/MakefileWorkerOverrides.mk
  9. export INCLUDE_DIRS=$(PROJECT_ROOT_DIR)/includes
  10. $(info $(CPPUTEST_MAKFILE_INFRA))
  11. # Collects all the Makefile_*.mk in this directory and then invokes them using
  12. # recursive make.
  13. # Allows filtering by setting `UNITTEST_MAKEFILE_FILTER` to a wildcard filter.
  14. UNITTEST_MAKEFILE_FILTER ?= mk
  15. UNITTEST_MAKEFILES := $(wildcard $(UNITTEST_MAKEFILES_DIR)/src*.$(UNITTEST_MAKEFILE_FILTER))
  16. export UNITTEST_EXTRA_INC_PATHS += \
  17. -I$(PROJECT_ROOT_DIR)
  18. # Run the test on all Makesfiles found
  19. all: $(UNITTEST_MAKEFILES)
  20. compile: CPPUTEST_BUILD_RULE=start
  21. compile: $(UNITTEST_MAKEFILES)
  22. LCOV_INFO_FILE = $(UNITTEST_BUILD_DIR)/lcov.info
  23. lcov: $(UNITTEST_MAKEFILES)
  24. lcov --base-directory . --directory . -c -o $(LCOV_INFO_FILE) --exclude "*cpputest/*" --exclude "*tests/*"
  25. genhtml -o test_coverage -t "coverage" --num-spaces 4 $(LCOV_INFO_FILE) -o $(UNITTEST_BUILD_DIR)/test_coverage/
  26. $(UNITTEST_MAKEFILES):
  27. $(MAKE) -f $@ $(CPPUTEST_BUILD_RULE)
  28. clean:
  29. rm -rf $(UNITTEST_BUILD_DIR)
  30. .PHONY: all clean $(UNITTEST_MAKEFILES)