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. 3CC := $(CROSS_COMPILE)gcc 4 5define RUN_TESTS 6 @for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \ 7 BASENAME_TEST=`basename $$TEST`; \ 8 cd `dirname $$TEST`; (./$$BASENAME_TEST && echo "selftests: $$BASENAME_TEST [PASS]") || echo "selftests: $$BASENAME_TEST [FAIL]"; cd -;\ 9 done; 10endef 11 12run_tests: all 13 $(RUN_TESTS) 14 15define INSTALL_RULE 16 @if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" != "X" ]; then \ 17 mkdir -p ${INSTALL_PATH}; \ 18 echo "rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/"; \ 19 rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/; \ 20 fi 21 @if [ "X$(TEST_GEN_PROGS)$(TEST_GEN_PROGS_EXTENDED)$(TEST_GEN_FILES)" != "X" ]; then \ 22 mkdir -p ${INSTALL_PATH}; \ 23 echo "rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/"; \ 24 rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/; \ 25 fi 26endef 27 28install: all 29ifdef INSTALL_PATH 30 $(INSTALL_RULE) 31else 32 $(error Error: set INSTALL_PATH to use install) 33endif 34 35define EMIT_TESTS 36 @for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \ 37 BASENAME_TEST=`basename $$TEST`; \ 38 echo "(./$$BASENAME_TEST && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \ 39 done; 40endef 41 42emit_tests: 43 $(EMIT_TESTS) 44 45TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS)) 46TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES)) 47 48all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) 49 50clean: 51 $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN) 52 53$(OUTPUT)/%:%.c 54 $(CC) $(CFLAGS) $(LDFLAGS) $(LDLIBS) $< -o $@ 55 56$(OUTPUT)/%.o:%.S 57 $(CC) $(ASFLAGS) -c $< -o $@ 58 59$(OUTPUT)/%:%.S 60 $(CC) $(ASFLAGS) $< -o $@ 61 62.PHONY: run_tests all clean install emit_tests 63