Як я можу створювати/пакувати Emacs так, щоб вихідні файли C були встановлені в стандартну функцію find-function-C-source-directory?

Я хочу, щоб мати змогу переглядати вихідний код C функцій Emacs. Наприклад, я хочу мати змогу виконати M-: (find-function "повідомлення) .

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. Чи існують варіанти конфігурації Файл Emacs, що означає make install , також копіює джерела C? Я не бачу нічого очікуваного.
  2. Який правильний спосіб встановити в пакеті код find-function-C-source-каталог ? Створіть site-lisp ?
  3. Чи існують дистрибути або платформи, які вже цього виконують?
7
Короткий пошук типу RPM типу "src" з Emacs показує: rpmfind.net/linux/rpm2html/… існують дійсно такі істоти. Я хотів би спробувати розглянути ці питання, однак, я не впевнений, що вони налаштували джерело пошуку (хоча це може бути добре).
додано Автор Yann Trevin, джерело
думав, що emacs написано в листі, а не в C
додано Автор Alexander Prokofyev, джерело
@ user3629249: це написано в обох. Сам перекладач lisp написаний у C, а також деяких функцій, де потрібна ефективність (наприклад, ядро ​​оновлення екрана). Більша частина коду, що складається з запущених emacs, записується в lisp для запуску на вершині інтерпретатора, написаного на C. Отже, якщо ви стежите за посиланнями на екранах довідки для джерела заданої функції, це може бути або.
додано Автор Michael Bar-Sinai, джерело
find-function-C-source-directory використовує source-directory внутрішньо, тому речі повинні просто працювати для запуску Emacs в його каталозі збірки ...
додано Автор ICodeForCoffee, джерело
Я думаю, що Arch Linux видаляє всі файли, що використовувалися під час збирання, після завершення установки? Якщо це так, я вважаю, вам потрібно буде додати етап побудови, щоб перемістити відповідні файли в інше місце. Використовуючи файл site-lisp .el для правильного встановлення каталогу.
додано Автор Mark Ireland, джерело
Див. " Як включити/скопіювати каталог src під час створення Emacs ": stackoverflow.com/questions/21241967/ …
додано Автор lawlist, джерело

1 Відповіді

Якщо те, що ви задаєте, - це "як включити вихідний код у моєму пакеті" Arch ", він, схоже, не належить тут, але може бути https://unix .stackexchange.com/.

Чи існують варіанти конфігурації файлів масиву Emacs, які означають, що make install також копіює джерела C?

Ні.

Який правильний спосіб встановити каталог find-function-C-source в пакеті? Створити сайт-ліз?

Якщо ви знаєте, що під час створення, де буде встановлений пакет вихідного коду, ви можете виправляти вихідний код. Але я мав перевизначити в site-lisp.

Чи існують дистрибутиви чи платформи, які це вже виконують?

Не те, що я знаю.

Оскільки ви, як користувач, завжди можете завантажити вихідний код Emacs, розпакувати у вашому домашньому каталозі, встановіть відповідний код find-function-C-source-каталог , щоб він працював чудово.

Відмінною рисою щодо find-function є те, що він не повинен знати точний номер рядка. Замість цього, він виконуватиме пошук функції у вихідному файлі. Отже, незначні зміни або різниця у версіях не впливають на взаємодію.

1
додано