lib.mk 830 B

1234567891011121314151617181920212223242526272829303132333435
  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. define RUN_TESTS
  5. @for TEST in $(TEST_PROGS); do \
  6. (./$$TEST && echo "selftests: $$TEST [PASS]") || echo "selftests: $$TEST [FAIL]"; \
  7. done;
  8. endef
  9. run_tests: all
  10. $(RUN_TESTS)
  11. define INSTALL_RULE
  12. mkdir -p $(INSTALL_PATH)
  13. install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)
  14. endef
  15. install: all
  16. ifdef INSTALL_PATH
  17. $(INSTALL_RULE)
  18. else
  19. $(error Error: set INSTALL_PATH to use install)
  20. endif
  21. define EMIT_TESTS
  22. @for TEST in $(TEST_PROGS); do \
  23. echo "(./$$TEST && echo \"selftests: $$TEST [PASS]\") || echo \"selftests: $$TEST [FAIL]\""; \
  24. done;
  25. endef
  26. emit_tests:
  27. $(EMIT_TESTS)
  28. .PHONY: run_tests all clean install emit_tests