Makefile
changeset 836 034e9cfcc17c
parent 833 023190b14d77
child 908 e3b3e9f4d759
--- a/Makefile	Sun Oct 16 01:14:02 2011 +0300
+++ b/Makefile	Sun Nov 20 20:14:17 2011 +0200
@@ -28,9 +28,15 @@
 
 host_os = unix
 ifneq '' '$(COMSPEC)'
-  host_os = windows
+  ifneq '' '$(WINDIR)'
+    # Probably under Windows.
+    host_os = windows
+  endif
 endif
 
+################################################################
+# Build tool definition/switches.
+
 EMACS = emacs
 # I prefer native Windows Emacs, so use it if available.
 ifeq 'windows' '$(host_os)'
@@ -39,14 +45,28 @@
   endif
 endif
 
+RST2HTML = rst2html
+ifeq '$(host_os)' 'windows'
+  RST2HTML = rst2html.py
+endif
+
+################################################################
+# Proj dirs/files.
+
+FILES_MODE_EL := $(wildcard *-mode.el)
+
+RST_FILES := $(wildcard *.rst)
+HTML_FILES := $(RST_FILES:.rst=.html)
+
 ################################################################
 # Targets.
 
-FILES_MODE_EL := $(wildcard *-mode.el)
-
 .PHONY: all
 all: install
 
+################################################################
+# Install/uninstall targets.
+
 .PHONY: install-all
 install-all: install
 	cp .emacs-pre $(HOME)/.emacs-pre
@@ -55,7 +75,7 @@
 .PHONY: install
 install: .emacs .emacs-my .emacs-pre .emacs-post $(FILES_MODE_EL)
 	for file in .emacs-pre .emacs-post; do \
-		if [ ! -f $(HOME)/$$file ]; then cp $$file $(HOME)/$$file; fi; \
+		[ -f $(HOME)/$$file ] || cp $$file $(HOME)/$$file; \
 	done
 	cp .emacs $(HOME)/.emacs
 	cp .emacs-my $(HOME)/.emacs-my
@@ -70,15 +90,28 @@
 
 .PHONY: uninstall
 uninstall:
-	@echo !!! Nothing done !!!
+	rm -f $(HOME)/.emacs $(HOME)/.emacs-my $(HOME)/.emacs-autogen
+	rm -f -r $(HOME)/.emacs.d/my-lisp
 
 .PHONY: tar
 tar:
 	tar cf dot-emacs.tar .emacs .emacs-my
 
+################################################################
+# Documentation targets.
+
+.PHONY: html
+html: $(HTML_FILES)
+
+$(HTML_FILES): %.html: %.rst
+	$(RST2HTML) --stylesheet=rst.css $*.rst $@
+
+################################################################
+# Clean targets.
+
 .PHONY: distclean
 distclean: clean
 
 .PHONY: clean
 clean:
-	rm -f dot-emacs.tar
+	rm -f dot-emacs.tar $(HTML_FILES)