From cd5523fafae37be4f55d6279e7fcc737b82936ed Mon Sep 17 00:00:00 2001
From: Jakub Jirutka <jakub@jirutka.cz>
Date: Mon, 6 Mar 2017 22:08:57 +0100
Subject: [PATCH] makefile: add tasks test-debug and test-release

I've intentionally omitted dependency of test-* on build-*, to not
require building all modules when one have executables in bin-*.
However, when debug or release is invoked and RUN_TESTS is 1, then
it invokes build and test in this order.
---
 makefile | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/makefile b/makefile
index 49d901ddfa..92597bdb3e 100644
--- a/makefile
+++ b/makefile
@@ -84,14 +84,22 @@ endif
 
 SUBDIRS_WITH_MAKE = $(dir $(wildcard */makefile))
 
-.PHONY: build-debug   clean-debug   \
-	build-release clean-release \
-	debug release clean         doc all
+.PHONY: build-debug   test-debug   clean-debug   \
+	build-release test-release clean-release \
+	debug release clean        doc all
 
 all:
 	@echo "What to do master?"
 
-debug build-debug:
+ifeq ($(RUN_TESTS), 1)
+debug: | build-debug test-debug
+release: | build-release test-release
+else
+debug: build-debug
+release: build-release
+endif
+
+build-debug:
 	for dir in $(SUBDIRS_LIBS); do \
 		$(MAKE) $@ -C $$dir || exit 1; \
 	done
@@ -114,12 +122,9 @@ debug build-debug:
 	    cp $$dir/bin-debug/* $(addsuffix -debug, $(BINFOLDER)); \
 	done
 	cp translateAddresses $(addsuffix -debug, $(BINFOLDER)); \
-	cp xmlFormat $(addsuffix -debug, $(BINFOLDER)); \
-	if [ "$@" == "debug" ] && [ $(RUN_TESTS) -eq 1 ]; then for test in $(wildcard tests.*.sh); do \
-		./$$test debug $(JOBS); \
-	done; fi
+	cp xmlFormat $(addsuffix -debug, $(BINFOLDER))
 
-release build-release:
+build-release:
 	for dir in $(SUBDIRS_LIBS); do \
 		$(MAKE) $@ -C $$dir || exit 1; \
 	done
@@ -142,10 +147,17 @@ release build-release:
 	    cp $$dir/bin-release/* $(addsuffix -release, $(BINFOLDER)); \
 	done
 	cp translateAddresses $(addsuffix -release, $(BINFOLDER)); \
-	cp xmlFormat $(addsuffix -release, $(BINFOLDER)); \
-	if [ "$@" == "release" ] && [ $(RUN_TESTS) -eq 1 ]; then for test in $(wildcard tests.*.sh); do \
+	cp xmlFormat $(addsuffix -release, $(BINFOLDER))
+
+test-debug:
+	for test in $(wildcard tests.*.sh); do \
+		./$$test debug $(JOBS); \
+	done
+
+test-release:
+	for test in $(wildcard tests.*.sh); do \
 		./$$test release $(JOBS); \
-	done; fi
+	done
 
 clean: clean-debug clean-release
 	$(RM) -r bin-debug bin-release
-- 
GitLab