]> gitweb.ps.run Git - ps-cgit/blobdiff - cgit.mk
add a note about generating agefile in hook
[ps-cgit] / cgit.mk
diff --git a/cgit.mk b/cgit.mk
index 4869c5555622582fe0e086fd3b0af9f8e8c32316..8af0041d78c58b1c47079af9432036a4a7cc2ed4 100644 (file)
--- a/cgit.mk
+++ b/cgit.mk
@@ -5,17 +5,18 @@ include Makefile
 
 CGIT_PREFIX = ../
 
 
 CGIT_PREFIX = ../
 
+-include $(CGIT_PREFIX)cgit.conf
+
 # The CGIT_* variables are inherited when this file is called from the
 # main Makefile - they are defined there.
 
 $(CGIT_PREFIX)VERSION: force-version
 # The CGIT_* variables are inherited when this file is called from the
 # main Makefile - they are defined there.
 
 $(CGIT_PREFIX)VERSION: force-version
-       @cd $(CGIT_PREFIX) && ./gen-version.sh "$(CGIT_VERSION)"
+       @cd $(CGIT_PREFIX) && '$(SHELL_PATH_SQ)' ./gen-version.sh "$(CGIT_VERSION)"
 -include $(CGIT_PREFIX)VERSION
 .PHONY: force-version
 
 # CGIT_CFLAGS is a separate variable so that we can track it separately
 # and avoid rebuilding all of Git when these variables change.
 -include $(CGIT_PREFIX)VERSION
 .PHONY: force-version
 
 # CGIT_CFLAGS is a separate variable so that we can track it separately
 # and avoid rebuilding all of Git when these variables change.
-CGIT_CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
 CGIT_CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
 CGIT_CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
 CGIT_CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
 CGIT_CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
 CGIT_CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
 CGIT_CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
@@ -53,6 +54,22 @@ CGIT_OBJ_NAMES += vector.o
 
 CGIT_OBJS := $(addprefix $(CGIT_PREFIX),$(CGIT_OBJ_NAMES))
 
 
 CGIT_OBJS := $(addprefix $(CGIT_PREFIX),$(CGIT_OBJ_NAMES))
 
+# Only cgit.c reference CGIT_VERSION so we only rebuild its objects when the
+# version changes.
+CGIT_VERSION_OBJS := $(addprefix $(CGIT_PREFIX),cgit.o)
+$(CGIT_VERSION_OBJS): $(CGIT_PREFIX)VERSION
+$(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
 ifeq ($(wildcard $(CGIT_PREFIX).depend),)
 missing_dep_dirs += $(CGIT_PREFIX).depend
 endif