[PATCH v2 2/2] cgit.mk: don't rebuild everything if CGIT_VERSION changes
John Keeping
john at keeping.me.uk
Wed Mar 6 00:12:53 CET 2013
If CGIT_VERSION is in CGIT_CFLAGS then a change in version (for example
because you have committed your changes) causes all of the CGit objects
to be rebuilt. Avoid this by using EXTRA_CPPFLAGS to add the version
for only those files that are affected.
Signed-off-by: John Keeping <john at keeping.me.uk>
---
cgit.mk | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/cgit.mk b/cgit.mk
index 4869c55..640bf57 100644
--- a/cgit.mk
+++ b/cgit.mk
@@ -15,7 +15,6 @@ $(CGIT_PREFIX)VERSION: 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)"'
@@ -53,6 +52,14 @@ CGIT_OBJ_NAMES += vector.o
CGIT_OBJS := $(addprefix $(CGIT_PREFIX),$(CGIT_OBJ_NAMES))
+# Only cgit.c and ui-patch.c reference CGIT_VERSION so we only rebuild
+# their objects when the version changes.
+CGIT_VERSION_OBJS := $(addprefix $(CGIT_PREFIX),cgit.o ui-patch.o)
+$(CGIT_VERSION_OBJS): $(CGIT_PREFIX)VERSION
+$(CGIT_VERSION_OBJS): EXTRA_CPPFLAGS = \
+ -DCGIT_VERSION='"$(CGIT_VERSION)"'
+
+
ifeq ($(wildcard $(CGIT_PREFIX).depend),)
missing_dep_dirs += $(CGIT_PREFIX).depend
endif
--
1.8.2.rc2.4.g7799588
More information about the CGit
mailing list