Hoe kan ik Emacs bouwen/verpakken zodat de C-bronbestanden worden geïnstalleerd in een standaard vind-functie-C-bron-map?

Ik wil de C-broncode van Emacs-functies kunnen bekijken. Ik wil bijvoorbeeld M-: (vindfunctie-bericht) kunnen doen.

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.

Dus ik wil de verpakking repareren. Mijn vragen zijn:

  1. Zijn er configuratieopties die het makefile van Emacs dat betekent dat make install ook de C-bronnen kopieert? Ik zie niets voor de hand liggend.
  2. Wat is de juiste manier om find-function-C-source-directory in het pakket in te stellen? Maak een site-lisp ?
  3. Zijn er distributies of platforms die dit al doen?
7
dacht dat emacs was geschreven in lisp, niet C
toegevoegd de auteur Alexander Prokofyev, de bron
@ user3629249: het is in beide geschreven. De lisp-interpreter zelf is geschreven in C, evenals enkele functies waarvoor efficiëntie vereist is (zoals de kern van de schermupdate). Het grootste deel van de code die een lopend emacs vormt, is geschreven in lisp om op de in C. geschreven tolk te worden uitgevoerd. Dus wanneer u de links in de hulpschermen volgt voor de bron van een bepaalde functie, kan dit ook het geval zijn.
toegevoegd de auteur Michael Bar-Sinai, de bron
find-function-C-source-directory gebruikt source-directory intern, dus dingen zouden gewoon moeten werken voor een Emacs-run in zijn build directory ...
toegevoegd de auteur ICodeForCoffee, de bron
Mijn gok zou zijn dat Arch Linux alle bestanden verwijdert die tijdens de build zijn gebruikt, na het voltooien van de installatie? Als dat zo is, moet je waarschijnlijk een buildstap toevoegen om de relevante bestanden ergens anders naartoe te verplaatsen. Het gebruik van een site-lisp .el-bestand om de directory in te stellen is correct.
toegevoegd de auteur Mark Ireland, de bron
Zie " Hoe kan ik de map src opnemen/kopiëren bij het maken van Emacs ": stackoverflow.com/questions/21241967/…
toegevoegd de auteur lawlist, de bron

1 antwoord

Als u vraagt ​​"hoe u de broncode opneemt in mijn Arch-pakket", lijkt dit hier niet te horen, maar misschien https://unix .stackexchange.com/.

Zijn er configuratieopties voor het makefile van Emacs, wat betekent dat make install ook de C-sources kopieert?

Nee.

Wat is de juiste manier om find-function-C-source-directory in het pakket in te stellen? Maak een site-lisp?

Als u weet dat tijdens de build tijd uw broncodepakket wordt geïnstalleerd, kunt u de broncode patchen. Maar ik zou de site-lisp overschrijven.

Zijn er distro's of platforms die dit al doen?

Niet dat ik weet.

Omdat u als gebruiker altijd Emacs-broncode kunt downloaden, uitpakken in uw huisadres, stelt u find-function-C-source-directory dienovereenkomstig in om het goed te laten werken.

Een goede zaak over find-function is dat het niet het exacte regelnummer hoeft te weten. Het zal in plaats daarvan de functie zoeken in het bronbestand. Dus kleine wijzigingen of versieverschillen hebben geen enkele invloed op het vermogen.

1
toegevoegd