Difference between revisions of "DE/Building OpenOffice.org de"

From Apache OpenOffice Wiki
< DE
Jump to: navigation, search
(create prebuilt mozilla and use that instead of recompiling everytime)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Development]]
+
{{Old|EN}}
[[Category:Build_System]]
+
[[Category: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]].
 
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]].
Line 69: Line 70:
 
in <SRC_ROOT> ein und entspannen Sie sich dann.
 
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.
 
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]] =
 
= Erstellen eines [[CWS]] =
Line 186: Line 188:
 
  */
 
  */
 
</pre>
 
</pre>
 +
 +
[[Category:Build_System]]

Latest revision as of 12:35, 9 July 2018

Book-old.png    This article is outdated.    


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

Erstellen eines prebuilt Mozilla und Verwendung dieses anstelle eines jedesmal neukompilierten

Für die Mozilla-Komponenten haben Sie die Möglichkeit, diese entweder aus den Mozillaquellen zu erstellen, vorkompilierte Pakete (die "offiziellen" können Sie von tools.openoffice.org erhalten) oder das System-Mozilla (dasjenige, das auf Ihrem Buildsystem installiert ist; nicht alles mag funktionieren, abhängig von der Version, die Sie installiert haben) benutzen. Sie können einfach Ihre eigene Version von vorkonfigurierten Binärdateien erstellen, wenn Sie dies tun wollen (entweder weil Sie die offiziellen nicht benutzen können aufgrund einer nicht passenden Kompilerversion, die zu ihrem Erstellen benutzt wurde, oder aus anderen technischen Gründen oder weil Sie nicht Sachen benutzen wollen, die Sie nicht selbst erstellt haben). Um dies zu tun,

  • erstellen Sie das Modul moz aus den Mozillaquellen
    (verwenden Sie hierzu --enable-build-mozilla, wenn Sie configure starten und legen Sie den Mozillaquellen-Tarball in das Verzeichnis moz/download)
  • in moz run dmake 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

Reparieren des EPM-4-Produktnamenfehlers

Falls Sie folgende Fehlermeldung erhalten "epm: Product names can only contain letters and numbers!", müssen Sie epm patchen und die Namensprüfung auskommentieren:

 /*
  * for (i = 0; prodname[i]; i ++)
  *   if (!isalnum(prodname[i] & 255))
  *   {
  *     puts("epm: Product names can only contain letters and numbers!");
  *     usage();
  *   }
 */
Personal tools