からemacs 22.3をダウンロードしました
http://ftp.gnu.org/pub/gnu/emacs/emacs-22.3.tar.gz
私のUbuntu 12.04.2 LTSデスクトップに、コンパイル/メイクが機能しません。
構成はうまくいくようです。
Make は非常に早い段階で失敗します。サブディレクトリ lib-src では、makefile の 148 行目に問題があります。そして、それは問題のように見えます:
ALL_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
-I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
それが 147 行目と 148 行目です。148 行目は 147 行目の続きであると思われます。タブから始まります。147 行の末尾に \ がありません。1 つ入れて、もう一度試しました。150 行目でエラーが発生しました。別の \ を挿入しました。数行後、事態はもう少し深刻になりました。\ がないと、実際には構文エラーではなく、より微妙な方法で make break が発生する結果になりました。
とにかく、私は Makefile を編集すべきではありません (私は、それらのパーミッションが読み取り専用だったことを知っています ;-) )。私は何を間違っていますか?私は辛抱することができましたが、代わりに、たとえばフラグをフィードして、たとえば emacs-22.3-makefile-compatibility モードで実行することができれば、はるかに優れています。
[「なぜ」と疑問に思っている人のために -- 仕事に必要なスクリプトがいくつかありますが、それらは emacs >=23; では一度も動作しませんでした。私の古いマシンでは問題なくemacs22を自分でコンパイルしましたが、この新しいUbuntuマシンではemacs22がなく、ubuntu 12.04リポジトリにemacs22がないので、少し必死です]
OKだったので、試してみることをお勧めしました
$ CPPFLAGS="-P" ./configure
これにより、lib-src の改行/タブに関するすべての問題が整理されます。しかし、実際には、手動で取得できたところまでたどり着きました。
cd src; make all \
CC='gcc' CFLAGS='-g -O2 -Wno-pointer-sign ' CPPFLAGS='-D_BSD_SOURCE -P' \
LDFLAGS='-Wl,-znocombreloc' MAKE='make'
make[1]: Entering directory `/home/buzzard/local/emacs-22.3/src'
gcc -c -D_BSD_SOURCE -P -Demacs -DHAVE_CONFIG_H -I. -I/home/buzzard/local/emacs-22.3/src -D_BSD_SOURCE -g -O2 -Wno-pointer-sign pre-crt0.c
make[1]: *** No rule to make target `/usr/lib/crt1.o', needed by `temacs'. Stop.
make[1]: Leaving directory `/home/buzzard/local/emacs-22.3/src'
make: *** [src] Error 2
うーん...自分が何をしているか知っていれば、他のビットとボブを投稿しますが、正直に言うと、make を理解したことがありません。私はいつもそれがうまくいくことを望んでいました...