Moin,
mich hat es gestört, dass ich beim Kompilieren des Sources die gmake Datei immer manuell ausführen muss.
Sprich: "cd /root/workspace/server_xy/game/src && gmake -j"
Das ganze kann man mit Shell Scripts auch wunderbar automatisieren.
Tutorial:
1. Datei "root/.cshrc" öffnen (falls ihr einen User habt, einfach den User Pfad nehmen)
2. Folgendes Alias einfügen: alias m2 /var/runscripts/m2.sh
3. Datei: "/var/runscripts/m2.sh" anlegen und mit 777 Rechten ausstatten
4. Folgenden Inhalt einfügen:
- #!/bin/sh
- # USER_CONFIG
- workspaceDir="/root/workspace"
- projectName="$(cat /var/runscripts/project.txt)"
- projectDir=$workspaceDir/$projectName
- if [ $1 = 'game' ];then
- # COMPILE_GAME
- echo --------------------------------
- echo Project: $projectName
- echo --------------------------------
- echo -n "Compile game (y/n)? "
- read answer
- if [ "$answer" != "${answer#[Yy]}" ] ;then
- cd $projectDir/game/src && gmake -j
- fi
- elif [ $1 = 'db' ];then
- # COMPILE_DB
- echo --------------------------------
- echo Project: $projectName
- echo --------------------------------
- echo -n "Compile db (y/n)? "
- read answer
- if [ "$answer" != "${answer#[Yy]}" ] ;then
- cd $projectDir/db/src && gmake -j
- fi
- elif [ $1 = 'project' ];then
- # SET_PROJECT_NAME
- echo -n "Insert new project name: "
- read sProject
- echo $sProject > /var/runscripts/project.txt
- fi
5. Datei: "/var/runscripts/project.txt" anlegen und mit 777 Rechten ausstatten
6. Datei: "/var/runscripts/project.txt" öffnen und Projektnamen eintragen, indem euer Source ist. (Beispiel: "Server", wird dann intern so genutzt: /root/workspace/Server)
7. System rebooten: #reboot
Nun könnt ihr ganz einfach folgende Commands nutzen, um den Source zu kompilieren:
#m2 game
#m2 db
#m2 project
Erklärungen
m2 game: Führt die makefile des Game Sources aus
m2 game: Führt die makefile des db Sources aus
m2 project: Erwartet den Projektnamen, welcher für game/db genutzt wird, um den Source zu kompilieren
Erweiterung: Ihr könnt das ganze auch mit dem Strip #strip game Command erweitern, falls ihr den nicht in der makefile haben wollt.
PS: Dies ist natürlich kein großes Thema. Aber ich habe mir gedacht, dass ihr euch damit etwas Zeit und Stress sparen könnt.
Bis dahin!