Home | History | Annotate | Download | only in powerpc
      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 	   context_switch	\
     21 	   dscr			\
     22 	   mm			\
     23 	   pmu			\
     24 	   signal		\
     25 	   primitives		\
     26 	   stringloops		\
     27 	   switch_endian	\
     28 	   syscalls		\
     29 	   tm			\
     30 	   vphn         \
     31 	   math		\
     32 	   ptrace
     33 
     34 endif
     35 
     36 all: $(SUB_DIRS)
     37 
     38 $(SUB_DIRS):
     39 	BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all
     40 
     41 include ../lib.mk
     42 
     43 override define RUN_TESTS
     44 	@for TARGET in $(SUB_DIRS); do \
     45 		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
     46 		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
     47 	done;
     48 endef
     49 
     50 override define INSTALL_RULE
     51 	@for TARGET in $(SUB_DIRS); do \
     52 		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
     53 		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install;\
     54 	done;
     55 endef
     56 
     57 override define EMIT_TESTS
     58 	@for TARGET in $(SUB_DIRS); do \
     59 		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
     60 		$(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests;\
     61 	done;
     62 endef
     63 
     64 override define CLEAN
     65 	@for TARGET in $(SUB_DIRS); do \
     66 		BUILD_TARGET=$(OUTPUT)/$$TARGET;	\
     67 		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \
     68 	done;
     69 	rm -f tags
     70 endef
     71 
     72 tags:
     73 	find . -name '*.c' -o -name '*.h' | xargs ctags
     74 
     75 .PHONY: tags $(SUB_DIRS)
     76