DE/Building OpenOffice.org de
Dies sind die Anweisungen, wie man ein "einfaches" ("vanilla") (oder "Up-Stream") OpenOffice.org erstellt. Einfach bedeutet: ohne Werkzeuge wie ooo-build, das den Build-Prozeß übernimmt. Falls Sie ooo-build verwenden, schauen Sie stattdessen auf Erstellen_mit_ooobuild.
Kompilieren von OpenOffice.org : das Verfahren
Bekommen der Quellen
Um diese Anweisungen nicht länger als nötig zu machen, gibt es eine spezielle Seite hierzu unter Wie man die Quellen bekommt.
Abhängigkeiten
Sie benötigen natürlich einige installierte Entwicklungs-Bibliotheken (development libraries), um OpenOffice.org zu erstellen. Das Skript configure wird es beanstanden, wenn etwas fehlt. Bis dieser Leitfaden die Voraussetzungen auflistet, schauen Sie auf http://tools.openoffice.org/
Unterschiedliche Plattformen
Einige Informationen für bestimmte Plattformen werden unter tools zur Verfügung gestellt.
Sehen Sie sich für OS X auch AquaBuild ( experimentale Aqua-Version von OpenOffice.org) oder MacOSXBuildInstructions ( X11-Version ), für GNU/Linux Sparc GNULinuxSparcPorting und für Windows Windows an.
Einen Meilenstein (Milestone) erstellen
Configure laufen lassen
Der erste Schritt nach dem Erhalten der Quellen (und hoffentlich aller Voraussetzungen) ist das laufen lassen von configure:
cd <SRC_ROOT> cd config_office ./configure
Sie werden höchst wahrscheinlich configure mitteilen müssen, wo es einige Pakete wie beispielsweise Ant findet und welches Java es benutzen soll. Verwenden Sie
./configure --help
, um eine Liste der gültigen Optionen zu erhalten, die Sie verwenden können.
Falls Sie vergessen haben sollten, einige Abhängigkeiten zu installieren, wird Sie das Skript configure daran erinnern, welche fehlen.
Besonderer Tipp in Bezug auf Ant: Stellen Sie sicher, dass Sie einen absoluten Pfad verwenden.
Bootstrappen
Falls configure sauber durchläuft (d.h., es endet ohne irgendeinen Fehler oder eine Warnung), können Sie mit dem Erstellen fortfahren. Configure erstellt eine Umgebungsdatei, die Sie in Ihre Shell einlesen müssen. Falls Sie eine Bash laufen haben, benutzen Sie
cd <SRC_ROOT> source LinuxX86Env.Set.sh
Falls Sie eine tcsh oder etwas ähnliches laufen haben, verwenden Sie
cd <SRC_ROOT> source LinuxX86Env.Set rehash
Beachten Sie: der Dateiname des Umgebungsskriptes könnte auf einer anderen Systemarchitektur anders lauten. Ersetzen Sie 'X86' durch etwas, das adäquat ist. Beachten Sie auch, dass es bei älteren Versionen 'Intel' und nicht 'X86' ist.
Der letzte Schritt vor dem realen Erstellen besteht darin, die Erstellungswerkzeuge (buildtools) zu kreieren, die OOo verwendet. Um dies zu tun, lassen Sie einfach folgendes laufen:
./bootstrap
in <SRC_ROOT>
Das eigentliche Erstellen starten
Nun ist es an der Zeit für das eigentliche Erstellen Tippen Sie einfach
dmake
in <SRC_ROOT> ein und entspannen Sie sich dann. Das Erstellen von OOo erfordert einige Zeit (circa 10-12 Stunden auf einem Standard-Schreibtisch-PC), weshalb Sie in der Zwischenzeit andere Dinge tun können.
Erstellen eines CWS
Um einen Child Workspace (CWS) zu erstellen, müssen Sie zuerst den Meilenstein (milestone) auschecken, auf dem der CWS basiert (sehen Sie oben das Erhalten der Quellen). Danach müssen Sie die Module, die in den CWS einbezogen sind, mit den CVS-Markierungen (cvs tag) des CWS aktualisieren.
Sie können entweder EIS verwenden, um Informationen darüber zu erhalten, welcher Meilenstein die Basis für den CWS ist (sehen Sie sich hierzu das Feld "Milestone (current)" an) und welche Module in ihn einbezogen sind (sehen Sie sich hierzu die Tabelle "Modules & Files" an). Oder Sie können Tinderbox's tag-list benutzen, um diese Information zu erhalten.
Sobald Sie alle benötigten Informationen gesammelt haben, können Sie folgendes ausführen:
cd <SRC_ROOT> setenv CVSROOT ":pserver:anoncvs@anoncvs.services.openoffice.org:/cvs" cvs [optional cvs flags such as -z #] update -dP -r <cwstag> <module1> <module2> <moduleN>
Wobei
- SRC_ROOT das Verzeichnis auf der obersten Ebene Ihres Meilenstein-Checkouts ist.
- cwstag die CVS-Markierung (cvs tag) des CWS ist. Die Markierung ist in der Form cws_<main codeline>_<name of cws>, zum Beispiel cws_src680_chart2mst3
Beachten Sie: Falls Sie CVS verwenden, das einen SSH-Tunnel benutzt, verwenden Sie SSH-Kompression eher als CVS-Kompression - dies ergibt bessere Resultate
Zum Beispiel können Sie eingeben:
cd src680-m172 setenv CVSROOT ":pserver:anoncvs@anoncvs.services.openoffice.org:/cvs" cvs -z3 update -dP -r cws_src680_chart2mst3 chart2/ offuh/
Tips and Tricks
Hier einige Tipps, die Ihnen das Leben leichter machen oder das Erstellen beschleunigen können.
ccache
Falls es möglich ist, ist es stärksten empfohlen, ccache zu installieren (und zu konfigurieren) - dies wird die Build-Zeit für anschließende Builds sehr stark reduzieren. Geben Sie die Erlaubnis für einen großen Cache und eine Menge von Dateien für den kompletten OOo-Build-Baum. Falls Sie an mehreren CWSs gleichzeitig arbeiten, zahlt es sich aus, seperate Cache zu haben wie auch seperate Cache für Nichtproduktive-/Produktiv-Builds innerhalb eines CWS, z.B. führen Sie, nachdem Sie die Umgebung gesourced haben, folgende Kommandos aus:
export CCACHE_DIR="${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" ccache -M 2G -F 100000 export CC="ccache gcc" export CXX="ccache g++"
in der Bash beziehungsweise in der Tcsh
setenv CCACHE_DIR "${YOUR_SOURCES}/$CWS_WORK_STAMP/.ccache_$INPATH" ccache -M 2G -F 100000 setenv CC "ccache gcc" setenv CXX "ccache g++"
Für Windows: Laden Sie von hier herunter und machen Sie das Folgende:
export CCACHE_DIR="some/place/with/space" ccache -M 2G -F 10000 export CCACHE_CPP2=TRUE export CXX="guw.pl ccache cl" # export USE_PCH= if you experience trouble with precompiled headers
in der Bash beziehungsweise in 4NT:
set CCACHE_DIR="some/place/with/space" ccache -M 2G -F 10000 set CXX=ccache cl unset USE_PCH # if you want to experient with precompiled headers (not recommended): set CCACHE_CPP2=TRUE and keep USE_PCH=TRUE
Sehen Sie sich auch dies thread an als Hintergrundinformation über Windows-CCache-Spezifikationen.
set nodep=TRUE
Falls Sie die Umgebungsvariable nodep auf TRUE setzen, werden keine Dateien mit Informationen zu den Abhängigkeiten erstellt - das Build wird damit schneller fertiggestellt.
Allerdings sollten Sie dies nur in einem sauberen Build aktivieren. Sobald Sie OOo erstellt und danach Veränderungen vorgenommen haben, setzen Sie diese Variable wieder zurück um auf der sicheren Seite zu sein.
set NO_HIDS=TRUE
Ähnlich der Variable nodeps unterdrückt diese das Erstellen von (Hilfe-IDs), die hauptsächlich für das automatische Testen verwendet werden - falls Sie nur OOo erstellen wollen, brauchen Sie diese nicht.
Verwenden von parallelen Builds
Falls Sie eine Mehrprozessormaschine oder etwas ähnliches haben, können Sie parallele Builds starten. Es gibt zwei Ebenen von Parallelisierung - eine, die auf der Ebene des Makefiles arbeitet und eine andere auf Modulebene.
set MAXPROCESS=<Anzahl oder Prozesse>
Dies ist die Makefile-Parallelisierung. Dies teilt dmake mit, wieviele Vorgaben ihm für das Parallele Erstellen erlaubt sind.
starten von parallelen build.pl
Für Parallelisierung auf Modulebene müssen Sie build aus dem Verzeichnis <SRC_ROOT>/instsetoo_native starten mit dem Schalter -P<number>, zum Beispiel:
build -P2
create prebuilt mozilla and use that instead of recompiling everytime
For the mozilla-components you have the choice to either build from mozilla sources, to use precompiled packages (the "official" ones can be obtained from tools.openoffice.org) or to use system-mozilla (the one installed on your buildsystem, not everything might work, depending on the version you got installed) You can easily create your own version of the prepacked binaries if you wish to do so (either because you cannot use the official ones because of mismatch of compiler version used to build them/other technical reasons or because you want to use stuff you didn't build yourself). To do so:
- build the
moz
module from the mozilla sources
(use--enable-build-mozilla
when running configure and put the mozilla-source tarball tomoz/download
) - in
moz
rundmake zip
to create the zip files - you'll find the zips in
{unxlngi#,wntmsci#}.pro/zipped
Copy them to a location of your liking.
Now instead of using --enable-build-mozilla
, use --disable-build-mozilla
and copy the zips you created or downloaded to moz/zipped
and these will be used when compiling.
This will greatly reduce build-time (you save the time that would otherwise be spent on compiling mozilla)
Sparen von Plattenplatz allein durch das Verknüpfen zum Solver
Verwenden Sie "--dlv_switch -link", wenn Sie build starten, um deliver mitzuteilen, dass es die Dateien nur verknüpfen soll, anstatt sie zu kopieren:
build --dlv_switch -link
fixing epm 4 product name error
If you get "epm: Product names can only contain letters and numbers!" error, you must patch epm and comment out name check:
/* * for (i = 0; prodname[i]; i ++) * if (!isalnum(prodname[i] & 255)) * { * puts("epm: Product names can only contain letters and numbers!"); * usage(); * } */