From: "Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Koji Nakamaru <koji.nakamaru@gree.net>,
Koji Nakamaru <koji.nakamaru@gree.net>
Subject: [PATCH] osxkeychain: define build targets in the top-level Makefile.
Date: Tue, 10 Feb 2026 18:01:01 +0000 [thread overview]
Message-ID: <pull.2046.git.1770746461307.gitgitgadget@gmail.com> (raw)
From: Koji Nakamaru <koji.nakamaru@gree.net>
The fix for git-credential-osxkeychain in 4580bcd235 (osxkeychain: avoid
incorrectly skipping store operation) introduced linkage with libgit.a,
and its Makefile was adjusted accordingly. However, the build fails as
of 864f55e190 because several macOS-specific refinements were applied to
the top-level Makefile and config.mak.uname, such as:
- 363837afe7 (macOS: make Homebrew use configurable, 2025-12-24)
- cee341e9dd (macOS: use iconv from Homebrew if needed and present,
2025-12-24)
- d281241518 (utf8.c: enable workaround for iconv under macOS 14/15,
2026-01-12)
Since libgit.a and its corresponding header files depend on many flags
defined in the top-level Makefile, these flags must be consistently
defined when building git-credential-osxkeychain. Continuing to manually
adjust the git-credential-osxkeychain Makefile is cumbersome and
fragile.
Define the build targets for git-credential-osxkeychain in the top-level
Makefile and modify its local Makefile to simply rely on those targets.
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
---
osxkeychain: define build targets in the top-level Makefile.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2046%2FKojiNakamaru%2Ffix%2Fosxkeychain-makefile-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2046/KojiNakamaru/fix/osxkeychain-makefile-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2046
Makefile | 17 +++++++
contrib/credential/osxkeychain/Makefile | 65 +++----------------------
2 files changed, 23 insertions(+), 59 deletions(-)
diff --git a/Makefile b/Makefile
index 4ac44331ea..97196c6afa 100644
--- a/Makefile
+++ b/Makefile
@@ -4060,3 +4060,20 @@ $(LIBGIT_HIDDEN_EXPORT): $(LIBGIT_PARTIAL_EXPORT)
contrib/libgit-sys/libgitpub.a: $(LIBGIT_HIDDEN_EXPORT)
$(AR) $(ARFLAGS) $@ $^
+
+contrib/credential/osxkeychain/git-credential-osxkeychain: contrib/credential/osxkeychain/git-credential-osxkeychain.o $(LIB_FILE) GIT-LDFLAGS
+ $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) \
+ $(filter %.o,$^) $(LIB_FILE) $(EXTLIBS) -framework Security -framework CoreFoundation
+
+contrib/credential/osxkeychain/git-credential-osxkeychain.o: contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
+ $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
+
+install-git-credential-osxkeychain: contrib/credential/osxkeychain/git-credential-osxkeychain
+ $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+ $(INSTALL) $(INSTALL_STRIP) $< '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+
+.PHONY: clean-git-credential-osxkeychain
+clean-git-credential-osxkeychain:
+ $(RM) \
+ contrib/credential/osxkeychain/git-credential-osxkeychain \
+ contrib/credential/osxkeychain/git-credential-osxkeychain.o
diff --git a/contrib/credential/osxkeychain/Makefile b/contrib/credential/osxkeychain/Makefile
index c68445b82d..ddb29f0563 100644
--- a/contrib/credential/osxkeychain/Makefile
+++ b/contrib/credential/osxkeychain/Makefile
@@ -1,66 +1,13 @@
# The default target of this Makefile is...
all:: git-credential-osxkeychain
-include ../../../config.mak.uname
--include ../../../config.mak.autogen
--include ../../../config.mak
+git-credential-osxkeychain:
+ cd ../../..; make contrib/credential/osxkeychain/git-credential-osxkeychain
-ifdef ZLIB_NG
- BASIC_CFLAGS += -DHAVE_ZLIB_NG
- ifdef ZLIB_NG_PATH
- BASIC_CFLAGS += -I$(ZLIB_NG_PATH)/include
- EXTLIBS += $(call libpath_template,$(ZLIB_NG_PATH)/$(lib))
- endif
- EXTLIBS += -lz-ng
-else
- ifdef ZLIB_PATH
- BASIC_CFLAGS += -I$(ZLIB_PATH)/include
- EXTLIBS += $(call libpath_template,$(ZLIB_PATH)/$(lib))
- endif
- EXTLIBS += -lz
-endif
-ifndef NO_ICONV
- ifdef NEEDS_LIBICONV
- ifdef ICONVDIR
- BASIC_CFLAGS += -I$(ICONVDIR)/include
- ICONV_LINK = $(call libpath_template,$(ICONVDIR)/$(lib))
- else
- ICONV_LINK =
- endif
- ifdef NEEDS_LIBINTL_BEFORE_LIBICONV
- ICONV_LINK += -lintl
- endif
- EXTLIBS += $(ICONV_LINK) -liconv
- endif
-endif
-ifndef LIBC_CONTAINS_LIBINTL
- EXTLIBS += -lintl
-endif
-
-prefix ?= /usr/local
-gitexecdir ?= $(prefix)/libexec/git-core
-
-CC ?= gcc
-CFLAGS ?= -g -O2 -Wall -I../../.. $(BASIC_CFLAGS)
-LDFLAGS ?= $(BASIC_LDFLAGS) $(EXTLIBS)
-INSTALL ?= install
-RM ?= rm -f
-
-%.o: %.c
- $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
-
-git-credential-osxkeychain: git-credential-osxkeychain.o ../../../libgit.a
- $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) \
- -framework Security -framework CoreFoundation
-
-install: git-credential-osxkeychain
- $(INSTALL) -d -m 755 $(DESTDIR)$(gitexecdir)
- $(INSTALL) -m 755 $< $(DESTDIR)$(gitexecdir)
-
-../../../libgit.a:
- cd ../../..; make libgit.a
+install:
+ cd ../../..; make install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
+ cd ../../..; make clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
base-commit: 864f55e1906897b630333675a52874c0fec2a45c
--
gitgitgadget
next reply other threads:[~2026-02-10 18:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-10 18:01 Koji Nakamaru via GitGitGadget [this message]
2026-02-10 19:50 ` [PATCH] osxkeychain: define build targets in the top-level Makefile Junio C Hamano
2026-02-10 23:16 ` Koji Nakamaru
2026-02-11 1:59 ` [PATCH v2] " Koji Nakamaru via GitGitGadget
2026-02-11 15:37 ` Junio C Hamano
2026-02-11 23:06 ` Koji Nakamaru
2026-02-16 23:45 ` D. Ben Knoble
2026-02-17 1:09 ` Koji Nakamaru
2026-02-17 13:10 ` D. Ben Knoble
2026-02-17 13:12 ` D. Ben Knoble
2026-02-17 18:05 ` Koji Nakamaru
2026-02-17 21:54 ` D. Ben Knoble
2026-02-18 4:06 ` Koji Nakamaru
2026-02-18 5:14 ` [PATCH v3] " Koji Nakamaru via GitGitGadget
2026-02-18 16:09 ` Kristoffer Haugsbakk
2026-02-18 19:11 ` Koji Nakamaru
2026-02-18 17:55 ` Junio C Hamano
2026-02-18 19:14 ` Koji Nakamaru
2026-02-19 15:25 ` Junio C Hamano
2026-02-20 1:39 ` [PATCH v4] " Koji Nakamaru via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2046.git.1770746461307.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=koji.nakamaru@gree.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.