Wie kann ich Emacs so erstellen / verpacken, dass die C-Quelldateien in einem Standardverzeichnis für die Suchfunktion-C-Quelle installiert werden?

7

Ich möchte C-Quellcode von Emacs-Funktionen anzeigen können. Zum Beispiel möchte ich dazu in der Lage sein M-: (find-function 'message).

Emacs fordert mich auf, das Verzeichnis der C-Quellen einzugeben, damit es festgelegt werden kann find-function-C-source-directory. Meine Distribution (Arch Linux) hat jedoch gerade die üblichen make; make installSchritte ausgeführt (siehe das Paketrezept hier ), sodass keine C-Quellen verfügbar sind, ohne sie manuell herunterzuladen.

Also möchte ich die Verpackung reparieren. Meine Fragen sind:

  1. Gibt es Konfigurationsoptionen für das Makefile von Emacs, bei denen auch make installdie C-Quellen kopiert werden? Ich kann nichts Offensichtliches sehen.
  2. Wie wird find-function-C-source-directorydas Paket richtig eingestellt ? Erstellen Sie ein site-lisp?
  3. Gibt es Distributionen oder Plattformen, die dies bereits tun?
Wilfred Hughes
quelle
1
find-function-C-source-directorywird source-directoryintern verwendet, daher sollten die Dinge nur für einen Emacs-Lauf in seinem Build-Verzeichnis
funktionieren
1
Eine kurze Suche nach "src" RPM mit Emacs zeigt: rpmfind.net/linux/rpm2html/… es gibt tatsächlich solche Kreaturen. Ich würde versuchen, diese zu untersuchen, bin mir jedoch nicht sicher, ob sie die Quellensuche eingerichtet haben (obwohl es vielleicht nett ist).
wvxvw
Ich vermute, dass Arch Linux nach Abschluss der Installation alle während des Builds verwendeten Dateien löscht. In diesem Fall müssen Sie vermutlich einen Erstellungsschritt hinzufügen, um die relevanten Dateien an eine andere Stelle zu verschieben. Die Verwendung einer site-lisp .el-Datei zum Festlegen des Verzeichnisses ist korrekt.
Phils
dachte, dass emacs in
lisp
1
Siehe " Einfügen / Kopieren des srcVerzeichnisses beim Erstellen von
lawlist

Antworten:

1

Wenn Sie fragen, wie Sie Quellcode in mein Arch-Paket aufnehmen können, scheint er nicht hierher zu gehören, sondern möglicherweise unter https://unix.stackexchange.com/ .

Gibt es Konfigurationsoptionen für Emacs 'Makefile, die bedeuten, dass make install auch die C-Quellen kopiert?

Nein.

Was ist der richtige Weg, um das Verzeichnis find-function-C-source-im Paket festzulegen? Ein Site-Lisp erstellen?

Wenn Sie zum Zeitpunkt der Erstellung wissen, wo Ihr Quellcodepaket installiert wird, können Sie den Quellcode patchen. Aber ich würde in Site-Lisp überschreiben.

Gibt es Distributionen oder Plattformen, die dies bereits tun?

Nicht, dass ich davon Wüste.

Da Sie als Benutzer jederzeit den Emacs-Quellcode herunterladen können, entpacken Sie ihn in Ihrem Home-Verzeichnis und stellen Sie ihn find-function-C-source-directoryentsprechend ein, damit er einwandfrei funktioniert.

Eine großartige Sache find-functionist, dass es nicht die genaue Zeilennummer kennen muss. Stattdessen wird die Funktion in der Quelldatei durchsucht. Kleinere Änderungen oder Versionsunterschiede wirken sich also überhaupt nicht auf die Fähigkeit aus.

Yasushi Shoji
quelle