Move ~/.tigrc documentation into it's own man page, tigrc(5)
[tig] / Makefile
index eec1e03..1a3dc15 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,67 @@
-LDFLAGS = -lcurses
-CFLAGS = -g
+PREFIX = $(HOME)
+LDLIBS  = -lcurses
+CFLAGS = -Wall -O2
+DFLAGS = -g -DDEBUG -Werror
+PROGS  = tig
+DOCS   = tig.1.txt tig.1.html tig.1 tigrc.5.html tigrc.5 README.html
 
-all: cgit
+ifneq (,$(wildcard .git))
+VERSION = $(shell git-describe)
+WTDIRTY = $(shell git-diff-index --name-only HEAD 2>/dev/null)
+CFLAGS += '-DVERSION="$(VERSION)$(if $(WTDIRTY),-dirty)"'
+endif
+
+all: $(PROGS)
+all-debug: $(PROGS)
+all-debug: CFLAGS += $(DFLAGS)
+docs: $(DOCS)
 
 install: all
-       install cgit $(HOME)/bin
+       for prog in $(PROGS); do \
+               install $$prog $(PREFIX)/bin; \
+       done
+
+install-docs: docs
+       for doc in $(DOCS); do \
+               case "$$doc" in \
+               *.1) install $$doc $(PREFIX)/man/man1 ;; \
+               *.5) install $$doc $(PREFIX)/man/man5 ;; \
+               esac \
+       done
 
 clean:
-       rm -f cgit
+       rm -f $(PROGS) $(DOCS) core
+
+spell-check:
+       aspell --lang=en --check tig.1.txt
+
+.PHONY: all docs install clean
+
+tig: tig.c
+
+tig.1.txt: tig.c
+       sed -n '/\/\*\*/,/\*\*\//p' < $< | \
+       sed 's/.*\*\*\/.*//' | \
+       sed '/^[^*]*\*\*/d' | \
+       sed 's/\*\///;s/^[^*]*\* *//' > $@
+
+README.html: README
+       asciidoc -b xhtml11 -d article -f web.conf $<
+
+%.1.html : %.1.txt
+       asciidoc -b xhtml11 -d manpage $<
+
+%.1.xml : %.1.txt
+       asciidoc -b docbook -d manpage $<
+
+%.1 : %.1.xml
+       xmlto man $<
+
+%.5.html : %.5.txt
+       asciidoc -b xhtml11 -d manpage $<
+
+%.5.xml : %.5.txt
+       asciidoc -b docbook -d manpage $<
 
-cgit: cgit.c
+%.5 : %.5.xml
+       xmlto man $<