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