AdminMod.de
https://www.adminmod.de/

Compiling unter Linux
https://www.adminmod.de/viewtopic.php?t=9847
Seite 1 von 1

Autor:  koalo [ 20.07.2006, 18:39 ]
Betreff des Beitrags:  Compiling unter Linux

Moin,
schreibe das hier nur weil ich gerade so stolz bin, dass ich es endlich geschafft habe die Small-Quelltexte unter Linux zu kompilieren um es auch direkt auf dem Server kompilieren zu koennen. Und ich dachte es koennte vielleicht auch jemand anders gebrauchen. Ich hoffe ich schreibe hier nichts altbekanntes.
So wie es unten steht ists sehr viel Handarbeit und benoetigt einige Linuxkentnisse. Falls Bedarf besteht schreibe ich auch ein Script, welches das alles automatisch macht. (einfach melden) Die Muehe mache ich mir aber nicht, wenn eh keiner Interesse hat.

Also zuerst den Quellcode des Small-Compilers herunterladen. Da Adminmod wohl schon ein paar Tage aelter ist, braucht es auch eine wohl sehr alte Compilerversion und zwar Version 1.8.4 (sonst meckert der "has a file version not supported by Admin Mod").
Herunterladbar ist der Spass von:
http://www.compuphase.com/pawn/smallkit-184.zip

Gefunden auf der Seite:
http://www.compuphase.com/pawn/pawn.htm#DOWNLOAD
ganz unten "Download the archived release 1.8.4 of the Small toolkit (189 kiB; 2002-12-20)"

Folgende Schritte koennen alternativ unter Windows oder unter Linux durchgefuehrt werden.

Die Zipdatei entpackt ihr. Zuerst muessen die ganzen Dateinamen angepasst werden, da Linux im Gegensatz zu Windows und dem Entwickler damals auf Gross- und Kleinschreibung achtet. Konkret muss umbenannt werden:

Sc.h => sc.h
Sc1.c => sc1.c
Sc2.c => sc2.c
Sc3.c => sc3.c
Sc4.c => sc4.c
Sc5.c => sc5.c
Sc6.c => sc6.c
Sc7.c => sc7.c
Scvars.c => scvars.c
Scexpand.c => scexpand.c
Osdefs.h => osdefs.h

vielleicht hab ich was vergessen - notfalls alle Dateien in Kleinschreibung umwandeln

Die folgenden Schritte funktionieren nur noch unter Linux:
Erstmal alles auf den Server laden. Dann folgenden Befehl auf der Linuxkonsole ausfuehren:
Code:
gcc -o scpack scpack.c
Falls dann da was steht von command not found habt ihr keinen C-Compiler auf dem System (oder zumindestens keinen gcc). Also erst installieren -> Hilfe dazu gibts bei Google oder notfalls fragt halt nach.

Als naechstes wird das gerade erstellte Programm gebraucht um zwei Dateien zu konvertieren, deren Sinn ich nicht wirklich verstanden habe, aber es muss wohl sein:
Code:
./scpack sc5.sch sc5.scp
./scpack sc7.sch sc7.scp
Nun werden noch einige Linux-Header gebraucht. Ich hab sie aus der
http://www.compuphase.com/pawn/smallkit-273.zip
im Verzeichnis LINUX geholt und in das Verzeichnis gepackt.

Damit ists eigentlich fertig zum Kompilieren.
Zuerst in Objektdateien:
Code:
gcc -c -DLINUX -I. -g sc*.c
Es sollte nur eine Warnung von wegen Newline erscheinen - die liegt wieder daran, dass die Entwickler nicht mit gcc gearbeitet haben und ist ueberhaupt nicht schlimm.

Da wir mit oberem Befehl eine Datei umgewandelt haben, die uns stoert, loeschen wir sie wieder:
Code:
rm scpack.o
Und jetzt alles zusammenpacken:
Code:
gcc -o sc sc*.o
Jetzt existiert die Datei sc im Verzeichnis und dies ist unser lang erwarteter Small-Kompiler. Wenn alles geklappt hat, sollte der Aufruf
Code:
./sc
die Befehlsliste ausgeben.

Ich habe diese Datei nun in das Verzeichnis addons/adminmod/scripts/ geschoben.

Zum Kompilieren fehlen nur noch die Adminmod-Header. Diese sind beim Windows-Kompiler dabei.
http://adminmod.de/downloads/tools/SMA_zu_AMX.zip
Da im Verzeichnis compiler/include/. Die Dateien sind zusaetzlich auf den Server in ein Unterverzeichnis include/ zu laden. Mein scripts-Verzeichnis sieht jetzt so aus:
Code:
.
|-- include
|   |-- admin.inc
|   |-- adminlib.inc
|   |-- cavey.inc
|   |-- checksetting.inc
|   |-- clientio.inc
|   |-- connections.inc
|   |-- console.inc
|   |-- core.inc
|   |-- events.inc
|   |-- fixed.inc
|   |-- ip.inc
|   |-- language.inc
|   |-- leet.inc
|   |-- math.inc
|   |-- menu.inc
|   |-- numtoword.inc
|   |-- plugin.inc
|   |-- rindy.inc
|   |-- rindy_player_helper.inc
|   |-- rindy_player_infos.inc
|   |-- rindy_player_menus.inc
|   |-- settings.inc
|   |-- string.inc
|   |-- stringx.inc
|   `-- vectors.inc
|-- plugin_CS.amx
|-- plugin_TFC.amx
|-- plugin_antiflood.amx
|-- plugin_base.amx
|-- plugin_chat.amx
|-- plugin_cheat.amx
|-- plugin_fun.amx
|-- plugin_lan.sma
|-- plugin_map_random.amx
|-- plugin_message.amx
|-- plugin_retribution.amx
|-- plugin_spawn.amx
`-- sc

1 directory, 38 files
Wie man sieht existert eine Datei mit der Endung .sma im Verzeichnis. Die habe ich natuerlich auch manuell da rein geladen. Zum Kompilieren dieser Datei reicht folgender Befehl:
Code:
./sc -iinclude plugin_lan.sma
Und Hokus-Pokus - Jetzt sollte eine plugin_lan.amx im Verzeichnis sein.

Fragen gerne.

Bis denne,
Florian Meier

Autor:  [WING] Black Knight [ 20.07.2006, 20:02 ]
Betreff des Beitrags: 

Hmmm, warum hast Du nicht den compilierten aus dem Linux-Package von Admin Mod genommen (scripting/compiler)?

Aber super Anleitung! *Daumen rauf*

Autor:  koalo [ 20.07.2006, 20:09 ]
Betreff des Beitrags: 

hab mich schon gewundert, dass es nirgendwo infos dazu gibt....
Es liegt einfach daran, dass dieses Script alles automatisch gemacht hat und ich nicht weiter in das Verzeichnis reingeschaut habe.
Also falls jemand das nicht starten kann, weiss er wenigstens wie er das zu kompilieren hat *gg*

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/