TEST_SRC=$(wildcard *_test.cpp) TEST_EXE=$(TEST_SRC:.cpp=) TEST_RUN=$(TEST_SRC:.cpp=.run) run: $(TEST_RUN) %_test.run: %_test @echo Testing $<... @./$< @echo OK %_test: %_test.cpp @echo Compiling $@... @g++ -o $@ $< clean: rm -f $(TEST_EXE) .PHONY: run clean .SECONDARY: $(TEST_EXE)