Re: [PATCH 3/4] Makefile: reintroduce REFTABLE_OBJS
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 9, 2026, 21:07 UTC
- Message-ID
- <xmqqmrtqp20n.fsf@gitster.g>
- In-Reply-To
- <20260909195006.2179119-4-szeder.dev@gmail.com>
SZEDER Gábor <szeder.dev@gmail.com> writes:
Show 13 quoted lines
> Object files under "reftable/" used to be listed in the REFTABLE_OBJS > Makefile variable so we could build a static library from them. This > static library was removed in f3b4c89d59 (make: delete REFTABLE_LIB, > add reftable to LIB_OBJS, 2025-10-02), along with filling > REFTALBE_OBJS with object files. > > However, the reftable source files are kind of special, because the > reftable implementation is supposed to be easily includable in other > projects. Therefore, the reftable source files don't include > "git-compat-util.h", with the sole exception of the purposefully > project-specific "reftable/system.c". Consequently, they shouldn't be > compiled with our precompiled header, as it does include > "git-compat-util.h".
This is the first mention of "our precompiled header" in this series, and the first hint that "our precompiled header" would include "git-compat-util.h". It may probably give us a better organization to state it upfront at the beginning of the proposed log message of this commit. It is of secondary importance that once in the past we used to have REFTABLE_OBJS Makefile variable that listed some files (but for completely different purposes). How about explaining it along this line...
The ultimate endgame of this series is to use the precompiled
header facility to speed up compilation, and the plan is to have
Git specific headers including git-compat-util.h precompiled. The reftable sources are largely designed to be independent from
the Git source proper, and except for reftable/system.c they do
not include <git-compat-util.h>. Move the object files in the subsystem from the LIB_OBJS to the
REFTABLE_OBJS Makefile variable, so that we can use LIB_OBJS as
list of files compiled with precompiled header files and others
without... or something like that, perhaps?