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