Makefile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # SPDX-License-Identifier: GPL-2.0
  2. # When ARCH not overridden for crosscompiling, lookup machine
  3. ARCH ?= $(shell uname -m 2>/dev/null || echo not)
  4. ifneq (,$(filter $(ARCH),aarch64 arm64))
  5. ARM64_SUBTARGETS ?= tags signal pauth fp mte bti abi
  6. else
  7. ARM64_SUBTARGETS :=
  8. endif
  9. CFLAGS := -Wall -O2 -g
  10. # A proper top_srcdir is needed by KSFT(lib.mk)
  11. top_srcdir = $(realpath ../../../../)
  12. # Additional include paths needed by kselftest.h and local headers
  13. CFLAGS += -I$(top_srcdir)/tools/testing/selftests/
  14. CFLAGS += $(KHDR_INCLUDES)
  15. CFLAGS += -I$(top_srcdir)/tools/include
  16. export CFLAGS
  17. export top_srcdir
  18. all:
  19. @for DIR in $(ARM64_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 $(ARM64_SUBTARGETS); do \
  26. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  27. make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  28. done
  29. run_tests: all
  30. @for DIR in $(ARM64_SUBTARGETS); do \
  31. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  32. make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  33. done
  34. # Avoid any output on non arm64 on emit_tests
  35. emit_tests:
  36. @for DIR in $(ARM64_SUBTARGETS); do \
  37. BUILD_TARGET=$(OUTPUT)/$$DIR; \
  38. make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \
  39. done
  40. clean:
  41. @for DIR in $(ARM64_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