git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Thomas Uhle <thomas.uhle@mailbox.tu-dresden.de>
To: <git@vger.kernel.org>
Subject: [PATCH] contrib/credential: Amend and harmonize Makefiles
Date: Fri, 10 Oct 2025 19:30:22 +0200	[thread overview]
Message-ID: <48d92664-41af-bb59-1844-7bb57f21924f@mailbox.tu-dresden.de> (raw)

Update these Makefiles to be in line with other Makefiles from contrib
such as for contacts or subtree by making the following changes:
* Make the default settings after including config.mak.autogen and
   config.mak.
* Add the missing $(CPPFLAGS) to the compiler command as well as the
   missing $(CFLAGS) to the linker command.
* Use a pattern rule for compilation instead of a dedicated rule for
   each compile unit.
* Add an install target rule.
* Strip @ from $(RM) to let the clean target rule be verbose.
* Define .PHONY for all special targets (all, clean, install).

Signed-off-by: Thomas Uhle <thomas.uhle@mailbox.tu-dresden.de>
---
  contrib/credential/libsecret/Makefile   | 30 ++++++++++++++-------
  contrib/credential/osxkeychain/Makefile | 36 ++++++++++++++++++-------
  2 files changed, 46 insertions(+), 20 deletions(-)

diff --git a/contrib/credential/libsecret/Makefile b/contrib/credential/libsecret/Makefile
index 97ce9c9..8ee6cce 100644
--- a/contrib/credential/libsecret/Makefile
+++ b/contrib/credential/libsecret/Makefile
@@ -1,17 +1,21 @@
  # The default target of this Makefile is...
  all::

-MAIN:=git-credential-libsecret
-all:: $(MAIN)
-
-CC = gcc
-RM = rm -f
-CFLAGS = -g -O2 -Wall
-PKG_CONFIG = pkg-config
-
  -include ../../../config.mak.autogen
  -include ../../../config.mak

+prefix ?= /usr/local
+gitexecdir ?= $(prefix)/libexec/git-core
+
+CC ?= gcc
+CFLAGS ?= -g -O2 -Wall
+PKG_CONFIG ?= pkg-config
+INSTALL ?= install
+RM ?= rm -f
+
+MAIN:=git-credential-libsecret
+all:: $(MAIN)
+
  INCS:=$(shell $(PKG_CONFIG) --cflags libsecret-1 glib-2.0)
  LIBS:=$(shell $(PKG_CONFIG) --libs libsecret-1 glib-2.0)

@@ -22,7 +26,13 @@ OBJS:=$(SRCS:.c=.o)
  	$(CC) $(CFLAGS) $(CPPFLAGS) $(INCS) -o $@ -c $<

  $(MAIN): $(OBJS)
-	$(CC) -o $@ $(LDFLAGS) $^ $(LIBS)
+	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS)
+
+install: $(MAIN)
+	$(INSTALL) -d -m 755 $(DESTDIR)$(gitexecdir)
+	$(INSTALL) -m 755 $< $(DESTDIR)$(gitexecdir)

  clean:
-	@$(RM) $(MAIN) $(OBJS)
+	$(RM) $(MAIN) $(OBJS)
+
+.PHONY: all install clean
diff --git a/contrib/credential/osxkeychain/Makefile b/contrib/credential/osxkeychain/Makefile
index 0948297..b1d7c29 100644
--- a/contrib/credential/osxkeychain/Makefile
+++ b/contrib/credential/osxkeychain/Makefile
@@ -1,19 +1,35 @@
  # The default target of this Makefile is...
-all:: git-credential-osxkeychain
-
-CC = gcc
-RM = rm -f
-CFLAGS = -g -O2 -Wall
+all::

  -include ../../../config.mak.autogen
  -include ../../../config.mak

-git-credential-osxkeychain: git-credential-osxkeychain.o
-	$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) \
+prefix ?= /usr/local
+gitexecdir ?= $(prefix)/libexec/git-core
+
+CC ?= gcc
+CFLAGS ?= -g -O2 -Wall
+INSTALL ?= install
+RM ?= rm -f
+
+MAIN:=git-credential-osxkeychain
+all:: $(MAIN)
+
+SRCS:=$(MAIN).c
+OBJS:=$(SRCS:.c=.o)
+
+%.o: %.c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
+
+$(MAIN): $(OBJS)
+	$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) \
  		-framework Security -framework CoreFoundation

-git-credential-osxkeychain.o: git-credential-osxkeychain.c
-	$(CC) -c $(CFLAGS) $<
+install: $(MAIN)
+	$(INSTALL) -d -m 755 $(DESTDIR)$(gitexecdir)
+	$(INSTALL) -m 755 $< $(DESTDIR)$(gitexecdir)

  clean:
-	$(RM) git-credential-osxkeychain git-credential-osxkeychain.o
+	$(RM) $(MAIN) $(OBJS)
+
+.PHONY: all install clean

base-commit: 60f3f52f17cceefa5299709b189ce6fe2d181e7b
-- 
2.47.3


             reply	other threads:[~2025-10-10 17:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-10 17:30 Thomas Uhle [this message]
2025-10-10 19:45 ` [PATCH] contrib/credential: Amend and harmonize Makefiles Junio C Hamano
2025-10-10 21:03   ` Thomas Uhle
2025-10-10 21:25     ` Junio C Hamano
2025-10-11 12:45       ` Thomas Uhle
2025-10-11 17:57         ` Junio C Hamano
2025-10-11 19:18           ` Thomas Uhle
2025-10-20 18:20 ` [PATCH v2] " Thomas Uhle

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48d92664-41af-bb59-1844-7bb57f21924f@mailbox.tu-dresden.de \
    --to=thomas.uhle@mailbox.tu-dresden.de \
    --cc=git@vger.kernel.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).