]> git.ipfire.org Git - thirdparty/git.git/commitdiff
macOS/brew: let the build find gettext headers/libraries/msgfmt
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 26 Apr 2020 20:09:32 +0000 (22:09 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Apr 2020 18:40:26 +0000 (11:40 -0700)
Apparently a recent Homebrew update now installs `gettext` into the
subdirectory /usr/local/opt/gettext/[lib/include].

Sometimes the ci job succeeds:
 brew link --force gettext
 Linking /usr/local/Cellar/gettext/0.20.1... 179 symlinks created

And sometimes installing the package "gettext" with force-link fails:
 brew link --force gettext
 Warning: Refusing to link macOS provided/shadowed software: gettext
 If you need to have gettext first in your PATH run:
  echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile

(And the is not the final word either, since macOS itself says:
 The default interactive shell is now zsh.)

Anyway, The latter requires CFLAGS to include /usr/local/opt/gettext/include
and LDFLAGS to include /usr/local/opt/gettext/lib.

Likewise, the `msgfmt` tool is no longer in the `PATH`.

While it is unclear which change is responsible for this breakage (that
most notably only occurs on CI build agents that updated very recently),
https://github.com/Homebrew/homebrew-core/pull/53489 has fixed it.

Nevertheless, let's work around this issue, as there are still quite a
few build agents out there that need some help in this regard: we
explicitly do not call `brew update` in our CI/PR builds anymore.

Helped-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.mak.uname

index 0ab8e00938397612bc28ea48a218e460a80b1c6a..1ea16e89288d45a409b47d47b4efb9833b2d9be7 100644 (file)
@@ -133,8 +133,17 @@ ifeq ($(uname_S),Darwin)
        HAVE_BSD_SYSCTL = YesPlease
        FREAD_READS_DIRECTORIES = UnfortunatelyYes
        HAVE_NS_GET_EXECUTABLE_PATH = YesPlease
-       BASIC_CFLAGS += -I/usr/local/include
-       BASIC_LDFLAGS += -L/usr/local/lib
+
+       # 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
+       endif
 endif
 ifeq ($(uname_S),SunOS)
        NEEDS_SOCKET = YesPlease