mirror of https://github.com/rusefi/isotp-c.git
Compile with coverage calculation, put objects in a subdir.
This commit is contained in:
parent
64af0554cb
commit
ca2035c4a4
|
@ -2,3 +2,5 @@
|
|||
.DS_Store
|
||||
*~
|
||||
*.bin
|
||||
*.gcno
|
||||
build
|
||||
|
|
34
Makefile
34
Makefile
|
@ -1,10 +1,11 @@
|
|||
CC = gcc
|
||||
INCLUDES = -Isrc -Ideps/bitfield-c/src
|
||||
CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb -std=c99
|
||||
LDFLAGS =
|
||||
CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb -std=gnu++0x -coverage
|
||||
LDFLAGS = -coverage -lm
|
||||
LDLIBS = -lcheck
|
||||
|
||||
TEST_DIR = tests
|
||||
TEST_OBJDIR = build
|
||||
|
||||
# Guard against \r\n line endings only in Cygwin
|
||||
OSTYPE := $(shell uname)
|
||||
|
@ -15,24 +16,41 @@ ifneq ($(OSTYPE),Darwin)
|
|||
endif
|
||||
endif
|
||||
|
||||
LIBS_PATH = deps
|
||||
SRC = $(wildcard src/**/*.c)
|
||||
SRC += $(wildcard deps/bitfield-c/src/**/*.c)
|
||||
OBJS = $(SRC:.c=.o)
|
||||
OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
|
||||
TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
|
||||
TESTS=$(patsubst %.c,%.bin,$(TEST_SRC))
|
||||
TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
|
||||
TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
|
||||
TEST_SUPPORT_OBJS = $(TEST_SUPPORT_SRC:.c=.o)
|
||||
TEST_SUPPORT_OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(TEST_SUPPORT_SRC:.c=.o))
|
||||
|
||||
all: $(OBJS)
|
||||
|
||||
test: $(TESTS)
|
||||
@set -o $(TEST_SET_OPTS) >/dev/null 2>&1
|
||||
@export SHELLOPTS
|
||||
@sh runtests.sh $(TEST_DIR)
|
||||
@sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
|
||||
|
||||
$(TEST_DIR)/%.bin: $(TEST_DIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
|
||||
COVERAGE_INFO_FILENAME = coverage.info
|
||||
COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
|
||||
coverage:
|
||||
@lcov --base-directory . --directory src --zerocounters -q
|
||||
@make clean
|
||||
@make test
|
||||
@lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
|
||||
@lcov --remove $(COVERAGE_INFO_PATH) "$(LIBS_PATH)/bitfield-c/*" -o $(COVERAGE_INFO_PATH)
|
||||
@genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
|
||||
@$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
|
||||
@echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
|
||||
|
||||
$(TEST_OBJDIR)/%.o: %.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
|
||||
|
||||
$(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
|
||||
|
||||
clean:
|
||||
rm -rf **/*.o $(TEST_DIR)/*.bin
|
||||
rm -rf $(TEST_OBJDIR)
|
||||
|
|
Loading…
Reference in New Issue