about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Keeping <john@keeping.me.uk>2013-05-18 15:17:08 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2013-05-22 12:53:06 +0200
commitc2b79dd8e0020c1c10b61fa1a6c58afd53738c85 (patch)
treee9bef2f5988ce20327a6f8ad18dda4de42c80212
parentcache.c: fix cache_ls (diff)
downloadcgit-pink-c2b79dd8e0020c1c10b61fa1a6c58afd53738c85.tar.gz
cgit-pink-c2b79dd8e0020c1c10b61fa1a6c58afd53738c85.zip
Makefile: fix parallel "make test"
When building the "test" target we depend on both cgit and building the
Git tools.  By doing this with two targets we end up running make in the
git/ directory twice, concurrently if using parallel make, which causes
us to build more than we need and potentially builds incorrectly if
multi-step build-then-move operations overlap.

Fix this by instead calling back into the makefile so that we alter the
"cgit" target to also build the Git tools.

Signed-off-by: John Keeping <john@keeping.me.uk>
-rw-r--r--Makefile8
1 files changed, 3 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 77c676d..0fe0bc2 100644
--- a/Makefile
+++ b/Makefile
@@ -64,12 +64,10 @@ endif
 all:: cgit
 
 cgit:
-	$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) -f ../cgit.mk ../cgit NO_CURL=1
+	$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) -f ../cgit.mk ../cgit $(EXTRA_GIT_TARGETS) NO_CURL=1
 
-git:
-	$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) NO_CURL=1
-
-test: all git
+test:
+	@$(MAKE) --no-print-directory cgit EXTRA_GIT_TARGETS=all
 	$(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
 
 install: all