prefix ?= /usr/local
mandir ?= $(prefix)/share/man
+libexecdir ?= $(prefix)/libexec/git-core
gitdir ?= $(shell git --exec-path)
+man1dir ?= $(mandir)/man1
gitver ?= $(word 3,$(shell git --version))
# this should be set to a 'standard' bsd-type install program
INSTALL ?= install
-INSTALL_DATA = $(INSTALL) -c -m 0644
-INSTALL_EXE = $(INSTALL) -c -m 0755
-INSTALL_DIR = $(INSTALL) -c -d -m 0755
ASCIIDOC_CONF = ../../Documentation/asciidoc.conf
MANPAGE_NORMAL_XSL = ../../Documentation/manpage-normal.xsl
-default:
- @echo "git-subtree doesn't need to be built."
- @echo "Just copy it somewhere on your PATH, like /usr/local/bin."
- @echo
- @echo "Try: make doc"
- @echo " or: make test"
- @false
+GIT_SUBTREE_SH := git-subtree.sh
+GIT_SUBTREE := git-subtree
-install: install-exe install-doc
+GIT_SUBTREE_DOC := git-subtree.1
+GIT_SUBTREE_XML := git-subtree.xml
+GIT_SUBTREE_TXT := git-subtree.txt
-install-exe: git-subtree.sh
- $(INSTALL_DIR) $(DESTDIR)/$(gitdir)
- $(INSTALL_EXE) $< $(DESTDIR)/$(gitdir)/git-subtree
+all: $(GIT_SUBTREE)
-install-doc: git-subtree.1
- $(INSTALL_DIR) $(DESTDIR)/$(mandir)/man1/
- $(INSTALL_DATA) $< $(DESTDIR)/$(mandir)/man1/
+$(GIT_SUBTREE): $(GIT_SUBTREE_SH)
+ cp $< $@ && chmod +x $@
-doc: git-subtree.1
+doc: $(GIT_SUBTREE_DOC)
-%.1: %.xml
+install: $(GIT_SUBTREE)
+ $(INSTALL) -m 755 $(GIT_SUBTREE) $(libexecdir)
+
+install-doc: install-man
+
+install-man: $(GIT_SUBTREE_DOC)
+ $(INSTALL) -m 644 $^ $(man1dir)
+
+$(GIT_SUBTREE_DOC): $(GIT_SUBTREE_XML)
xmlto -m $(MANPAGE_NORMAL_XSL) man $^
-%.xml: %.txt
+$(GIT_SUBTREE_XML): $(GIT_SUBTREE_TXT)
asciidoc -b docbook -d manpage -f $(ASCIIDOC_CONF) \
-agit_version=$(gitver) $^