LibreOffice und make (compilieren)

Aus m-wiki
Zur Navigation springen Zur Suche springen

Einleitung

Möchte man LibreOffice selber kompilieren, so geht dies auch unter Windows mit cygwin. Die Anleitung findet sich auf [wiki.documentfoundation.org|https://wiki.documentfoundation.org/Development/lode].

make

Damit man das Programm debuggen kann und auch in Visual-Studio integrieren, muss man folgende Parameter mitgeben oder in der Datei autogin.input hinterlegen (dbgutil sollte eigentlich das gleiche sein wie debug):

./autogen.sh --enable-dbgutil --enable-debug --with-visual-studio=2022

Parameter für make setzen

In der Datei config_host.mk werden viele globale Einstellungen getätigt. Wird dort eine Option angepasst, muss meist ein kompletter Build erstellt werden (etwa SAL_LOG auf FALSE setzen).

verschiedene make Optionen

Mit dem folgenden Befehl wird kompiliert und gleichzeitig werden noch die Checks gemacht, ob das Programm läuft wie es sollte. Dazu wird der Output in die Logdatei geschrieben, damit man Fehler suchen kann. Unter Linux empfehlen sie, zuerst nur ein make zu machen und erst anschliessend ein make check, damit er besser durchläuft:

make check 2>&1 | tee build.log

Nach dem kompilieren (lode/dev/core) findet sich LibreOffice im Unterverzeichnis: instdir/program/soffice.exe (c:\cygwin\home\[username]\lode\dev\core\instdir\program\soffice.exe)

  • Die Angabe 2>&1 bewirkt, dass Ausgaben der Fehlerkonsole (2) auf die Standardausgabe umgelenkt werden.
  • tee bewirkt ein kopieren der Ausgaben aus der Pipe in die angegebene Datei und gleichzeitige Ausgabe auf die Konsole, so dass parallel geloggt wird.

Wenn man bei make den Parameter vs-ide-integration mitgibt, dann hat man nachher im core-Verzeichnis eine LibreOffice.sln, die man direkt mit VS öffnen kann, um so den Debugprozess zu starten.

make vs-ide-integration

When you want to build the debug version for a fix set of modules you can use:

./autogen.sh --enable-debug --enable-symbols="<space separated list of modules terminated with '/' >"

For details see the description of --enable-symbols in the output of ./autogen.sh --help.

Git

Damit das Verzeichnis aktualisiert wird, muss man unter /lode/dev/core folgendes aufrufen:

git pull

Nimmt man das falsche Verzeichnis kommt entweder die Meldung, dass es kein Repository gibt oder dass es schon aktuell ist, ohne dass er etwas vergleicht.

Kommt die Meldung "Bitte committen oder stashen Sie Ihre Änderungen, bevor Sie mergen.", dann hat man lokal Änderungen an Dateien gemacht, die auch Online geändert wurden. Mit commit übernimmt man die eigenen ANpassungen, während mit stash die Änderungen verworfen werden.

git commit -> Änderungen übernehmen und lokal speichern
git stash -> Änderungen verwerfen -> Können später mit git stash apply wieder geholt werden

Anschliessend muss man wieder einen pull durchführen und wenn der erfolgreich war, dann kann man neu kompilieren. Man sollte aber vorher noch make clean durchführen, damit sauber kompiliert wird. Kommt beim clean die Meldung "rm: das Entfernen von 'C:/cygwin/home/grobma/lode/dev/core/instdir/program/types/offapi.rdb' ist nicht möglich: Device or resource busy", dann läuft im Hintergrund noch ein Prozess, den man abschiessen muss.

Seiten zum Compilieren

LibreOffice unter Windows compilieren

LibreOffice unter Linux compilieren

Aufbau LibreOffice

Zusätzliches