From: nod.helm@gmail.com
To: git@vger.kernel.org
Cc: James Denholm <nod.helm@gmail.com>,
greened@obbligato.org, apenwarr@gmail.com, dpmcgee@gmail.com
Subject: [PATCH] subtree/Makefile: Standardize (esp. for packagers)
Date: Thu, 24 Apr 2014 11:52:16 +1000 [thread overview]
Message-ID: <1398304336-1879-1-git-send-email-nod.helm@gmail.com> (raw)
From: James Denholm <nod.helm@gmail.com>
contrib/subtree/Makefile is a shambles in regards to it's consistency
with other makefiles, which makes subtree overly painful to include in
build scripts.
Two major issues are present:
Firstly, calls to git itself (for $(gitdir) and $(gitver)), making
building difficult on systems that don't have git.
Secondly, the Makefile uses the variable $(libexecdir) for defining the
exec path.
To fix:
1: Scrap unused $(gitdir) assignment
References were removed in 7ff8463dba0d74fc07a766bed457ae7afcc902b5,
but the assignment itself wasn't. Ergo, $(gitdir) hasn't actually
been using it since then.
2: Use GIT-VERSION-FILE for version info, from $(gitver)
GVF is already being used in most/all other makefiles in the
project, and has been for _quite_ a while.
3: :%s/libexecdir/gitexecdir/g
$(libexecdir) isn't used anywhere else in the project, while
$(gitexecdir) is the standard.
On minor fixes, also fiddled with clean rule and a few calls/variables
to improve congruency with other git makefiles.
Signed-off-by: James Denholm <nod.helm@gmail.com>
Based-on-patch-by: Dan McGee <dpmcgee@gmail.com>
---
Obligatory "first patch ever, yay, hello" exclamation goes here,
random misspelt words and/or life story optional.
I've left `rm -f -r subproj mainline` in the clean rule for now, however
I'd suggest those actually belong in contrib/subtree/t/Makefile:clean,
given that they are only ever generated by `make test`. But given that
there aren't any other comparable setups in contrib/, I'm somewhat
apprehensive to move them without opinion.
Anyway, hopefully this might make some distros more inclined to package
git-subtree in their canonical git packages. A very special thanks to
Dan, who proposed the initial patch back in 2012-or-so that this is
largely based off of.
contrib/subtree/Makefile | 41 +++++++++++++++++++++++++----------------
1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/contrib/subtree/Makefile b/contrib/subtree/Makefile
index 4030a16..e1956b8 100644
--- a/contrib/subtree/Makefile
+++ b/contrib/subtree/Makefile
@@ -3,17 +3,23 @@
prefix ?= /usr/local
mandir ?= $(prefix)/share/man
-libexecdir ?= $(prefix)/libexec/git-core
-gitdir ?= $(shell git --exec-path)
+gitexecdir ?= $(prefix)/libexec/git-core
man1dir ?= $(mandir)/man1
-gitver ?= $(word 3,$(shell git --version))
+../../GIT-VERSION-FILE: FORCE
+ $(MAKE) -C ../../ GIT-VERSION-FILE
-# this should be set to a 'standard' bsd-type install program
-INSTALL ?= install
+-include ../../GIT-VERSION-FILE
-ASCIIDOC_CONF = ../../Documentation/asciidoc.conf
-MANPAGE_NORMAL_XSL = ../../Documentation/manpage-normal.xsl
+# These should be set to 'standard' bsd-type programs
+INSTALL ?= install
+RM ?= rm -f
+
+ASCIIDOC ?= asciidoc
+XMLTO ?= xmlto
+
+ASCIIDOC_CONF = ../../Documentation/asciidoc.conf
+MANPAGE_XSL = ../../Documentation/manpage-normal.xsl
GIT_SUBTREE_SH := git-subtree.sh
GIT_SUBTREE := git-subtree
@@ -31,8 +37,8 @@ $(GIT_SUBTREE): $(GIT_SUBTREE_SH)
doc: $(GIT_SUBTREE_DOC) $(GIT_SUBTREE_HTML)
install: $(GIT_SUBTREE)
- $(INSTALL) -d -m 755 $(DESTDIR)$(libexecdir)
- $(INSTALL) -m 755 $(GIT_SUBTREE) $(DESTDIR)$(libexecdir)
+ $(INSTALL) -d -m 755 $(DESTDIR)$(gitexecdir)
+ $(INSTALL) -m 755 $(GIT_SUBTREE) $(DESTDIR)$(gitexecdir)
install-doc: install-man
@@ -41,19 +47,22 @@ install-man: $(GIT_SUBTREE_DOC)
$(INSTALL) -m 644 $^ $(DESTDIR)$(man1dir)
$(GIT_SUBTREE_DOC): $(GIT_SUBTREE_XML)
- xmlto -m $(MANPAGE_NORMAL_XSL) man $^
+ $(XMLTO) -m $(MANPAGE_XSL) man $^
$(GIT_SUBTREE_XML): $(GIT_SUBTREE_TXT)
- asciidoc -b docbook -d manpage -f $(ASCIIDOC_CONF) \
- -agit_version=$(gitver) $^
+ $(ASCIIDOC) -b docbook -d manpage -f $(ASCIIDOC_CONF) \
+ -agit_version=$(GIT_VERSION) $^
$(GIT_SUBTREE_HTML): $(GIT_SUBTREE_TXT)
- asciidoc -b xhtml11 -d manpage -f $(ASCIIDOC_CONF) \
- -agit_version=$(gitver) $^
+ $(ASCIIDOC) -b xhtml11 -d manpage -f $(ASCIIDOC_CONF) \
+ -agit_version=$(GIT_VERSION) $^
test:
$(MAKE) -C t/ test
clean:
- rm -f *~ *.xml *.html *.1
- rm -rf subproj mainline
+ $(RM) $(GIT_SUBTREE)
+ $(RM) *.xml *.html *.1
+ $(RM) -r subproj mainline
+
+.PHONY: FORCE
--
1.9.2
next reply other threads:[~2014-04-24 1:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 1:52 nod.helm [this message]
[not found] ` <CAHYYfeGNDLVxzP6zMyJnSi8GxpQaUKGAkqaLfXbZ=8B1k7vvyQ@mail.gmail.com>
2014-04-26 4:56 ` [PATCH] subtree/Makefile: Standardize (esp. for packagers) nod.helm
2014-04-26 7:25 ` Jeff King
2014-04-27 2:35 ` James Denholm
2014-04-27 2:51 ` Jeff King
2014-04-27 3:01 ` James Denholm
2014-04-30 3:20 ` Matthew Ogilvie
2014-05-03 12:56 ` James Denholm
2014-05-03 19:22 ` Felipe Contreras
2014-05-03 22:12 ` James Denholm
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=1398304336-1879-1-git-send-email-nod.helm@gmail.com \
--to=nod.helm@gmail.com \
--cc=apenwarr@gmail.com \
--cc=dpmcgee@gmail.com \
--cc=git@vger.kernel.org \
--cc=greened@obbligato.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.
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.