Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. # SPDX-License-Identifier: GPL-2.0
  2. # Makefile for powerpc selftests
  3. # ARCH can be overridden by the user for cross compiling
  4. ARCH ?= $(shell uname -m)
  5. ARCH := $(shell echo $(ARCH) | sed -e s/ppc.*/powerpc/)
  6. ifeq ($(ARCH),powerpc)
  7. GIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown")
  8. CFLAGS := -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR)/include $(CFLAGS)
  9. export CFLAGS
  10. SUB_DIRS = alignment \
  11. benchmarks \
  12. cache_shape \
  13. copyloops \
  14. dscr \
  15. mm \
  16. nx-gzip \
  17. pmu \
  18. signal \
  19. primitives \
  20. stringloops \
  21. switch_endian \
  22. syscalls \
  23. tm \
  24. eeh \
  25. vphn \
  26. math \
  27. papr_attributes \
  28. ptrace \
  29. security \
  30. mce
  31. endif
  32. all: $(SUB_DIRS)
  33. $(SUB_DIRS):
  34. BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all
  35. include ../lib.mk
  36. override define RUN_TESTS
  37. +@for TARGET in $(SUB_DIRS); do \
  38. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  39. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
  40. done;
  41. endef
  42. override define INSTALL_RULE
  43. +@for TARGET in $(SUB_DIRS); do \
  44. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  45. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install;\
  46. done;
  47. endef
  48. emit_tests:
  49. +@for TARGET in $(SUB_DIRS); do \
  50. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  51. $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET $@;\
  52. done;
  53. override define CLEAN
  54. +@for TARGET in $(SUB_DIRS); do \
  55. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  56. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \
  57. done;
  58. rm -f tags
  59. endef
  60. tags:
  61. find . -name '*.c' -o -name '*.h' | xargs ctags
  62. .PHONY: tags $(SUB_DIRS) emit_tests