summaryrefslogtreecommitdiffstats
path: root/dotfiles.mk
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-12-05 00:13:28 +0100
committerGravatar Tom Willemsen2012-12-05 00:13:28 +0100
commitf5e88cf6091aebc48fa23ff0f15a8600eb11bf8d (patch)
tree2f57e5730c1baff1280c6260d38d5f514c4188d5 /dotfiles.mk
parent9b3cc1d28d5a5bab0d1ce13e6612bbe989f4a1ce (diff)
downloaddotfiles-f5e88cf6091aebc48fa23ff0f15a8600eb11bf8d.tar.gz
dotfiles-f5e88cf6091aebc48fa23ff0f15a8600eb11bf8d.zip
Add Makefiles for all files
Diffstat (limited to 'dotfiles.mk')
-rw-r--r--dotfiles.mk55
1 files changed, 55 insertions, 0 deletions
diff --git a/dotfiles.mk b/dotfiles.mk
new file mode 100644
index 0000000..6d33f72
--- /dev/null
+++ b/dotfiles.mk
@@ -0,0 +1,55 @@
+LOAD_PATH=. /usr/share/emacs/site-lisp $(HOME)/.emacs.d/site-lisp
+EMACS=emacs $(addprefix -L ,$(LOAD_PATH))
+
+FG_YEL=\033[0;33m
+FG_GRE=\033[0;32m
+FG_RED=\033[0;31m
+CLR_RE=\033[0;00m
+
+compile = $(EMACS) -Q -batch -eval "(byte-compile-file \"$(1)\")"
+define newer =
+$(shell if [ "$(1)" -nt "$(DESTDIR)/$(1)" ]; then echo "newer"; fi)
+endef
+
+install-objects=$(addprefix install-,$(objects))
+uninstall-objects=$(addprefix uninstall-,$(objects))
+check-objects=$(addprefix check-,$(objects))
+
+install-modules=$(addprefix install-,$(modules))
+uninstall-modules=$(addprefix uninstall-,$(modules))
+check-modules=$(addprefix check-,$(modules))
+
+.PHONY: all install uninstall check uninstall $(modules) \
+ $(install-objects) $(uninstall-objects) $(check-objects) \
+ $(install-modules) $(uninstall-modules) $(check-modules)
+all: $(modules) $(objects)
+install: $(install-modules) $(install-objects)
+check: $(check-modules) $(check-objects)
+uninstall: $(uninstall-modules) $(uninstall-objects)
+
+$(modules): %:
+ @echo $(MAKEFILES)
+ @$(MAKE) -C $*
+
+$(install-objects): install-%: %
+ $(if $(call newer,$*),install -pDm 644 "$*" "$(DESTDIR)/$*")
+
+$(install-modules): install-%:
+ @$(MAKE) -C $* install
+
+$(uninstall-objects): uninstall-%:
+ $(if $(call newer,$*),rm -f "$(DESTDIR)/$*")
+
+$(uninstall-modules): uninstall-%:
+ @$(MAKE) -C $* uninstall
+
+$(check-objects): check-%:
+ @$(if $(call newer,$*), \
+ echo -e "$(FG_YEL)$* $(FG_GRE)newer$(CLR_RE)!", \
+ echo -e "$(FG_YEL)$* $(FG_RED)not newer$(CLR_RE).")
+
+$(check-modules): check-%:
+ @$(MAKE) -C $* check
+
+$(filter %.elc,$(objects)): %.elc: %.el
+ $(call compile,$^)