diff --git a/makefile b/makefile
index 49d901ddfa2cdea33f5821274e04ba1afbdf4fbe..92597bdb3e56aae3ef19c0800849bfac7ab4f520 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