summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-04-14 01:03:11 +0200
committerGravatar Tom Willemse2013-04-14 01:03:11 +0200
commitd8aa1d0ed1cc726ea3d7cd6a39e0f57379d2142d (patch)
tree969fbf2d6ae4172240b41b59fc63f5c068fb5e21
parent9ab70194a65f1d7ab726aaacdb43a58a02a048b6 (diff)
downloaddotfiles-d8aa1d0ed1cc726ea3d7cd6a39e0f57379d2142d.tar.gz
dotfiles-d8aa1d0ed1cc726ea3d7cd6a39e0f57379d2142d.zip
Have the install command uninstall first
The new uninstall functionality tries to remove any "orphan" files. Files that were installed during the last install, but will not be installed this time (because of removal, not necessity).
-rw-r--r--.config/Makefile2
-rw-r--r--.config/awesome/Makefile2
-rw-r--r--.config/awesome/themes/Makefile2
-rw-r--r--.config/awesome/themes/custom/Makefile2
-rw-r--r--.config/clfswm/Makefile2
-rw-r--r--.config/cower/Makefile2
-rw-r--r--.config/dunst/Makefile2
-rw-r--r--.config/fehlstart/Makefile2
-rw-r--r--.config/fish/Makefile2
-rw-r--r--.config/herbstluftwm/Makefile2
-rw-r--r--.config/newsbeuter/Makefile2
-rw-r--r--.config/zathura/Makefile2
-rw-r--r--.conkerorrc/Makefile2
-rw-r--r--.conkerorrc/styles/Makefile2
-rw-r--r--.conkerorrc/themes/Makefile2
-rw-r--r--.conkerorrc/themes/naquadah/Makefile2
-rw-r--r--.conkerorrc/themes/yoshi/Makefile2
-rw-r--r--.gitignore1
-rw-r--r--.local/Makefile2
-rw-r--r--.local/share/Makefile2
-rw-r--r--.local/share/applications/Makefile2
-rw-r--r--.moc/Makefile2
-rw-r--r--.moc/themes/Makefile2
-rw-r--r--.mutt/Makefile2
-rw-r--r--.ncmpcpp/Makefile2
-rw-r--r--.pentadactyl/Makefile2
-rw-r--r--.pentadactyl/plugins/Makefile2
-rw-r--r--.sawfish/Makefile2
-rw-r--r--.ssh/Makefile2
-rw-r--r--.w3m/Makefile2
-rw-r--r--.weechat/Makefile2
-rw-r--r--.zsh/Makefile2
-rw-r--r--.zsh/functions/Makefile2
-rw-r--r--dotfiles.mk25
-rw-r--r--emacs/Makefile2
-rw-r--r--emacs/eshell/Makefile2
-rw-r--r--emacs/site-lisp/Makefile2
-rw-r--r--emacs/snippets/Makefile2
-rw-r--r--emacs/snippets/html-mode/Makefile2
-rw-r--r--emacs/snippets/org-mode/Makefile2
-rw-r--r--emacs/snippets/python-mode/Makefile2
41 files changed, 60 insertions, 44 deletions
diff --git a/.config/Makefile b/.config/Makefile
index 0d9939f..3407f57 100644
--- a/.config/Makefile
+++ b/.config/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.config
+SUBDIR=.config
modules=awesome clfswm cower dunst fehlstart fish herbstluftwm \
newsbeuter zathura
diff --git a/.config/awesome/Makefile b/.config/awesome/Makefile
index bec3818..071a7ad 100644
--- a/.config/awesome/Makefile
+++ b/.config/awesome/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/awesome
+SUBDIR=awesome
modules=themes
objects=bowl.lua ext.lua infoline.lua keychain.lua oni.lua rc.lua
diff --git a/.config/awesome/themes/Makefile b/.config/awesome/themes/Makefile
index 85298f3..2c32a7e 100644
--- a/.config/awesome/themes/Makefile
+++ b/.config/awesome/themes/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/themes
+SUBDIR=themes
modules=custom
include ../../../dotfiles.mk
diff --git a/.config/awesome/themes/custom/Makefile b/.config/awesome/themes/custom/Makefile
index 8cebe3d..c5e3982 100644
--- a/.config/awesome/themes/custom/Makefile
+++ b/.config/awesome/themes/custom/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/custom
+SUBDIR=custom
objects=theme.lua
include ../../../../dotfiles.mk
diff --git a/.config/clfswm/Makefile b/.config/clfswm/Makefile
index d79241a..974bea3 100644
--- a/.config/clfswm/Makefile
+++ b/.config/clfswm/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/clfswm
+SUBDIR=clfswm
objects=clfswmrc
include ../../dotfiles.mk
diff --git a/.config/cower/Makefile b/.config/cower/Makefile
index 8828ad3..c7765dc 100644
--- a/.config/cower/Makefile
+++ b/.config/cower/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/cower
+SUBDIR=cower
objects=config
include ../../dotfiles.mk
diff --git a/.config/dunst/Makefile b/.config/dunst/Makefile
index 4f8a4e5..6076e74 100644
--- a/.config/dunst/Makefile
+++ b/.config/dunst/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/dunst
+SUBDIR=dunst
objects=dunstrc
include ../../dotfiles.mk
diff --git a/.config/fehlstart/Makefile b/.config/fehlstart/Makefile
index 303a9ca..0c6998d 100644
--- a/.config/fehlstart/Makefile
+++ b/.config/fehlstart/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/fehlstart
+SUBDIR=fehlstart
objects=fehlstart.rc
include ../../dotfiles.mk
diff --git a/.config/fish/Makefile b/.config/fish/Makefile
index 2b32c1b..cdce7a6 100644
--- a/.config/fish/Makefile
+++ b/.config/fish/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/fish
+SUBDIR=fish
objects=config.fish
include ../../dotfiles.mk
diff --git a/.config/herbstluftwm/Makefile b/.config/herbstluftwm/Makefile
index 62151ad..e8f232f 100644
--- a/.config/herbstluftwm/Makefile
+++ b/.config/herbstluftwm/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/herbstluftwm
+SUBDIR=herbstluftwm
objects=autostart panel.sh
include ../../dotfiles.mk
diff --git a/.config/newsbeuter/Makefile b/.config/newsbeuter/Makefile
index fbf22de..df228e9 100644
--- a/.config/newsbeuter/Makefile
+++ b/.config/newsbeuter/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/newsbeuter
+SUBDIR=newsbeuter
objects=config urls
include ../../dotfiles.mk
diff --git a/.config/zathura/Makefile b/.config/zathura/Makefile
index c6c93c1..b076c74 100644
--- a/.config/zathura/Makefile
+++ b/.config/zathura/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/zathura
+SUBDIR=zathura
objects=zathurarc
include ../../dotfiles.mk
diff --git a/.conkerorrc/Makefile b/.conkerorrc/Makefile
index 8161f39..be7ee27 100644
--- a/.conkerorrc/Makefile
+++ b/.conkerorrc/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.conkerorrc
+SUBDIR=.conkerorrc
modules=themes styles
objects=gtk2rc init.js ext_restore.js
diff --git a/.conkerorrc/styles/Makefile b/.conkerorrc/styles/Makefile
index c75377b..14ecaaa 100644
--- a/.conkerorrc/styles/Makefile
+++ b/.conkerorrc/styles/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/styles
+SUBDIR=styles
objects=github.css help.css git-scm.css
include ../../dotfiles.mk
diff --git a/.conkerorrc/themes/Makefile b/.conkerorrc/themes/Makefile
index adb917a..6e95dc4 100644
--- a/.conkerorrc/themes/Makefile
+++ b/.conkerorrc/themes/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/themes
+SUBDIR=themes
modules=naquadah yoshi
include ../../dotfiles.mk
diff --git a/.conkerorrc/themes/naquadah/Makefile b/.conkerorrc/themes/naquadah/Makefile
index 0512339..6a1634a 100644
--- a/.conkerorrc/themes/naquadah/Makefile
+++ b/.conkerorrc/themes/naquadah/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/naquadah
+SUBDIR=naquadah
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
mode-line.css new-tabs.css tab-bar.css theme.json
diff --git a/.conkerorrc/themes/yoshi/Makefile b/.conkerorrc/themes/yoshi/Makefile
index 158dade..1c5bb94 100644
--- a/.conkerorrc/themes/yoshi/Makefile
+++ b/.conkerorrc/themes/yoshi/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/yoshi
+SUBDIR=yoshi
objects=conkeror--scrollbars.css hints--url-panel.css minibuffer.css \
mode-line.css new-tabs.css tab-bar.css theme.json
diff --git a/.gitignore b/.gitignore
index e69de29..6dc3062 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+Makefile.old
diff --git a/.local/Makefile b/.local/Makefile
index 4b1a1cf..a473a83 100644
--- a/.local/Makefile
+++ b/.local/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.local
+SUBDIR=.local
modules=share
include ../dotfiles.mk
diff --git a/.local/share/Makefile b/.local/share/Makefile
index c06880a..da723ff 100644
--- a/.local/share/Makefile
+++ b/.local/share/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/share
+SUBDIR=share
modules=applications
include ../../dotfiles.mk
diff --git a/.local/share/applications/Makefile b/.local/share/applications/Makefile
index 3d2ca22..4fb9a44 100644
--- a/.local/share/applications/Makefile
+++ b/.local/share/applications/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/applications
+SUBDIR=applications
objects=moc.desktop ncmpcpp.desktop poweroff.desktop reboot.desktop
include ../../../dotfiles.mk
diff --git a/.moc/Makefile b/.moc/Makefile
index 5eb4fa2..ec1b2b7 100644
--- a/.moc/Makefile
+++ b/.moc/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.moc
+SUBDIR=.moc
modules=themes
objects=config
diff --git a/.moc/themes/Makefile b/.moc/themes/Makefile
index fd61c62..77c8f1f 100644
--- a/.moc/themes/Makefile
+++ b/.moc/themes/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/themes
+SUBDIR=themes
objects=custom
include ../../dotfiles.mk
diff --git a/.mutt/Makefile b/.mutt/Makefile
index d1e65d1..ba059f1 100644
--- a/.mutt/Makefile
+++ b/.mutt/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.mutt
+SUBDIR=.mutt
objects=aethon.muttrc arch.muttrc colors.muttrc gmail.muttrc \
iactor.muttrc macros mailcap muttrc ninthfloor.muttrc \
ryuslash.org.muttrc sig
diff --git a/.ncmpcpp/Makefile b/.ncmpcpp/Makefile
index 728f643..059c96b 100644
--- a/.ncmpcpp/Makefile
+++ b/.ncmpcpp/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.ncmpcpp
+SUBDIR=.ncmpcpp
objects=config
include ../dotfiles.mk
diff --git a/.pentadactyl/Makefile b/.pentadactyl/Makefile
index e0640d2..6c3ac5c 100644
--- a/.pentadactyl/Makefile
+++ b/.pentadactyl/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.pentadactyl
+SUBDIR=.pentadactyl
modules=plugins
include ../dotfiles.mk
diff --git a/.pentadactyl/plugins/Makefile b/.pentadactyl/plugins/Makefile
index 8ed9478..badaa01 100644
--- a/.pentadactyl/plugins/Makefile
+++ b/.pentadactyl/plugins/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/plugins
+SUBDIR=plugins
objects=emacs.penta
include ../../dotfiles.mk
diff --git a/.sawfish/Makefile b/.sawfish/Makefile
index b680366..842bb1a 100644
--- a/.sawfish/Makefile
+++ b/.sawfish/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.sawfish
+SUBDIR=.sawfish
objects=rc
include ../dotfiles.mk
diff --git a/.ssh/Makefile b/.ssh/Makefile
index 2461e6c..b805834 100644
--- a/.ssh/Makefile
+++ b/.ssh/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.ssh
+SUBDIR=.ssh
objects=config
include ../dotfiles.mk
diff --git a/.w3m/Makefile b/.w3m/Makefile
index 85d09d5..ba96315 100644
--- a/.w3m/Makefile
+++ b/.w3m/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.w3m
+SUBDIR=.w3m
objects=config
include ../dotfiles.mk
diff --git a/.weechat/Makefile b/.weechat/Makefile
index 8a0618a..6f81768 100644
--- a/.weechat/Makefile
+++ b/.weechat/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.weechat
+SUBDIR=.weechat
objects=alias.conf irc.conf weechat.conf
include ../dotfiles.mk
diff --git a/.zsh/Makefile b/.zsh/Makefile
index 077367e..acd5e4e 100644
--- a/.zsh/Makefile
+++ b/.zsh/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.zsh
+SUBDIR=.zsh
modules=functions
include ../dotfiles.mk
diff --git a/.zsh/functions/Makefile b/.zsh/functions/Makefile
index baf5c6b..d410977 100644
--- a/.zsh/functions/Makefile
+++ b/.zsh/functions/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/functions
+SUBDIR=functions
objects=chpwd_show_todo chpwd_update_git_vars env get_cnt line \
precmd_maybe_festival precmd_update_git_vars precmd_update_updates \
preexec_update_vars prompt prompt_git_info rprompt \
diff --git a/dotfiles.mk b/dotfiles.mk
index 892c5b5..b7bd5c6 100644
--- a/dotfiles.mk
+++ b/dotfiles.mk
@@ -34,9 +34,23 @@ all: $(modules) $(objects)
ifeq ($(MAKEROOT),y)
check: $(check-modules) $(check-objects)
-install: $(install-modules) $(install-objects)
+install: uninstall $(install-modules) $(install-objects) Makefile.old
reverse: $(reverse-modules) $(reverse-objects)
+ifeq ($(firstword $(MAKEFILE_LIST)),Makefile.old)
uninstall: $(uninstall-modules) $(uninstall-objects)
+ @rmdir --ignore-fail-on-non-empty $(DESTDIR) 2> /dev/null || true
+else
+uninstall: export NEWLIST = $(objects)
+uninstall:
+ @$(MAKE) -s -f Makefile.old uninstall
+
+Makefile.old: $(firstword $(MAKEFILE_LIST))
+ @cp "$^" "$@"
+
+ifdef SUBDIR
+DESTDIR:=$(DESTDIR)/$(SUBDIR)
+endif
+endif
else
check:
@$(MAKE) -s -C ../ check
@@ -71,10 +85,11 @@ $(reverse-modules): reverse-%:
@$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/
$(uninstall-objects): uninstall-%:
- @$(if $(call older,$*), \
- echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
- echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
- rm -f "$(DESTDIR)/$*")
+ @$(if $(findstring $*,$(NEWLIST)),, \
+ @$(if $(call older,$*), \
+ echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
+ echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
+ unlink "$(DESTDIR)/$*" || true))
$(uninstall-modules): uninstall-%:
@$(MAKE) -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/
diff --git a/emacs/Makefile b/emacs/Makefile
index 43ee5ec..5f8d204 100644
--- a/emacs/Makefile
+++ b/emacs/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/.emacs.d
+SUBDIR=.emacs.d
objects=init.elc init.el gnus.elc gnus.el
modules=eshell site-lisp snippets
diff --git a/emacs/eshell/Makefile b/emacs/eshell/Makefile
index fd3b0f2..3b6ce2f 100644
--- a/emacs/eshell/Makefile
+++ b/emacs/eshell/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/eshell
+SUBDIR=eshell
objects=alias
modules=
diff --git a/emacs/site-lisp/Makefile b/emacs/site-lisp/Makefile
index bf452e9..91ee32e 100644
--- a/emacs/site-lisp/Makefile
+++ b/emacs/site-lisp/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/site-lisp
+SUBDIR=site-lisp
objects=dzen.elc dzen.el eltuki.elc eltuki.el ext.elc ext.el \
metalexpress.elc metalexpress.el mu4e-init.elc mu4e-init.el \
oni.elc oni.el org-init.elc org-init.el quick-edit-mode.elc \
diff --git a/emacs/snippets/Makefile b/emacs/snippets/Makefile
index 12ff544..e003ed3 100644
--- a/emacs/snippets/Makefile
+++ b/emacs/snippets/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/snippets
+SUBDIR=snippets
modules=html-mode org-mode python-mode
include ../../dotfiles.mk
diff --git a/emacs/snippets/html-mode/Makefile b/emacs/snippets/html-mode/Makefile
index b2dff78..2d6defe 100644
--- a/emacs/snippets/html-mode/Makefile
+++ b/emacs/snippets/html-mode/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/html-mode
+SUBDIR=html-mode
objects=for generic-block
include ../../../dotfiles.mk
diff --git a/emacs/snippets/org-mode/Makefile b/emacs/snippets/org-mode/Makefile
index 34d4cd9..670b139 100644
--- a/emacs/snippets/org-mode/Makefile
+++ b/emacs/snippets/org-mode/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/org-mode
+SUBDIR=org-mode
objects=codeblock heading project snippet
include ../../../dotfiles.mk
diff --git a/emacs/snippets/python-mode/Makefile b/emacs/snippets/python-mode/Makefile
index 192657b..8e8b652 100644
--- a/emacs/snippets/python-mode/Makefile
+++ b/emacs/snippets/python-mode/Makefile
@@ -1,4 +1,4 @@
-DESTDIR:=$(DESTDIR)/python-mode
+SUBDIR=python-mode
objects=defm_empty form form_valid import_from permission_guard url
include ../../../dotfiles.mk