Cソースファイルが標準find-function-C-source-directoryにインストールされるように、Emacsをビルド/パッケージ化するにはどうしたらいいですか?

私はEmacs関数のCソースコードを見ることができるようにしたい。たとえば、 M-:(find-function 'message)を実行できるようにしたいと考えています。

Emacs prompts me for directory the C sources, so it can set find-function-C-source-directory. However, my distro (Arch Linux) has just done the usual make; make install steps (see the package recipe here) so there are no C sources available without manually downloading them.

だから、私はパッケージを修正したい。私の質問は次のとおりです:

  1. make install がCソースもコピーするというEmacsのmakefileの設定オプションはありますか?私は何も明白ではありません。
  2. パッケージに find-function-C-source-directory を設定する正しい方法は何ですか? site-lisp を作成しますか?
  3. すでにこれを行っているディストリビューションやプラットフォームはありますか?
7
追加された 編集された
ビュー: 2
Emacsで "src" RPMを簡単に検索すると、 rpmfind.net/linux/rpm2html/… 実際にそのような生き物があります。私はこれらを調べようとしますが、ソースルックアップを設定しているかどうかはわかりません(いいかもしれませんが)。
追加された 著者 Yann Trevin,
EmacsはC言語ではなくLispで書かれていると思った
追加された 著者 Alexander Prokofyev,
@ user3629249:それは両方で書かれています。 lispインタプリタ自体は、Cで書かれているだけでなく、効率が必要とされる関数のいくつか(画面更新の中核など)です。実行中のemacsを構成するほとんどのコードは、Cで書かれたインタプリタの上で動作するようにlispで書かれています。そのため、ヘルプ画面のリンクをたどって特定の関数のソースを調べると、どちらかになる可能性があります。
追加された 著者 Michael Bar-Sinai,
find-function-C-source-directory は内部的に source-directory を使用しているので、Emacsをビルドディレクトリで動かすだけです。
追加された 著者 ICodeForCoffee,
私の推測では、Arch Linuxは、インストールの完了後、ビルド中に使用されたすべてのファイルを削除するでしょうか?もしそうなら、関連するファイルを別の場所に移動するビルドステップを追加する必要があると思います。 site-lispの.elファイルを使用してディレクトリを設定するのは正しいです。
追加された 著者 Mark Ireland,
" Emacsをビルドするときに src ディレクトリにインクルード/コピーする方法": stackoverflow.com/questions/21241967/…
追加された 著者 lawlist,

1 答え

あなたが求めているのは、「Archパッケージにソースコードを含める方法」ですが、ここには含まれていないようですが、 https:// unix .stackexchange.com/

設定オプションはありますか?Emacsのmakefileは、Cのソースもmake installにコピーされますか?

いいえ。

パッケージ内でfind-function-C-source-directoryを設定する正しい方法は何ですか?サイトリスプを作成しますか?

ビルド時に、ソースコードパッケージがインストールされる場所が分かっている場合は、ソースコードにパッチを当てることができます。しかし、私はsite-lispでオーバーライドします。

すでにこれを行っているディストリビューションやプラットフォームはありますか?

私が知っていることではありません。

ユーザーとして、Emacsのソースコードをいつもダウンロードしてホームディレクトリに展開するので、 find-function-C-source-directory を適切に設定すれば問題ありません。

find-function の素晴らしい点は、正確な行番号を知る必要がないことです。代わりに、ソースファイル内の関数を検索します。したがって、マイナーチェンジやバージョンの違いは、能力にまったく影響しません。

1
追加された