]>
Commit | Line | Data |
---|---|---|
84f887bf ME |
1 | # This mimics the top-level Makefile. We do it explicitly here so that this |
2 | # Makefile can operate with or without the kbuild infrastructure. | |
3 | CC := $(CROSS_COMPILE)gcc | |
4 | ||
e53aff45 SK |
5 | ifeq (0,$(MAKELEVEL)) |
6 | OUTPUT := $(shell pwd) | |
7 | endif | |
8 | ||
d83c3ba0 ME |
9 | TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS)) |
10 | TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES)) | |
11 | ||
12 | all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) | |
13 | ||
1f87c7c1 | 14 | .ONESHELL: |
5e29a910 | 15 | define RUN_TESTS |
1f87c7c1 SK |
16 | @test_num=`echo 0`; |
17 | @echo "TAP version 13"; | |
18 | @for TEST in $(1); do \ | |
a8ba798b | 19 | BASENAME_TEST=`basename $$TEST`; \ |
1f87c7c1 SK |
20 | test_num=`echo $$test_num+1 | bc`; \ |
21 | echo "selftests: $$BASENAME_TEST"; \ | |
22 | echo "========================================"; \ | |
43c64374 LR |
23 | if [ ! -x $$BASENAME_TEST ]; then \ |
24 | echo "selftests: Warning: file $$BASENAME_TEST is not executable, correct this.";\ | |
1f87c7c1 | 25 | echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; \ |
43c64374 | 26 | else \ |
1f87c7c1 | 27 | cd `dirname $$TEST` > /dev/null; (./$$BASENAME_TEST && echo "ok 1..$$test_num selftests: $$BASENAME_TEST [PASS]") || echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; cd - > /dev/null;\ |
43c64374 | 28 | fi; \ |
5e29a910 ME |
29 | done; |
30 | endef | |
31 | ||
32 | run_tests: all | |
77d802e2 | 33 | $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_PROGS)) |
5e29a910 | 34 | |
32dcfba6 | 35 | define INSTALL_RULE |
900d65ee BJZ |
36 | @if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" != "X" ]; then \ |
37 | mkdir -p ${INSTALL_PATH}; \ | |
5fe59799 | 38 | echo "rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/"; \ |
39 | rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/; \ | |
88baa78d | 40 | fi |
41 | @if [ "X$(TEST_GEN_PROGS)$(TEST_GEN_PROGS_EXTENDED)$(TEST_GEN_FILES)" != "X" ]; then \ | |
42 | mkdir -p ${INSTALL_PATH}; \ | |
43 | echo "rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/"; \ | |
44 | rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/; \ | |
a7d0f078 | 45 | fi |
32dcfba6 ME |
46 | endef |
47 | ||
48 | install: all | |
49 | ifdef INSTALL_PATH | |
50 | $(INSTALL_RULE) | |
51 | else | |
52 | $(error Error: set INSTALL_PATH to use install) | |
53 | endif | |
54 | ||
55 | define EMIT_TESTS | |
88baa78d | 56 | @for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \ |
a8ba798b | 57 | BASENAME_TEST=`basename $$TEST`; \ |
58 | echo "(./$$BASENAME_TEST && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \ | |
32dcfba6 ME |
59 | done; |
60 | endef | |
61 | ||
62 | emit_tests: | |
63 | $(EMIT_TESTS) | |
64 | ||
df6438f9 | 65 | define CLEAN |
80d443e8 | 66 | $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN) |
df6438f9 SK |
67 | endef |
68 | ||
69 | clean: | |
70 | $(CLEAN) | |
88baa78d | 71 | |
a8ba798b | 72 | $(OUTPUT)/%:%.c |
2047f1d8 | 73 | $(LINK.c) $^ $(LDLIBS) -o $@ |
a8ba798b | 74 | |
75 | $(OUTPUT)/%.o:%.S | |
634ce97c | 76 | $(COMPILE.S) $^ -o $@ |
a8ba798b | 77 | |
78 | $(OUTPUT)/%:%.S | |
634ce97c | 79 | $(LINK.S) $^ $(LDLIBS) -o $@ |
7d758af2 | 80 | |
32dcfba6 | 81 | .PHONY: run_tests all clean install emit_tests |