use "creature/pkg-active" manage packages manually

- replace "add-pkg-in-pkg-dir" (recursive load-path scanning) with a
  central "creature/pkgs" registry that handles load path, autoloads,
  info dirs and dependencies
- adapt all init-*.el files to the new activation function
- add a top-level Makefile to byte-compile site-lisp packages
- remove unused "emacs-kv" and "emacs-db" submodules
This commit is contained in:
zedhugh committed 2026-09-14 15:02:43 +08:00
1 parent 283ff41a5e
commit b5d9ce18a7
27 files changed
+422 -149

No files matched your search

+239
View File
@@ -0,0 +1,239 @@
EMACS ?= emacs
ROOT := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
SITE_LISP := $(ROOT)/site-lisp
INSTALL_INFO ?= $(shell command -v ginstall-info || printf install-info)
INFO_DIR ?= $(ROOT)/.cache
.PHONY: transient emms
all: magit git-modes emmet-mode expand-region rg wgrep avy mwim symbol-overlay markdown-mode emms dash yasnippet yaml file gptel nov org plantuml-mode posframe prettier rime f s sdcv vertico
clean: compat-clean cond-let-clean llama-clean transient-clean with-editor-clean magit-clean git-modes-clean emmet-mode-clean expand-region-clean rg-clean wgrep-clean avy-clean mwim-clean symbol-overlay-clean markdown-mode-clean emms-clean dash-clean yasnippet-clean yaml-clean file-clean gptel-clean nov-clean org-clean plantuml-mode-clean posframe-clean prettier-clean rime-clean f-clean s-clean sdcv-clean vertico-clean
compat:
$(MAKE) -C $(SITE_LISP)/compat compile compat.info
$(INSTALL_INFO) --info-dir=$(INFO_DIR) $(SITE_LISP)/compat/compat.info
compat-clean:
$(INSTALL_INFO) --delete --quiet --info-dir=$(INFO_DIR) $(SITE_LISP)/compat/compat.info
$(MAKE) -C $(SITE_LISP)/compat clean
cond-let:
$(MAKE) -C $(SITE_LISP)/cond-let lisp
cond-let-clean:
$(MAKE) -C $(SITE_LISP)/cond-let clean
llama: compat
$(MAKE) -C $(SITE_LISP)/llama lisp
llama-clean:
$(MAKE) -C $(SITE_LISP)/llama clean
transient: compat cond-let
$(MAKE) -C $(SITE_LISP)/transient lisp info
transient-clean:
$(MAKE) -C $(SITE_LISP)/transient clean
with-editor: compat cond-let
$(MAKE) -C $(SITE_LISP)/with-editor lisp info
with-editor-clean:
$(MAKE) -C $(SITE_LISP)/with-editor clean
magit: compat cond-let llama transient with-editor
$(MAKE) -C $(SITE_LISP)/magit/lisp lisp
$(MAKE) -C $(SITE_LISP)/magit info
magit-clean:
$(MAKE) -C $(SITE_LISP)/magit clean
git-modes: compat
$(MAKE) -C $(SITE_LISP)/git-modes lisp
git-modes-clean:
$(MAKE) -C $(SITE_LISP)/git-modes clean
emmet-mode:
$(MAKE) -C $(SITE_LISP)/emmet-mode emmet-mode.elc
emmet-mode-clean:
$(RM) $(SITE_LISP)/emmet-mode/emmet-mode.elc
expand-region:
$(EMACS) -Q --batch -L $(SITE_LISP)/expand-region -f batch-byte-compile $(SITE_LISP)/expand-region/*.el
expand-region-clean:
$(RM) $(SITE_LISP)/expand-region/*.elc
rg: transient wgrep
$(EMACS) -Q --batch -L $(SITE_LISP)/rg -L $(SITE_LISP)/transient -L $(SITE_LISP)/Emacs-wgrep -f batch-byte-compile $(SITE_LISP)/rg/*.el
$(INSTALL_INFO) --info-dir=$(INFO_DIR) $(SITE_LISP)/rg/rgel.info
rg-clean:
$(RM) $(SITE_LISP)/rg/*.elc
$(INSTALL_INFO) --delete --quiet --info-dir=$(INFO_DIR) $(SITE_LISP)/rg/rgel.info
wgrep:
$(MAKE) -C $(SITE_LISP)/Emacs-wgrep compile
wgrep-clean:
$(MAKE) -C $(SITE_LISP)/Emacs-wgrep clean
avy:
$(MAKE) -C $(SITE_LISP)/avy compile
avy-clean:
$(MAKE) -C $(SITE_LISP)/avy clean
mwim:
$(MAKE) -C $(SITE_LISP)/mwim
mwim-clean:
$(MAKE) -C $(SITE_LISP)/mwim clean
symbol-overlay:
$(MAKE) -C $(SITE_LISP)/symbol-overlay compile
symbol-overlay-clean:
rm -f $(SITE_LISP)/symbol-overlay/*.elc
markdown-mode:
$(MAKE) -C $(SITE_LISP)/markdown-mode
markdown-mode-clean:
$(MAKE) -C $(SITE_LISP)/markdown-mode clean
emms:
$(MAKE) -C $(SITE_LISP)/emms
$(INSTALL_INFO) --info-dir=$(INFO_DIR) $(SITE_LISP)/emms/doc/emms.info
emms-clean:
$(INSTALL_INFO) --delete --info-dir=$(INFO_DIR) $(SITE_LISP)/emms/doc/emms.info
$(MAKE) -C $(SITE_LISP)/emms clean
dash:
$(MAKE) -C $(SITE_LISP)/dash lisp
dash-clean:
$(MAKE) -C $(SITE_LISP)/dash clean
yasnippet:
$(MAKE) -C $(SITE_LISP)/yasnippet compile
$(EMACS) -Q --batch -L $(SITE_LISP)/yasnippet -f batch-byte-compile $(SITE_LISP)/yasnippet-snippets/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/yasnippet -f batch-byte-compile $(SITE_LISP)/auto-yasnippet/auto-yasnippet.el
yasnippet-clean:
$(MAKE) -C $(SITE_LISP)/yasnippet clean
$(RM) $(SITE_LISP)/yasnippet-snippets/*.elc
$(RM) $(SITE_LISP)/auto-yasnippet/*.elc
yaml:
$(MAKE) -C $(SITE_LISP)/yaml-mode
yaml-clean:
$(MAKE) -C $(SITE_LISP)/yaml-mode clean
lua:
$(MAKE) -C $(SITE_LISP)/lua-mode lua-mode.elc
lua-clean:
$(RM) $(SITE_LISP)/lua-mode/lua-mode.elc
file:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/vimrc-mode/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/nginx-mode/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/tablist -f batch-byte-compile $(SITE_LISP)/tablist/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/pdf-tools/lisp -L $(SITE_LISP)/tablist -f batch-byte-compile $(SITE_LISP)/pdf-tools/lisp/*.el
$(MAKE) -C $(SITE_LISP)/pdf-tools loaddefs autobuild
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/saveplace-pdf-view/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/graphviz-dot-mode/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/meson-mode/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/crontab-mode/*.el
file-clean:
$(RM) $(SITE_LISP)/vimrc-mode/*.elc
$(RM) $(SITE_LISP)/nginx-mode/*.elc
$(RM) $(SITE_LISP)/tablist/*.elc
$(MAKE) -C $(SITE_LISP)/pdf-tools clean
$(RM) $(SITE_LISP)/pdf-tools/lisp/pdf-tools-autoloads.el
$(RM) $(SITE_LISP)/pdf-tools/lisp/*.elc
$(RM) $(SITE_LISP)/saveplace-pdf-view/*.elc
$(RM) $(SITE_LISP)/graphviz-dot-mode/*.elc
$(RM) $(SITE_LISP)/meson-mode/*.elc
$(RM) $(SITE_LISP)/crontab-mode/*.elc
gptel: transient compat
$(EMACS) -Q --batch -L $(SITE_LISP)/transient -L $(SITE_LISP)/compat -L $(SITE_LISP)/gptel -f batch-byte-compile $(SITE_LISP)/gptel/*.el
gptel-clean:
$(RM) $(SITE_LISP)/gptel/*.elc
nov:
$(EMACS) -Q --batch -L $(SITE_LISP)/esxml -f batch-byte-compile $(SITE_LISP)/esxml/esxml.el $(SITE_LISP)/esxml/esxml-query.el
$(EMACS) -Q --batch -L $(SITE_LISP)/esxml -f batch-byte-compile $(SITE_LISP)/nov/*.el
nov-clean:
$(RM) $(SITE_LISP)/esxml/*.elc
$(RM) $(SITE_LISP)/nov/*.elc
org:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/gntp/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/alert -L $(SITE_LISP)/gntp -f batch-byte-compile $(SITE_LISP)/alert/alert.el
$(EMACS) -Q --batch -L $(SITE_LISP)/alert -L $(SITE_LISP)/org-pomodoro -f batch-byte-compile $(SITE_LISP)/org-pomodoro/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/tomelr/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/tomelr -L $(SITE_LISP)/ox-hugo -f batch-byte-compile $(SITE_LISP)/ox-hugo/*.el
org-clean:
$(RM) $(SITE_LISP)/gntp/*.elc
$(RM) $(SITE_LISP)/alert/*.elc
$(RM) $(SITE_LISP)/org-pomodoro/*.elc
$(RM) $(SITE_LISP)/tomelr/*.elc
$(RM) $(SITE_LISP)/ox-hugo/*.elc
plantuml-mode:
$(EMACS) -Q --batch -L $(SITE_LISP)/dash -f batch-byte-compile $(SITE_LISP)/deflate/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/dash -L $(SITE_LISP)/deflate -f batch-byte-compile $(SITE_LISP)/plantuml-mode/*.el
plantuml-mode-clean:
$(RM) $(SITE_LISP)/deflate/*.elc
$(RM) $(SITE_LISP)/plantuml-mode/*.elc
posframe:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/posframe/posframe.el
posframe-clean:
$(RM) $(SITE_LISP)/posframe/*.elc
prettier:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/iter2/iter2.el
$(EMACS) -Q --batch -L $(SITE_LISP)/s -L $(SITE_LISP)/dash -L $(SITE_LISP)/f -f batch-byte-compile $(SITE_LISP)/nvm/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/iter2 -L $(SITE_LISP)/nvm -L $(SITE_LISP)/s -L $(SITE_LISP)/dash -L $(SITE_LISP)/f -f batch-byte-compile $(SITE_LISP)/prettier/*.el
prettier-clean:
$(RM) $(SITE_LISP)/iter2/*.elc
$(RM) $(SITE_LISP)/nvm/*.elc
$(RM) $(SITE_LISP)/prettier/*.elc
.PHONY: rime
rime:
$(MAKE) -C $(SITE_LISP)/emacs-rime lib
$(EMACS) -Q --batch -L $(SITE_LISP)/emacs-rime -L $(SITE_LISP)/dash -L $(SITE_LISP)/posframe -f batch-byte-compile $(SITE_LISP)/emacs-rime/rime*.el
rime-clean:
$(MAKE) -C $(SITE_LISP)/emacs-rime clean
$(RM) $(SITE_LISP)/emacs-rime/*.elc
f:
$(EMACS) -Q --batch -L $(SITE_LISP)/s -L $(SITE_LISP)/dash -f batch-byte-compile $(SITE_LISP)/f/*.el
f-clean:
$(RM) $(SITE_LISP)/f/*.elc
s:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/s/*.el
s-clean:
$(RM) $(SITE_LISP)/s/*.elc
sdcv:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/sdcv/*.el
sdcv-clean:
$(RM) $(SITE_LISP)/sdcv/*.elc
vertico:
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/marginalia/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/vertico/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/vertico -L $(SITE_LISP)/vertico/extensions -f batch-byte-compile $(SITE_LISP)/vertico/extensions/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/corfu/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/corfu -L $(SITE_LISP)/corfu/extensions -f batch-byte-compile $(SITE_LISP)/corfu/extensions/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/orderless -f batch-byte-compile $(SITE_LISP)/orderless/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/cape -f batch-byte-compile $(SITE_LISP)/cape/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/consult -f batch-byte-compile $(SITE_LISP)/consult/*.el
$(EMACS) -Q --batch -f batch-byte-compile $(SITE_LISP)/emacs-popon/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/corfu -L $(SITE_LISP)/emacs-popon/ -f batch-byte-compile $(SITE_LISP)/emacs-corfu-terminal/*.el
$(EMACS) -Q --batch -L $(SITE_LISP)/embark -L $(SITE_LISP)/consult -L $(SITE_LISP)/avy -f batch-byte-compile $(SITE_LISP)/embark/*.el
vertico-clean:
$(RM) $(SITE_LISP)/marginalia/*.elc
$(RM) $(SITE_LISP)/vertico/*.elc
$(RM) $(SITE_LISP)/vertico/extensions/*.elc
$(RM) $(SITE_LISP)/corfu/*.elc
$(RM) $(SITE_LISP)/corfu/extensions/*.elc
$(RM) $(SITE_LISP)/orderless/*.elc
$(RM) $(SITE_LISP)/cape/*.elc
$(RM) $(SITE_LISP)/consult/*.elc
$(RM) $(SITE_LISP)/emacs-popon/*.elc
$(RM) $(SITE_LISP)/emacs-corfu-terminal/*.elc
$(RM) $(SITE_LISP)/embark/*.elc