git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 8/2] Build commands through object files

From
Petr Baudis <pasky@suse.cz>
Date
Jul 29, 2005, 17:21 UTC
Message-ID
<20050729172153.GM21909@pasky.ji.cz>
In-Reply-To
<20050729085819.GL24895@pasky.ji.cz>

Separate the process of building the commands to compilation and linkage. This makes it more consistent with the library objects, is the traditional thing to do, and significantly speeds up the subsequent rebuilds, especially for us the people who develop git on 300MHz notebooks.

Ported from Cogito.
Signed-off-by: Petr Baudis <pasky@ucw.cz>

--- commit 02074521a74483bec941ceacea35f92b485ebd48 tree b08deb01bab982b846b5757943571d0c39b9ba76 parent cd2182ac0e0635faeca6467b68decf8ab9625f4c author Petr Baudis <pasky@suse.cz> Fri, 29 Jul 2005 19:20:28 +0200 committer Petr Baudis <xpasky@machine.sinus.cz> Fri, 29 Jul 2005 19:20:28 +0200

 Makefile |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -133,13 +133,14 @@ CFLAGS += '-DSHA1_HEADER=$(SHA1_HEADER)'
 all: $(PROG)
 
 
-git-%: %.c $(LIB_FILE)
-	$(CC) $(CFLAGS) -o $@ $(filter %.c,$^) $(LIBS)
-
-git-http-pull: pull.c
-git-local-pull: pull.c
-git-ssh-pull: rsh.c pull.c
-git-ssh-push: rsh.c
+.PRECIOUS: %.o
+git-%: %.o $(LIB_FILE)
+	$(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+
+git-http-pull: pull.o
+git-local-pull: pull.o
+git-ssh-pull: rsh.o pull.o
+git-ssh-push: rsh.o
 
 git-http-pull: LIBS += -lcurl
 git-rev-list: LIBS += -lssl
Previous: Jon SeymourNext: Petr Baudis
Message 18 of 21 in “Bits from git-pb”
  1. 0/2 Bits from git-pbPetr Baudis, Jul 29, 2005
  2. 1/2 Trivial tidyupsPetr Baudis, Jul 29, 2005
  3. 2/2 Unify usage strings declarationPetr Baudis, Jul 29, 2005
  4. Junio C HamanoJul 30, 2005
  5. Matthias UrlichsJul 30, 2005
  6. 3/2 git-merge-cache -q doesn't complain about failing merge programPetr Baudis, Jul 29, 2005
  7. Junio C HamanoJul 30, 2005
  8. 4/2 Improve the compilation-time settings interfacePetr Baudis, Jul 29, 2005
  9. Petr BaudisJul 29, 2005
  10. 5/2 Remove the explicit Makefile dependencies descriptionPetr Baudis, Jul 29, 2005
  11. 6/2 Reorder Makefile rulesPetr Baudis, Jul 29, 2005
  12. 7/2 Support for NO_OPENSSLPetr Baudis, Jul 29, 2005
  13. Linus TorvaldsJul 30, 2005
  14. Junio C HamanoJul 30, 2005
  15. Under NO_OPENSSL -lssl should not be usedJunio C Hamano, Jul 30, 2005
  16. Linus TorvaldsJul 30, 2005
  17. Jon SeymourAug 2, 2005
  18. 8/2 Build commands through object filesPetr Baudis, Jul 29, 2005
  19. Petr BaudisJul 30, 2005
  20. Junio C HamanoJul 30, 2005
  21. Junio C HamanoJul 30, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.