aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2025-12-24 09:03:01 +0100
committerJunio C Hamano <gitster@pobox.com>2025-12-25 16:43:10 +0900
commitcee341e9ddb0b57e19f16c64b17caf68683faaeb (patch)
treebb81282d76b46475107102f4a251b41992296207 /Makefile
parent363837afe75e7d6f6efd53775887dff67fb9e5d6 (diff)
downloadgit-cee341e9ddb0b57e19f16c64b17caf68683faaeb.tar.xz
macOS: use iconv from Homebrew if needed and present
The library function iconv(3) supplied with macOS versions 15.7.2 (Sequoia) and 26.1 (Tahoe) is unreliable when doing conversions from ISO-2022-JP to UTF-8 in multiple steps; t3900 reports this breakage: not ok 17 - ISO-2022-JP should be shown in UTF-8 now not ok 25 - ISO-2022-JP should be shown in UTF-8 now not ok 38 - commit --fixup into ISO-2022-JP from UTF-8 As a workaround, use libiconv from Homebrew, if available. Search it in its default locations: /opt/homebrew for Apple Silicon and /usr/local for macOS Intel, with the former taking precedence. Respect ICONVDIR if already set by the user, though. Helped-by: Koji Nakamaru <koji.nakamaru@gree.net> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 10 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index e4cbe24ad5..ebfaec678d 100644
--- a/Makefile
+++ b/Makefile
@@ -100,12 +100,15 @@ 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 NO_HOMEBREW if you don't want to use gettext, libiconv 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 USE_HOMEBREW_LIBICONV to link against libiconv installed by
+# Homebrew, if present.
+#
# 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.
@@ -1705,6 +1708,11 @@ endif
ifeq ($(shell test -x $(HOMEBREW_PREFIX)/opt/gettext/msgfmt && echo y),y)
MSGFMT = $(HOMEBREW_PREFIX)/opt/gettext/msgfmt
endif
+ifdef USE_HOMEBREW_LIBICONV
+ifeq ($(shell test -d $(HOMEBREW_PREFIX)/opt/libiconv && echo y),y)
+ ICONVDIR ?= $(HOMEBREW_PREFIX)/opt/libiconv
+endif
+endif
endif
endif