Da der Lyx-Compiler in Free Pascal (FPC) implementiert ist, kann er leicht aus den Quellen erstellt werden. Dies ist notwendig, wenn Sie Änderungen am Compiler-Kern vornehmen oder Lyx auf einer neuen Plattform (Bootstrapping) installieren möchten.
Bevor Sie beginnen, stellen Sie sicher, dass folgende Komponenten installiert sind:
Das Repository ist wie folgt strukturiert:
Der einfachste Weg, den Compiler zu bauen, ist die Nutzung von fpc direkt.
fpc -O3 -MObjFPC -Scghi -Sh -Tlinux -Px86_64 lyxc.lpr -olyxc
Beispielufruf:
mkdir -p lib && fpc -Mobjfpc -Sh -FUlib/ -Fuutil/ -Fufrontend/ -Fuir/ -Fubackend/ -Fubackend/x86_64/ -Fubackend/elf/ -Fubackend/pe/ -Fubackend/arm64/ -Fubackend/macho/ -Fubackend/xtensa/ -Fubackend/esp32/ -Fubackend/macosx64/ -Fubackend/win_arm64/ -Fubackend/riscv/ -Fubackend/arm_cm/ -O2 lyxc.lpr -olyxc 2>&1
Erklärung der Parameter:
| Parameter | Bedeutung |
|---|---|
| -O3 | Maximale Optimierung des Compiler-Executables. |
| -MObjFPC | Nutzt den Object Pascal Dialekt. |
| -Scghi | Aktiviert fortgeschrittene Sprachfeatures (Generics, Operator Overloading). |
| -T / -P | Zielplattform (Target) und Architektur (Processor). |
| -o | Name der Ausgabedatei. |
Wenn Sie den Lyx-Compiler auf einem x86_64-Rechner bauen, ihn aber auf einem Raspberry Pi (ARM64) ausführen möchten, nutzen Sie Cross-Kompilierung:
fpc -Tlinux -Parm64 -XParm-linux-gnueabihf- lyxc.lpr
Nachdem das Executable lyxc erstellt wurde, muss der Compiler wissen, wo sich die Lyx-Standard-Units befinden. Dies geschieht normalerweise über eine Umgebungsvariable:
export LYX_PATH=/usr/local/lib/lyx/units ./lyxc my_program.lyx
fpc.cfg korrekt gesetzt sind oder nutzen Sie den Parameter -Fu./src, um das Quellverzeichnis explizit anzugeben.Entwickler-Tipp:
Nutzen Sie den Debug-Build (-g -gl -gh), wenn Sie am Compiler selbst arbeiten, um aussagekräftige Stack-Traces bei Compiler-Abstürzen (Internal Errors) zu erhalten.