Tom Willemsen
f1ad7ad103
When using `make check' to see which files are newer than their destinations, instead show either newer or older and nothing when there's no difference.
63 lines
1.8 KiB
Makefile
63 lines
1.8 KiB
Makefile
LOAD_PATH=. /usr/share/emacs/site-lisp $(HOME)/.emacs.d/site-lisp
|
|
EMACS=emacs $(addprefix -L ,$(LOAD_PATH))
|
|
MODE=644
|
|
|
|
FG_BLU=\033[0;34m
|
|
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
|
|
define older =
|
|
$(shell if [ "$(1)" -ot "$(DESTDIR)/$(1)" ]; then echo "older"; 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 $(MODE) "$*" "$(DESTDIR)/$*", \
|
|
@echo -e "$(FG_YEL)$*$(CLR_RE) is $(FG_RED)not newer$(CLR_RE)")
|
|
|
|
$(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)!", \
|
|
$(if $(call older,$*), \
|
|
echo -e "$(FG_YEL)$* $(FG_RED)older$(CLR_RE)."))
|
|
|
|
$(check-modules): check-%:
|
|
@$(MAKE) -C $* check
|
|
|
|
$(filter %.elc,$(objects)): %.elc: %.el
|
|
$(call compile,$^)
|