DAB RC3 Fixes follows appfw API break.
[apps/low-level-can-service.git] / libs / bitfield-c / Makefile
1 CC = gcc
2 INCLUDES = -Isrc
3 CFLAGS = $(INCLUDES) -c -Wall -Werror -g -ggdb -coverage
4 LDFLAGS = -coverage -lm
5 LDLIBS = -lcheck
6
7 TEST_DIR = tests
8 TEST_OBJDIR = build
9
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)
15                 TEST_SET_OPTS = igncr
16         endif
17 endif
18
19 SRC = $(wildcard src/**/*.c)
20 OBJS = $(SRC:.c=.o)
21 OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
22 TEST_SRC = $(wildcard $(TEST_DIR)/*_tests.c)
23 TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
24
25 all: $(OBJS)
26
27 test: $(TESTS)
28         @set -o $(TEST_SET_OPTS) >/dev/null 2>&1
29         @export SHELLOPTS
30         @sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
31
32 COVERAGE_INFO_FILENAME = coverage.info
33 COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
34 coverage:
35         @lcov --base-directory . --directory $(TEST_OBJDIR) --zerocounters -q
36         @make clean
37         @make test
38         @lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
39         @lcov --remove $(COVERAGE_INFO_PATH) "/usr/*" -o $(COVERAGE_INFO_PATH)
40         @genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
41         @$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
42         @echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
43
44 $(TEST_OBJDIR)/%.o: %.c
45         @mkdir -p $(dir $@)
46         $(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
47
48 $(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
49         @mkdir -p $(dir $@)
50         $(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
51
52 clean:
53         rm -rf $(TEST_OBJDIR)