mirror of
https://github.com/git/git.git
synced 2026-01-08 09:13:48 +00:00
macOS: make Homebrew use configurable
On macOS we opportunistically use Homebrew-installed versions of gettext(3) and msgfmt(1). Make that behavior configurable by providing make variables to disable Homebrew usage (NO_HOMEBREW) and to allow using a non-default installation location (HOMEBREW_PREFIX). Include and link only the gettext keg via the symlink opt/gettext pointing to its installed version instead of using the Homebrew prefix. This is simpler and prevents accidentally including other libraries. Suggested-by: Carlo Marcelo Arenas Belón <carenas@gmail.com> Suggested-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
9a2fb147f2
commit
363837afe7
18
Makefile
18
Makefile
@@ -100,6 +100,12 @@ 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 don't want to use gettext and msgfmt
|
||||
# installed by Homebrew.
|
||||
#
|
||||
# Define HOMEBREW_PREFIX if you have Homebrew installed in a non-default
|
||||
# location on macOS or on Linux and want to use it.
|
||||
#
|
||||
# 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.
|
||||
@@ -1690,6 +1696,18 @@ ifeq ($(uname_S),Darwin)
|
||||
PTHREAD_LIBS =
|
||||
endif
|
||||
|
||||
ifndef NO_HOMEBREW
|
||||
ifdef HOMEBREW_PREFIX
|
||||
ifeq ($(shell test -d $(HOMEBREW_PREFIX)/opt/gettext && echo y),y)
|
||||
BASIC_CFLAGS += -I$(HOMEBREW_PREFIX)/opt/gettext/include
|
||||
BASIC_LDFLAGS += -L$(HOMEBREW_PREFIX)/opt/gettext/lib
|
||||
endif
|
||||
ifeq ($(shell test -x $(HOMEBREW_PREFIX)/opt/gettext/msgfmt && echo y),y)
|
||||
MSGFMT = $(HOMEBREW_PREFIX)/opt/gettext/msgfmt
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef NO_LIBGEN_H
|
||||
COMPAT_CFLAGS += -DNO_LIBGEN_H
|
||||
COMPAT_OBJS += compat/basename.o
|
||||
|
||||
@@ -149,28 +149,10 @@ ifeq ($(uname_S),Darwin)
|
||||
CSPRNG_METHOD = arc4random
|
||||
USE_ENHANCED_BASIC_REGULAR_EXPRESSIONS = YesPlease
|
||||
|
||||
# Workaround for `gettext` being keg-only and not even being linked via
|
||||
# `brew link --force gettext`, should be obsolete as of
|
||||
# https://github.com/Homebrew/homebrew-core/pull/53489
|
||||
ifeq ($(shell test -d /usr/local/opt/gettext/ && echo y),y)
|
||||
BASIC_CFLAGS += -I/usr/local/include -I/usr/local/opt/gettext/include
|
||||
BASIC_LDFLAGS += -L/usr/local/lib -L/usr/local/opt/gettext/lib
|
||||
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
|
||||
ifeq ($(uname_M),arm64)
|
||||
HOMEBREW_PREFIX = /opt/homebrew
|
||||
else
|
||||
HOMEBREW_PREFIX = /usr/local
|
||||
endif
|
||||
|
||||
# The builtin FSMonitor on MacOS builds upon Simple-IPC. Both require
|
||||
|
||||
Reference in New Issue
Block a user