Makefile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # SPDX-License-Identifier: GPL-2.0
  2. # Originally tools/testing/arm64/Makefile
  3. # When ARCH not overridden for crosscompiling, lookup machine
  4. ARCH ?= $(shell uname -m 2>/dev/null || echo not)
  5. ifneq (,$(filter $(ARCH),riscv))
  6. RISCV_SUBTARGETS ?= abi hwprobe mm sigreturn vector cfi
  7. else
  8. RISCV_SUBTARGETS :=
  9. endif
  10. CFLAGS := -Wall -O2 -g
  11. # A proper top_srcdir is needed by KSFT(lib.mk)
  12. top_srcdir = $(realpath ../../../../)
  13. # Additional include paths needed by kselftest.h and local headers
  14. CFLAGS += -I$(top_srcdir)/tools/testing/selftests/
  15. CFLAGS += $(KHDR_INCLUDES)
  16. export CFLAGS
  17. export top_srcdir
  18. all:
  19. @for DIR in $(RISCV_SUBTARGETS); do \
  20. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  21. mkdir -p $$BUILD_TARGET; \
  22. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  23. done
  24. install: all
  25. @for DIR in $(RISCV_SUBTARGETS); do \
  26. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  27. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  28. done
  29. run_tests: all
  30. @for DIR in $(RISCV_SUBTARGETS); do \
  31. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  32. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  33. done
  34. # Avoid any output on non riscv on emit_tests
  35. emit_tests:
  36. @for DIR in $(RISCV_SUBTARGETS); do \
  37. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  38. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  39. done
  40. clean:
  41. @for DIR in $(RISCV_SUBTARGETS); do \
  42. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  43. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  44. done
  45. .PHONY: all clean install run_tests emit_tests