Serie: DOSBox unter Windows kompilieren 4/10

Diese Artikelserie zeigt auf, wie man unter Windows eine Entwicklungsumgebung mit Open Source basierten Programmen erstelllt und darin Programme und deren Abhängigkeiten kompiliert. Die daraus entstehenden Dateien können unter Windows wie normale Programme verwendet werden.

In den vorangegangenen Artikeln wurde die Entwicklungsumgebung erstellt. In diesem Teil wird zum ersten mal etwas in dieser Umgebung kompiliert. Um genau zu sein, handelt es sich dabei um die Autotools. Prinzipiell sind diese Programme in der MinGW/MSYS Umgebung bereits vorhanden. Jedoch handelt es sich um ältere Versionen, welche – gerade bei neueren Paketen – immer mal wieder zu Problemen führen können. Aus diesem Grund werden die aktuellsten Autotools aus dem Quelltext erstellt.

Die Autotools sind mehrere Programme, welche vor dem eigentlichen kompilieren diverse Informationen des Systems sammeln. Dadurch ist schon vor dem kompilieren klar, welche Header Dateien oder welche Libraries verwendet werden sollen. Auch können die Autotools ermitteln ob benötigte Abhängigkeiten vorhanden sind.

Anstatt wie bisher die herunter zu ladenden Dateien im Basis-Installationsverzeichnis (D:\Entwicklung\MinGW-MSYS) zu platzieren, sollten diese ab sofort im Home-Verzeichnis der MinGW/MSYS Umgebung gespeichert werden. Die hat zwei Gründe:

  1. Man befindet sich nach dem ausführen von msys.bat direkt in diesem Verzeichnis.
  2. Das Basis-Installationsverzeichnis befindet sich prinzipiell ausserhalb der MinGW/MSYS Umgebung.

Unter Windows befindet sich dieses Verzeichnis im Pfad (D:\Entwicklung\MinGW-MSYS\MSYS\home\<ANMELDENAME>\). In dieses Verzeichnis lädt man nun alle Pakete der nachfolgenden Tabelle herunter:

Paket Beschreibung Link
autoconf Autoconf ist ein erweiterbares Paket von M4 Makros welche Shell Scripts erstellen um automatisch Quelltextpakete zu konfigurieren. autoconf-2.63
automake Automake erstellt automatisiert Makefile.in Dateien. automake-1.10.2
libtool Libtool bietet Unterstützung bei der Verwendung von dynamischen Bibliotheken auf unterschiedlichen Systemplattformen. libtool-2.2.6a

Die Pakete werden entpackt und pro Paket wird ein Build Verzeichnis erstellt in welchem die Pakete kompiliert werden. Hierdurch wird im Original Sourcenpfad nichts verändert.

for a in autoconf- automake- libtool-;do tar xvzf ${a}*;mkdir ${a}build;done
cd autoconf-build
../autoconf-2.63/configure --prefix=/mingw && make && make install
cd ../automake-build
../automake-1.10.2/configure --prefix=/mingw && csmake && csmake install
cd ../libtool-build
../libtool-2.2.6/configure --prefix=/mingw && make && make install
cd ..

Auf der MinGW Webseite wird empfohlen, selbstkompilierte Bibliotheken in /mingw zu installieren. Damit zukünftig erstellte Pakete wissen, dass die Bibliotheken hier zu suchen sind, müssen noch einige Einstellungen an der Entwicklungsumgebung vorgenommen werden.

sed -e 's#export HOME LOGNAME MSYSTEM HISTFILE#PKG_CONFIG_PATH="/mingw/lib/pkgconfig"\
CFLAGS="-pipe -O2 -mms-bitfields -march=i686"\
export HOME LOGNAME MSYSTEM HISTFILE PKG_CONFIG_PATH CFLAGS#g' /etc/profile>/tmp/profile
cat /tmp/profile > /etc/profile
rm /tmp/profile

Wenn man nun die MSYS Umgebung mittels exit verlässt und danach nochmals die msys.bat aufruft, ist alles so eingestellt, dass zukünftige Kompilationen die Bibliotheken ebenfalls in der /mingw Struktur suchen.

Im fünften Teil dieser Artikelserie wird die erste Abhängigkeit von DOSBox kompiliert.