Attention: This paper is not up-to-date.
Russian hackers: good luck, but you'll likely waste a lot of time here...
allegro OpenSource für Einsteiger
2012-08-01
Einstieg in die Programmierung mit den Quellen
Nachdem nun alle Quellen freigelegt sind, soll mit diesem Beitrag ein schneller
Weg gezeigt werden, in die Beschäftigung damit einzusteigen. Und zwar zuerst für
die Windows-Plattform. Ohne irgendwelche Kenntnisse vorauszusetzen,
beschreiben wir hier die ersten Schritte, damit sich jeder einen Eindruck
verschaffen kann, ob nun sogleich die Absicht zu näherer Beschäftigung damit
besteht oder nicht. Ganz konkret und zum sofortigen Ausprobieren wird gezeigt,
wie man das Programm srch.exe erstellt und wo man am leichtesten eigene
Erweiterungen und Modifikationen einbringen kann. Ganz analog geht es dann auch
mit den anderen Programmen.
Die Quelldateien liegen in Repositorien, das sind kontrollierte Dateienlagerstätten.
Die Kontrolle erledigt ein Versionsverwaltungssystem namens Subversion, kurz SVN.
Solche Software wird eingesetzt, wenn mehrere Entwickler gemeinsam eine Sammlung von
Dateien (gleich welcher Art) bearbeiten und weiterentwickeln wollen und dabei nicht
den Überblick verlieren im Dschungel der Versionen und Varianten und Veränderungen.
0. Besichtigen kann man die Quellen in jedem Browser ohne weitere Voraussetzungen:
(Aber nur besichtigen, nicht herunterladen; Kenner gehen besser gleich weiter zu 1.)
https://svn.allegro-c.de/svn
Beim ersten Zugriff sind einige Fragen zu
beantworten, weil es eine "gesicherte Verbindung" ist:
Es erscheint ein Fenster, das so beginnt:
Dieser Verbindung wird nicht vertraut...
Klicken sie ganz unten auf "Ich kenne das Risiko", danach auf
"Ausnahmen hinzufügen"
"Zertifikat herunterladen"
"Sicherheits-Ausnahmeregel bestätigen"
Username / Password ... eingeben
Es erscheint eine Liste von Ordnern. Jede davon enthält ein Repositorium, d.i. eine
mit SVN verwaltete Sammlung von Dateien.
Klicken Sie auf atools. Das sind die Dateien, die zur Erstellung der vier
"Quadriga"-Programme gebraucht werden: srch, import, index, qrix. Ferner weitere
sechs Hilfsprogramme des Gesamtpakets (dazu siehe Datei README).
Jede davon kann man anklicken und sich dann anschauen. Davon hat man nicht viel
und auf Anhieb versteht man sicher so gut wie nichts, es sei denn, man hat
Vorkenntnisse in C oder in Perl, das weitgehend ähnlich aussieht.
Wenn man nun damit arbeiten möchte, braucht man zwei Voraussetzungen:
* Den Subversion-Client Tortoise für den Zugang zu den Quellen, also zum
kontrollierten Herunterladen ("Checkout") der aktuellen Quelldateien.
Der Sinn ist, daß das SVN-System dann jederzeit automatisch merken kann,
welche Dateien man in der eigenen Kopie verändert hat und auch, welche von
anderen in der Zwischenzeit auf dem Server (im Repositorium) verändert wurden.
Kenner installieren sich auch den SVN-Befehlszeilen-Client (s. Anhang)
* Das Compilersystem VisualStudio 2010 von Microsoft zum Übersetzen der C-Programme
und Erstellen der ausführbaren Programme, z.B. srch.exe, acon.exe oder a99.exe.
Für die Verbindung zwischen beiden gibt es jeweils noch "Projektdateien", die
dem Compilersystem sagen, was es zu tun hat, um ein bestimmtes ausführbares
Programm zu erstellen. Diese Projektdateien liegen von den Quellen getrennt und
sind ebenfalls mit Tortoise zugänglich. Für UNIX/Linux braucht man andere
Projektdateien (sog. "Makefiles"), die ebenfalls erhältlich sind.
Aber zunächst zu den zwei Komponenten und wie man sie installiert:
1. SVN-Client "Tortoise"
Tip: Eine Google-Suche mit "Subversion tutorial deutsch" findet viele einfache Einführungen,
Ein deutsches Lehrbuch: http://svnbook.red-bean.com (HTML und PDF, 384 S., Anh.A: Schnellstart)
(Nur als Hinweis, Lektüre hier nicht vorausgesetzt.)
Download des SVN-Client "Tortoise" für Windows:
http://tortoisesvn.net/downloads.html
ACHTUNG, es gibt zwei Versionen:
"for 32-bit OS" und "for 64-bit OS"
(Auch die falsche läßt sich ohne Protest installieren, um dann aber - gleichfalls
ohne Protest - nichts zu tun.)
Nach dem Herunterladen, Installieren und anschließendem Neustart des Systems ist
Tortoise aber kein eigenständiges Programm, sondern integriert in den Windows-Explorer!
Unter 3. sehen wir dann, was man davon hat.
2. Visual Studio 2010 Express : Integrierte Entwicklungsumgebung (IDE) für Windows-Programme
Das Wichtigste darin ist der Compiler für C und C++
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
Button "INSTALL NOW _ ENGLISH" (wahlweise, weiter unten, auch Deutsch)
Achtung: Das Paket ist sehr groß, sowohl Download wie Installation brauchen
einige Zeit
Hinweis: für Programme mit graphischer Oberfläche, wie a99, braucht man die Professional-
Version, die es nicht umsonst gibt.
Damit sind die Voraussetzungen geschaffen, die Arbeit mit den Quellen kann beginnen.
Die Quadriga kompilieren
Zuerst wollen wir uns die C-Quellen der "Quadriga"-Programme mit SVN anschauen und
dann auch herunterladen.
3. Repo nur anschauen
Windows-Explorer starten, dann:
Computer / Lokaler Datenträger (C: oder was immer)
Rechte Maustaste auf irgendeinem Ordner, egal wo, und man sieht zwei neue Menüzeilen:
1. SVN Checkout Dazu kommen wir noch, zuerst wählen wir den folgenden:
2. Tortoise SVN mit mehreren Unterpunkten, wichtig ist zunächst nur
Repo-Browser
Es erscheint eine Eingabefeld, folgendes eingeben:
https://svn.allegro-c.de/svn/atools
Dann die Frage nach "username and password" beantworten mit
ac12 und dem bekannten Passwort
Nach angemessener Zeit kommt ein Fenster mit dieser Liste:
branches
tags
trunk
Das sind drei Repo-Ordner.
Die Namen sind bloße Konvention. Nur unter "trunk" liegt zunächst einiges,
und zwar sind dort laut der Konvention die aktuellen Quellen:
acore.c
adef.h
...
Rechts sieht man Datum und Uhrzeit der letzten Änderung.
Hat man in seinem System die Dateitypen .c und .h verknüpft, z.B. mit
VisualC++, dann geht das Fenster des betr. Editors auf und zeigt die Datei.
Mit dem Repo-Browser kann man die Dateien und Ordner aber nur
besichtigen. Wie kann man sie insgesamt herunterladen? Das geht anders:
4. Arbeitskopie herunterladen (sog. "checkout")
Rechtsklick im Explorer und "SVN Checkout" wählen
Es kommt ein Dialogfenster, in dem man in das erste Eingabefeld
"URL of Repository" dieses eingibt:
https://svn.allegro-c.de/svn/atools/trunk
In das Feld
"Checkout directory"
gibt man ein: c:\quellen\atools
alles andere läßt man unverändert und klickt OK
Nochmals wird Username und Password abgefragt
Man sieht die Liste der Dateien, die nun kopiert werden nach c:\quellen\atools
(Der Ordner wird angelegt, wenn er nicht existiert.)
Im Explorer ist nun ein grüner Haken neben dem neuen Ordner atools .
Der deutet an, daß dieses Verzeichnis unter Kontrolle des SVN-Systems steht und
sein Inhalt momentan aktuell ist! Entstanden ist aber auch ein im Explorer nicht
sichtbarer Ordner namens .svn, von dem man besser die Finger läßt. Daher kommt
der grüne Haken. Er wandelt sich in ein rotes Kreuz, sobald man Dateien verändert.
(Entfernt man den Ordner, ist die Versionskontrolle weg, aber die
Dateien funktionieren noch, was das Kompilieren angeht.)
Rechte Maustaste auf diesem Namen zeigt dann zwei neue Punkte im Menü:
SVN Update
SVN Commit...
(Eine Weile später kann man mit "SVN Update" immer mal prüfen, ob eine oder
mehrere Dateien verändert worden sind; sie werden dann sofort herabgeladen.
Hat man selber an einer betroffenen Datei was geändert, kommt eine
Konfliktmeldung - das gehört zu Sinn und Zweck einer Versionskontrolle.)
Unter c:\quellen\atools haben wir nun die Quellen für gleich fünf Programme!
Für jedes davon gibt es eine "Projektdatei". Die braucht VisualStudio, um zu
erfahren, wie die betr. Programme aus den Quellen zu erzeugen sind.
Nehmen wir uns als Beispiel das Programm srch vor.
Die eigentlichen Quellen sind, wie gesagt, in c:\quellen\atools, und u.a. ist srch.c
dabei, das Kernmodul für srch.exe. Im Text README steht, was für Aufgaben die
anderen Dateien haben. Ruhig mal reinschauen!
5. Projektdateien
Um das ausführbare Programm srch.exe selber zu erstellen, brauchen wir noch die
Projektdatei. In Wahrheit sind es mehrere Dateien, zusammengefaßt in einem
eigenen Repositorium srch-w. Das -w steht für Windows. Es gibt daneben srch-u
mit den Projektdateien (die vollkommen anders aussehen) für Unix/Linux.
Besorgen wir uns also den Inhalt von srch-w (siehe 3.) und packen die Dateien nach
c:\quellen\srch-w. [Richtig üblich ist diese Art und Weise nicht, aber
vollkommen legitim, für unsere Zwecke günstig und vor allem übersichtlich!]
In c:\quellen\srch-w findet sich die Datei srch.sln. Die ist als Startdatei
für VisualStudio gedacht. Außerdem ist da der Unterordner project, in dem
weitere Dateien für VisualStudio liegen, um die wir uns aber nicht kümmern
müssen.
Doppelklick auf srch.sln sollte genügen, VisualStudio zu starten und diese Datei
öffnen zu lassen. Wenn unten links die Meldung "Bereit" kommt, braucht man
nur noch F7 zu drücken und die Kompilierung wird ausgeführt. Lassen Sie sich
nicht von den vielen Warnungen irritieren, die dann durchlaufen. Diese sind
beim früheren Compiler VC6 nicht aufgetreten, aber VC10 ist erheblich
empfindlicher. Nach und nach müssen wir die Ursachen beseitigen, das sind
aber Formalitäten, die das Funktionieren der Programme nicht hindern. (Statt
"Warnung" sollte da besser "Hinweis" stehen, das können wir aber nicht ändern.)
Ergebnis ist: Neuer Unterordner Debug unter srch-w, darin srch.exe, das ist
das ausführbare Programm. Nach c:\allegro verschieben (oder wo Sie Ihre Programme
haben) und ausprobieren! z.B. mit dem Befehl
srch -ddemo2\*.ald -sromeo
Empfehlung: Im VisualStudio-Fenster oben links "Release" statt "Debug"
einstellen, dann wird srch.exe kleiner und schneller. "Debug" ist zum
Testen und Fehlersuchen gedacht, damit müßte man sich erst einmal auskennen.
Außerdem automatisch neu entstanden: (alles ohne Gefahr löschbar)
c:\quellen\srch-w : srch.sdf und srch.suo
\project\release : Zwischendateien des Compilers (Typ .obj)
Dieselbe Struktur gibt es auch für die anderen drei Programme, also
c:\quellen\import-w usw.
Alle 4 Projekte greifen auf die C-Dateien unter atools zu, jedoch auf
eine jeweils eigene Auswahl. Die C-Quellen aller 10 "Quadriga"-Programme sind also an einer Stelle konzentriert.
Und wo beginnt man am besten mit dem eigenen Programmieren?
Es kommt natürlich drauf an, was man sich zum Ziel setzt. Im Verzeichnis atools findet man
eine Datei README, in der steht eine kommentierte Liste der Quelldateien, gedacht als
Orientierung: Welche Funktionen findet man in welcher Datei.
Nur mal als Beispiel: Man will das Programm srch ein wenig aufbohren und mit eigenen Funktionen
versehen, um gefundene Sätze noch nach eigenen Vorstellungen zu untersuchen oder zu
bearbeiten, bevor sie in die Ausgabedatei geschrieben werden.
Dafür gibt es ein "Schnittstellenmodul" in der Quelldatei srchs.c. Darin steht ein
Kommentar, der die Möglichkeiten erklärt. Man braucht dann vom eigentlichen Ablauf des
Programms ansonsten nichts zu wissen, aber Programmierkenntnisse in C sind an dieser
Stelle denn doch nötig.
Entsprechendes findet man beim Programm import, d.h. ein Schnittstellenmodul imports.c
Anhang
Tip: Wer gerne mal befehlsorientiert arbeitet statt immer mit Explorer, kann sich einen
svn-Kommando-Client hier besorgen:
http://subversion.apache.org/packages.html#windows
oder
http://sourceforge.net/projects/win32svn/?source=directory
und dann Befehle wie svn update etc. auch im "DOS-Fenster" eingeben. (Siehe dazu das oben
unter 1. zitierte Lehrbuch.)
Nach dem Download die .msi-Datei ausführen lassen.
Es erfolgt dann eine normale Windows-Installation unter "Programme\Subversion" oder "Program files\Subversion"
Im Unterordner "bin" liegt dann dort das Programm svn.exe. Das ist die Grundlage für das befehlsorientierte Arbeiten mit SVN.
Um es nutzen zu können, gibt man im DOS-Fenster ein:
set path=path;"\program files\subversion\bin"
Das gilt dann aber nur für die aktuelle Sitzung!
Feste Einstellung, siehe z.B.
http://www.java.com/de/download/help/path.xml
an die Systemvariable "Path" anhängen:
;c:\Program Files\Subversion\bin
Unter Win'7:
System / Computer / Systemeigenschaften / Erweiterte Systemeinstellungen / Umgebungsvariablen
Systemvariablen / Path ,
dann "Bearbeiten" und ;c:\Program Files\Subversion\bin anhängen
2012-07-09 / 2012-08-01