-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutest.mk
45 lines (32 loc) · 1.11 KB
/
utest.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
UTEST_DEPS?=
UTEST_TEST_DIR?=tests
UTEST_DIR?=$(UTEST_TEST_DIR)/utest
UTEST_BIN?=$(UTEST_TEST_DIR)/test
UTEST_VERSION?=master
UTEST_TEST_FILES=$(shell find $(UTEST_TEST_DIR) -not -regex '.*$(UTEST_DIR)/.*' -name '*.c')
UTEST_TEST_OBJ=$(patsubst %.c,%.o, $(UTEST_TEST_FILES))
_UTEST_COMPILE_DEPS=$(patsubst %.h,, $(UTEST_DEPS)) $(UTEST_TEST_DIR)/utest.o
test: $(UTEST_BIN)
@./$(UTEST_BIN)
$(UTEST_BIN): $(_UTEST_COMPILE_DEPS) $(UTEST_TEST_OBJ)
$(LINK.c) $(OUTPUT_OPTION) $^
$(UTEST_TEST_OBJ): $(UTEST_TEST_FILES) $(UTEST_TEST_DIR)/utest.o
# Build the library
$(UTEST_TEST_DIR)/utest.o: $(UTEST_DIR)/utest.c
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(UTEST_DIR)/utest.c: utest_install
utest_clean:
$(RM) $(UTEST_BIN) $(UTEST_TEST_DIR)/*.o
utest_install:
@if [ ! -d $(UTEST_DIR) ]; then \
git clone --branch $(UTEST_VERSION) --depth 1 \
'https://github.com/harrybrwn/utest.git' \
$(UTEST_DIR) ;\
fi
utest_remove:
$(RM) -r $(UTEST_DIR)
utest_update: utest_remove utest_install
.PHONY: test utest_clean utest_install utest_remove utest_update
# Add utest_clean to clean
clean: utest_clean
# vim: filetype=make noexpandtab