Anleitung: wir basteln uns einen Phoenix Viewer unter Windows

Intention

Dieser etwas länglichere Artikel handelt darüber, wie man auf einem unter Microsoft Windows laufenden Rechner (ab Windows XP bis Windows 7) sich selbst einen 32 bit Second Life Viewer aus dem öffentlich zugänglichen Sourcen kompilieren kann, hier in dem Fall Phoenix. Da es so etwas bisher auf Deutsch nicht zu geben scheint, kann es mal nicht schaden, das hier skizzenhaft zu dokumentieren.

Die dazu nötigen Programme samt dem Compiler von Microsoft sind dabei allesamt kostenlos erhältlich, so dass man außer etwas Zeit und Geduld nichts weiter investieren muss.

Einige Worte in eigener Sache vorweg und was man an Wissen braucht

Das Kompilieren eines Viewers ist nichts alltägliches und da Windows ohne einen Compiler daherkommt, muss man erst einmal die Buildumgebung einmalig installieren. Das braucht einiges an Zeit, Zeit um die Programme herunterzuladen und auch noch zu installieren.

Diese Anleitung setzt dabei gute Kenntnisse von Microsoft Windows inklusive des Dateisystems und dessen Kommandozeile voraus, auch sollte man grob wissen was ein Compiler ist und dieser so tut! Wem es zu mühsam ist, teilweise unter Windows  auf der Kommandozeile zu arbeiten sowie erst einmal einen Haufen Programme installieren zu müssen und auch sonst schon wenn der Drucker mal wieder streikt, den Sohnemann/Nachbarn rufen muss, weil er das nicht selber schafft und für wen Anleitungen im WWW immer nur böhmische Dörfer sind, für den ist diese Anleitung definitiv nicht gemacht!

Mit Hilfe dieser Anleitung wird der sog. "Bleeding Edge"-Code aus dem Quellcode-Repository von Phoenix kompiliert. Bleeding Edge bedeutet, dass dieser Code fehlerhaft sein kann und das oft auch ist, möglicherweise nicht einmal bis zum fertigen Programm kompiliert und auch ansonsten schlimme Sachen passieren könnten. Wenn also Aliens kommen sollten um deine Festplatte aufzufressen, dann wasche ich meine Hände in Unschuld!

Daher: Benutzung und Durchführung ausschließlich auf eigene Gefahr! Wer Angst um seinen Computer oder seine Daten hat, der möge vorher ein Backup anfertigen (auch wenn normal nichts dergleichen passiert, ist ein Backup zu haben immer eine gute Idee!) Wer Angst um seinen Avatar hat, weil er mit einem eigens gebauten Viewer nach Second Life Verbindung aufbaut, der soll es einfach gleich sein lassen oder nur zu Opensim konnektieren.

Übrigens: ich bin für Kommentare und Verbesserungsvorschläge immer dankbar, aber nicht Willens noch in der Lage in dieser Angelegenheit Support in irgendwelcher Art zu leisten. Ich habe schlicht und einfach nicht die Zeit dafür euch beim Einrichten einer solchen Umgebung zu helfen noch sonst wo nachzuschauen, wenn es bei euch mal klemmt, werde den Artikel aber längere Zeit pflegen.

So, wenn ihr nach dem ganzen Sermon noch immer mit dabei seid und euch das nicht abschreckt, dann legen wir mal los, ihr furchtlosen Recken!

Nötige Programme, die zuerst installiert werden müssen

Neben dem Compiler an sich braucht es noch eine ganze Latte an weiteren Programmen sowie Bibliotheken und Include-Files, die auf dem Rechner zuerst installiert werden müssen, bevor man mit dem eigentlichen Programmieren im Quellcode und Kompilieren loslegen kann, als da wären:

  • Microsoft .NET Framework 4 - dies wird vom Visual Studio C++ benötigt, ladet es euch einfach unter den "Optionalen Updates" im "Windows Update" herunter.
  • Microsoft Visual Studio C++ 2005 Express Edition. Der Quellcode kompiliert nur mit dem 2005er Compiler wirklich sauber, beim 2008er gibt es einige Probleme und mit dem 2010er klappt es gleich gar nicht, also tut euch einen Gefallen und nehmt den 2005er. Wichtig ist, dass man das Service-Pack 1 über das Windows-Update installiert und, sofern man Windows Vista/7 nutzt, noch das Kompatibilitätspaket, ansonsten verrichtet dieser Compiler seinen Dienst nicht.
  • CMake ab Version 2.6.2 oder später. Dies ist das vom Viewer benutzte Buildsystem, bei der Installation unbedingt als Option "Add to System Path for all users" angeben!
  • Cygwin - dieses ist eine Portierung verschiedener Utilities von UNIX auf Windows. Kreuzt während der Installation "Install from Internet" an und installiert auf jeden Fall  die Pakete bison und flex, die unter "devel" zu finden sind, denn diese werden später gebraucht.
  • Python, eine interaktive Skriptsprache. Nutzt dabei maximal die Version 2.7, alles darüber liegende funktioniert mit den Skripten im Sourcecode nicht. Ich bevorzuge unter Windows die Distribution von Activestate, daher habe ich auch dorthin verlinkt.
  • Windows Platform SDK, dies benötigt mindestens XP Service Pack 3.
  • DirectX SDK, Download hier.
  • Mercurial - dies ist das Programm, mit dem der Quellcode vom Phoenix Viewer verwaltet wird. Wer Phoenix bauen will, der muss also dieses unbedingt installieren!
  • git - dies ist das Quellcodeverwaltungssystem, mit dem Imprudence gemanaget wird. Wer Imprudence/Kokua bauen will, der benötigt also dies, am Einfachsten dabei ist es, das unter Cygwin zu installieren, das sowieso auf dem Rechner installiert werden muss.

Wichtig: es gibt auch unter Cygwin ein Python und Cmake, diese beiden auf keinen Fall verwenden, ansonsten klappt es nicht!

Also wenn ihr noch nicht damit angefangen haben solltet, installiert diese Programme und Dateien erst einmal alle auf eurem Rechner, damit werdet ihr eine kleine Weile beschäftigt sein. 🙂 Fertig? Gut!

Wir holen uns den Quellcode!

Einfach: wir legen in der Kommandozeile einen neuen Ordner, z.B. source an und tippen da drin dann folgendes ein:

hg clone http://hg.phoenixviewer.com/phoenix-sg/

Das dauert dann je nach Internetverbindung ein Weilchen und danach haben wir im Ordner source eine Kopie des kompletten Quellcodes von Phoenix, die sich im Ordner phoenix-sg befindet. Sehr gut! (Wer sich Kokua will, der macht dasselbe Spielchen analog eben mit git).

Vorbereitungen fürs Kompilieren

Jetzt ist eine kleine Stunde der Wahrheit, wenn man etwas falsch gemacht haben sollte, funktionieren die folgenden Schritte nicht. Man begebe sich auf der Kommendozeile in den Ordner 'phoenix-sg\indra'. Dort tippt man dann folgendes ein:

python develop.p -G VC80 configure

Dies sollte ohne Fehlermeldung durchlaufen und richtet uns ein Verzeichnis namens phoenix-sg\indra\build-vc80 ein, in dem später das fertige Programm zu finden sein wird. Beim ersten Aufruf wird das einige Zeit brauchen, da er erst einmal alle notwendigen Bibliotheken aus dem Internet runterlädt und entpackt. Später geht das flotter von der Hand.

Wie entern den Compiler und legen los!

Als nächstes öffnen wir den Compiler und gehen in das oben genannte Verzeichnis. Darin bedindet sich eine Datei mit der Endung .sln für Solution - diese öffnen wir im Compiler.

Auf der linken Seite hat man dann eine Liste von verschiedenen Targets, die der Compiler nehmen kann. Hier einfach "ALL_BUILD" oder "Viewer" nehmen und auf "Build." Wenn man Glück hat, gibt es nach einiger Zeit dann eine Zeile, die "0 Errors" enthält, also 0 Fehler. Damit wäre der Kompiliervorgang abgeschlossen und der Compiler fertig. Finden tut man diesen dann im Verzeichnis phoenix-sg\indra\build-vc80\newview\release und die Datei heißt z.B. phoenixviewer.exe.

Sollte man das so geschafft haben - Glückwunsch, man hat seinen ersten, eigenen Viewer kompiliert.

Und nun?

Das kommt ganz darauf an. Man kann sich jetzt, wo man es hat, zum Beispiel als Hacker am Code probieren und kleinere Sachen ändern und den Viewer bauen. Man kann mit dem Viewer aufs Second Life Grid zugreifen oder Opensims.

Man kann an der Optimierung des  Quellcodes feilen, wenn man z.B. SSE2 haben will anstelle von SSE und dergleichen mehr.

Und natürlich mittels hg pull und hg udpate den Quellcode von Zeit zu Zeit aktualisieren.

Mittels dieses Rezepts lässt sich auch Firestorm, Kokua oder nahezu jeder belebige andere Viewer unter Windows kompilieren. Have fun!

14 thoughts on “Anleitung: wir basteln uns einen Phoenix Viewer unter Windows

    1. Bartholomew Gallacher

      Wenn der Code in C:\src\phoenix-sg z.B. liegt, dann geht man zuerst in den Ordner rein und tippt danach folgende Befehle:

      hg pull
      hg update

      Das war's.

      Reply
  1. ASUKA

    Warum sollte man nicht Microsoft Visual Studio C++ 2010 Express Edition dafür nutzen? Ich habe noch eine englische Anleitung gefunden, wo man aber Firestorm compiliert! Ist deine Anwendung nur für den Phoenix?

    MFG

    Reply
  2. Bartholomew Gallacher

    @ ASUKA
    Ganz einfach weil Phoenix mit Studio C++ 2010 nicht kompiliert. Linden Lab ist gerade jetzt erst dabei, den Code vom Viewer 2 so anzupassen, dass er mit 2010 mag.

    Firestorm kann man danach auch bauen.

    Reply
  3. ASUKA

    Wichtig ist, dass man das Service-Pack 1 über das Windows-Update installiert und, sofern man Windows Vista/7 nutzt, noch das Kompatibilitätspaket, ansonsten verrichtet dieser Compiler seinen Dienst nicht. <- Beide Updates bekommt man nach dem die 2005er Version installiert ist?

    Gehen auch die Englischen Versionen der Microsoft Programme?

    Reply
  4. ASUKA

    Gut, danke dir

    Nochmal schuldige, habe noch nie was compiliert, wollte nur auf Nummer sicher gehen

    Reply
  5. ASUKA

    In welche Ordner soll ich:

    Microsoft Visual Studio C++ 2005 Express Edition
    CMake
    Cygwin
    Python
    Windows Platform SDK
    DirectX SDK

    installieren?

    Reply
  6. Alexander Chapman

    Hab diesen etwas älteren Artikel gefunden und finde ihn sehr hilfreich: Danke Bart 🙂

    Eine Frage noch: Der aktuelle Phoenix Viewer hat die OpenJpeg ja verbaut und laedt sie nicht mehr als DLL nach, koennte ich durch selber compilieren es wieder erzwingen das die DLL nachgeladen wird? Da es mittlerweile eine neuere OpenJpeg Version gibt..und durch dieses ggf. das rezzen schneller erfolgen koennte.

    Gruss, Alex

    Reply
    1. Bartholomew Gallacher

      Das kann man schon noch, wenn man die entsprechende Datei abändert, die früher die DLL dynamisch nachlädt. Welche das allerdings nun ist, keine Ahnung. Das OpenJPEG wurde seinerzeit mit dem Phoenix verbacken, weil der Emerald ja da eine etwas unrühnliche Vorgechichte hatte.

      Reply
    1. Bartholomew Gallacher

      Nein, Phoenix ist veraltet und sowieso bald Geschichte, da lohnt sich das auch nicht mehr.

      Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.