>> In ELPA, 'make archive' > Why do you need to run that? The README led me think that's how to build an archive. The README is silent about running the default make target, so clearly needs an update. When I 'make': $ make # Do them in a sub-make, so that autoloads are done first. make elcs make[1]: Entering directory `/psd15/linux/boreilly/sw/elpa' EMACS -f batch-byte-compile packages/dict-tree/dict-tree.el In toplevel form: packages/dict-tree/dict-tree.el:54:1:Error: Cannot open load file: trie make[1]: *** [packages/dict-tree/dict-tree.elc] Error 1 make[1]: Leaving directory `/psd15/linux/boreilly/sw/elpa' make: *** [all-in-place] Error 2 For starters, the output is wrong about the command issued. diff --git a/GNUmakefile b/GNUmakefile index 0fac72b..561c2f3 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -123,8 +123,7 @@ elcs := $(call SET-diff, $(naive_elcs), $(patsubst %.el, %.elc, $(nbc_els))) # '(dolist (al (quote ($(patsubst %, "%", $(autoloads))))) (load (expand-file-name al) nil t))' %.elc: %.el - @echo 'EMACS -f batch-byte-compile $<' - @$(EMACS) \ + $(EMACS) \ --eval "(setq package-directory-list '(\"$(abspath packages)\"))" \ --eval '(package-initialize)' \ -L $(dir $@) -f batch-byte-compile $< When I manually add the necessary -L flags (-L packages/trie/ -L packages/heap/ -L packages/tNFA/ -L packages/queue/) then I could byte compile with warnings. But how is it supposed to get the load paths?