-
Notifications
You must be signed in to change notification settings - Fork 0
/
Mock4thewin.mk
64 lines (47 loc) · 1.7 KB
/
Mock4thewin.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
prefix = /usr/local
help:
@echo -e \
'\nInstructions available at\n\n'\
'\thttps://github.com/dan4thewin/mock4thewin\n\n'\
'To start, in the directory where you write your unit tests run:\n\n'\
'\tmake -f "$(prefix)/include/Mock4thewin.mk" setup\n\n'\
'Edit the new Makefile to suit your needs. Then run:\n\n\tmake test\n'
#------------------------------------------------------------------------
# The setup target populates the current directory with links and
# a default Makefile that includes this one.
#
symlinks = Mock4thewin.mk tap.h
setup: Makefile $(symlinks)
$(symlinks):
ln -fs "$(prefix)/include/$@" .
Makefile:
cp "$(prefix)/include/Mock4thewin-template.mk" Makefile
#------------------------------------------------------------------------
# See the make section at https://git.io/fjxVo for a description
#
TESTS += $(patsubst %.c,%,$(wildcard test-*.c))
FUNCTIONS += $(patsubst test-%,%,$(TESTS))
COMMON += tap.h
temp_src = $(patsubst %,%.c,$(FUNCTIONS))
test_obj = $(patsubst %,%.o,$(TESTS))
CFLAGS_DFLT = -std=c99 -Wall -O0 -ggdb
CFLAGS := --coverage $(or $(CFLAGS), $(CFLAGS_DFLT)) $(INCLUDE:%=-I%)
LDFLAGS += --coverage
build: $(TESTS)
test: clean-gcov clean-lcov build
unit-test-report $(TESTS)
clean-gcov:
rm -f *.gcov
lcov: test
lcov --rc lcov_branch_coverage=1 -c -d . -o - 2>&- | stitch-cov index > cov.info
genhtml -s --branch-coverage cov.info -o html
clean-lcov:
rm -fr cov.info html
clean: clean-gcov clean-lcov
rm -f index $(TESTS) $(temp_src) *.o *.gc??
index: $(or $(SOURCE), ..) Makefile
ctags-xref -R $< > $@
$(temp_src): index
show-source $(patsubst %.c,%,$@) > $@
$(test_obj): test-%.o: test-%.c %.c $(COMMON)
.PHONY: help setup build test clean-gcov lcov clean-lcov clean