Makefiles in std/c/: Use `$@` instead of hardcoded targets
[sunny256-utils.git] / Lib / std / c / src / Makefile.std-test
blobe20bd5dbba6037243dd605e86d9560e2815a2f45
1 # Makefile.std-test
2 # File ID: 58135bdc-83bb-11e9-8b21-4f45262dc9b5
4 TMP=compile.tmp
5 TMPUUIDS=uuids.tmp
7 .PHONY: all
8 all:
9         cd t && $(MAKE) -f Makefile.std-test $@
11 .PHONY: clean
12 clean:
13         $(MAKE) -f Makefile clean
14         rm -f STDexecDTS STDexecDTS.o STDexecDTS.c STDexecDTS.h selftest.o
15         rm -f STDprognameDTS
16         rm -f *.gcda *.gcno *.gcov
17         rm -f version.h
18         rm -rf $(TMP) $(TMPUUIDS)
19         cd t && $(MAKE) -f Makefile.std-test $@
21 .PHONY: test
22 test:
23         rm -f STDexecDTS.c STDexecDTS.h
24         ln -sf std.h STDexecDTS.h
25         ln -sf std.c STDexecDTS.c
26         rm -f STDprognameDTS
27         ln -sf STDexecDTS STDprognameDTS
28         $(MAKE) clean
29         $(MAKE) testsrc
30         $(MAKE)
31         ./STDexecDTS
32         rm -rf $(TMP)
33         git init $(TMP)
34         test -d $(TMP)/.git
35         cd $(TMP) && git commit --allow-empty -m "Empty start commit"
36         mkdir -p $(TMPUUIDS) $(TMP)
37         cd $(TMP) \
38         && SUUID_LOGDIR=$$(pwd)/../$(TMPUUIDS) \
39            ../../../../../create_cproject jada
40         cd $(TMP) && git add .gitignore COPYING Makefile README.md src
41         cd $(TMP) && git commit -m "create_cproject jada"
42         cd $(TMP) && test -z "$$(git ls-files --exclude-standard -o)"
43         cd $(TMP)/src && $(MAKE)
44         cd $(TMP)/src && $(MAKE) test
45         cd $(TMP)/src && $(MAKE) testall
46         cd $(TMP)/src && ./jada --version | grep "has NDEBUG" \
47         && exit 1 \
48         || exit 0
49         cd $(TMP) && test -z "$$(git ls-files --exclude-standard -o)"
50         if valgrind --version 2>/dev/null | grep -q ^valgrind; then \
51                 $(MAKE) -f Makefile.std-test test-valgrind || exit 1; \
52         else \
53                 echo "# Skip Valgrind tests, it's not installed here"; \
54                 cd $(TMP)/src && $(MAKE) clean test NDEBUG=1 || exit 1; \
55         fi
56         cd $(TMP)/src && ./jada --version | grep -q "has NDEBUG"
57         if cc --version | grep -q "Free Software Foundation"; then \
58                 $(MAKE) -f Makefile.std-test test-prof || exit 1; \
59         else \
60                 echo "# Skip profiling tests, no GNU cc here"; \
61         fi
62         cd $(TMP)/src && $(MAKE) clean all UNUSED=1
63         cd $(TMP)/src && ./jada --version | grep -q "has UNUSED"
64         if gcov --version 2>/dev/null | grep -q ^gcov; then \
65                 $(MAKE) -f Makefile.std-test test-gcov || exit 1; \
66         else \
67                 echo "# gcov(1) not found, skip gcov tests"; \
68         fi
69         cd t && $(MAKE) -f Makefile.std-test test
70         $(MAKE) -f Makefile clean test
72 .PHONY: test-gcov
73 test-gcov:
74         cd $(TMP)/src && $(MAKE) tlok
75         cd $(TMP)/src && $(MAKE) gcov
76         test -e $(TMP)/src/jada
77         test -e $(TMP)/src/jada.c.gcov
78         test -e $(TMP)/src/jada.gcda
79         test -e $(TMP)/src/jada.gcno
80         test -e $(TMP)/src/selftest.c.gcov
81         test -e $(TMP)/src/selftest.gcda
82         test -e $(TMP)/src/selftest.gcno
83         cd $(TMP)/src && $(MAKE) gcov 2>&1 | grep -q '^2 untested lines'
84         cd $(TMP)/src && $(MAKE) clean test gcov
85         cd $(TMP)/src && $(MAKE) gcov-cmt
86         cd $(TMP)/src && test "$$(git diff HEAD | wc -l)" = "20"
87         cd $(TMP)/src && $(MAKE) gcov-cmt-clean
89 .PHONY: test-prof
90 test-prof:
91         cd $(TMP)/src && $(MAKE) clean all PROF=1
92         cd $(TMP)/src && ./jada --version | grep -q "has PROF"
93         test -e $(TMP)/src/gmon.out
94         cd $(TMP)/src && $(MAKE) test
95         test -e $(TMP)/src/t/gmon.out
97 .PHONY: test-valgrind
98 test-valgrind:
99         cd $(TMP)/src && $(MAKE) clean valgrind
100         cd $(TMP)/src && $(MAKE) clean valgrind NDEBUG=1