Subject: Re: [PATCH v2 1/2] Makefile: add NO_HOMEBREW

From: Junio C Hamano <[email-masked]>
Date: Sun, 14 Dec 2025 16:13:14 +0900

Torsten Bögershausen <[email-masked]> writes:

> On Sat, Dec 13, 2025 at 07:42:38PM +0100, René Scharfe wrote:
>> Allow disabling the use of Homebrew on macOS, or Linux for that matter,
>> like we already do for other package sources, MacPorts and Fink in
>> particular.  This is useful for packagers, or anyone else who wants to
>> control dependencies.
>
> Good.
>> 
>> Suggested-by: Carlo Marcelo Arenas Belón <[email-masked]>
>> Suggested-by: Torsten Bögershausen <[email-masked]>
>> Signed-off-by: René Scharfe <[email-masked]>
>> ---
>>  Makefile         | 17 +++++++++++++++++
>>  config.mak.uname | 11 +++++------
>>  2 files changed, 22 insertions(+), 6 deletions(-)
>> 
>> diff --git a/Makefile b/Makefile
>> index 6fc322ff88..dbd2760d18 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -100,6 +100,9 @@ include shared.mak
>>  # specify your own (or DarwinPort's) include directories and
>>  # library directories by defining CFLAGS and LDFLAGS appropriately.
>>  #
>> +# Define NO_HOMEBREW if you have Homebrew and don't want Git to link
>> +# against libraries installed by it.
>> +#
> Good
>>  # Define NO_APPLE_COMMON_CRYPTO if you are building on Darwin/Mac OS X
>>  # and do not want to use Apple's CommonCrypto library.  This allows you
>>  # to provide your own OpenSSL library, for example from MacPorts.
>> @@ -1692,6 +1695,20 @@ ifeq ($(uname_S),Darwin)
>>  	PTHREAD_LIBS =
>>  endif
>>  
>> +ifndef NO_HOMEBREW
>> +        ifdef HOMEBREW_PREFIX
>
> Question from a homebrew newbie, kind of:
> Where do the HOMEBREW_PREFIX (and other HOMEBREW...) come from,
> and what do they do ?

I understand these are purely _our_ thing.  HOMEBREW_PREFIX and
HOMEBREW_GETTEXT_PREFIX are set in config.mak.uname (added in this
patch).  I presume that those who installed homebrew at non-default
location and want to use homebrew would not set NO_HOMEBREW and set
HOMEBREW_PREFIX to the location they installed their homebrew which
would be different from the default set in config.mak.uname.  Those
who have homebrew installed at default location.

> Running
> git grep HOMEBREW
> gives
> ci/install-dependencies.sh:     export HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1
>
> Whould it make sense to have a few words here as a comment ?

Yeah, like 

# Define HOMEBREW_PREFIX to point at an appropriate directory, iff
# you want to use homebrew installed at a non-standard location.
# /opt/homebrew on Apple Silicon macOS and at /usr/local on Intel
# macOS are the standard locations (and you do not have to define
# this variable yourself).

perhaps?  Similarly for other variables.