Tom Willemse
ea413a5023
These targets can be used to remove (parts of) the file installation. They are also used by the cleanup targets to remove complete submodules from the installation.
127 lines
3.9 KiB
Makefile
127 lines
3.9 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
|
|
|
|
check-objects=$(addprefix check-,$(objects))
|
|
install-objects=$(addprefix install-,$(objects))
|
|
reverse-objects=$(addprefix reverse-,$(objects))
|
|
cleanup-objects=$(addprefix cleanup-,$(objects))
|
|
uninstall-objects=$(addprefix uninstall-,$(objects))
|
|
|
|
check-modules=$(addprefix check-,$(modules))
|
|
install-modules=$(addprefix install-,$(modules))
|
|
reverse-modules=$(addprefix reverse-,$(modules))
|
|
cleanup-modules=$(addprefix cleanup-,$(modules))
|
|
uninstall-modules=$(addprefix uninstall-,$(modules))
|
|
|
|
.PHONY: all install cleanup check cleanup $(modules) \
|
|
$(install-objects) $(cleanup-objects) $(check-objects) \
|
|
$(install-modules) $(cleanup-modules) $(check-modules) \
|
|
$(reverse) $(reverse-objects) $(reverse-modules) \
|
|
$(uninstall-objects) $(uninstall-modules)
|
|
all: $(modules) $(objects)
|
|
|
|
ifeq ($(MAKEROOT),y)
|
|
check: $(check-modules) $(check-objects)
|
|
install: cleanup $(install-modules) $(install-objects) Makefile.old
|
|
reverse: $(reverse-modules) $(reverse-objects)
|
|
uninstall: $(uninstall-modules) $(uninstall-objects)
|
|
@rmdir --ignore-fail-on-non-empty $(DESTDIR) 2> /dev/null || true
|
|
ifeq ($(firstword $(MAKEFILE_LIST)),Makefile.old)
|
|
cleanup: $(cleanup-modules) $(cleanup-objects)
|
|
@rmdir --ignore-fail-on-non-empty $(DESTDIR) 2> /dev/null || true
|
|
else
|
|
cleanup: export NEWOBJS = $(objects)
|
|
cleanup: export NEWMODS = $(modules)
|
|
cleanup:
|
|
@$(MAKE) -s -f Makefile.old cleanup
|
|
|
|
Makefile.old: $(firstword $(MAKEFILE_LIST))
|
|
@cp "$^" "$@"
|
|
|
|
ifdef SUBDIR
|
|
DESTDIR:=$(DESTDIR)/$(SUBDIR)
|
|
endif
|
|
endif
|
|
else
|
|
check:
|
|
@$(MAKE) -s -C ../ check
|
|
install:
|
|
@$(MAKE) -s -C ../ install
|
|
reverse:
|
|
@$(MAKE) -s -C ../ reverse
|
|
cleanup:
|
|
@$(MAKE) -s -C ../ cleanup
|
|
uninstall:
|
|
@$(MAKE) -s -C ../ uninstall
|
|
endif
|
|
|
|
$(modules): %:
|
|
$(MAKE) -C $*
|
|
|
|
$(install-objects): install-%: %
|
|
@$(if $(call newer,$*), \
|
|
echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$* $(CLR_RE)to $(DESTDIR) as $(MODE)"; \
|
|
install -pDm $(MODE) "$*" "$(DESTDIR)/$*", \
|
|
$(if $(call older,$*) ,\
|
|
echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"))
|
|
|
|
$(install-modules): install-%:
|
|
@$(MAKE) -s -C $* install MKDPREFIX=$(MKDPREFIX)$*/
|
|
|
|
$(reverse-objects): reverse-%:
|
|
@$(if $(call older,$*), \
|
|
echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
|
|
cp -a "$(DESTDIR)/$*" "$*", \
|
|
echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)")
|
|
|
|
$(reverse-modules): reverse-%:
|
|
@$(MAKE) -s -C $* reverse MKDPREFIX=$(MKDPREFIX)$*/
|
|
|
|
$(cleanup-objects): cleanup-%:
|
|
@$(if $(findstring $*,$(NEWOBJS)),, \
|
|
@$(if $(call older,$*), \
|
|
echo -e "$(FG_RED)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
|
|
echo -e "$(FG_GRE)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"; \
|
|
unlink "$(DESTDIR)/$*" || true))
|
|
|
|
$(cleanup-modules): cleanup-%:
|
|
@$(if $(findstring $*,$(NEWMODS)), \
|
|
@$(MAKE) -C $* cleanup MKDPREFIX=$(MKDPREFIX)$*/, \
|
|
@$(MAKE) -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/)
|
|
|
|
$(check-objects): check-%:
|
|
@$(if $(call newer,$*), \
|
|
echo -e "$(FG_GRE)+ $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
|
|
$(if $(call older,$*), \
|
|
echo -e "$(FG_RED)- $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)", \
|
|
echo -e "$(FG_BLU)= $(FG_YEL)$(MKDPREFIX)$*$(CLR_RE)"))
|
|
|
|
$(check-modules): check-%:
|
|
@$(MAKE) -s -C $* check 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)"; \
|
|
unlink "$(DESTDIR)/$*" || true)
|
|
|
|
$(uninstall-modules): uninstall-%:
|
|
@$(MAKE) -s -C $* uninstall MKDPREFIX=$(MKDPREFIX)$*/
|
|
|
|
$(filter %.elc,$(objects)): %.elc: %.el
|
|
$(call compile,$^)
|