File tree 1 file changed +31
-29
lines changed
1 file changed +31
-29
lines changed Original file line number Diff line number Diff line change 3
3
# # general makefile
4
4
# #
5
5
6
- SRC = $(shell find exercises -name "* .c")
7
- TEST_SRC = $(shell find tests -name "* .c")
8
- OBJ = $(SRC:.c=.o )
9
- TEST_OBJ = $(TEST_SRC:.c=.o )
10
- COV = ./*.gcda ./*.gcno
6
+ .SUFFIXES : .o
11
7
12
- NAME = superlib.a
13
- TEST_FILE_NAME =tests.out
8
+ CC ?= gcc
14
9
15
- all : $(NAME )
10
+ SRC := $(shell find exercises -name "* .c")
11
+ TEST_SRC := $(shell find tests -name "* .c")
16
12
17
- $(NAME ) : $(OBJ )
18
- ar rc $(NAME ) $(OBJ )
19
- echo " Library compiled successfully"
13
+ OBJ := $(SRC:.c=.o )
14
+ TEST_OBJ := $(TEST_SRC:.c=.o )
20
15
16
+ NAME := superlib.a
17
+ TEST_FILENAME := tests.out
18
+
19
+ .PHONY : all
20
+ all : $(NAME )
21
+
22
+ $(NAME ) : $(OBJ )
23
+ $(AR ) rc $@ $^
24
+
25
+ .PHONY : clean
21
26
clean :
22
- rm -f $(OBJ )
23
- echo " Cleaned .o"
27
+ $(RM ) $(OBJ ) $(TEST_OBJ )
24
28
29
+ .PHONY : fclean
25
30
fclean : clean
26
- rm -f $(NAME )
27
- echo " Cleaned '$( NAME) '"
28
- rm -f $(TEST_FILE_NAME )
29
- rm -f $(TEST_OBJ )
30
- rm -rf * .gcno * .gcda
31
- echo " Cleaned '$( TEST_FILE_NAME) ' binary & residual files"
31
+ $(RM ) $(NAME ) $(TEST_FILENAME )
32
+ $(RM ) $(wildcard $(TEST_FILENAME ) -* .gc??) $(TEST_SRC:.c=.gcno )
32
33
34
+ .PHONY : re
35
+ .NOTPARALLEL : re
33
36
re : fclean all
34
37
35
- test : $(TEST_OBJ )
36
- gcc -fprofile-arcs -ftest-coverage -o $(TEST_FILE_NAME ) $(TEST_OBJ ) $(SRC ) -lcriterion
38
+ $(TEST_FILENAME ) : CFLAGS += -fprofile-arcs -ftest-coverage
39
+ $(TEST_FILENAME ) : $(TEST_OBJ ) $(SRC )
40
+ $(CC ) $(CFLAGS ) -o $@ $^ -lcriterion
37
41
38
- run : fclean test
39
- ./$(TEST_FILE_NAME ) --verbose
42
+ .PHONY : run
43
+ .NOTPARALLEL : run
44
+ run : fclean $(TEST_FILENAME )
45
+ ./$(TEST_FILENAME ) --verbose
40
46
41
- runc : test
47
+ .PHONY : runc
48
+ runc : run
42
49
gcovr -e tests
43
50
gcovr -e tests -bu
44
-
45
- norm :
46
- ./csc.sh exercises .
47
-
48
- .PHONY : all clean fclean re test run runc norm
You can’t perform that action at this time.
0 commit comments