============================
Die Installation von Freeciv
============================

Diese Datei beschreibt die Compilierung und Installation von Freeciv.
Stand: 25.09.02

0. Voraussetzungen:
===================

Freeciv hat einige (aber wenige) Ansprche an das System, auf dem
installiert werden soll. Freecivs Konfigurationsskript (./configure)
ist "intelligent" genug um festzustellen, ob ein System die Anforderungen
erfllt. 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 fr Windows
   (http://sourceware.cygnus.com/cygwin/). Des weiteren mssen 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 erfllen)

 - Ein ANSI-kompatibler C Compiler
   
   Freeciv wurde (grtenteils) in sehr portablem ANSI-C geschrieben. Sowohl
   32 als auch 64-Bit-Rechner werden untersttzt. Ein sog. "K&R" sowie ein 
   reiner C++ Compiler knnen nicht benutzt werden.
   
   Freeciv wird hauptschlich mit dem "gcc", dem C-Compiler des GNU-Projektes
   entwickelt. Release-Versionen knnen sowohl mit dem gcc als auch mit den
   meisten anderen Compilern bersetzt werden (z.B. dem Solaris C Compiler).
   Developer-Versionen sowie CVS-Abzge hingegen knnen nur mit dem "gcc"
   bersetzt werden, es sei denn, configure wird mit der Option
   "--disable-cvs-deps" option aufgerufen (siehe auch den nchsten 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 hauptschlich 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-Abzgen gilt das gleiche wie beim Compiler: "gmake" wird
   vorausgesetzt, solange man configure nicht mit "--disable-cvs-deps"
   aufruft (siehe auch den nchsten 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 zustzliche 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 bentigt, um die *.gmo-Dateien fr
   die bersetzungen zu erzeugen, die im CVS-Baum nicht enthalten sind.

 - GNU autoconf in der Version >= 2.13

   Dies wird bentigt, um das Konfigurationsskipt "configure" aus 
   "configure.in" zu erzeugen.

 - GNU automake in der Version >= 1.4

   Automake wird bentigt, um die verschiedenen  "Makefile.in's aus den
   "Makefile.am"'s zu erzeugen.

1. Voraussetzungen der Clients:
===============================

Clients fr Freeciv gibt es in zwei Versionen: einen fr die "Athena
Widget Library" ("Xaw") und einen fr Gtk+ (das Widget Set von/fr 
"The Gimp"). Beide Clients haben unterschiedliche Anforderungen, auf
die weiter unten eingegangen wird. Das System sollte mindestens eine
der beiden Listen erfllen (es sei denn, man will auf dem Rechner nur
einen Server fr ein Freeciv-Spiel bereitstellen).

Auerdem existiert ein nativer Client fr den Amiga.

ACHTUNG: Einige Distributionen/Systeme besitzen getrennte Pakete fr
die eigentlichen Libraries und die zur Programmentwicklung ntigen
Dateien. D.h., da man auf diesen Distributionen die entsprechenden
"development"-Pakete installieren mu (gilt z.B. fr Debian GNU/Linux,
RedHat Linux und SuSE Linux).

1a. Anforderungen des Xaw-Clients:
==================================

 - X-Window
 
   Der Xaw-Client von Freeciv ist ein Programm fr X-Window, also
   bentigt man irgend etwas, um X-Window Programme ablaufen zu lassen
   (Auch hier gilt: die meisten Unixe knnen 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") gehrt normalerweise zum Lieferumfang von
   X-Window, allerdings ist es auf einigen Plattformen (z.B. HP-UX 10) 
   nur mit eingeschrnkter Funktionalitt zu finden.
   
   Um den "Xaw"-Client zu erzeugen, ruft man configure mit 
   "--enable-client=xaw" auf. Im nchsten 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 mglich sein, Freeciv fr
   diese Bibliotheken wie fr Xaw3d zu verndern. Eine andere
   Mglichkeit wre die Verwendung von "xaw_wrappers"; Eine Anleitung dafr
   wrde aber den Rahmen dieser Datei bei weitem sprengen.
   
 - Die "Xpm" Library
 
   Diese Library ist grundlegend fr den Umgang mit Icons und
   Bitmaps. Sie ist weit verbreitet und standardmig auf den meisten
   modernen Unix-Rechnern vorhanden. Jedoch kann es sein, da sie auf
   lteren Unixen nicht vorhanden ist.
   
   Es knnte ntig 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 fr Gdk und Gtk+, wie z.B. 
   hash-Tabellen, verkettete Listen usw. zur Verfgung.
   
   Freeciv bentigt 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 fr The Gimp entworfen und entwickelt. Seitdem hat es
   sich Popularitt als ein einfach zu programmierendes, freies
   Toolkit erworben. Zu Gtk+ gehrt auch Gdk, das grundlegende
   Zeichen-Funktionen, Fenster, Clipping usw. zur Verfgung stellt.
   
   Freeciv bentigt 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 fr den Umgang mit Bitmaps. Sie wird
   auerdem beim GNOME Projekt benutzt.
   
   Freeciv bentigt 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 bentigt Imlib fr bestimmte Features (z.B. fr
   die Untersttzung von PNG-Grafiken) weitere Libraries - diese sind
   fr Freeciv allerdings nicht ntig).
   
Compiliert man selbst, sollte (oder mu) folgende Reihenfolge
eingehalten werden: Glib, Gtk+, Imlib

2. Generierung des Makefiles:
=============================

2a. Generierung fr CVS-Versionen:
==================================

Dieser Schritt wird nur bei CVS-Versionen bentigt:

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 knnen, findet sich im nchsten Abschnitt.

2b. Generierung fr 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.

Dafr 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 bentigten
zustzlichen 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-Abzgen 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 berprfung der Abhngigkeiten der
Quelldateien untereinander auer Kraft gesetzt. Wenn danach eine
Headerdatei (*.h) verndert wurde, sollte vor dem nchsten Aufruf
von "make" auch noch ein "make clean" durchgefhrt werden, um sicher
zu gehen, da alle Dateien korrekt bersetzt werden.
   
Bei Stable-Release-Versionen hat die Option "--disable-cvs-deps"
keine Wirkung.
   
Standardmig 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  [fr die Bourne shell oder die Bash]
 
oder

 % setenv CFLAGS "-O -g -pipe"
 % ./configure                       [fr die C-Shell oder tcsh]

Falls man einen "core dump" verfolgen mchte, sollte man "-g" in seine
CFLAGS mit aufnehmen.

Bei der (spteren) Installation von Freeciv werden die Dateien nach
/usr/local installiert. Sollten Sie einen anderen Ort als /usr/local
vorziehen, so knnen sie diesen mit bergeben:
  
 % ./configure --prefix=/opt/freeciv

Sollte configure nicht durchlaufen und abbrechen, sollten folgende Schritte
durchgefhrt werden:

  - Erfllt 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)

  - Fr Probleme, die mit "gettext" zusammenhngen, gibt es im
    Abschnitt ber "NLS" ("Untersttzung der Landessprache", weiter unten)
    evtl. Work-Arounds.
    
  - Fehler den Entwicklern mitteilen, damit diese zum nchsten Release
    beseitigt werden knnen (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 wre 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
untersttzt, und seit Version 1.8.1 gehrt 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"
zusammenhngen, lesen Sie bitte den Abschnitt ber NLS ("Untersttzung
der Landessprache", weiter unten) fr evtl. Work-Arounds

Nach dem Compiliervorgang erhlt man die folgenden wichtigen
"Ergebnisse":
  - Die zwei Programme "client/civclient" und "server/civserver".
  - Das Verzeichnis "data/", welches die Szenarien und Grafiken
    enthlt.
  - Das Verzeichnis "po/", welches die Lokalisierungsdateien enthlt
  - Die beiden Skripte "civ" und "ser"
  
Es ist ziemlich einfach, Freeciv aus diesem Verzeichnis heraus zu
spielen, ohne es zu installieren. Dabei knnen die Skripte "civ" und
"ser" hilfreich sein, man bentigt 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" erwhnten 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 bentigen 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;
schlielich und letztlich in dem Verzeichnis, in das "make install" die
Dateien kopiert hat. Zustzlich 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"
 (fr die csh, tcsh etc.)
    
 % FREECIV_PATH="/usr/game/freeciv/data:./data"; export FREECIV_PATH
 (fr die sh, bash, ksh, zsh etc.)

Wie oben schon erwhnt mu Freeciv installiert sein, um andere Sprachen
als Englisch benutzen zu knnen. Nheres 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 (Untersttzung der Landessprache)
=======================================================

Freeciv benutzt "gettext", um die (alternativ zur Standardsprache,
bei Freeciv ist das Englisch) lokale Sprache zu untersttzten. Die
lokale Sprache wird ber die Variable "LANG" gesetzt. Fr ein
deutsches Freeciv (oder auch andere Programme) sollte LANG auf
"de_DE" gesetzt werden:

 % setenv LANG "de_DE"    [ fr die C-Shell oder die tcsh ]

oder:

 % export LANG="de_DE"    [ fr die Bourne-Shell oder die bash ]

Falls whrend des Durchlaufs von "configure" oder beim Compilieren
Probleme mit "gettext" auftreten, knnen Sie folgende Work-Arounds
ausprobieren:

1. Falls Sie nur englische Programmeldungen wnschen oder brauchen,
   knnen Sie NLS mittels "--disable-nls" beim Aufruf von "configure"
   abschalten:

     % ./configure --disable-nls
     % make

2. Falls sie ein eingedeutschtes Freeciv mchten, knnen sie es mit dem
   von Freeciv mitgelieferten "gettext" versuchen, mittels
   "--with-included-gettext" beim Aufruf von configure:

     % ./configure --with-included-gettext
     % make

3. Schlielich knnen sie noch versuchen, die neueste Version von GNU
   gettext zu installieren. Sie knnen diese Version hier downloaden:

     ftp://ftp.gnu.org/gnu/gettext/gettext-0.11.4.tar.gz

6. Untersttzung von Readline
=============================

Freeciv untersttzt optional die Untersttzung der Readline-Library

Mit der Untersttzung der Readline-Library wird es im Server mglich
 - 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
   vervollstndigen, z.B. wenn Tab gedrckt wird, dann vervollstndigt der
   Server das Wort, falls es nur eine mgliche Auswahl gibt.
 - sich mit den Cursortasten durch eine History der eingegebenen Kommandos zu
   bewegen
 - usw.

Das configure-skript prft 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 knnen 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 Abhngigkeiten zu
deklarieren. In diesem Fall versucht configure zu "raten", gegen welche
zustzlichen Libraries noch gelinkt werden soll und fgt diese hinzu.
Das configure Skript wird eine Warnung ausgeben, wenn es zustzliche Libraries
benutzen musste, damit readline funktioniert. Diese Warnung sollte harmlos sein,
sie ist nur als Erinnerung fr die Leute gedacht, die fr 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 hher) 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 Verfgung, die fr den
Xaw-Client bentigt wird; des weiteren auch nichts, was fr die Imlib,
Gdk und Gtk, den Vorraussetzungen fr den GTK+-Client, bentigt wird.
Mit ein wenig Geduld kann aber alles problemlos compiliert werden.

Informationen zur Installation der libXpm unter Solaris gibts im
nchsten Abschnitt.

Viele Installationen von Solaris haben auerdem MIT X (normalerweise
unter /usr/X11), GNU make, den gcc und XPM installiert (der Ort der
Installation ist im Allgemeinen von der jeweiligen Systeminstallation
abhngig). Beim normalen Aufruf von "./configure && make" knnte 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 widersprchliche 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 dafr, 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 knnen $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 abhngt.

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.

Unglcklicherweise mchte die Installationsroutine nach /usr/openwin
installieren, welches aber root gehrt. 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 untersttzen. Dies fhrt
dazu, das GCC whrend des Kompiliervorgangs von Freeciv scheitert,
da der Compiler sonst (grtenteils) nicht vom "normalen" GCC zu
unterscheiden ist. Anstatt des normalen

 % ./configure <...>
 
sollte entweder

 fr die Bourne Shell:
   $ CC="gcc -no-cpp-precomp" ./configure <...>

oder

 fr die C shell:
   % env CC="gcc -no-cpp-precomp" ./configure <...>

benutzt werden, abhngig 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 fr welche zustzlichen Parameter sie auch immer
an configure bergeben wollen.

10. Hinweise zu Debian GNU/Linux:
=================================

Um Freeciv auf deinem Debian-System zu kompilieren bentigt 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, bentigt man es auch nicht), wird auch imlib-dev bentigt,
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
zuknftigen Debian-Releases korrigiert.

11. Freeciv fr win32 (nativ, d.h. ohne GTK+ und X-Server) kompilieren
===============================================================================

Bentigt werden:
	- eine Unix-Umgebung mit gcc und den binutils fr Windows (mingw32)
	- libz und libpng (unter ftp://ftp.freeciv.org/pub/freeciv/requirements)

Diese funktionieren mit den Standard-Makefiles des gcc, allerdings mssen 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-Abzgen 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

Bentigt 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 gewhlt 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 ausfhrbaren Dateien (civserver, civlcient) sollten die Endung .exe
besitzen. Es knnen 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 berprft werden. Der Alpha-Kanel (Transparenz) verschwindet des
fteren. Es gibt kein verlssliches Skript dafr.
