* [PATCH] osxkeychain: define build targets in the top-level Makefile.
@ 2026-02-10 18:01 Koji Nakamaru via GitGitGadget
2026-02-10 19:50 ` Junio C Hamano
2026-02-11 1:59 ` [PATCH v2] " Koji Nakamaru via GitGitGadget
0 siblings, 2 replies; 20+ messages in thread
From: Koji Nakamaru via GitGitGadget @ 2026-02-10 18:01 UTC (permalink / raw)
To: git; +Cc: Koji Nakamaru, Koji Nakamaru
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
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH] osxkeychain: define build targets in the top-level Makefile.
2026-02-10 18:01 [PATCH] osxkeychain: define build targets in the top-level Makefile Koji Nakamaru via GitGitGadget
@ 2026-02-10 19:50 ` Junio C Hamano
2026-02-10 23:16 ` Koji Nakamaru
2026-02-11 1:59 ` [PATCH v2] " Koji Nakamaru via GitGitGadget
1 sibling, 1 reply; 20+ messages in thread
From: Junio C Hamano @ 2026-02-10 19:50 UTC (permalink / raw)
To: Koji Nakamaru via GitGitGadget; +Cc: git, Koji Nakamaru
"Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
> Makefile | 17 +++++++
> contrib/credential/osxkeychain/Makefile | 65 +++----------------------
> 2 files changed, 23 insertions(+), 59 deletions(-)
Nice simplification overall.
> 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
Let's not write "make", but stick to $(MAKE), perhaps like
$(MAKE) -C ../../.. contrib/credential/osxkeychain/$@
> +install:
> + cd ../../..; make install-git-credential-osxkeychain
>
> clean:
> - $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
> + cd ../../..; make clean-git-credential-osxkeychain
Likewise.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH] osxkeychain: define build targets in the top-level Makefile.
2026-02-10 19:50 ` Junio C Hamano
@ 2026-02-10 23:16 ` Koji Nakamaru
0 siblings, 0 replies; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-10 23:16 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Koji Nakamaru via GitGitGadget, git
On Wed, Feb 11, 2026 at 4:50 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> "Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > Makefile | 17 +++++++
> > contrib/credential/osxkeychain/Makefile | 65 +++----------------------
> > 2 files changed, 23 insertions(+), 59 deletions(-)
>
> Nice simplification overall.
>
> > 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
>
> Let's not write "make", but stick to $(MAKE), perhaps like
>
> $(MAKE) -C ../../.. contrib/credential/osxkeychain/$@
>
> > +install:
> > + cd ../../..; make install-git-credential-osxkeychain
> >
> > clean:
> > - $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
> > + cd ../../..; make clean-git-credential-osxkeychain
>
> Likewise.
Thank you for the review. I'll apply these changes and submit the next
iteration soon.
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-10 18:01 [PATCH] osxkeychain: define build targets in the top-level Makefile Koji Nakamaru via GitGitGadget
2026-02-10 19:50 ` Junio C Hamano
@ 2026-02-11 1:59 ` Koji Nakamaru via GitGitGadget
2026-02-11 15:37 ` Junio C Hamano
2026-02-18 5:14 ` [PATCH v3] " Koji Nakamaru via GitGitGadget
1 sibling, 2 replies; 20+ messages in thread
From: Koji Nakamaru via GitGitGadget @ 2026-02-11 1:59 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Koji Nakamaru, Koji Nakamaru
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.
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
---
osxkeychain: define build targets in the top-level Makefile.
Changes since v1:
* Use $(MAKE) -C to build targets in the top-level Makefile.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2046%2FKojiNakamaru%2Ffix%2Fosxkeychain-makefile-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2046/KojiNakamaru/fix/osxkeychain-makefile-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/2046
Range-diff vs v1:
1: 0aa80d1d17 ! 1: 8c5d75f0c6 osxkeychain: define build targets in the top-level Makefile.
@@ Commit message
Define the build targets for git-credential-osxkeychain in the top-level
Makefile and modify its local Makefile to simply rely on those targets.
+ Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
## Makefile ##
@@ contrib/credential/osxkeychain/Makefile
--include ../../../config.mak.autogen
--include ../../../config.mak
+git-credential-osxkeychain:
-+ cd ../../..; make contrib/credential/osxkeychain/git-credential-osxkeychain
++ $(MAKE) -C ../../.. contrib/credential/osxkeychain/git-credential-osxkeychain
-ifdef ZLIB_NG
- BASIC_CFLAGS += -DHAVE_ZLIB_NG
@@ contrib/credential/osxkeychain/Makefile
-../../../libgit.a:
- cd ../../..; make libgit.a
+install:
-+ cd ../../..; make install-git-credential-osxkeychain
++ $(MAKE) -C ../../.. install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
-+ cd ../../..; make clean-git-credential-osxkeychain
++ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
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..2044a33f41 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:
+ $(MAKE) -C ../../.. 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:
+ $(MAKE) -C ../../.. install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
+ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
base-commit: 864f55e1906897b630333675a52874c0fec2a45c
--
gitgitgadget
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
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-18 5:14 ` [PATCH v3] " Koji Nakamaru via GitGitGadget
1 sibling, 1 reply; 20+ messages in thread
From: Junio C Hamano @ 2026-02-11 15:37 UTC (permalink / raw)
To: Koji Nakamaru via GitGitGadget; +Cc: git, Koji Nakamaru
"Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
> -+ cd ../../..; make install-git-credential-osxkeychain
> ++ $(MAKE) -C ../../.. install-git-credential-osxkeychain
Will replace and mark for 'next'. Will squash the double spaces
after "-C" into one while doing so.
Thanks.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-11 15:37 ` Junio C Hamano
@ 2026-02-11 23:06 ` Koji Nakamaru
2026-02-16 23:45 ` D. Ben Knoble
0 siblings, 1 reply; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-11 23:06 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Koji Nakamaru via GitGitGadget, git
On Thu, Feb 12, 2026 at 12:37 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> "Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > -+ cd ../../..; make install-git-credential-osxkeychain
> > ++ $(MAKE) -C ../../.. install-git-credential-osxkeychain
>
> Will replace and mark for 'next'. Will squash the double spaces
> after "-C" into one while doing so.
Thank you again for the squash and for marking it for 'next'.
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-11 23:06 ` Koji Nakamaru
@ 2026-02-16 23:45 ` D. Ben Knoble
2026-02-17 1:09 ` Koji Nakamaru
0 siblings, 1 reply; 20+ messages in thread
From: D. Ben Knoble @ 2026-02-16 23:45 UTC (permalink / raw)
To: Koji Nakamaru; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Wed, Feb 11, 2026 at 6:06 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
>
> On Thu, Feb 12, 2026 at 12:37 AM Junio C Hamano <gitster@pobox.com> wrote:
> >
> > "Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
> >
> > > -+ cd ../../..; make install-git-credential-osxkeychain
> > > ++ $(MAKE) -C ../../.. install-git-credential-osxkeychain
> >
> > Will replace and mark for 'next'. Will squash the double spaces
> > after "-C" into one while doing so.
>
> Thank you again for the squash and for marking it for 'next'.
>
> --
> Koji Nakamaru
>
Homebrew picked this patch on top of 2.53.0, and on a recent build on
older macOS I needed to
mkdir contrib/credential/osxkeychain/.depend
in order to make their build work, since otherwise:
error: error opening
'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
No such file or directory
1 error generated.
make[1]: ***
[contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
--
D. Ben Knoble
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-16 23:45 ` D. Ben Knoble
@ 2026-02-17 1:09 ` Koji Nakamaru
2026-02-17 13:10 ` D. Ben Knoble
0 siblings, 1 reply; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-17 1:09 UTC (permalink / raw)
To: D. Ben Knoble; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> ...
>
> Homebrew picked this patch on top of 2.53.0, and on a recent build on
> older macOS I needed to
>
> mkdir contrib/credential/osxkeychain/.depend
>
> in order to make their build work, since otherwise:
>
> error: error opening
> 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> No such file or directory
> 1 error generated.
> make[1]: ***
> [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
I tried to reproduce this using the current Homebrew formula for git [1]
on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
steps:
brew tap --force homebrew/core
cd "$(brew --repository homebrew/core)"
git checkout -B main origin/main
git pull
HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
In my environment, the build finished successfully. The patch doesn't
seem to trigger any issues during a local "make" either. How exactly are
you performing your build?
[1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-17 1:09 ` Koji Nakamaru
@ 2026-02-17 13:10 ` D. Ben Knoble
2026-02-17 13:12 ` D. Ben Knoble
0 siblings, 1 reply; 20+ messages in thread
From: D. Ben Knoble @ 2026-02-17 13:10 UTC (permalink / raw)
To: Koji Nakamaru; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
>
> On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > ...
> >
> > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > older macOS I needed to
> >
> > mkdir contrib/credential/osxkeychain/.depend
> >
> > in order to make their build work, since otherwise:
> >
> > error: error opening
> > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > No such file or directory
> > 1 error generated.
> > make[1]: ***
> > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
>
> I tried to reproduce this using the current Homebrew formula for git [1]
> on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> steps:
>
> brew tap --force homebrew/core
> cd "$(brew --repository homebrew/core)"
> git checkout -B main origin/main
> git pull
> HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
>
> In my environment, the build finished successfully. The patch doesn't
> seem to trigger any issues during a local "make" either. How exactly are
> you performing your build?
>
> [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
from source. So just
brew upgrade git
built 2.53.0 + patches from source. "brew --version" says I have
"Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
so I'm not sure off-hand if that includes the core tap version or not
anymore.
I ended up having to use `brew upgrade --debug git`, fix the build
error ("mkdir …") and manually perform a few steps when it arose, etc.
--
D. Ben Knoble
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-17 13:10 ` D. Ben Knoble
@ 2026-02-17 13:12 ` D. Ben Knoble
2026-02-17 18:05 ` Koji Nakamaru
0 siblings, 1 reply; 20+ messages in thread
From: D. Ben Knoble @ 2026-02-17 13:12 UTC (permalink / raw)
To: Koji Nakamaru; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
>
> On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> >
> > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > ...
> > >
> > > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > > older macOS I needed to
> > >
> > > mkdir contrib/credential/osxkeychain/.depend
> > >
> > > in order to make their build work, since otherwise:
> > >
> > > error: error opening
> > > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > > No such file or directory
> > > 1 error generated.
> > > make[1]: ***
> > > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
> >
> > I tried to reproduce this using the current Homebrew formula for git [1]
> > on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> > steps:
> >
> > brew tap --force homebrew/core
> > cd "$(brew --repository homebrew/core)"
> > git checkout -B main origin/main
> > git pull
> > HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
> >
> > In my environment, the build finished successfully. The patch doesn't
> > seem to trigger any issues during a local "make" either. How exactly are
> > you performing your build?
> >
> > [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
>
> macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
> from source. So just
>
> brew upgrade git
>
> built 2.53.0 + patches from source. "brew --version" says I have
> "Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
> so I'm not sure off-hand if that includes the core tap version or not
> anymore.
To rule out differing versions, I also diff'd the Homebrew formula
from GitHub against "brew edit git", and the only difference is the
bottle stanza on GitHub.
> I ended up having to use `brew upgrade --debug git`, fix the build
> error ("mkdir …") and manually perform a few steps when it arose, etc.
--
D. Ben Knoble
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-17 13:12 ` D. Ben Knoble
@ 2026-02-17 18:05 ` Koji Nakamaru
2026-02-17 21:54 ` D. Ben Knoble
0 siblings, 1 reply; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-17 18:05 UTC (permalink / raw)
To: D. Ben Knoble; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Tue, Feb 17, 2026 at 10:12 PM D. Ben Knoble <ben.knoble@gmail.com> wrote:
>
> On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> >
> > On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> > >
> > > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > > ...
> > > >
> > > > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > > > older macOS I needed to
> > > >
> > > > mkdir contrib/credential/osxkeychain/.depend
> > > >
> > > > in order to make their build work, since otherwise:
> > > >
> > > > error: error opening
> > > > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > > > No such file or directory
> > > > 1 error generated.
> > > > make[1]: ***
> > > > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
> > >
> > > I tried to reproduce this using the current Homebrew formula for git [1]
> > > on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> > > steps:
> > >
> > > brew tap --force homebrew/core
> > > cd "$(brew --repository homebrew/core)"
> > > git checkout -B main origin/main
> > > git pull
> > > HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
> > >
> > > In my environment, the build finished successfully. The patch doesn't
> > > seem to trigger any issues during a local "make" either. How exactly are
> > > you performing your build?
> > >
> > > [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
> >
> > macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
> > from source. So just
> >
> > brew upgrade git
> >
> > built 2.53.0 + patches from source. "brew --version" says I have
> > "Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
> > so I'm not sure off-hand if that includes the core tap version or not
> > anymore.
>
> To rule out differing versions, I also diff'd the Homebrew formula
> from GitHub against "brew edit git", and the only difference is the
> bottle stanza on GitHub.
>
> > I ended up having to use `brew upgrade --debug git`, fix the build
> > error ("mkdir …") and manually perform a few steps when it arose, etc.
Thank you for the details. The current Makefile rule performs the
following to generate dependency files
contrib/credential/osxkeychain/git-credential-osxkeychain.o:
contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
$(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
where the compiler implicitly creates
contrib/credential/osxkeychain/.depend/ if it doesn't exist. This
behavior seems to be supported at least since Apple clang 15.0.0. The
following should work for older versions of clang that might not support
this behavior.
contrib/credential/osxkeychain/git-credential-osxkeychain.o:
contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
@mkdir -p contrib/credential/osxkeychain/.depend
$(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
$(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
Can you try this modification in your environment? You can confirm
whether this works as below.
git clone https://github.com/git/git.git
cd git
git checkout v2.53.0
curl https://raw.githubusercontent.com/Homebrew/homebrew-core/46d746f92167fd0559af22f4ccb79c9ff35fbe33/Patches/git/2.53.0-osxkeychain-top-level-makefile.patch
| patch
# The next should fail in your environment.
make contrib/credential/osxkeychain/git-credential-osxkeychain
# Please edit Makefile as described and try again. This should
# succeed.
make contrib/credential/osxkeychain/git-credential-osxkeychain
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-17 18:05 ` Koji Nakamaru
@ 2026-02-17 21:54 ` D. Ben Knoble
2026-02-18 4:06 ` Koji Nakamaru
0 siblings, 1 reply; 20+ messages in thread
From: D. Ben Knoble @ 2026-02-17 21:54 UTC (permalink / raw)
To: Koji Nakamaru; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Tue, Feb 17, 2026 at 1:05 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
>
> On Tue, Feb 17, 2026 at 10:12 PM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> >
> > On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > >
> > > On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> > > >
> > > > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > > > ...
> > > > >
> > > > > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > > > > older macOS I needed to
> > > > >
> > > > > mkdir contrib/credential/osxkeychain/.depend
> > > > >
> > > > > in order to make their build work, since otherwise:
> > > > >
> > > > > error: error opening
> > > > > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > > > > No such file or directory
> > > > > 1 error generated.
> > > > > make[1]: ***
> > > > > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
> > > >
> > > > I tried to reproduce this using the current Homebrew formula for git [1]
> > > > on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> > > > steps:
> > > >
> > > > brew tap --force homebrew/core
> > > > cd "$(brew --repository homebrew/core)"
> > > > git checkout -B main origin/main
> > > > git pull
> > > > HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
> > > >
> > > > In my environment, the build finished successfully. The patch doesn't
> > > > seem to trigger any issues during a local "make" either. How exactly are
> > > > you performing your build?
> > > >
> > > > [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
> > >
> > > macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
> > > from source. So just
> > >
> > > brew upgrade git
> > >
> > > built 2.53.0 + patches from source. "brew --version" says I have
> > > "Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
> > > so I'm not sure off-hand if that includes the core tap version or not
> > > anymore.
> >
> > To rule out differing versions, I also diff'd the Homebrew formula
> > from GitHub against "brew edit git", and the only difference is the
> > bottle stanza on GitHub.
> >
> > > I ended up having to use `brew upgrade --debug git`, fix the build
> > > error ("mkdir …") and manually perform a few steps when it arose, etc.
>
> Thank you for the details. The current Makefile rule performs the
> following to generate dependency files
>
> contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> where the compiler implicitly creates
> contrib/credential/osxkeychain/.depend/ if it doesn't exist. This
> behavior seems to be supported at least since Apple clang 15.0.0.
Aha! I have clang 13. That probably explains it.
> The
> following should work for older versions of clang that might not support
> this behavior.
>
> contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> @mkdir -p contrib/credential/osxkeychain/.depend
> $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> Can you try this modification in your environment? You can confirm
> whether this works as below.
>
> git clone https://github.com/git/git.git
> cd git
> git checkout v2.53.0
> curl https://raw.githubusercontent.com/Homebrew/homebrew-core/46d746f92167fd0559af22f4ccb79c9ff35fbe33/Patches/git/2.53.0-osxkeychain-top-level-makefile.patch
> | patch
Using git-am worked (patch doesn't apply it)
> # The next should fail in your environment.
> make contrib/credential/osxkeychain/git-credential-osxkeychain
Fails as stated.
> # Please edit Makefile as described and try again. This should
> # succeed.
> make contrib/credential/osxkeychain/git-credential-osxkeychain
With the (now obvious!) proposal, indeed succeeds.
Thanks!
--
D. Ben Knoble
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2] osxkeychain: define build targets in the top-level Makefile.
2026-02-17 21:54 ` D. Ben Knoble
@ 2026-02-18 4:06 ` Koji Nakamaru
0 siblings, 0 replies; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-18 4:06 UTC (permalink / raw)
To: D. Ben Knoble; +Cc: Junio C Hamano, Koji Nakamaru via GitGitGadget, git
On Wed, Feb 18, 2026 at 6:54 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
>
> On Tue, Feb 17, 2026 at 1:05 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> >
> > On Tue, Feb 17, 2026 at 10:12 PM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > >
> > > On Tue, Feb 17, 2026 at 8:10 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > >
> > > > On Mon, Feb 16, 2026 at 8:09 PM Koji Nakamaru <koji.nakamaru@gree.net> wrote:
> > > > >
> > > > > On Tue, Feb 17, 2026 at 8:45 AM D. Ben Knoble <ben.knoble@gmail.com> wrote:
> > > > > > ...
> > > > > >
> > > > > > Homebrew picked this patch on top of 2.53.0, and on a recent build on
> > > > > > older macOS I needed to
> > > > > >
> > > > > > mkdir contrib/credential/osxkeychain/.depend
> > > > > >
> > > > > > in order to make their build work, since otherwise:
> > > > > >
> > > > > > error: error opening
> > > > > > 'contrib/credential/osxkeychain/.depend/git-credential-osxkeychain.o.d':
> > > > > > No such file or directory
> > > > > > 1 error generated.
> > > > > > make[1]: ***
> > > > > > [contrib/credential/osxkeychain/git-credential-osxkeychain.o] Error 1
> > > > >
> > > > > I tried to reproduce this using the current Homebrew formula for git [1]
> > > > > on macOS 15.7.4 and 14.8.4 (both relatively newer) with the following
> > > > > steps:
> > > > >
> > > > > brew tap --force homebrew/core
> > > > > cd "$(brew --repository homebrew/core)"
> > > > > git checkout -B main origin/main
> > > > > git pull
> > > > > HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall --build-from-source git
> > > > >
> > > > > In my environment, the build finished successfully. The patch doesn't
> > > > > seem to trigger any issues during a local "make" either. How exactly are
> > > > > you performing your build?
> > > > >
> > > > > [1] https://github.com/Homebrew/homebrew-core/blob/9ec3da0dcd3ccd1cd4d892a71377b251770212d7/Formula/g/git.rb
> > > >
> > > > macOS 12.7.6 ;) hence tier 3 Homebrew support + all packages build
> > > > from source. So just
> > > >
> > > > brew upgrade git
> > > >
> > > > built 2.53.0 + patches from source. "brew --version" says I have
> > > > "Homebrew 5.0.14-59-g45db1ce"; it doesn't print a homebrew-core line,
> > > > so I'm not sure off-hand if that includes the core tap version or not
> > > > anymore.
> > >
> > > To rule out differing versions, I also diff'd the Homebrew formula
> > > from GitHub against "brew edit git", and the only difference is the
> > > bottle stanza on GitHub.
> > >
> > > > I ended up having to use `brew upgrade --debug git`, fix the build
> > > > error ("mkdir …") and manually perform a few steps when it arose, etc.
> >
> > Thank you for the details. The current Makefile rule performs the
> > following to generate dependency files
> >
> > contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> > contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> > $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> > $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
> >
> > where the compiler implicitly creates
> > contrib/credential/osxkeychain/.depend/ if it doesn't exist. This
> > behavior seems to be supported at least since Apple clang 15.0.0.
>
> Aha! I have clang 13. That probably explains it.
>
> > The
> > following should work for older versions of clang that might not support
> > this behavior.
> >
> > contrib/credential/osxkeychain/git-credential-osxkeychain.o:
> > contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> > @mkdir -p contrib/credential/osxkeychain/.depend
> > $(QUIET_CC)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> > $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
> >
> > Can you try this modification in your environment? You can confirm
> > whether this works as below.
> >
> > git clone https://github.com/git/git.git
> > cd git
> > git checkout v2.53.0
> > curl https://raw.githubusercontent.com/Homebrew/homebrew-core/46d746f92167fd0559af22f4ccb79c9ff35fbe33/Patches/git/2.53.0-osxkeychain-top-level-makefile.patch
> > | patch
>
> Using git-am worked (patch doesn't apply it)
>
> > # The next should fail in your environment.
> > make contrib/credential/osxkeychain/git-credential-osxkeychain
>
> Fails as stated.
>
> > # Please edit Makefile as described and try again. This should
> > # succeed.
> > make contrib/credential/osxkeychain/git-credential-osxkeychain
>
> With the (now obvious!) proposal, indeed succeeds.
>
> Thanks!
Thank you for testing the modification. I'll submit an updated patch
later and also submit it to homebrew (for the current 2.53.0).
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
2026-02-11 1:59 ` [PATCH v2] " Koji Nakamaru via GitGitGadget
2026-02-11 15:37 ` Junio C Hamano
@ 2026-02-18 5:14 ` Koji Nakamaru via GitGitGadget
2026-02-18 16:09 ` Kristoffer Haugsbakk
` (2 more replies)
1 sibling, 3 replies; 20+ messages in thread
From: Koji Nakamaru via GitGitGadget @ 2026-02-18 5:14 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, D. Ben Knoble, Koji Nakamaru, Koji Nakamaru
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.
Helped-by: Junio C Hamano <gitster@pobox.com>
Reported-by: D. Ben Knoble <ben.knoble@gmail.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
---
osxkeychain: define build targets in the top-level Makefile.
Changes since v2:
* Squash the double spaces after "-C" into one white.
* Add explicit mkdir -p contrib/credential/osxkeychain/.depend for
older versions of clang.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2046%2FKojiNakamaru%2Ffix%2Fosxkeychain-makefile-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2046/KojiNakamaru/fix/osxkeychain-makefile-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/2046
Range-diff vs v2:
1: 8c5d75f0c6 ! 1: 25a66e1b7d osxkeychain: define build targets in the top-level Makefile.
@@ Commit message
Makefile and modify its local Makefile to simply rely on those targets.
Helped-by: Junio C Hamano <gitster@pobox.com>
+ Reported-by: D. Ben Knoble <ben.knoble@gmail.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
## Makefile ##
@@ Makefile: $(LIBGIT_HIDDEN_EXPORT): $(LIBGIT_PARTIAL_EXPORT)
+ $(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
++ @mkdir -p contrib/credential/osxkeychain/.depend
+ $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
+
+install-git-credential-osxkeychain: contrib/credential/osxkeychain/git-credential-osxkeychain
@@ contrib/credential/osxkeychain/Makefile
--include ../../../config.mak.autogen
--include ../../../config.mak
+git-credential-osxkeychain:
-+ $(MAKE) -C ../../.. contrib/credential/osxkeychain/git-credential-osxkeychain
++ $(MAKE) -C ../../.. contrib/credential/osxkeychain/git-credential-osxkeychain
-ifdef ZLIB_NG
- BASIC_CFLAGS += -DHAVE_ZLIB_NG
@@ contrib/credential/osxkeychain/Makefile
-../../../libgit.a:
- cd ../../..; make libgit.a
+install:
-+ $(MAKE) -C ../../.. install-git-credential-osxkeychain
++ $(MAKE) -C ../../.. install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
-+ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
++ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
Makefile | 18 +++++++
contrib/credential/osxkeychain/Makefile | 65 +++----------------------
2 files changed, 24 insertions(+), 59 deletions(-)
diff --git a/Makefile b/Makefile
index 4ac44331ea..1c2019a4cb 100644
--- a/Makefile
+++ b/Makefile
@@ -4060,3 +4060,21 @@ $(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
+ @mkdir -p contrib/credential/osxkeychain/.depend
+ $(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..219b0d7f49 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:
+ $(MAKE) -C ../../.. 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:
+ $(MAKE) -C ../../.. install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
+ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
base-commit: 864f55e1906897b630333675a52874c0fec2a45c
--
gitgitgadget
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
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-20 1:39 ` [PATCH v4] " Koji Nakamaru via GitGitGadget
2 siblings, 1 reply; 20+ messages in thread
From: Kristoffer Haugsbakk @ 2026-02-18 16:09 UTC (permalink / raw)
To: Koji Nakamaru via GitGitGadget, git
Cc: Junio C Hamano, D. Ben Knoble, Koji Nakamaru
On Wed, Feb 18, 2026, at 06:14, Koji Nakamaru via GitGitGadget wrote:
> 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,
Nitpick: Commit references should have the date:
4580bcd235 (osxkeychain: avoid incorrectly skipping store operation, 2025-11-14)
Like the rest of the commits you reference here.
> 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)
>[snip]
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
2026-02-18 5:14 ` [PATCH v3] " Koji Nakamaru via GitGitGadget
2026-02-18 16:09 ` Kristoffer Haugsbakk
@ 2026-02-18 17:55 ` Junio C Hamano
2026-02-18 19:14 ` Koji Nakamaru
2026-02-20 1:39 ` [PATCH v4] " Koji Nakamaru via GitGitGadget
2 siblings, 1 reply; 20+ messages in thread
From: Junio C Hamano @ 2026-02-18 17:55 UTC (permalink / raw)
To: Koji Nakamaru via GitGitGadget; +Cc: git, D. Ben Knoble, Koji Nakamaru
"Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
> +contrib/credential/osxkeychain/git-credential-osxkeychain.o: contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> + @mkdir -p contrib/credential/osxkeychain/.depend
> + $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
I notice that many other places in the Makefile we seem to use
$(call mkdir_p_parent_template). Do we want to do so here, too?
Other than that, looking good. Thanks for updating.
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
2026-02-18 16:09 ` Kristoffer Haugsbakk
@ 2026-02-18 19:11 ` Koji Nakamaru
0 siblings, 0 replies; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-18 19:11 UTC (permalink / raw)
To: Kristoffer Haugsbakk
Cc: Koji Nakamaru via GitGitGadget, git, Junio C Hamano,
D. Ben Knoble
On Thu, Feb 19, 2026 at 1:10 AM Kristoffer Haugsbakk
<kristofferhaugsbakk@fastmail.com> wrote:
>
> On Wed, Feb 18, 2026, at 06:14, Koji Nakamaru via GitGitGadget wrote:
> > 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,
>
> Nitpick: Commit references should have the date:
>
> 4580bcd235 (osxkeychain: avoid incorrectly skipping store operation, 2025-11-14)
>
> Like the rest of the commits you reference here.
>
> > 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)
> >[snip]
I see. I'll fix the commit message in the next reroll.
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
2026-02-18 17:55 ` Junio C Hamano
@ 2026-02-18 19:14 ` Koji Nakamaru
2026-02-19 15:25 ` Junio C Hamano
0 siblings, 1 reply; 20+ messages in thread
From: Koji Nakamaru @ 2026-02-18 19:14 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Koji Nakamaru via GitGitGadget, git, D. Ben Knoble
On Thu, Feb 19, 2026 at 2:55 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> "Koji Nakamaru via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > +contrib/credential/osxkeychain/git-credential-osxkeychain.o: contrib/credential/osxkeychain/git-credential-osxkeychain.c GIT-CFLAGS
> > + @mkdir -p contrib/credential/osxkeychain/.depend
> > + $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> I notice that many other places in the Makefile we seem to use
> $(call mkdir_p_parent_template). Do we want to do so here, too?
>
> Other than that, looking good. Thanks for updating.
$(call mkdir_p_parent_tempate) seems to be used for creating the
target's parent directory (e.g., creating
po/build/locale/bg/LC_MESSAGES/ for
po/build/locale/bg/LC_MESSAGES/git.mo).
Since .depend directories are handled via dep_dirs in this Makefile,
how about the following change for consistency?
diff --git a/Makefile b/Makefile
index 1c2019a4cb..47485004d8 100644
--- a/Makefile
+++ b/Makefile
@@ -2876,6 +2876,10 @@ objects: $(OBJECTS)
dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
dep_dirs := $(addsuffix .depend,$(sort $(dir $(OBJECTS))))
+ifeq ($(uname_S),Darwin)
+ dep_dirs += $(addsuffix .depend,$(sort $(dir
contrib/credential/osxkeychain/git-credential-osxkeychain.o)))
+endif
+
ifeq ($(COMPUTE_HEADER_DEPENDENCIES),yes)
$(dep_dirs):
@mkdir -p $@
@@ -4066,7 +4070,6 @@
contrib/credential/osxkeychain/git-credential-osxkeychain:
contrib/credential/os
$(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
- @mkdir -p contrib/credential/osxkeychain/.depend
$(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args)
$(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
install-git-credential-osxkeychain:
contrib/credential/osxkeychain/git-credential-osxkeychain
--
Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v3] osxkeychain: define build targets in the top-level Makefile.
2026-02-18 19:14 ` Koji Nakamaru
@ 2026-02-19 15:25 ` Junio C Hamano
0 siblings, 0 replies; 20+ messages in thread
From: Junio C Hamano @ 2026-02-19 15:25 UTC (permalink / raw)
To: Koji Nakamaru; +Cc: Koji Nakamaru via GitGitGadget, git, D. Ben Knoble
Koji Nakamaru <koji.nakamaru@gree.net> writes:
> Since .depend directories are handled via dep_dirs in this Makefile,
> how about the following change for consistency?
Sounds good. Thanks for spotting.
>
> diff --git a/Makefile b/Makefile
> index 1c2019a4cb..47485004d8 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2876,6 +2876,10 @@ objects: $(OBJECTS)
> dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
> dep_dirs := $(addsuffix .depend,$(sort $(dir $(OBJECTS))))
>
> +ifeq ($(uname_S),Darwin)
> + dep_dirs += $(addsuffix .depend,$(sort $(dir
> contrib/credential/osxkeychain/git-credential-osxkeychain.o)))
> +endif
> +
> ifeq ($(COMPUTE_HEADER_DEPENDENCIES),yes)
> $(dep_dirs):
> @mkdir -p $@
> @@ -4066,7 +4070,6 @@
> contrib/credential/osxkeychain/git-credential-osxkeychain:
> contrib/credential/os
> $(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
> - @mkdir -p contrib/credential/osxkeychain/.depend
> $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args)
> $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
>
> install-git-credential-osxkeychain:
> contrib/credential/osxkeychain/git-credential-osxkeychain
>
> --
> Koji Nakamaru
^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v4] osxkeychain: define build targets in the top-level Makefile.
2026-02-18 5:14 ` [PATCH v3] " Koji Nakamaru via GitGitGadget
2026-02-18 16:09 ` Kristoffer Haugsbakk
2026-02-18 17:55 ` Junio C Hamano
@ 2026-02-20 1:39 ` Koji Nakamaru via GitGitGadget
2 siblings, 0 replies; 20+ messages in thread
From: Koji Nakamaru via GitGitGadget @ 2026-02-20 1:39 UTC (permalink / raw)
To: git
Cc: Junio C Hamano, D. Ben Knoble, Kristoffer Haugsbakk,
Koji Nakamaru, Koji Nakamaru
From: Koji Nakamaru <koji.nakamaru@gree.net>
The fix for git-credential-osxkeychain in 4580bcd235 (osxkeychain: avoid
incorrectly skipping store operation, 2025-11-14) 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.
Helped-by: Junio C Hamano <gitster@pobox.com>
Reported-by: D. Ben Knoble <ben.knoble@gmail.com>
Helped-by: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
---
osxkeychain: define build targets in the top-level Makefile.
Changes since v3:
* Add missing commit reference date.
* Use dep_dirs to create contrib/credential/osxkeychain/.depend.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2046%2FKojiNakamaru%2Ffix%2Fosxkeychain-makefile-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2046/KojiNakamaru/fix/osxkeychain-makefile-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/2046
Range-diff vs v3:
1: 25a66e1b7d ! 1: 3c36804348 osxkeychain: define build targets in the top-level Makefile.
@@ Commit message
osxkeychain: define build targets in the top-level Makefile.
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:
+ incorrectly skipping store operation, 2025-11-14) 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,
@@ Commit message
Helped-by: Junio C Hamano <gitster@pobox.com>
Reported-by: D. Ben Knoble <ben.knoble@gmail.com>
+ Helped-by: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail.com>
Signed-off-by: Koji Nakamaru <koji.nakamaru@gree.net>
## Makefile ##
+@@ Makefile: objects: $(OBJECTS)
+ dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
+ dep_dirs := $(addsuffix .depend,$(sort $(dir $(OBJECTS))))
+
++ifeq ($(uname_S),Darwin)
++ dep_dirs += $(addsuffix .depend,$(sort $(dir contrib/credential/osxkeychain/git-credential-osxkeychain.o)))
++endif
++
+ ifeq ($(COMPUTE_HEADER_DEPENDENCIES),yes)
+ $(dep_dirs):
+ @mkdir -p $@
@@ Makefile: $(LIBGIT_HIDDEN_EXPORT): $(LIBGIT_PARTIAL_EXPORT)
contrib/libgit-sys/libgitpub.a: $(LIBGIT_HIDDEN_EXPORT)
@@ Makefile: $(LIBGIT_HIDDEN_EXPORT): $(LIBGIT_PARTIAL_EXPORT)
+ $(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
-+ @mkdir -p contrib/credential/osxkeychain/.depend
+ $(QUIET_LINK)$(CC) -o $@ -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $<
+
+install-git-credential-osxkeychain: contrib/credential/osxkeychain/git-credential-osxkeychain
Makefile | 21 ++++++++
contrib/credential/osxkeychain/Makefile | 65 +++----------------------
2 files changed, 27 insertions(+), 59 deletions(-)
diff --git a/Makefile b/Makefile
index 4ac44331ea..47485004d8 100644
--- a/Makefile
+++ b/Makefile
@@ -2876,6 +2876,10 @@ objects: $(OBJECTS)
dep_files := $(foreach f,$(OBJECTS),$(dir $f).depend/$(notdir $f).d)
dep_dirs := $(addsuffix .depend,$(sort $(dir $(OBJECTS))))
+ifeq ($(uname_S),Darwin)
+ dep_dirs += $(addsuffix .depend,$(sort $(dir contrib/credential/osxkeychain/git-credential-osxkeychain.o)))
+endif
+
ifeq ($(COMPUTE_HEADER_DEPENDENCIES),yes)
$(dep_dirs):
@mkdir -p $@
@@ -4060,3 +4064,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..219b0d7f49 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:
+ $(MAKE) -C ../../.. 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:
+ $(MAKE) -C ../../.. install-git-credential-osxkeychain
clean:
- $(RM) git-credential-osxkeychain git-credential-osxkeychain.o
+ $(MAKE) -C ../../.. clean-git-credential-osxkeychain
-.PHONY: all install clean
+.PHONY: all git-credential-osxkeychain install clean
base-commit: 864f55e1906897b630333675a52874c0fec2a45c
--
gitgitgadget
^ permalink raw reply related [flat|nested] 20+ messages in thread
end of thread, other threads:[~2026-02-20 1:39 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10 18:01 [PATCH] osxkeychain: define build targets in the top-level Makefile Koji Nakamaru via GitGitGadget
2026-02-10 19:50 ` 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox