Makefile: detect new Homebrew location for ARM-based Macs

With the introduction of the ARM-based Macs the default location for
Homebrew has changed from "/usr/local" to "/opt/homebrew". We only
handle the former location though, which means that unless the user has
manually configured required search paths we won't be able to locate it.

Improve upon this by adding relevant paths to our CFLAGS and LDFLAGS as
well as detecting the location of msgfmt(1).

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Patrick Steinhardt 2024-01-18 11:22:49 +01:00 committed by Junio C Hamano
parent f591a9bfeb
commit d52b426ad4
1 changed files with 13 additions and 0 deletions

View File

@ -158,6 +158,19 @@ ifeq ($(uname_S),Darwin)
ifeq ($(shell test -x /usr/local/opt/gettext/bin/msgfmt && echo y),y)
MSGFMT = /usr/local/opt/gettext/bin/msgfmt
endif
# On newer ARM-based machines the default installation path has changed to
# /opt/homebrew. Include it in our search paths so that the user does not
# have to configure this manually.
#
# Note that we do not employ the same workaround as above where we manually
# add gettext. The issue was fixed more than three years ago by now, and at
# that point there haven't been any ARM-based Macs yet.
else ifeq ($(shell test -d /opt/homebrew/ && echo y),y)
BASIC_CFLAGS += -I/opt/homebrew/include
BASIC_LDFLAGS += -L/opt/homebrew/lib
ifeq ($(shell test -x /opt/homebrew/bin/msgfmt && echo y),y)
MSGFMT = /opt/homebrew/bin/msgfmt
endif
endif

# The builtin FSMonitor on MacOS builds upon Simple-IPC. Both require