Makefile 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. pmu \
  17. signal \
  18. primitives \
  19. stringloops \
  20. switch_endian \
  21. syscalls \
  22. tm \
  23. vphn \
  24. math \
  25. ptrace
  26. endif
  27. all: $(SUB_DIRS)
  28. $(SUB_DIRS):
  29. BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all
  30. include ../lib.mk
  31. override define RUN_TESTS
  32. @for TARGET in $(SUB_DIRS); do \
  33. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  34. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
  35. done;
  36. endef
  37. override define INSTALL_RULE
  38. @for TARGET in $(SUB_DIRS); do \
  39. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  40. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install;\
  41. done;
  42. endef
  43. override define EMIT_TESTS
  44. @for TARGET in $(SUB_DIRS); do \
  45. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  46. $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests;\
  47. done;
  48. endef
  49. override define CLEAN
  50. @for TARGET in $(SUB_DIRS); do \
  51. BUILD_TARGET=$(OUTPUT)/$$TARGET; \
  52. $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \
  53. done;
  54. rm -f tags
  55. endef
  56. tags:
  57. find . -name '*.c' -o -name '*.h' | xargs ctags
  58. .PHONY: tags $(SUB_DIRS)