All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Jack Nagel <jacknagel@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: [PATCH] subtree: make "all" default target of Makefile
Date: Sun, 17 Aug 2014 03:07:32 -0400	[thread overview]
Message-ID: <20140817070732.GA23808@peff.net> (raw)
In-Reply-To: <CAMYxyaVrknapiF6L3Lnf5U59h7RCUY8qhYtipZp5P0k3Y1tCxg@mail.gmail.com>

You should be able to run "make" in contrib/subtree with no
arguments and get the "all" target. This was broken by
8e2a5cc (contrib/subtree/Makefile: use GIT-VERSION-FILE,
2014-05-06), which put the rule for GIT-VERSION-FILE higher
in the file.

We can fix this by putting an empty "all::" target at the
top of the file. That fixes this instance and future-proofs
against it happening again.

Reported-by: Jack Nagel <jacknagel@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
---
On Sun, Aug 17, 2014 at 01:49:49AM -0500, Jack Nagel wrote:

> $ make -C contrib/subtree
> /Library/Developer/CommandLineTools/usr/bin/make -C ../../ GIT-VERSION-FILE
> GIT_VERSION = 2.1.0
> make[1]: `GIT-VERSION-FILE' is up to date.
> /Library/Developer/CommandLineTools/usr/bin/make -C ../../ GIT-VERSION-FILE
> make[1]: `GIT-VERSION-FILE' is up to date.
> make: `../../GIT-VERSION-FILE' is up to date.
> $ ls contrib/subtree/git-subtree
> ls: contrib/subtree/git-subtree: No such file or directory

Thanks for a clear report. The patch below should fix it. This is the
same trick we use in the top-level Makefile. I notice we don't use it in
t/Makefile or Documentation/Makefile, though. Maybe we should.

I also notice that GIT-VERSION-FILE is included first in the top-level
Makefile, but in contrib/subtree/Makefile it comes after we include
config.mak and friends. I wonder if that would ever matter. I can see
somebody adjusting their config.mak based on the git version, but it's
probably not likely. It would only be used by somebody who compiles
historical git versions a lot (i.e., git devs). And it would require
using make's "simply expanded variables", since regular variables aren't
expanded until point of use. So it seems unlikely that anybody cares.

 contrib/subtree/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/contrib/subtree/Makefile b/contrib/subtree/Makefile
index d9a0ce2..8deffad 100644
--- a/contrib/subtree/Makefile
+++ b/contrib/subtree/Makefile
@@ -1,3 +1,5 @@
+all::
+
 -include ../../config.mak.autogen
 -include ../../config.mak
 
@@ -34,7 +36,7 @@ GIT_SUBTREE_XML := git-subtree.xml
 GIT_SUBTREE_TXT := git-subtree.txt
 GIT_SUBTREE_HTML := git-subtree.html
 
-all: $(GIT_SUBTREE)
+all:: $(GIT_SUBTREE)
 
 $(GIT_SUBTREE): $(GIT_SUBTREE_SH)
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' $< >$@
-- 
2.1.0.344.gf63f03f

      reply	other threads:[~2014-08-17  7:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-17  6:49 Running make in contrib/subtree does not create executable Jack Nagel
2014-08-17  7:07 ` Jeff King [this message]

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=20140817070732.GA23808@peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacknagel@gmail.com \
    /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.