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