2 INCLUDES = -Isrc -Ideps/bitfield-c/src
3 CFLAGS = $(INCLUDES) -c -Wall -Werror -g -ggdb -std=gnu99 -coverage
4 LDFLAGS = -coverage -lm
10 # Guard against \r\n line endings only in Cygwin
11 OSTYPE := $(shell uname)
12 ifneq ($(OSTYPE),Darwin)
13 OSTYPE := $(shell uname -o)
14 ifeq ($(OSTYPE),Cygwin)
20 SRC = $(wildcard src/**/*.c)
21 SRC += $(wildcard deps/bitfield-c/src/**/*.c)
22 OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
23 TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
24 TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
25 TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
26 TEST_SUPPORT_OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(TEST_SUPPORT_SRC:.c=.o))
31 @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
33 @sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
35 COVERAGE_INFO_FILENAME = coverage.info
36 COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
38 @lcov --base-directory . --directory src --zerocounters -q
41 @lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
42 @lcov --remove $(COVERAGE_INFO_PATH) "$(LIBS_PATH)/bitfield-c/*" -o $(COVERAGE_INFO_PATH)
43 @genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
44 @$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
45 @echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
47 $(TEST_OBJDIR)/%.o: %.c
49 $(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
51 $(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
53 $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)