============================ Die Installation von Freeciv ============================ Diese Datei beschreibt die Compilierung und Installation von Freeciv. Stand: 25.09.02 0. Voraussetzungen: =================== Freeciv hat einige (aber wenige) Ansprüche an das System, auf dem installiert werden soll. Freecivs Konfigurationsskript (./configure) ist "intelligent" genug um festzustellen, ob ein System die Anforderungen erfüllt. Falls Zweifel bestehen, ob das System wirklich geeignet ist, sollte man es einfach ausprobieren. - Unix (oder etwas vergleichbares) Unix, ein Unix-ähnliches System wie Linux oder FreeBSD oder ein Betriebssystem, daß eine Unix-artige Umgebung bereitstellt, wie z.B. EMX unter OS/2 oder das Cygwin-Toolkit von Cygnus für Windows (http://sourceware.cygnus.com/cygwin/). Des weiteren müssen sog. BSD-TCP/IP-Sockets vorhanden sein, sowie eine Bourne-Shell kompatible Shell, wie z.B. die GNU "bash". (Die meisten Unixe sollten diese Anforderungen erfüllen) - Ein ANSI-kompatibler C Compiler Freeciv wurde (größtenteils) in sehr portablem ANSI-C geschrieben. Sowohl 32 als auch 64-Bit-Rechner werden unterstützt. Ein sog. "K&R" sowie ein reiner C++ Compiler können nicht benutzt werden. Freeciv wird hauptsächlich mit dem "gcc", dem C-Compiler des GNU-Projektes entwickelt. Release-Versionen können sowohl mit dem gcc als auch mit den meisten anderen Compilern übersetzt werden (z.B. dem Solaris C Compiler). Developer-Versionen sowie CVS-Abzüge hingegen können nur mit dem "gcc" übersetzt werden, es sei denn, configure wird mit der Option "--disable-cvs-deps" option aufgerufen (siehe auch den nächsten Abschnitt). Es ist vor gekommen, daß gcc mit der Option -O3 Freeciv falsch kompiliert hat. Dagegen gab es über Kompilationen mit -O2 keine negativen Berichte. - Ein "make" Wie auch beim Compiler wird hier hauptsächlich die GNU-Version eingesetzt, "gmake". Die Makefiles der offiziellen Release-Versionen von Freeciv arbeiten auch mit den meisten anderen "makes" zusammen. Bei Developer-Versionen und CVS-Abzügen gilt das gleiche wie beim Compiler: "gmake" wird vorausgesetzt, solange man configure nicht mit "--disable-cvs-deps" aufruft (siehe auch den nächsten Abschnitt). Um festzustellen, ob GNU make installiert ist, gibt man folgendes an der Befehlszeile ein: % make -v [ falls es nicht funktioniert, "gmake -v" versuchen ] Die Ausgabe von make sollte dann irgendwo die Zeichenkette "GNU Make" enthalten. Ein CVS-Abzug hat zusätzliche Vorraussetzungen; Release-Versionen beinhalten die generierten Dateien bereits. - Die Programme aus dem Packet GNU gettext mit der Versionsnummer >= 0.10.36 Speziell das Programm xgettext wird benötigt, um die *.gmo-Dateien für die Übersetzungen zu erzeugen, die im CVS-Baum nicht enthalten sind. - GNU autoconf in der Version >= 2.13 Dies wird benötigt, um das Konfigurationsskipt "configure" aus "configure.in" zu erzeugen. - GNU automake in der Version >= 1.4 Automake wird benötigt, um die verschiedenen "Makefile.in's aus den "Makefile.am"'s zu erzeugen. 1. Voraussetzungen der Clients: =============================== Clients für Freeciv gibt es in zwei Versionen: einen für die "Athena Widget Library" ("Xaw") und einen für Gtk+ (das Widget Set von/für "The Gimp"). Beide Clients haben unterschiedliche Anforderungen, auf die weiter unten eingegangen wird. Das System sollte mindestens eine der beiden Listen erfüllen (es sei denn, man will auf dem Rechner nur einen Server für ein Freeciv-Spiel bereitstellen). Außerdem existiert ein nativer Client für den Amiga. ACHTUNG: Einige Distributionen/Systeme besitzen getrennte Pakete für die eigentlichen Libraries und die zur Programmentwicklung nötigen Dateien. D.h., daß man auf diesen Distributionen die entsprechenden "development"-Pakete installieren muß (gilt z.B. für Debian GNU/Linux, RedHat Linux und SuSE Linux). 1a. Anforderungen des Xaw-Clients: ================================== - X-Window Der Xaw-Client von Freeciv ist ein Programm für X-Window, also benötigt man irgend etwas, um X-Window Programme ablaufen zu lassen (Auch hier gilt: die meisten Unixe können das...) Falls Freecivs Konfigurationsskript (./configure) ein installiertes X nicht finden sollte, muß man die Optionen "--x-includes=DIR" und "--x-libraries=DIR" von configure benutzen um die Pfade explizit mitzuteilen. - Die "Athena" Widget Library Athena (aka "Xaw") gehört normalerweise zum Lieferumfang von X-Window, allerdings ist es auf einigen Plattformen (z.B. HP-UX 10) nur mit eingeschränkter Funktionalität zu finden. Um den "Xaw"-Client zu erzeugen, ruft man configure mit "--enable-client=xaw" auf. Im nächsten Abschnitt gibt es weitere Informationen über das configure Skript. Viele moderne unixoide Systeme (wie z.B. Linux) kommen mit einer Variante der "Xaw"-Library, "Xaw3d", die einen moderneren 3D-Look besitzt. Um Freeciv mit "Xaw3d" zu übersetzen, ruft man configure mit "--with-xaw3d" auf. Es gibt noch andere Varianten von Xaw, z.B. Nextaw. Freeciv arbeitet nicht mit diesen zusammen, aber es sollte möglich sein, Freeciv für diese Bibliotheken wie für Xaw3d zu verändern. Eine andere Möglichkeit wäre die Verwendung von "xaw_wrappers"; Eine Anleitung dafür würde aber den Rahmen dieser Datei bei weitem sprengen. - Die "Xpm" Library Diese Library ist grundlegend für den Umgang mit Icons und Bitmaps. Sie ist weit verbreitet und standardmäßig auf den meisten modernen Unix-Rechnern vorhanden. Jedoch kann es sein, daß sie auf älteren Unixen nicht vorhanden ist. Es könnte nötig sein, configure explizit mit "--with-xpm-prefix=DIR" mitzuteilen, wo sich die "lib" und "include"-Verzeichnisse von Xpm befinden. Sollte Xpm nicht vorhanden sein, kann man Xpm von hier bekommen: ftp://koala.inria.fr/pub/xpm/xpm-3.4k.tar.gz ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz Dieses Packet kann wie jedes andere auch installiert werden. Falls es nicht in ein Standardverzeichnis (wie /usr/lib oder /usr/local/lib o.ä.) installiert werden kann, muß beim Aufruf von configure die option --with-xpm-prefix benutzt werden. Hinweise zu Problemen mit der libXpm unter Solaris bzw. dem Installieren der libXpm als nicht-root gibts gegen Ende der Datei in "Reinier's libXpm Solaris Installation Notes" 1b. Anforderungen des GTK+-Clients: =================================== - Die "Glib" Library "Glib" stellt nocht-grafische Funktionen für Gdk und Gtk+, wie z.B. hash-Tabellen, verkettete Listen usw. zur Verfügung. Freeciv benötigt die Glib mit der Version >=1.2.1 Sollte Glib nicht vorhanden sein, bekommt man es hier: ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz (Hinweis: Wenn glib schon nicht vorhanden ist, ist es auch sehr wahrscheinlich, daß gtk+ auch nicht vorhanden ist. gtk+ liegt an gleicher Stelle auf oben genanntem Server) - Die "Gtk+" Widget Library Gtk+ wurde für The Gimp entworfen und entwickelt. Seitdem hat es sich Popularität als ein einfach zu programmierendes, freies Toolkit erworben. Zu Gtk+ gehört auch Gdk, das grundlegende Zeichen-Funktionen, Fenster, Clipping usw. zur Verfügung stellt. Freeciv benötigt Gtk+ mit der Version >=1.2.5 Sollte Gtk+ nicht vorhanden sein, bekommt man es hier: ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-1.2.10.tar.gz - Die "Imlib" Library Imlib ist eine Library für den Umgang mit Bitmaps. Sie wird außerdem beim GNOME Projekt benutzt. Freeciv benötigt die "Imlib" in einer Version >=1.9.2 Falls configure sagt, daß Imlib nicht vorhanden ist, bekommt man es hier: ftp://ftp.gnome.org/pub/GNOME/stable/sources/imlib/imlib-1.9.10.tar.gz (Laut Dokumentation benötigt Imlib für bestimmte Features (z.B. für die Unterstützung von PNG-Grafiken) weitere Libraries - diese sind für Freeciv allerdings nicht nötig). Compiliert man selbst, sollte (oder muß) folgende Reihenfolge eingehalten werden: Glib, Gtk+, Imlib 2. Generierung des Makefiles: ============================= 2a. Generierung für CVS-Versionen: ================================== Dieser Schritt wird nur bei CVS-Versionen benötigt: Um das Makefile zu erzeugen, einfach % ./autogen.sh tippen. Dieser Befehl erzeugt "configure" und ruft startet es. Alle Parameter von autogen.sh werden an configure weitergereicht. Welche Parameter an configure übergeben werden können, findet sich im nächsten Abschnitt. 2b. Generierung für Release-Versionen: ====================================== Bevor Freeciv compiliert werden kann, muß ein sog. Makefile erstellt werden. Dieses wird automatisch erzeugt und geht auf die auf dem System vorhandenen Features ein. Dafür wird das GNU "configure" Skript eingesetzt. configure befindet sich im obersten Verzeichnis von Freeciv. Aufgerufen wird configure mit % ./configure Dieses Skript versucht herauszufinden, welche der benötigten zusätzlichen Libraries auf dem System vorhanden sind (und welche nicht). configure sollte ein oder zwei Bildschirmseiten voll mit Diagnosemeldungen über das System ausgeben und sich dann beenden. Hilfe zu den verschiedenen Optionen von configure gibt es mit --help: % ./configure --help Beim Compilieren von Entwicklerversionen oder CVS-Abzügen ohne GNU make oder gcc muß configure mit der Option "--disable-cvs-deps" aufgerufen werden, besonders wenn man cc und make unter Solaris benutzt. Dadurch wird die automatische Überprüfung der Abhängigkeiten der Quelldateien untereinander außer Kraft gesetzt. Wenn danach eine Headerdatei (*.h) verändert wurde, sollte vor dem nächsten Aufruf von "make" auch noch ein "make clean" durchgeführt werden, um sicher zu gehen, daß alle Dateien korrekt übersetzt werden. Bei Stable-Release-Versionen hat die Option "--disable-cvs-deps" keine Wirkung. Standardmäßig erstellt das Makefile den Gtk+-Client, wenn auf dem System Gtk+ vorhanden ist, andernfalls den Xaw-Client. Um dies zu umgehen, kann man configure mit der Option "--enable-client=xaw" aufrufen. Um die Compileroptionen zu beeinflussen, kann man die Umgebungsvariable CFLAGS setzen, bevor man "./configure" aufruft, z.B.: % CFLAGS="-O -g -pipe" ./configure [für die Bourne shell oder die Bash] oder % setenv CFLAGS "-O -g -pipe" % ./configure [für die C-Shell oder tcsh] Falls man einen "core dump" verfolgen möchte, sollte man "-g" in seine CFLAGS mit aufnehmen. Bei der (späteren) Installation von Freeciv werden die Dateien nach /usr/local installiert. Sollten Sie einen anderen Ort als /usr/local vorziehen, so können sie diesen mit übergeben: % ./configure --prefix=/opt/freeciv Sollte configure nicht durchlaufen und abbrechen, sollten folgende Schritte durchgeführt werden: - Erfüllt das System die im Abschnitt 1 gestellten Anforderungen? - Beim Gtk+-Client: Sind Gtk+, Gdk, Glib und Imlib installiert? Kann configure diese auch finden? Die Libraries sollten in den Standardverzeichnissen installiert werden oder configure der Installationsort mit den passenden Optionen mitgeteilt werden. (siehe auch ./configure --help) - Beim Xaw-Client: Sind Xaw und die Xpm-Library installiert? Kann configure diese finden? Auch hier gilt: die Libraries sollten in den Standardverzeichnissen installiert oder aber configure der Installationsort mit den passenden Optionen mitgeteilt werden. (siehe auch ./configure --help) - Für Probleme, die mit "gettext" zusammenhängen, gibt es im Abschnitt über "NLS" ("Unterstützung der Landessprache", weiter unten) evtl. Work-Arounds. - Fehler den Entwicklern mitteilen, damit diese zum nächsten Release beseitigt werden können (die Fehler ;-) !! Dazu schickt man eine Mail an die Mailingliste freeciv-dev, in der man beschreibt, was man getan hat und wie/welcher Fehler auftrat. Hilfreich wäre auch, wenn die Ausgabe des configure-Skripts, sowie der Inhalt der Dateien "config.status", "config.cache" und "config.log" mitgeschickt werden. Diese Dateien werden von configure erstellt. Mehr zur Mailingliste freeciv-dev gibt es unter http://www.freeciv.org Achtung: Seit der Freeciv Version 1.7.2 wird Imake nicht mehr unterstützt, und seit Version 1.8.1 gehört die Datei Makefile.noimake nicht mehr zur Freeciv-Distribution. 3. Freeciv compilieren: ======================= Wenn bis jetzt alles geklappt hat, sollte das Compilieren allein durch die Eingabe von "make" (oder vorzugsweise "gmake") geschehen. Sollte trotzdem ein Problem auftreten, sollte man die Hinweise in der Datei BUGS zu rate ziehen. Sollte das Problem mit "gettext" zusammenhängen, lesen Sie bitte den Abschnitt über NLS ("Unterstützung der Landessprache", weiter unten) für evtl. Work-Arounds Nach dem Compiliervorgang erhält man die folgenden wichtigen "Ergebnisse": - Die zwei Programme "client/civclient" und "server/civserver". - Das Verzeichnis "data/", welches die Szenarien und Grafiken enthält. - Das Verzeichnis "po/", welches die Lokalisierungsdateien enthält - Die beiden Skripte "civ" und "ser" Es ist ziemlich einfach, Freeciv aus diesem Verzeichnis heraus zu spielen, ohne es zu installieren. Dabei können die Skripte "civ" und "ser" hilfreich sein, man benötigt diese jedoch nicht unbedingt. Weitere Informationen dazu befinden sich in der Datei README bzw. README.de (Allerdings kann man so die Lokalisierung nicht benutzten. Um in der jeweiligen Landessprache (also Deutsch) zu spielen, muß man Freeciv installieren.) 4. Installation: ================ Bei der Installation von Freeciv werden die in Abschnitt "Freeciv compilieren" erwähnten Dateien in Verzeichnisse wie /usr/local (Standard-Installationspfad), /usr/games, /usr/games/freeciv, /usr/local/freeciv oder ein anderes passendes Verzeichnis kopiert. Ein Aufruf von "make install" sollte das jedoch erledigen. Den Installationspfad kann man durch die Option "--prefix=DIR" (siehe: "Generierung des Makefiles") von configure an das eigene System anpassen. Sowohl der Client als auch der Server benötigen einige Dateien aus dem Verzeichnis "data". Freeciv sucht danach an folgenden Orten: das aktuelle Verzeichnis; das Unterverzeichnis "data" des aktuellen Verzeichnisses; das Verzeichnis ".freeciv" im Heimatverzeichnis des Benutzers; schließlich und letztlich in dem Verzeichnis, in das "make install" die Dateien kopiert hat. Zusätzlich kann durch die Umgebungsvariable FREECIV_PATH ein Verzeichnis oder eine durch Doppelpunkte getrennte Liste von Verzeichnissen angegeben werden. Beispiele: % setenv FREECIV_PATH "/usr/game/freeciv/data:./data" (für die csh, tcsh etc.) % FREECIV_PATH="/usr/game/freeciv/data:./data"; export FREECIV_PATH (für die sh, bash, ksh, zsh etc.) Wie oben schon erwähnt muß Freeciv installiert sein, um andere Sprachen als Englisch benutzen zu können. Näheres in README und README.de Wenn man den Xaw-Client benutzt und root-rechte besitzt, sollte man die Datei data/Freeciv in das app-defaults Verzeichnis kopieren. (Normalerweise in /usr/lib/X11/app-defaults) 5. NLS (Unterstützung der Landessprache) ======================================================= Freeciv benutzt "gettext", um die (alternativ zur Standardsprache, bei Freeciv ist das Englisch) lokale Sprache zu unterstützten. Die lokale Sprache wird über die Variable "LANG" gesetzt. Für ein deutsches Freeciv (oder auch andere Programme) sollte LANG auf "de_DE" gesetzt werden: % setenv LANG "de_DE" [ für die C-Shell oder die tcsh ] oder: % export LANG="de_DE" [ für die Bourne-Shell oder die bash ] Falls während des Durchlaufs von "configure" oder beim Compilieren Probleme mit "gettext" auftreten, können Sie folgende Work-Arounds ausprobieren: 1. Falls Sie nur englische Programmeldungen wünschen oder brauchen, können Sie NLS mittels "--disable-nls" beim Aufruf von "configure" abschalten: % ./configure --disable-nls % make 2. Falls sie ein eingedeutschtes Freeciv möchten, können sie es mit dem von Freeciv mitgelieferten "gettext" versuchen, mittels "--with-included-gettext" beim Aufruf von configure: % ./configure --with-included-gettext % make 3. Schließlich können sie noch versuchen, die neueste Version von GNU gettext zu installieren. Sie können diese Version hier downloaden: ftp://ftp.gnu.org/gnu/gettext/gettext-0.11.4.tar.gz 6. Unterstützung von Readline ============================= Freeciv unterstützt optional die Unterstützung der Readline-Library Mit der Unterstützung der Readline-Library wird es im Server möglich - die Backspace-Taste zu benutzen - sich mit den Cursortasten in der Eingabezeile hin- und herzubewegen - mit TAB Befehle und Befehlsargumente wie auf der Shell automatisch zu vervollständigen, z.B. wenn Tab gedrückt wird, dann vervollständigt der Server das Wort, falls es nur eine mögliche Auswahl gibt. - sich mit den Cursortasten durch eine History der eingegebenen Kommandos zu bewegen - usw. Das configure-skript prüft automatisch, ob readline installiert ist. Wenn ja, wird readline automatisch in den Server eincompiliert, wenn nicht, wird der Server ohne weitere Kommentare ohne readline compiliert. Sie können configure dazu "zwingen", readline zu benutzen, indem sie configure die Option "--with-readline" mitgeben: % ./configure --with-readline Bei einigen Linux-Distributionen (und evtl. auch andere Betriebssystemen) ist readline in der Version 4 nicht korrekt installiert, und zwar so, daß readline nicht konfiguriert ist, seine dynamischen Abhängigkeiten zu deklarieren. In diesem Fall versucht configure zu "raten", gegen welche zusätzlichen Libraries noch gelinkt werden soll und fügt diese hinzu. Das configure Skript wird eine Warnung ausgeben, wenn es zusätzliche Libraries benutzen musste, damit readline funktioniert. Diese Warnung sollte harmlos sein, sie ist nur als Erinnerung für die Leute gedacht, die für die Installation von readline verantwortlich sind, sprich Admins oder Paketersteller der Distributionen. 7. Reiniers Hinweise zur Installation unter Solaris =================================================== Von Hause aus kommt Solaris (Version 2.5 und höher) mit einem eigenen X (in /usr/openwin), einem eigenen make (in /usr/ccs/bin/make) und einem eigenen Compiler (separat zu erwerben), der, falls vorhanden, unter /opt/SUNWspro/bin liegt. Solaris stellt von sich aus keine libXpm zur Verfügung, die für den Xaw-Client benötigt wird; des weiteren auch nichts, was für die Imlib, Gdk und Gtk, den Vorraussetzungen für den GTK+-Client, benötigt wird. Mit ein wenig Geduld kann aber alles problemlos compiliert werden. Informationen zur Installation der libXpm unter Solaris gibts im nächsten Abschnitt. Viele Installationen von Solaris haben außerdem MIT X (normalerweise unter /usr/X11), GNU make, den gcc und XPM installiert (der Ort der Installation ist im Allgemeinen von der jeweiligen Systeminstallation abhängig). Beim normalen Aufruf von "./configure && make" könnte es passieren, daß "configure" die XPM-Library nicht findet oder verschiedene installierte Versionen durcheinander wirft. Man sollte sicherstellen, daß die Umgebungsvariablen, im Besonderen $PATH und $LD_LIBRARY_PATH, sowie die Optionen von ./configure sich nicht auf widersprüchliche Software beziehen. Dann sollte die Compilierung ohne Probleme verlaufen. Ein einfaches Rezept zum Compilieren mit Sun X, Sun make und Sun cc (unter der Annahme, daß die Xpm-Library in /pfad/zu/xpm installiert ist): % setenv PATH /opt/SUNWspro/bin:/usr/ccs/bin:/bin % unsetenv LD_LIBRARY_PATH % ./configure --with-xpm-prefix=/pfad/zu/xpm --disable-cvs-deps --with-included-gettext % make Die Option "--disable-cvs-deps" verhindert, daß ./configure Makefiles erstellt, die nur von GNU make verstanden werden. Anzeichen dafür, daß das passiert ist: make: Fatal error in reader: Makefile, line 214: = missing from replacement macro reference make: Fatal error: Command failed for target `all-recursive' Alternativ können $PATH und ./confiure auch so konfiguriert werden, daß nur GNU Tools benutzt werden. Des weiteren compiliert Freeciv auch unter MIT X und bestimmten Kombinationen aus GNU und Sun-Tools, wobei das genaue Vorgehen von der lokalen Installation abhängt. 8. Reinier's Installationshinweise zur libXpm unter Solaris: ============================================================= Als ich root auf meinem Solarissystem war, wollte ich trotzdem keine Third-party Software als root installieren. Das ist eine schlechte Angewohnheit. Unglücklicherweise möchte die Installationsroutine nach /usr/openwin installieren, welches aber root gehört. Aber es ist nich allzu schwer, dies zu umgehen. Vorraussetzungen: - /usr/ucb/install sollte in $PATH vor /usr/bin/install stehen, andernfalls wird 'make install' mit seltsamen Fehlermeldungen abbrechen. - Das Zielverzeichnis der Installation kann mit $DESTDIR angegeben werden; installiert wird aber nach $DESTDIR/$OPENWINDIR, d.h. das Unterverzeichnis $OPENWINDIR muß hinterher entfernt werden (ein Ändern von $OPENWINHOME funktioniert nicht) Der Ablauf: - Sourcen besorgen, untar-en, in das source-Verzeichnis wechseln und folgende Zeilen eingeben: % setenv MYXPMDEST /usr/local # Xpm-Zielverzeichnis % xmkmf; make Makefiles includes depend; make % setenv PATH /usr/local/bin:/usr/ucb:$PATH % make DESTDIR=$MYXPMDEST install % make DESTDIR=$MYXPMDEST install.man % cd $MYXPMDEST; mv ./$OPENWINHOME/* .; rm -rf ./$OPENWINHOME (Bei sh, bash, ksh, zsh, usw. anstatt den setenvs oben: % MYXPMDEST=/usr/local; export MYXPMDEST % PATH=/usr/local/bin:/usr/ucb:$PATH .) - Freeciv kann jetzt mit dem folgenden Aufruf von ./configure konfiguriert werden: % ./configure --with-xpm-prefix=$MYXPMDES Dies bewirkt, daß bei den Aufrufen von Compiler und Linker die Optionen -I/-L/-R entsprechend gesetzt werden. 9. Hinweise zu Mac OS X/Darwin: =============================== Apples Version des GCC benutzt sog. "precompiled headers" die das vararg-Macro (eine GCC-Erweiterung) nicht unterstützen. Dies führt dazu, das GCC während des Kompiliervorgangs von Freeciv scheitert, da der Compiler sonst (größtenteils) nicht vom "normalen" GCC zu unterscheiden ist. Anstatt des normalen % ./configure <...> sollte entweder für die Bourne Shell: $ CC="gcc -no-cpp-precomp" ./configure <...> oder für die C shell: % env CC="gcc -no-cpp-precomp" ./configure <...> benutzt werden, abhängig davon, ob die benutzte Shell eine Bourne- oder eine C-Shell Variante ist (Falls Zweifel bestehen, einfach beide Varianten ausprobieren, und sehen, welche funktioniert). <...> steht dabei für welche zusätzlichen Parameter sie auch immer an configure übergeben wollen. 10. Hinweise zu Debian GNU/Linux: ================================= Um Freeciv auf deinem Debian-System zu kompilieren benötigt man folgende Pakete: Allgemein: gcc libc6-dev libreadline4-dev zlib1g-dev xlib6g-dev GTK-Client: gdk-imlib-dev libglib1.2-dev libgtk1.2-dev imlib-progs xaw-Client: xaw3dg-dev libxpm4-dev Falls der xaw-Client kompiliert werden soll, sollte configure mit der Option --with-xaw3d aufgerufen werden, z.B.: % ./configure --with-xaw3d Falls ein Aufruf von aclocal notwendig werden sollte (wenn nicht bekannt ist, was aclocal macht, benötigt man es auch nicht), wird auch imlib-dev benötigt, um das Makro AM_PATH_GDK_IMLIB zu bekommen. Dies ist ein Fehler in Debian, das dieses Makro nicht in gdk-imlib-dev definiert ist und wird hoffentlich in zukünftigen Debian-Releases korrigiert. 11. Freeciv für win32 (nativ, d.h. ohne GTK+ und X-Server) kompilieren =============================================================================== Benötigt werden: - eine Unix-Umgebung mit gcc und den binutils für Windows (mingw32) - libz und libpng (unter ftp://ftp.freeciv.org/pub/freeciv/requirements) Diese funktionieren mit den Standard-Makefiles des gcc, allerdings müssen CC und RANLIB entsprechend gesetzt werden. Werden libpng/libz benutzt, die bei cygwin dabei sind, ist Ärger so gut wie garantiert. Kompilieren von zlib mit a) cygwin % make CC="gcc -mno-cygwin" b) mingw32 cross compiler % make CC=iX86-mingw32-gcc RANLIB=iX86-mingw32-ranlib Kompilieren von libpng mit a) cygwin % make -f scripts/makefile.gcc CC="gcc -mno-cygwin" b) mingw32 cross compiler % make -f scripts/makefile.gcc CC=iX86-mingw32-gcc \ RANLIB=iX86-mingw32-ranlib Autoconf und co: Beim Übersetzen von CVS-Abzügen muss in den folgenden Zeilen ./configure durch ./autogen.sh ersetzt werden. Wird autoconf2.52 verwendet, werden Probleme bei den Pfaden auftreten, insbesondere bei dem Verzeichnis der locales (Lokalisierungsdateien); daher ist autoconf2.13 die bevorzugte Version (Um die Verwendung von autoconf 2.13 zu erzwingen kann der Schalter --disable-autoconf2.52 des Scripts autogen.sh benutzt werden) Die Konfiguration der Sourcen: ------------------------------ 1. Mit den cygwin-Umgebung Benötigt wird mingw und das win32api-Paket. Aufruf: % export CC="gcc -mno-cygwin" % ./configure --with-included-gettext --prefix=. 2. Cross-Compilation von einem Unix X sollte durch die Zahl ersetzt werden, die gewählt wurde, als der Cross-Compiler konfiguriert wurde. % export CC=iX86-mingw32-gcc % export AR=iX86-mingw32-ar % export RANLIB=iX86-mingw32-ranlib % ./configure --host=iX86-mingw32 --build=$(./config.guess) \ > --with-included-gettext --enable-client=win32 --prefix=. Übersetzen und Installieren: ---------------------------- % make % make DESTDIR=/aboluter/installations/pfad/ bindir =./ install /absoluter/installations/pfad/ ist der Pfad, in den Freeciv installiert werden soll. Er muss absolut sein und mit einem "/" enden. Die ausführbaren Dateien (civserver, civlcient) sollten die Endung .exe besitzen. Es können jetzt noch die Debug-Informationen entfernt werden (strippen). Danach das Datenverzeichnis verschieben % mv share/freeciv data Der letzte Schritt ist das Konvertieren der Grakfiken in png. Dazu kann ein bevorzugtes Grafikprogramm oder eine Kombination aus ImageMagick oder pngquant verwendet werden. Es ist sehr wichtig, das das Ergnis kontrolliert wird; jede Datei sollte überprüft werden. Der Alpha-Kanel (Transparenz) verschwindet des Öfteren. Es gibt kein verlässliches Skript dafür.