162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci# Makefile for powerpc selftests
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci# ARCH can be overridden by the user for cross compiling
562306a36Sopenharmony_ciARCH ?= $(shell uname -m)
662306a36Sopenharmony_ciARCH := $(shell echo $(ARCH) | sed -e s/ppc.*/powerpc/)
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciifeq ($(ARCH),powerpc)
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciGIT_VERSION = $(shell git describe --always --long --dirty || echo "unknown")
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciCFLAGS := -std=gnu99 -O2 -Wall -Werror -DGIT_VERSION='"$(GIT_VERSION)"' -I$(CURDIR)/include $(CFLAGS)
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciexport CFLAGS
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciSUB_DIRS = alignment		\
1762306a36Sopenharmony_ci	   benchmarks		\
1862306a36Sopenharmony_ci	   cache_shape		\
1962306a36Sopenharmony_ci	   copyloops		\
2062306a36Sopenharmony_ci	   dexcr		\
2162306a36Sopenharmony_ci	   dscr			\
2262306a36Sopenharmony_ci	   mm			\
2362306a36Sopenharmony_ci	   nx-gzip		\
2462306a36Sopenharmony_ci	   pmu			\
2562306a36Sopenharmony_ci	   signal		\
2662306a36Sopenharmony_ci	   primitives		\
2762306a36Sopenharmony_ci	   stringloops		\
2862306a36Sopenharmony_ci	   switch_endian	\
2962306a36Sopenharmony_ci	   syscalls		\
3062306a36Sopenharmony_ci	   tm			\
3162306a36Sopenharmony_ci	   eeh			\
3262306a36Sopenharmony_ci	   vphn         \
3362306a36Sopenharmony_ci	   math		\
3462306a36Sopenharmony_ci	   papr_attributes	\
3562306a36Sopenharmony_ci	   ptrace	\
3662306a36Sopenharmony_ci	   security	\
3762306a36Sopenharmony_ci	   mce
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciendif
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciall: $(SUB_DIRS)
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci$(SUB_DIRS):
4462306a36Sopenharmony_ci	BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciinclude ../lib.mk
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cioverride define RUN_TESTS
4962306a36Sopenharmony_ci	+@for TARGET in $(SUB_DIRS); do \
5062306a36Sopenharmony_ci		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
5162306a36Sopenharmony_ci		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
5262306a36Sopenharmony_ci	done;
5362306a36Sopenharmony_ciendef
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_cioverride define INSTALL_RULE
5662306a36Sopenharmony_ci	+@for TARGET in $(SUB_DIRS); do \
5762306a36Sopenharmony_ci		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
5862306a36Sopenharmony_ci		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install;\
5962306a36Sopenharmony_ci	done;
6062306a36Sopenharmony_ciendef
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciemit_tests:
6362306a36Sopenharmony_ci	+@for TARGET in $(SUB_DIRS); do \
6462306a36Sopenharmony_ci		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
6562306a36Sopenharmony_ci		$(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET $@;\
6662306a36Sopenharmony_ci	done;
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_cioverride define CLEAN
6962306a36Sopenharmony_ci	+@for TARGET in $(SUB_DIRS); do \
7062306a36Sopenharmony_ci		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
7162306a36Sopenharmony_ci		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \
7262306a36Sopenharmony_ci	done;
7362306a36Sopenharmony_ci	rm -f tags
7462306a36Sopenharmony_ciendef
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_citags:
7762306a36Sopenharmony_ci	find . -name '*.c' -o -name '*.h' | xargs ctags
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci.PHONY: tags $(SUB_DIRS) emit_tests
80