timer: Avoid infinite cycle timer on TCNT write
[simavr] / tests / Makefile
1 #
2 # This makefile takes each "at*" file, extracts it's part name
3 # And compiles it into an ELF binary.
4 # It also disassembles it for debugging purposes.
5
6 #       Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
7 #
8 #       This file is part of simavr.
9 #
10 #       simavr is free software: you can redistribute it and/or modify
11 #       it under the terms of the GNU General Public License as published by
12 #       the Free Software Foundation, either version 3 of the License, or
13 #       (at your option) any later version.
14 #
15 #       simavr is distributed in the hope that it will be useful,
16 #       but WITHOUT ANY WARRANTY; without even the implied warranty of
17 #       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 #       GNU General Public License for more details.
19 #
20 #       You should have received a copy of the GNU General Public License
21 #       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
22
23 sources         := $(wildcard at*.c)
24 simavr          = ..
25
26 IPATH           += ${simavr}/include
27 IPATH           += ${simavr}/simavr/sim
28
29 tests_src       = ${wildcard test_*.c}
30 tests           = ${patsubst %.c, ${OBJ}/%.tst, ${tests_src}}
31
32 all: obj axf tests
33
34 include ../Makefile.common
35
36 tests:  ${tests}
37         
38 axf: ${sources:.c=.axf}
39         
40
41 ${OBJ}/%.tst: tests.c %.c
42 ifeq ($(V),1)
43         $(CC) -MMD ${CPPFLAGS} ${CFLAGS} ${LFLAGS} -o $@ ${patsubst %.h,, ${^}} $(LDFLAGS)
44 else
45         @echo TST $@
46         @$(CC) -MMD ${CPPFLAGS} ${CFLAGS} ${LFLAGS} -o $@ ${patsubst %.h,, ${^}} $(LDFLAGS)
47 endif
48
49 run_tests: all
50         @export LD_LIBRARY_PATH=${simavr}/simavr/${OBJ} ;\
51         num_failed=0 ;\
52         num_run=0 ;\
53         for test in ${OBJ}/test_*.tst; do \
54             num_run=$$(($$num_run+1)) ;\
55             if ! $$test; then \
56                         echo "$$test returned with exit value $$?." ;\
57                         num_failed=$$(($$num_failed+1)) ;\
58             fi ;\
59         done ;\
60         echo "Tests run: $$num_run  Successes: $$(($$num_run-$num_failed)) Failures: $$num_failed"
61
62 clean: clean-${OBJ}
63         rm -f *.axf