Commit 822a0495 authored by Michael Ellerman's avatar Michael Ellerman
Browse files

selftests/powerpc: Convert pmu Makefile to for loop style



The pmu Makefile has grown more sub directories over the years. Rather
than open coding the rules for each subdir, use for loops.

Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240422133453.1793988-1-mpe@ellerman.id.au
parent 108e5e68
Loading
Loading
Loading
Loading
+22 −21
Original line number Diff line number Diff line
@@ -9,7 +9,9 @@ top_srcdir = ../../../../..
include ../../lib.mk
include ../flags.mk

all: $(TEST_GEN_PROGS) ebb sampling_tests event_code_tests
SUB_DIRS := ebb sampling_tests event_code_tests

all: $(TEST_GEN_PROGS) $(SUB_DIRS)

$(TEST_GEN_PROGS): $(EXTRA_SOURCES)

@@ -23,12 +25,16 @@ $(OUTPUT)/count_stcx_fail: loop.S $(EXTRA_SOURCES)

$(OUTPUT)/per_event_excludes: ../utils.c

$(SUB_DIRS):
	BUILD_TARGET=$(OUTPUT)/$@; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $@ all

DEFAULT_RUN_TESTS := $(RUN_TESTS)
override define RUN_TESTS
	$(DEFAULT_RUN_TESTS)
	+TARGET=ebb; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests
	+TARGET=sampling_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests
	+TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests
	+@for TARGET in $(SUB_DIRS); do \
		BUILD_TARGET=$(OUTPUT)/$$TARGET; \
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests; \
	done;
endef

emit_tests:
@@ -36,34 +42,29 @@ emit_tests:
		BASENAME_TEST=`basename $$TEST`;	\
		echo "$(COLLECTION):$$BASENAME_TEST";	\
	done
	+TARGET=ebb; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
	+TARGET=sampling_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
	+TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests
	+@for TARGET in $(SUB_DIRS); do \
		BUILD_TARGET=$(OUTPUT)/$$TARGET; \
		$(MAKE) OUTPUT=$$BUILD_TARGET -s -C $$TARGET emit_tests; \
	done;

DEFAULT_INSTALL_RULE := $(INSTALL_RULE)
override define INSTALL_RULE
	$(DEFAULT_INSTALL_RULE)
	+TARGET=ebb; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install
	+TARGET=sampling_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install
	+TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install
	+@for TARGET in $(SUB_DIRS); do \
		BUILD_TARGET=$(OUTPUT)/$$TARGET; \
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install; \
	done;
endef

DEFAULT_CLEAN := $(CLEAN)
override define CLEAN
	$(DEFAULT_CLEAN)
	$(RM) $(TEST_GEN_PROGS) $(OUTPUT)/loop.o
	+TARGET=ebb; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean
	+TARGET=sampling_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean
	+TARGET=event_code_tests; BUILD_TARGET=$$OUTPUT/$$TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean
	+@for TARGET in $(SUB_DIRS); do \
		BUILD_TARGET=$(OUTPUT)/$$TARGET; \
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean; \
	done;
endef

ebb:
	TARGET=$@; BUILD_TARGET=$$OUTPUT/$$TARGET; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $$TARGET all

sampling_tests:
	TARGET=$@; BUILD_TARGET=$$OUTPUT/$$TARGET; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $$TARGET all

event_code_tests:
	TARGET=$@; BUILD_TARGET=$$OUTPUT/$$TARGET; mkdir -p $$BUILD_TARGET; $(MAKE) OUTPUT=$$BUILD_TARGET -k -C $$TARGET all

.PHONY: all run_tests ebb sampling_tests event_code_tests emit_tests