about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Keeping <john@keeping.me.uk>2013-04-04 18:32:24 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2013-04-08 15:43:17 +0200
commita5e4ad2d8b9c6bcfc7029894d3a3837166996b35 (patch)
tree7e6f815af5acd62b3c40b7e5f3807a723f64baa5
parentMakefile: re-include cgit.conf in cgit.mk (diff)
downloadcgit-pink-a5e4ad2d8b9c6bcfc7029894d3a3837166996b35.tar.gz
cgit-pink-a5e4ad2d8b9c6bcfc7029894d3a3837166996b35.zip
cgit.mk: fix dependency handling
Git calculates the dependency files to be included using a simply
expanded Makefile variable, so it does not include the CGit objects that
are added after that Makefile has been processed.

We therefore need to include the dependency files ourselves in order to
get the dependency calculations right.  Do this.

Signed-off-by: John Keeping <john@keeping.me.uk>
-rw-r--r--cgit.mk8
1 files changed, 8 insertions, 0 deletions
diff --git a/cgit.mk b/cgit.mk
index bf3bbb1..8af0041 100644
--- a/cgit.mk
+++ b/cgit.mk
@@ -62,6 +62,14 @@ $(CGIT_VERSION_OBJS): EXTRA_CPPFLAGS = \
 	-DCGIT_VERSION='"$(CGIT_VERSION)"'
 
 
+# Git handles dependencies using ":=" so dependencies in CGIT_OBJ are not
+# handled by that and we must handle them ourselves.
+cgit_dep_files := $(foreach f,$(CGIT_OBJS),$(dir $f).depend/$(notdir $f).d)
+cgit_dep_files_present := $(wildcard $(cgit_dep_files))
+ifneq ($(cgit_dep_files_present),)
+include $(cgit_dep_files_present)
+endif
+
 ifeq ($(wildcard $(CGIT_PREFIX).depend),)
 missing_dep_dirs += $(CGIT_PREFIX).depend
 endif