Makefile
changeset 1199 dff272add01e
parent 1150 dad3fb58f710
child 1209 aa1de5eb3665
--- a/Makefile	Tue Jan 27 22:53:39 2015 +0200
+++ b/Makefile	Wed Jan 28 00:45:31 2015 +0200
@@ -41,6 +41,12 @@
 endif
 
 ################################################################
+# Installation directories.
+
+emacsdir := $(HOME)/.emacs.d
+mylispdir := $(emacsdir)/my
+
+################################################################
 # Build tool definition/switches.
 
 EMACS = emacs
@@ -73,34 +79,53 @@
 ################################################################
 # Install/uninstall targets.
 
+.PHONY: upgrade
+upgrade:
+	\
+if [ ! -d $(mylispdir) ]; then \
+  if [ -d $(emacsdir)/my-lisp ]; then \
+    rm -f $(emacsdir)/autoload-my.el; \
+    mv $(emacsdir)/my-lisp $(mylispdir); \
+  else \
+    mkdir -p $(mylispdir); \
+  fi; \
+  mv ~/.emacs-my $(mylispdir)/.emacs || true; \
+  mv ~/.emacs-custom.el $(mylispdir)/.emacs-custom || true; \
+  mv ~/.emacs-pre $(mylispdir) || true; \
+  mv ~/.emacs-post $(mylispdir) || true; \
+  mv ~/.emacs-places $(mylispdir) || true; \
+  mv ~/.emacs.desktop $(mylispdir) || true; \
+  rm -f ~/.emacs-autogen; \
+fi
+
 .PHONY: install-all
 install-all: install
-	cp .emacs-pre $(HOME)/.emacs-pre
-	cp .emacs-post $(HOME)/.emacs-post
+	cp .emacs-pre $(mylispdir)/.emacs-pre
+	cp .emacs-post $(mylispdir)/.emacs-post
 
 .PHONY: install
-install: .emacs .emacs-my .emacs-pre .emacs-post $(EL_FILES)
+install:
+	mkdir -p $(mylispdir)
+	find $(mylispdir) -type f -name '*.el' -delete
 	for file in .emacs-pre .emacs-post; do \
-		[ -f $(HOME)/$$file ] || cp $$file $(HOME)/$$file; \
+		[ -f $(mylispdir)/$$file ] || cp $$file $(mylispdir)/$$file; \
 	done
 	cp .emacs $(HOME)/.emacs
-	cp .emacs-my $(HOME)/.emacs-my
+	cp .emacs-my $(mylispdir)/.emacs-my
 	mkdir -p $(HOME)/.gnus/scores
 	cp all.SCORE $(HOME)/.gnus/scores
-	rm -f -r $(HOME)/.emacs.d/my-lisp
-	mkdir -p $(HOME)/.emacs.d/my-lisp
 	for file in $(EL_FILES); do \
-		cp -f $$file $(HOME)/.emacs.d/my-lisp; \
+		cp -f $$file $(mylispdir); \
 	done
-	$(EMACS) -Q --batch \
-		--eval='(let ( (generated-autoload-file "~/.emacs.d/my-lisp/autoload-my.el") ) (update-directory-autoloads "~/.emacs.d/my-lisp") )'
-	./.emacs-autogen.sh $(HOME)/.emacs-autogen
+	$(EMACS) -Q --batch --eval='(let ((generated-autoload-file "$(mylispdir)/loaddefs.el")) (update-directory-autoloads "$(mylispdir)"))'
+	./.emacs-autogen.sh $(mylispdir)/.emacs-autogen
 	cp -r srecode/ $(HOME)/.emacs.d/
 
 .PHONY: uninstall
 uninstall:
-	rm -f $(HOME)/.emacs $(HOME)/.emacs-my $(HOME)/.emacs-autogen
-	rm -f -r $(HOME)/.emacs.d/my-lisp $(HOME)/.emacs.d/srecode
+	rm -f $(HOME)/.emacs $(mylispdir)/.emacs-my $(mylispdir)/.emacs-autogen
+	find $(mylispdir) -type f -name '*.el' -delete
+	rm -f -r $(emacsdir)/srecode
 
 .PHONY: tar
 tar: