| # SPDX-License-Identifier: GPL-2.0 |
| # Makefile for powerpc selftests |
| |
| # ARCH can be overridden by the user for cross compiling |
| ARCH ?= $(shell uname -m) |
| ARCH := $(shell echo $(ARCH) | sed -e s/ppc.*/powerpc/) |
| |
| ifeq ($(ARCH),powerpc) |
| |
| SUB_DIRS = alignment \ |
| benchmarks \ |
| cache_shape \ |
| copyloops \ |
| dexcr \ |
| dscr \ |
| mm \ |
| nx-gzip \ |
| pmu \ |
| signal \ |
| primitives \ |
| stringloops \ |
| switch_endian \ |
| syscalls \ |
| tm \ |
| eeh \ |
| vphn \ |
| math \ |
| papr_attributes \ |
| papr_vpd \ |
| papr_sysparm \ |
| ptrace \ |
| security \ |
| mce |
| |
| endif |
| |
| all: $(SUB_DIRS) |
| |
| $(SUB_DIRS): |
| BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all |
| |
| include ../lib.mk |
| include ./flags.mk |
| |
| override define RUN_TESTS |
| +@for TARGET in $(SUB_DIRS); do \ |
| BUILD_TARGET=$(OUTPUT)/$$TARGET; \ |
| $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\ |
| done; |
| endef |
| |
| override define INSTALL_RULE |
| +@for TARGET in $(SUB_DIRS); do \ |
| BUILD_TARGET=$(OUTPUT)/$$TARGET; \ |
| $(MAKE) OUTPUT=$$BUILD_TARGET INSTALL_PATH=$$INSTALL_PATH/$$TARGET -C $$TARGET install;\ |
| done; |
| endef |
| |
| emit_tests: |
| +@for TARGET in $(SUB_DIRS); do \ |
| BUILD_TARGET=$(OUTPUT)/$$TARGET; \ |
| $(MAKE) OUTPUT=$$BUILD_TARGET COLLECTION=$(COLLECTION)/$$TARGET -s -C $$TARGET $@;\ |
| done; |
| |
| override define CLEAN |
| +@for TARGET in $(SUB_DIRS); do \ |
| BUILD_TARGET=$(OUTPUT)/$$TARGET; \ |
| $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \ |
| done; |
| rm -f tags |
| endef |
| |
| tags: |
| find . -name '*.c' -o -name '*.h' | xargs ctags |
| |
| .PHONY: tags $(SUB_DIRS) emit_tests |