-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile.test
59 lines (46 loc) · 1.58 KB
/
Makefile.test
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
test1 = test/test_tailq
test2 = test/test_tcp
test3 = test/test_read_from_file
red=\e[31m
normal=\e[0m
green=\e[32m
yellow=\e[33m
########################## TEST1 #################################
$(test1)_src = test/tailq/tailq.c
$(test1)_inc = -I$(shell pwd)
$(test1)_OBJS := $(patsubst %,$(OBJ_PATH)%,$($(test1)_src:.c=.o))
$(test1)_DEPS := $(patsubst %,$(OBJ_PATH)%,$($(test1)_src:.c=.d))
$(test1): $($(test1)_OBJS)
@mkdir -p build
@$(CC) $(CFLAGS) $($(test1)_OBJS) -o $(test1) $(LDFLAGS)
###########################################################
########################## TEST2 #################################
$(test2)_src = test/all_tests/all_tests.c \
test/all_tests/read_from_file.c
$(test2)_inc = -I$(shell pwd)
$(test2)_OBJS := $(patsubst %,$(OBJ_PATH)%,$($(test2)_src:.c=.o))
$(test2)_DEPS := $(patsubst %,$(OBJ_PATH)%,$($(test2)_src:.c=.d))
$(test2): $($(test2)_OBJS)
@mkdir -p build
@$(CC) $(CFLAGS) $($(test2)_OBJS) -o $(test2) $(LDFLAGS)
###########################################################
test: start-test $(test1) $(test2) post-test
clean-test:
$(info [Cleaning])
@rm -rf build $(test1) $(test2)
start-test:
$(info ========= Build Test =========)
$(info [Target] $(test1) $(test2))
$(info ==============================)
define run-test
@printf '$(green)\n%s\n$(normal)' "[Running] $(1)"
@./$(1)
@printf '$(green)\n%s\n$(normal)' "[Finished] $(1)"
endef
post-test:
$(info [Generate] $(test1) $(test2))
@echo "Done."
@echo "Running tests..."
$(call run-test,$(test1))
$(call run-test,$(test2))
-include $($(test1)_DEPS) $($(test2)_DEPS) $($(test3)_DEPS)