[PATCH v2 2/2] cgit.mk: don't rebuild everything if CGIT_VERSION changes

Jamie Couture jamie.couture at gmail.com
Wed Mar 6 15:59:34 CET 2013


On Tue, Mar 05, 2013 at 11:12:53PM +0000, John Keeping wrote:
> 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
> 
> 
> _______________________________________________
> cgit mailing list
> cgit at hjemli.net
> http://hjemli.net/mailman/listinfo/cgit

Acked-by: Jamie Couture <jamie.couture at gmail.com>




More information about the CGit mailing list