77 lines · plain
1# SPDX-License-Identifier: GPL-2.02# Makefile for powerpc selftests3 4# ARCH can be overridden by the user for cross compiling5ARCH ?= $(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 mce34 35endif36 37all: $(SUB_DIRS)38 39$(SUB_DIRS):40 BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all41 42include ../lib.mk43include ./flags.mk44 45override define RUN_TESTS46 +@for TARGET in $(SUB_DIRS); do \47 BUILD_TARGET=$(OUTPUT)/$$TARGET; \48 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\49 done;50endef51 52override define INSTALL_RULE53 +@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;57endef58 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 CLEAN66 +@for TARGET in $(SUB_DIRS); do \67 BUILD_TARGET=$(OUTPUT)/$$TARGET; \68 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \69 done;70 rm -f tags71endef72 73tags:74 find . -name '*.c' -o -name '*.h' | xargs ctags75 76.PHONY: tags $(SUB_DIRS) emit_tests77