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