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