cgit

commit 679f7ef4f3f31dca8c8ac5536c3e18a5188e051a

Author: Todd Zullinger <tmz@pobox.com>

Generalize doc generation

This borrows from the git Documentation/Makefile.  The goal is to make
it easier to add new man pages and other documentation as well as to
prevent make from re-generating the documentation needlessly.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>

 Makefile | 23 ++++++++++++++++-------


diff --git a/Makefile b/Makefile
index 6a47ed256d7ff4f5bef91e5e983f160bc6a1d11e..db97ae3e57e66b4d76b76966c4f579c3a68f5241 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,11 @@ SHA1_HEADER = 
 GIT_VER = 1.7.3
 GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
 INSTALL = install
+MAN5_TXT = $(wildcard *.5.txt)
+MAN_TXT  = $(MAN5_TXT)
+DOC_MAN5 = $(patsubst %.txt,%,$(MAN5_TXT))
+DOC_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
+DOC_PDF  = $(patsubst %.txt,%.pdf,$(MAN_TXT))
 
 # Define NO_STRCASESTR if you don't have strcasestr.
 #
@@ -110,7 +115,7 @@ endif
 
 
 .PHONY: all libgit test install uninstall clean force-version get-git \
-	doc man-doc html-doc clean-doc
+	doc clean-doc
 
 all: cgit
 
@@ -170,15 +175,19 @@ 	rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
 	rm -f $(CGIT_DATA_PATH)/cgit.css
 	rm -f $(CGIT_DATA_PATH)/cgit.png
 
-doc: man-doc html-doc pdf-doc
+doc: doc-man doc-html doc-pdf
+doc-man: doc-man5
+doc-man5: $(DOC_MAN5)
+doc-html: $(DOC_HTML)
+doc-pdf: $(DOC_PDF)
 
-man-doc: cgitrc.5.txt
-	a2x -f manpage cgitrc.5.txt
+%.5 : %.5.txt
+	a2x -f manpage $<
 
-html-doc: cgitrc.5.txt
-	a2x -f xhtml --stylesheet=cgit-doc.css cgitrc.5.txt
+$(DOC_HTML): %.html : %.txt
+	a2x -f xhtml --stylesheet=cgit-doc.css $<
 
-pdf-doc: cgitrc.5.txt
+$(DOC_PDF): %.pdf : %.txt
 	a2x -f pdf cgitrc.5.txt
 
 clean: clean-doc