.el
ファイルをファイルにコンパイルするメイクファイル スニペットを作成しようとしてい.elc
ます。次のスニペットがあります。
.el.elc:
$(EMACS) -q -Q --batch \
--eval "(progn
(setq load-path (cons \"$(abs_srcdir)\" load-path))
(setq load-path (cons nil load-path))
(defun byte-compile-dest-file (f) \"$@\")
(condition-case nil
(byte-compile-file \"$<\")
(error (kill-emacs 1))))"
(私はスニペットをプレゼンテーション用にフォーマットしましたが、make
おそらくこのようにレイアウトするのは好きではないでしょう.)
$(abs_srcdir)
は正しく定義されていますが、2 つの問題があります。
まず、次のようなディレクトリ レイアウトを使用します。
+- foo.el <- foo.el lives in $(abs_srcdir)
+- _build/
++- bar.el
++- Makefile
(つまりfoo.el
、srcdir にある VPATH ビルドをビルドしようとしてい_build
ます。)
( および を介して) にbar.el
依存している場合、コンパイルの試行は次のエラーで失敗します。foo.el
(require 'foo)
(provide 'foo)
bar.elc
In toplevel form:
../bar.el:1:1:Error: Cannot open load file: foo
これは奇妙に思えます。なぜなら、私$(abs_srcdir)
はload-path
. 何が起こったか?
2 番目の問題は、これが発生した場合でも、呼び出しを でemacs
ラップしようとしているにもかかわらず、ステータス 0 で終了することです。ここで何が起こったのですか?(byte-compile-file)
(condition-case)