Makefile: don't use "FORCE" for tags targets

Remove the "FORCE" dependency from the "tags", "TAGS" and "cscope"
targets, instead make them depend on whether or not the relevant
source files have changed.

For the cscope target we need to change it to depend on the actual
generated file while we generate while we're at it, as the next commit
will discuss we always generate a cscope.out file.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 2021-07-22 01:23:04 +02:00 committed by Junio C Hamano
parent 033395be32
commit 7171221d82
1 changed files with 12 additions and 8 deletions

View File

@ -2727,20 +2727,24 @@ FIND_SOURCE_FILES = ( \
| sed -e 's|^\./||' \
)

$(ETAGS_TARGET): FORCE
FOUND_SOURCE_FILES = $(shell $(FIND_SOURCE_FILES))

$(ETAGS_TARGET): $(FOUND_SOURCE_FILES)
$(QUIET_GEN)$(RM) "$(ETAGS_TARGET)+" && \
$(FIND_SOURCE_FILES) | xargs etags -a -o "$(ETAGS_TARGET)+" && \
echo $(FOUND_SOURCE_FILES) | xargs etags -a -o "$(ETAGS_TARGET)+" && \
mv "$(ETAGS_TARGET)+" "$(ETAGS_TARGET)"

tags: FORCE
tags: $(FOUND_SOURCE_FILES)
$(QUIET_GEN)$(RM) tags+ && \
$(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \
echo $(FOUND_SOURCE_FILES) | xargs ctags -a -o tags+ && \
mv tags+ tags

.PHONY: cscope
cscope:
cscope.out: $(FOUND_SOURCE_FILES)
$(QUIET_GEN)$(RM) cscope* && \
$(FIND_SOURCE_FILES) | xargs cscope -b
echo $(FOUND_SOURCE_FILES) | xargs cscope -b

.PHONY: cscope
cscope: cscope.out

### Detect prefix changes
TRACK_PREFIX = $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ):\
@ -2921,7 +2925,7 @@ check: config-list.h command-list.h
exit 1; \
fi

FOUND_C_SOURCES = $(filter %.c,$(shell $(FIND_SOURCE_FILES)))
FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES))
COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES))

%.cocci.patch: %.cocci $(COCCI_SOURCES)