|
Compilieren mit den ID Compilern (win32)
von TTK-Bandit
Heyho Coderz..
In diesem Tutor werde ich euch zeigen, wie ihr mit den mitgelieferten Compilern
und den Batch-Files euren Src compilieren könnt. Ihr werdet lernen wie die .bat Files und die .q3asm Files aufgebaut sind und wie man z.B. neue Dateien
zum Source hinzufügt.
1. Vorbereitungen
Besorgt euch ein Sourcecode packet, welches die batch files und die ID Compiler bereits enthält.
Ich empfehle euch hierzu den debuggten source von meiner Page Q3Coderz zu saugen. Natürlich
könnt ihr euch auch den original Source von ID saugen.. allerdings müsst ihr dann ein wenig umdenken.
Wenn ihr ihn habt, entpackt ihn so, dass der Source Ordner direkt im Quake3 Ordner ist.
Wir müssen Windows noch sagen, in welchem Pfad es die zum compilieren notwendigen Dateien (also lcc.exe, q3asm.exe u.s.w.) findet. (beim Q3Coderz source ist
er im Source\lcc\bin ordner)
Das ist jetzt Betriebssystemabhängig:
WinXP/2000/NT user:
-Rechte Maustaste auf Arbeitsplatz->Eigenschaften, die Karte 'Erweitert'
auswählen und auf den Button 'Systemvariablen' klicken.
-Die PATH Variable suchen, an diese ein Semikolon und den Pfad zu eurer
lcc.exe anfügen (z.B. ;c:\Quake3\Source\lcc\bin).
Achtung! nicht den alten Pfad überschreiben, sondern den neuen Pfad
anhängen.
-Mit OK bestätigen.
Win9x/ME user:
-c:\autoexec.bat mit einem Text-Editor öffnen und diese Zeile ganz unten
dranhängen:
SET PATH=%PATH%;c:\Quake3\Source\lcc\bin
-den Pfad c:\Quake3\Source\lcc\bin noch so anpassen, dass er
auf das Verzeichnis eurer lcc.exe zeigt.
-speichern.
Das war's auch schon mit den Vorbereitungen. Jetzt solltet ihr euren
PC neustarten, damit die Variablen gesetzt werden können und dann
kanns auch schon mit dem Eingemachten beginnen :)
2. Eine neue Mod machen.
1. Regel: ändert niemals die Quelldateien aus dem Quake3\Source Ordner.
Diesen werden wir nähmlich als Quelle für neue Projekte nehmen. Und
so gehts:
Erstellt (falls ihr noch keins habt) euer mod-Verzeichnis. Achtet darauf,
dass es nicht den gleichen namen nutzt wie andere mods. In das Verzeichnis
kopiert ihr den gesamten Ordner Quake3\Source\code und wenn ihr dann
noch das Team Arena Menüsystem nutzen wollt, auch noch den Ordner Quake3\Source\ui.
Hier ein Schema zum Verständnis des Zusammenspiels der Batches
mit lcc.exe und q3asm.exe (ausgehend vom Pfad 'modname\code'):
Dieses Schema gilt nur für den Q3Coderz Source, der id Source ist etwas anders aufgebaut.
<name> sind Argumente, die den aufgerufenen Dateien übergeben
werden.
compile.bat <TeamArena>
|- cgame\cgame.bat <TeamArena>
| |- cgame\vm\compile.bat <dateiname>
| | |- lcc.exe <optionen> <dateiname> // assemblieren
| | | // bei Fehler abbrechen
| | | // Schleife Ende
| | |- q3asm.exe <.q3asm-dateiname> // compilieren
| | | // (die .q3asm enthält die Namen aller .asm Dateien des Moduls)
| | |- del cgame\vm\*.asm // um Platz zu sparen und Ordnung zu halten
|- .. //diese Prozedur wird für die restlichen Module wiederholt
| |- ..
q3_ui\q3_ui.bat und ui\ui.bat werden nicht mit dem argument TA aufgerufen, da q3_ui für
Q3A und ui für Q3TA ist.
Die compile.bat hat noch einige andere funktionen, die man mit einigen argumenten nutzen kann.
Wenn ihr mehr darüber wissen wollt, lest euch die Readme mal kurz durch.
3. Aufbau von den Batch Files.
Ich werde hier nicht sehr ausführlich in die Batch Programmierung eingehen, sondern nur
die hier genutzten Befehle erklären. Wer mehr wissen möchte, soll sich an Google halten ;)
cgame\cgame.bat:
@echo off // damit man nur das Wichtigste in der Ausgabe sieht.
cd vm // wechselt in das Verzeichnis vm
if "%1"=="TA" goto TA // wenn das 1. Argument TA ist, springe zum TeamArena Teil
call Compile ../game/bg_misc.c // erzeugt aus der Datei eine bg_misc.asm in cgame\vm
@if errorlevel 1 goto quit // wenn dabei ein Fehler aufgetreten ist, bricht das Compilen ab.
q3asm -f ../cgame // startet q3asm.exe mit der Datei cgame\cgame.q3asm
goto quit // gehe zu :quit
del *.asm // löscht alle .asm dateien, um Platz zu sparen und Ordnung zu halten.
cd .. // wechselt zum übergeordneten Verzeichnis.
cgame\vm\compile.bat:
echo compiling %1: //gibt aus, welche Datei gerade übersetzt wird.
lcc -DQ3_VM -DCGAME -S -Wf-target=bytecode -Wf-g -I..\..\cgame -I..\..\game -I..\..\q3_ui ..\%1
/*
-D hat die selbe Bedeutung wie #define, folglich ist:
-DCGAME == #define CGAME
-S gibt den Befehl die Datei in Assembler Sprache zu compilen.
-Wf-target=bytecode -Wf-g sind weitere Befehle für den Compiler
-I heist soviel wie suche nach .h Dateien in diesem Pfad
das letzte argument ..\%1 is der dateiname.
*/
4. Aufbau von den Q3asm Files.
Die .q3asm Dateien sind recht einfach aufgebaut.
In der Ersten Zeile stellt man ein, wo die .qvm erstellt werden soll.
man geht vom root Verzeichnis (c:\ oder d:\ usw..) aus:
-o "\quake3\source\vm\cgame"
Alles was danach kommt, sind alle .asm dateien, welche wir vorher erzeugt haben :)
Zu beachten gibt es nur weniges:
- die Endung .asm wird nicht mitgeschrieben.
- die main datei kommt immer an den anfang (hier cg_main.asm)
- direkt nach der main Datei sollte die jeweilige sycalls.asm kommen, welche bei den anderen .c Dateien sein sollte,
damit sie nicht dauernd neu compiled werden muss.(da sie normalerweise nicht geändert wird,
spielt es also auch keine größere Rolle)
5. Neue Dateien hinzufügen.
Jetzt wo ihr alles wisst, was nötig ist solltet ihr schon rausbekommen haben, wie
man neue Dateien hinzufügt.
Trotzdem hier nochmal zur Sicherheit eine kleine Anleitung: (Bsp: CGame)
1. in der .bat file 2 Zeilen hinzufügen:
call Compile cg_neuedatei.c
@if errorlevel 1 goto quit
2. in der .q3asm eine Zeile hinzufügen:
cg_neuedatei
3. speichern :)
So ich hoffe ich konnte euch damit ein klein wenig weiterhelfen ;)
Ciao bis zum nächsten Tut.
<< zurück/back >> |