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 10GIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown") 11 12CFLAGS := -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR)/include $(CFLAGS) 13 14export CFLAGS 15 16SUB_DIRS = alignment \ 17 benchmarks \ 18 cache_shape \ 19 copyloops \ 20 dscr \ 21 mm \ 22 nx-gzip \ 23 pmu \ 24 signal \ 25 primitives \ 26 stringloops \ 27 switch_endian \ 28 syscalls \ 29 tm \ 30 eeh \ 31 vphn \ 32 math \ 33 ptrace \ 34 security \ 35 mce 36 37endif 38 39all: $(SUB_DIRS) 40 41$(SUB_DIRS): 42 BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all 43 44include ../lib.mk 45 46override define RUN_TESTS 47 @for TARGET in $(SUB_DIRS); do \ 48 BUILD_TARGET=$(OUTPUT)/$$TARGET; \ 49 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\ 50 done; 51endef 52 53override define INSTALL_RULE 54 @for TARGET in $(SUB_DIRS); do \ 55 BUILD_TARGET=$(OUTPUT)/$$TARGET; \ 56 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install;\ 57 done; 58endef 59 60override define EMIT_TESTS 61 @for TARGET in $(SUB_DIRS); do \ 62 BUILD_TARGET=$(OUTPUT)/$$TARGET; \ 63 $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests;\ 64 done; 65endef 66 67override define CLEAN 68 @for TARGET in $(SUB_DIRS); do \ 69 BUILD_TARGET=$(OUTPUT)/$$TARGET; \ 70 $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \ 71 done; 72 rm -f tags 73endef 74 75tags: 76 find . -name '*.c' -o -name '*.h' | xargs ctags 77 78.PHONY: tags $(SUB_DIRS) 79