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-wsrch.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