Schnell und dreckig - Aktuelle Developement Version von Minetest 5.5.0 selbst bauen

Bild des Benutzers meldrian
Tags:

Die neue Version von Minetest wird u.a. dynamische Schatten mit sich bringen und kann sogar schon angetestet werden. Der Bauprozess der aktuellen Developement-Version ist allerdings etwas komplizierter geworden als zuvor. Grund dafür ist ein neuer Irrlicht Engine-Fork der für den Bau notwendig ist. Wir haben im Minetest-IRC-Kanal nachgefragt und zeigen euch anhand der erhaltenen Informationen wie man über das Terminal in den Genuss der aktuellen Developement-Version kommt.

Es geht strack aufs Terminal, öffnet daher eines.

Besitzt euer System Git? Nein? Besorgt euch Git. Beispielsweise, unter Ubuntu und Konsorten, über

sudo apt install git

Zugegeben, es geht auch ohne Git aber besorgt euch Git. Es schmerzt nicht und man wirkt wie ein echter Profihacker aus Hollywood wenn man sich Projekte via GIT zieht statt über die entsprechenden Webseite im Browser.

Jetzt manövriert ihr auf dem Terminal irgendwohin wo es nicht weh tut wenn dort plötzlich mehr Daten liegen als zuvor. Wir erstellen zu diesem Zweck stumpf einen neuen Ordner in eurem Home-Verzeichnis mit dem Namen "minetest55dev" und betreten diesen sogleich.

mkdir ~/minetest55dev
cd ~/minetest55dev

mit installiertem Git bezieht man nun zwei Projekte aus dem Internet, minetest selbst und IrrlichtMT, ein Fork der Irrlicht Engine mit Anpassungen für Minetest. Falls ihr keine Lust auf Git habt müsst ihr spätestens jetzt die entsprechenden Pakete per Hand suchen und herunterladen Nutzt dazu die Links aus dem Code-Teil der nun folgt oder noch besser, nutzt einfach Git.

Einmal

git clone https://github.com/minetest/irrlicht

für den aktuellen Release von IrrlichtMT und dazu noch

git clone https://github.com/minetest/minetest

für die aktuelle Developement von Minetest.

Kurz mit ls gegen checken ob alles geklappt hat. Ihr solltet zwei Verzeichnisse unter ~/minetest55dev haben, nämlich "irrlicht" und "minetest".

Betreten wir zuerst "irrlicht" mit

cd irrlicht

Dort angekommen, also unter ~/minetest55dev/irrlicht, lasst ihr erst cmake laufen mit

cmake . -DBUILD_SHARED_LIBS=OFF

und wenn das fehlerfrei durchgelaufen ist noch

make -j$(nproc)

cmake bereitet den Bau vor, make baut. Grob zusammengefasst.

Das verschafft euch alles an IrrlichtMT was ihr zum Bau von Minetest 5.5.0-dev braucht. Lauft ihr hier in irgendwelche Fehler, ggf. wegen fehlender Abhängigkeiten, müsst ihr je nach Meldung in eurem System nachpflegen.

Nun navigieren wir aus dem Ordner irrlicht heraus, hinein in den Ordner minetest

cd ~/minetest55dev/minetest

und fahren dort fort.

Der Bau der neuen Software funktioniert aktuell nicht, so wie früher, mit einem einfachen  cmake . -DRUN_IN_PLACE=1. Versucht man das beschwert sich der compiler über die fehlende richtige Irrlicht-Version. Wir beheben dieses Malheur indem wir einige zusätzliche Informationen, in Form von unserer eben erstellen IrrlichtMT-Version, mitgeben. Sieht dann so aus:

cmake . -DRUN_IN_PLACE=1 -DIRRLICHT_INCLUDE_DIR=~/minetest55dev/irrlicht/include/ -DIRRLICHT_LIBRARY=~/minetest55dev/irrlicht/lib/Linux/libIrrlichtMt.so

Was macht das ganze? Grob zusammengefasst

  • es bereitet den Bau (cmake) von minetest5.5.0-dev so vor,
  • dass ihr die ausführbare Datei direkt im /bin Verzeichnis erhaltet (-DRUN_IN_PLACE=1)
  • und nutzt die zuvor von euch selbst gebaute, lokal abgelegte Irrlicht-Version (-DIRRLICHT_INCLUDE_DIR=~/minetest55dev/irrlicht/include/ -DIRRLICHT_LIBRARY=~/minetest55dev/irrlicht/lib/Linux/libIrrlichtMt.so)

Wenn dieser Prozess fehlerfrei durchgelaufen ist, auch hier müsst ihr manuell nachsteuern falls etwas fehlt, fahrt ihr mit dem eigentlich Bau fort.
Was ein Linuxsystem so zum Bau von Minetest braucht findet ihr in unserem Holarse-Artikel zum Spiel oder in der Readme.

Der eigentliche Bau startet mit dem weiter oben schon verwendeten Befehl

make -j$(nproc)

Ist auch dieser Prozess ohne Abbruch durchgelaufen seid ihr auf der Zielgeraden. Navigiert nun noch fix via cd bin in den binary-Ordner eures minetest-Verzeichnisses und führt hier

./minetest

aus um das Spiel zu starten.

Trivia1: Ihr müsst die neuen dynamischen Schatten noch in den Settings aktiveren. Eine entsprechend benannte Funktion findet sich dort (Dynamik Shadows).
Trivia2: Ihr müsst euch noch ein Minetest-Game herunterladen. Dies geschieht über das Hauptmenü und den Tab "Content". Hier klickt ihr auf "Browse online content" und installiert "Minetest Game".

Viel Spaß beim Ausprobieren der dynamischen Schatten.

Hat das aus dem Stand geklappt bei euch oder musstet ihr etwas anpassen? Lasst Feedback in Kommentarform hier und bereichert damit das Erlebnis aller.

Multimedia
StarFire
Bild des Benutzers StarFire
Offline
Beigetreten: 03.12.2018
Beiträge: 59

Stimmt diese Zeile?

cmake . -DBUILD_SHARES_LIBS=OFF

Heisst es nicht

cmake . -DBUILD_SHARED_LIBS=OFF

Gruss SF

comrad
Bild des Benutzers comrad
Offline
Beigetreten: 13.05.2008
Beiträge: 5503

Grundsätzlich ist die CMake-Syntax valide, du hast hier allerdings zweimal dasselbe geschrieben (oder ich seh beim besten Willen den Unterschied nicht).

Edit: Jetzt seh ich das S/D auch ;)

meldrian
Bild des Benutzers meldrian
Offline
Beigetreten: 12.05.2009
Beiträge: 1946

Nee nee, er hat schon recht.
Ich habe mich vertippt. Da steht/stand "cmake . -DBUILD_SHARES_LIBS=OFF".

Es läuft zwar trotzdem durch aber verursacht ein

CMake Warning:
  Manually-specified variables were not used by the project:
 
    BUILD_SHARES_LIBS

Das was im Text steht/stand (korrigiert), war nicht das was man im beiliegenden README.md vorfindet

Danke für das Feedback!

meldrian
Bild des Benutzers meldrian
Offline
Beigetreten: 12.05.2009
Beiträge: 1946

Soviel zum Thema "schnell und dreckig", in einem anderen Testszenario war der fehlerfreie Befehl zum Bauen von minetest nicht
cmake . -DRUN_IN_PLACE=1 -DIRRLICHT_INCLUDE_DIR=~/minetest55dev/irrlicht/include/ -DIRRLICHT_LIBRARY=~/minetest55dev/irrlicht/lib/Linux/libIrrlichtMt.so
sondern

cmake . -DRUN_IN_PLACE=1 -DIRRLICHT_INCLUDE_DIR=~/minetest55dev/irrlicht/include/ -DIRRLICHT_LIBRARY=~/minetest55dev/irrlicht/lib/Linux/libIrrlichtMt.a

Der Unterschied liegt im Bereich von -DIRRLICHT_LIBRARY, statt .so lag dort lediglich eine .a-Datei vor, welche aber klaglos, ebenso wie die.so-file am anderen Gerät, angenommen wurde.

schlägt also der Befehl im Artikel mit der Meldung

  IRRLICHT_LIBRARY was set to
  /home/*user*/minetest55dev/irrlicht/lib/Linux/libIrrlichtMt.so but is not
  a valid library file.  The path will not be used.
Call Stack (most recent call first):
  CMakeLists.txt:61 (find_package)
...
-- Could NOT find Irrlicht (missing: IRRLICHT_LIBRARY) 
CMake Error at CMakeLists.txt:63 (message):
  IrrlichtMt is required to build the client, but it was not found.

fehl, dann schaut mal was euch der built-prozess so nach lib/Linux/ gekegelt hat und linkt eben darauf.

kloß
Bild des Benutzers kloß
Offline
Beigetreten: 08.05.2015
Beiträge: 285

Schöne Idee, dies in einem Artikel darzustellen.

Mastodon