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

From: Torsten Bögershausen <[email-masked]>
Date: Sun, 14 Dec 2025 10:02:09 +0100

On Sun, Dec 14, 2025 at 04:13:14PM +0900, Junio C Hamano wrote:
> 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.

The main question is still, where the HOMEBREW_XXX variables
are used ?
I see that we define them in config.mak.uname
...I understand these are purely _our_ thing
That is what I don't get. It seems as if these are used when
compiling under/with homebrew ?