[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:4671] ignore makefile:DONTCOMPILE - eshell error
- X-ml-count: 4671
- Subject: [MD:4671] ignore makefile:DONTCOMPILE - eshell error
- From: 小関 吉則 (KOSEKI Yoshinori) <kose@xxxxxxxxxxx>
- Date: Fri, 17 Oct 2003 12:28:31 +0900
- User-agent: T-gnus/6.16.3 (based on Gnus v5.10.3) (revision 02) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.6 Emacs/21.1 (i386-mingw-nt5.1.2600) MULE/5.0 (賢木) Meadow/2.00 Beta2-dev (WOMINAHESHI)
M-x eshell RET でエラーになります。(< 2ch)
: Debugger entered--Lisp error: (invalid-function (macro . #[(form &optional show-args string &rest args) ("c:/Meadow2/2.00b2/lisp/emacs-lisp/cl-macs.elc" . 86915) nil 9 ("c:/Meadow2/2.00b2/lisp/emacs-lisp/cl-macs.elc" . 86517)]))
: assert("*eshell*")
: eshell(nil)
: * call-interactively(eshell)
: execute-extended-command(nil)
: * call-interactively(execute-extended-command)
原因は 2.00b2/lisp/eshell/esh-maint.el がバイトコンパイルさ
れることにあります。
make bootstrap した時に lisp/makefile 中の以下の定義の
DONTCOMPILE のファイル群がすべてバイトコンパイルされます。
Netinstaller で配布しているバイナリパッケージもこれらのファ
イルは全て *.elc も同封されちゃっています。
(eshell 以外で問題があるのかは把握していません)
: DONTCOMPILE = \
: $(lisp)/cus-load.el \
: $(lisp)/cus-start.el \
: $(lisp)/emacs-lisp/cl-specs.el \
: $(lisp)/eshell/esh-maint.el \
:
対処方法ですが、以下のふたつがあるでしょう。
1. Emacs CVS に sync する。
「Local Variables の no-byte-compile が non-nil だったらバイト
コンパイルしない」という機能が追加されているため、make で全
ての .el をバイトコンパイルするようになっていても .elc は作
られません。
この部分だけを抜き出して現在の Meadow に適用するには変更点
(ファイル)が多すぎるので、sync という形でやりたいです。
2. makefile でがんばる。
GNU make しか使わないのなら以下の変更でいけます。
もしもっと良い書き方ができるのなら教えてください。
出なかったら、2,3日中にこの変更を commit しちゃいます。
--- makefile.meadow.w32-in (revision 3167)
+++ makefile.meadow.w32-in (working copy)
@@ -223,27 +223,8 @@
# current directory and its subdirectories, to make sure require's and
# load's in the files being compiled find the right files.
-# Need separate version for sh and native cmd.exe
-compile-files: subdirs.el compile-files-$(SHELLTYPE) doit
+compile-files: subdirs.el $(addsuffix c,$(COMPILE_FIRST)) $(addsuffix c,$(addprefix $(lisp)/, $(wildcard *.el) $(wildcard */*.el))) doit
-compile-files-CMD:
-# -for %f in ($(lisp) $(WINS)) do for %g in (%f\*.elc) do @attrib -r %g
- for %f in ($(COMPILE_FIRST)) do $(emacs) -f batch-byte-compile %f
- for %f in (. $(WINS)) do for %g in (%f/*.el) do $(emacs) -f batch-byte-compile %f/%g
-
-compile-files-SH:
-# for elc in $(lisp)/*.elc $(lisp)/*/*.elc; do attrib -r $$elc; done
- for el in $(COMPILE_FIRST); do \
- echo Compiling $$el; \
- $(emacs) -f batch-byte-compile $$el; \
- done
- for dir in $(lisp) $(WINS); do \
- for el in $$dir/*.el; do \
- echo Compiling $$el; \
- $(emacs) -f batch-byte-compile $$el; \
- done; \
- done
-
# Backup compiled Lisp files in elc.tar.gz. If that file already
# exists, make a backup of it.
;; やっぱり Emacs-21.3 には sync しようよ。
--
こせき // サポートページ
http://www.NetLaputa.ne.jp/~kose/MeadowBook/