upload-pack: report "not our ref" to client
[gitweb.git] / contrib / subtree / Makefile
index 91e0cc08ea514a954bd3bab035baf0eadac6644e..6afa9aafdf3b85b44e69aac419d0cd611bb48017 100644 (file)
@@ -1,45 +1,85 @@
+# The default target of this Makefile is...
+all::
+
+-include ../../config.mak.autogen
+-include ../../config.mak
+
 prefix ?= /usr/local
+gitexecdir ?= $(prefix)/libexec/git-core
 mandir ?= $(prefix)/share/man
-gitdir ?= $(shell git --exec-path)
+man1dir ?= $(mandir)/man1
+htmldir ?= $(prefix)/share/doc/git-doc
 
-gitver ?= $(word 3,$(shell git --version))
+../../GIT-VERSION-FILE: FORCE
+       $(MAKE) -C ../../ GIT-VERSION-FILE
+
+-include ../../GIT-VERSION-FILE
 
 # 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
+INSTALL  ?= install
+RM       ?= rm -f
+
+ASCIIDOC = asciidoc
+XMLTO    = xmlto
+
+ifndef SHELL_PATH
+       SHELL_PATH = /bin/sh
+endif
+SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
+
+ASCIIDOC_CONF = ../../Documentation/asciidoc.conf
+MANPAGE_XSL   = ../../Documentation/manpage-normal.xsl
+
+GIT_SUBTREE_SH := git-subtree.sh
+GIT_SUBTREE    := git-subtree
 
-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_DOC := git-subtree.1
+GIT_SUBTREE_XML := git-subtree.xml
+GIT_SUBTREE_TXT := git-subtree.txt
+GIT_SUBTREE_HTML := git-subtree.html
+GIT_SUBTREE_TEST := ../../git-subtree
 
-install: install-exe install-doc
+all:: $(GIT_SUBTREE)
 
-install-exe: git-subtree.sh
-       $(INSTALL_DIR) $(DESTDIR)/$(gitdir)
-       $(INSTALL_EXE) $< $(DESTDIR)/$(gitdir)/git-subtree
+$(GIT_SUBTREE): $(GIT_SUBTREE_SH)
+       sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' $< >$@
+       chmod +x $@
 
-install-doc: git-subtree.1
-       $(INSTALL_DIR) $(DESTDIR)/$(mandir)/man1/
-       $(INSTALL_DATA) $< $(DESTDIR)/$(mandir)/man1/
+doc: $(GIT_SUBTREE_DOC) $(GIT_SUBTREE_HTML)
 
-doc: git-subtree.1
+install: $(GIT_SUBTREE)
+       $(INSTALL) -d -m 755 $(DESTDIR)$(gitexecdir)
+       $(INSTALL) -m 755 $(GIT_SUBTREE) $(DESTDIR)$(gitexecdir)
 
-%.1: %.xml
-       xmlto -m manpage-normal.xsl  man $^
+install-doc: install-man install-html
 
-%.xml: %.txt
-       asciidoc -b docbook -d manpage -f asciidoc.conf \
-               -agit_version=$(gitver) $^
-               
-test:
-       ./test.sh
+install-man: $(GIT_SUBTREE_DOC)
+       $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)
+       $(INSTALL) -m 644 $^ $(DESTDIR)$(man1dir)
+
+install-html: $(GIT_SUBTREE_HTML)
+       $(INSTALL) -d -m 755 $(DESTDIR)$(htmldir)
+       $(INSTALL) -m 644 $^ $(DESTDIR)$(htmldir)
+
+$(GIT_SUBTREE_DOC): $(GIT_SUBTREE_XML)
+       $(XMLTO) -m $(MANPAGE_XSL) man $^
+
+$(GIT_SUBTREE_XML): $(GIT_SUBTREE_TXT)
+       $(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=$(GIT_VERSION) $^
+
+$(GIT_SUBTREE_TEST): $(GIT_SUBTREE)
+       cp $< $@
+
+test: $(GIT_SUBTREE_TEST)
+       $(MAKE) -C t/ test
 
 clean:
-       rm -f *~ *.xml *.html *.1
-       rm -rf subproj mainline
+       $(RM) $(GIT_SUBTREE)
+       $(RM) *.xml *.html *.1
+
+.PHONY: FORCE