Como posso construir / empacotar o Emacs para que os arquivos de origem C sejam instalados em um diretório find-function-C-source-standard?

7

Quero poder visualizar o código fonte C das funções do Emacs. Por exemplo, eu quero poder fazer M-: (find-function 'message).

O Emacs me solicita o diretório das fontes C, para que possa ser configurado find-function-C-source-directory. No entanto, minha distribuição (Arch Linux) acabou de executar as make; make installetapas usuais (consulte a receita do pacote aqui ), portanto, não há fontes C disponíveis sem fazer o download manual.

Então, eu quero consertar a embalagem. Minhas perguntas são:

  1. Existem opções de configuração do makefile do Emacs que também copiam make installas fontes C? Não vejo nada óbvio.
  2. Qual é a maneira correta de definir find-function-C-source-directoryno pacote? Criar um site-lisp?
  3. Existem distros ou plataformas que já fazem isso?
Wilfred Hughes
fonte
11
find-function-C-source-directoryusos source-directoryinternamente, portanto, as coisas devem apenas trabalho para uma corrida Emacs em seu diretório de construção ...
wasamasa
11
Uma breve pesquisa pelo tipo "src" de RPM com o Emacs mostra: rpmfind.net/linux/rpm2html/… existem realmente essas criaturas. Eu tentaria investigar isso, no entanto, não tenho certeza de que eles configurem a pesquisa de código-fonte (embora possa ser bom).
Wvxvw
Meu palpite seria que o Arch Linux exclui todos os arquivos usados ​​durante a compilação, após concluir a instalação? Nesse caso, suponho que você precisará adicionar uma etapa de compilação para mover os arquivos relevantes para outro lugar. O uso de um arquivo site-lisp .el para definir o diretório está correto.
31516
pensei que o emacs foi escrito em lisp, não em C #
user3629249
11
Consulte " Como incluir / copiar sobre o srcdiretório ao criar o Emacs ": stackoverflow.com/questions/21241967/…
lawlist

Respostas:

1

Se o que você está perguntando é "como incluir o código-fonte no meu pacote do Arch", ele não parece pertencer aqui, mas talvez https://unix.stackexchange.com/ .

Existem opções de configuração do makefile do Emacs que significam fazer cópias de instalação também nas fontes C?

Não.

Qual é a maneira correta de definir o diretório find-function-C-source-package no pacote? Criar um site-lisp?

Se você souber, no momento da criação, onde seu pacote de código-fonte será instalado, você poderá corrigir o código-fonte. Mas eu substituiria no site-lisp.

Existem distros ou plataformas que já fazem isso?

Não que eu saiba.

Como você, como usuário, sempre pode baixar o código-fonte do Emacs, descompactar em seu diretório pessoal e configurá find-function-C-source-directory-lo de acordo para que ele funcione bem.

O melhor de tudo find-functioné que ele não precisa saber o número exato da linha. Em vez disso, ele procurará a função no arquivo de origem. Portanto, pequenas alterações ou diferenças de versão não afetam a capacidade.

Yasushi Shoji
fonte