Makefile: stop hardcoding {command,config}-list.h

Change various places that hardcode the names of these two files to
refer to either $(GENERATED_H), or to a new generated-hdrs
target. That target is consistent with the *-objs targets I recently
added in 029bac01a8 (Makefile: add {program,xdiff,test,git,fuzz}-objs
& objects targets, 2021-02-23).

A subsequent commit will add a new generated hook-list.h. By doing
this refactoring we'll only need to add the new file to the
GENERATED_H variable, not EXCEPT_HDRS, the vcbuild/README etc.

Hardcoding command-list.h there seems to have been a case of
copy/paste programming in 976aaedca0 (msvc: add a Makefile target to
pre-generate the Visual Studio solution, 2019-07-29). The
config-list.h was added later in 709df95b78 (help: move
list_config_help to builtin/help, 2020-04-16).

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-09-23 12:29:57 +02:00 committed by Junio C Hamano
parent ea47e59fe3
commit 7c3c0a99cc
3 changed files with 8 additions and 6 deletions

View File

@ -817,6 +817,8 @@ XDIFF_LIB = xdiff/lib.a


GENERATED_H += command-list.h GENERATED_H += command-list.h
GENERATED_H += config-list.h GENERATED_H += config-list.h
.PHONY: generated-hdrs
generated-hdrs: $(GENERATED_H)


LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \ LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \
$(FIND) . \ $(FIND) . \
@ -2903,7 +2905,7 @@ $(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
.PHONY: sparse $(SP_OBJ) .PHONY: sparse $(SP_OBJ)
sparse: $(SP_OBJ) sparse: $(SP_OBJ)


EXCEPT_HDRS := command-list.h config-list.h unicode-width.h compat/% xdiff/% EXCEPT_HDRS := $(GENERATED_H) unicode-width.h compat/% xdiff/%
ifndef GCRYPT_SHA256 ifndef GCRYPT_SHA256
EXCEPT_HDRS += sha256/gcrypt.h EXCEPT_HDRS += sha256/gcrypt.h
endif endif
@ -2926,7 +2928,7 @@ style:
git clang-format --style file --diff --extensions c,h git clang-format --style file --diff --extensions c,h


.PHONY: check .PHONY: check
check: config-list.h command-list.h check: $(GENERATED_H)
@if sparse; \ @if sparse; \
then \ then \
echo >&2 "Use 'make sparse' instead"; \ echo >&2 "Use 'make sparse' instead"; \

View File

@ -92,7 +92,7 @@ The Steps of Build Git with VS2008
the git operations. the git operations.


3. Inside Git's directory run the command: 3. Inside Git's directory run the command:
make command-list.h config-list.h make generated-hdrs
to generate the header file needed to compile git. to generate the header file needed to compile git.


4. Then either build Git with the GNU Make Makefile in the Git projects 4. Then either build Git with the GNU Make Makefile in the Git projects

View File

@ -735,9 +735,9 @@ vcxproj:
echo '</Project>') >git-remote-http/LinkOrCopyRemoteHttp.targets echo '</Project>') >git-remote-http/LinkOrCopyRemoteHttp.targets
git add -f git/LinkOrCopyBuiltins.targets git-remote-http/LinkOrCopyRemoteHttp.targets git add -f git/LinkOrCopyBuiltins.targets git-remote-http/LinkOrCopyRemoteHttp.targets


# Add command-list.h and config-list.h # Add generated headers
$(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 config-list.h command-list.h $(MAKE) MSVC=1 SKIP_VCPKG=1 prefix=/mingw64 $(GENERATED_H)
git add -f config-list.h command-list.h git add -f $(GENERATED_H)


# Add scripts # Add scripts
rm -f perl/perl.mak rm -f perl/perl.mak