-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation Guide #18
Comments
siehe auch TVTower/TVTower#599 (comment) |
@GWRon |
Prinzipiell:
Blitzmaxuser Henri hat mein originaeres Windows-Updater-Script angepasst, fuer Linux sollte das ablauftechnisch "gleich" sein:
|
Probier das mal aus bei Dir: get_recent_blitzmax.sh: #!/bin/bash
# ensure curl is installed
# the -k param is used to allow certificate errors
# the -L param is used to follow redirections
VERSION=0.136.3.51
BMAX_FILE="BlitzMax_linux_x64_$VERSION.tar.xz"
BMAX_URL="https://github.com/bmx-ng/bmx-ng/releases/download/v$VERSION.linux.x64/$BMAX_FILE"
# create folders if needed
mkdir -p "BlitzMaxNG.downloads"
mkdir -p "BlitzMaxNG.downloads/mod"
mkdir -p "BlitzMaxNG.downloads/toolchain"
if [[ -e "BlitzMaxNG.downloads/$BMAX_FILE" ]]; then
echo "downloads exist ... skipping"
else
curl -k -L "$BMAX_URL" -o "BlitzMaxNG.downloads/$BMAX_FILE"
curl -k -L "https://github.com/bmx-ng/bcc/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/bcc.zip"
curl -k -L "https://github.com/bmx-ng/bmk/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/bmk.zip"
curl -k -L "https://github.com/bmx-ng/brl.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/brl.mod.zip"
curl -k -L "https://github.com/bmx-ng/pub.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/pub.mod.zip"
curl -k -L "https://github.com/bmx-ng/audio.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/audio.mod.zip"
curl -k -L "https://github.com/bmx-ng/text.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/text.mod.zip"
curl -k -L "https://github.com/bmx-ng/random.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/random.mod.zip"
curl -k -L "https://github.com/bmx-ng/sdl.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/sdl.mod.zip"
curl -k -L "https://github.com/bmx-ng/net.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/net.mod.zip"
curl -k -L "https://github.com/bmx-ng/image.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/image.mod.zip"
curl -k -L "https://github.com/bmx-ng/maxgui.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/maxgui.mod.zip"
curl -k -L "https://github.com/bmx-ng/database.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/database.mod.zip"
curl -k -L "https://github.com/bmx-ng/archive.mod/archive/refs/heads/master.zip" -o "BlitzMaxNG.downloads/archive.mod.zip"
fi
echo "Preparing latest stable NG"
cd "BlitzMaxNG.downloads"
if [[ -e "BlitzMax" ]]; then
echo "blitzmax unzipped... skipping"
else
tar -xf "$BMAX_FILE"
fi
echo "Preparing module updates"
if [[ -e "mod/brl.mod" ]]; then
echo "mods prepared ... skipping"
else
unzip -o "brl.mod.zip" -d "mod"
unzip -o "pub.mod.zip" -d "mod"
unzip -o "audio.mod.zip" -d "mod"
unzip -o "text.mod.zip" -d "mod"
unzip -o "random.mod.zip" -d "mod"
unzip -o "sdl.mod.zip" -d "mod"
unzip -o "net.mod.zip" -d "mod"
unzip -o "image.mod.zip" -d "mod"
unzip -o "maxgui.mod.zip" -d "mod"
unzip -o "database.mod.zip" -d "mod"
unzip -o "archive.mod.zip" -d "mod"
mv "mod/brl.mod-master" "mod/brl.mod"
mv "mod/pub.mod-master" "mod/pub.mod"
mv "mod/audio.mod-master" "mod/audio.mod"
mv "mod/text.mod-master" "mod/text.mod"
mv "mod/random.mod-master" "mod/random.mod"
mv "mod/sdl.mod-master" "mod/sdl.mod"
mv "mod/net.mod-master" "mod/net.mod"
mv "mod/image.mod-master" "mod/image.mod"
mv "mod/maxgui.mod-master" "mod/maxgui.mod"
mv "mod/database.mod-master" "mod/database.mod"
mv "mod/archive.mod-master" "mod/archive.mod"
fi
#unzip tools
echo "Preparing toolchain"
if [[ -e "toolchain/bcc" ]]; then
echo "toolchain prepared ... skipping"
else
unzip -o "bcc" -d "toolchain"
unzip -o "bmk" -d "toolchain"
mv "toolchain/bcc-master" "toolchain/bcc"
mv "toolchain/bmk-master" "toolchain/bmk"
fi
#compile bcc
echo "Compiling bcc"
cd "BlitzMax/bin"
./bmk makeapp -r -t console "../../toolchain/bcc/bcc.bmx"
cd ../..
echo "Updating bcc"
mv -f "BlitzMax/bin/bcc" "BlitzMax/bin/bcc.bak"
cp -rf "toolchain/bcc/bcc" "BlitzMax/bin/bcc"
#update modules - so we can update bmk
rm -r "BlitzMax/mod"
mv "mod" "BlitzMax"
#compile bmk
echo "Compiling bmk"
cd "BlitzMax/bin"
./bmk makeapp -r -t console "../../toolchain/bmk/bmk.bmx"
cd ../..
echo "Updating bmk"
cd "toolchain/bmk"
cp -rf "bmk" "../../BlitzMax/bin/"
cp -rf "core.bmk" "../../BlitzMax/bin/"
cp -rf "custom.bmk" "../../BlitzMax/bin/"
cp -rf "make.bmk" "../../BlitzMax/bin/"
cd ../..
#cleanup toolchain build dir
rm -r "toolchain"
cd ..
echo "=========="
echo "Setup is complete. You can close now.." |
Vielen, vielen Dank. Teile der Schritte hatte ich auch schon manuell gemacht aber ebene nicht alle und ggf. nicht in der richtigen Reihenfolge. Ausgangspunkt war für mich immer der Download auf der Blitzmax-Seite, wo aber noch die 129er-Version steht... |
Es sollte auch mit der 129er gehen, da ich ein solches Skript auch fuer Windows habe ... und es eben dort die alte Windowsvariante runterlaedt. |
Hinweise für Integration: archive.mod ergänzen; ggf. nicht curl sondern git clone/pull verwenden (d.h. Script ggf so anpassen, dass es sowohl ein Neuaufsetzen als auch ein Aktualisieren (mit vorherigem Backup) unterstützt. |
Bei git clone holst Du Dir die gesamte Historie mit auf die Platte.
Ist vlt auch nicht so prickelnd (wenn es in einer build-VM ablaufen soll).
Als zweite Option sicher interessant.
|
ja genau, bekomme beim Versuch des Build and Run aus der "MaxIDE": Seh hier im Thread nicht was man tun kann und was mit "Aktualisierung BCC/Module" genau gemeint ist. |
In dem Script werden verschiedene Module von GitHub geholt (curl), ausgepackt (unzip), umbenannt und in das mod-Unterverzeichnis kopiert (mv). |
Hab das Shellscript (fuer Linux) mal aktualisiert. Und gleich die Basisversion auf die Version von "vor wenigen Tagen" angepasst (theoretisch braucht es also derzeit keine weiteren Updates und und du kannst direkt von https://github.com/bmx-ng/bmx-ng/releases/tag/v0.136.3.51.linux.x64 runterladen) Generell kannst du genau neben das obige Script (bspweise gespeichert als "get_latest_blitzmax.sh") noch das hier packen: "make_latest_tvtower.sh": curl -k -L "https://github.com/TVTower/TVTower/archive/refs/heads/master.zip" -o "TVTower.zip"
unzip -o "TVTower.zip" -d "TVTower"
cd "BlitzMaxNG.downloads/BlitzMax/bin"
./bmk makeapp -r -t gui -g x64 "../../../TVTower/TVTower-master/TVTower.bmx"
cd ../../.. |
bekomme jetzt
|
Was fuer einen gcc hast du installiert ?
$ gcc -v
Am 8. März 2023 13:18:12 MEZ schrieb scr0llbaer9000 ***@***.***>:
…bekomme jetzt
[ 33%] Compiling:archive_write_add_filter_gzip.c
[ 33%] Compiling:archive_write_add_filter_program.c
[ 33%] Compiling:archive_write_add_filter_zstd.c
/home/scb/Projects/BlitzMaxNG.downloads/BlitzMax/mod/archive.mod/core.mod/libarchive/libarchive/archive_random.c:54:13: error: static declaration of ‘arc4random_buf’ follows non-static declaration
54 | static void arc4random_buf(void *, size_t);
| ^~~~~~~~~~~~~~
In file included from /home/scb/Projects/BlitzMaxNG.downloads/BlitzMax/mod/archive.mod/core.mod/libarchive/libarchive/archive_random.c:30:
/usr/include/stdlib.h:542:13: note: previous declaration of ‘arc4random_buf’ with type ‘void(void *, size_t)’ {aka ‘void(void *, long unsigned int)’}
542 | extern void arc4random_buf (void *__buf, size_t __size)
| ^~~~~~~~~~~~~~
--
Reply to this email directly or view it on GitHub:
#18 (comment)
You are receiving this because you were mentioned.
Message ID: ***@***.***>
|
Der Fehler ist aber, dass deine Std-lib auch die Funktion definiert, die "libarchive" nutzt. Welche Distribution hast Du genau? Edit: Scheinbar hast du eine GLibC >= 2.36. Ab dann bietet die naemlich diese Funktionen schon selbst an - und man muss wohl die library anders kompilieren. Bis dahin hier mal ein frischer 64bit-Build von meinem Mint 21.1 |
Danke, damit konnt ich die neuen Features ausprobieren.
Arch (btw), daher immer das neueste weil "rolling".
|
Tried to compile the current dev version on Linux without success. The "math" module for BlitzMax must be included in the script posted in this thread, that got me a bit further. Now it barks at:
But the "audio" module is included. |
Which distribution and release are you using? Seems you miss some libXYZdev package.
We could go through this live via discord if you want. Just DM me there and I try to guide you through (if job work allows it).
Edit: half asleep .. .distri/release question already answered.
Edit2: audiolib is part (on ubuntu/deb) of the "libaudio-dev" package
|
ah, finally got it compiled and running. What was missing on Arch was the quite obscure "Network Audio System" |
Nochmal ein Update wäre sehr schön, ich hab das gleiche Problem wie im Forum zuletzt beschrieben: |
Lade Dir einfach eine neuere Version von BlitzMax NG herunter: Zum Zeitpunkt dieses Beitrags ist das für Windows: Dies entpacken und dann der Anleitung entsprechend die aktuellen Quellen von TVTower kompilieren. |
Okay, danke, das hat geholfen. Ich hatte tatsächlich extra die letzte offizielle Release-Version und keine pre-release (weekly) genommen. Damit hat es wie beschrieben ohne Module geklappt. |
Hab mal wieder ein Problem, das aktuelle BlitzMax kompiliert nicht, hat jemand eine Idee?
|
Ich schau dann gleich/heute mal. Evtl hat sich bei den letzten Aenderungen was eingeschlichen. Zur Not ein frueheres Dailybuild von NG nutzen. |
https://github.com/bmx-ng/bmx-ng/releases Damit habe ich gerade alle Module kompiliert, ohne Deinen Fehler zu bekommen. Nutzt Du die "Basis + Updater-Skript"-Variante oder eines der Weeklybuilds von BlitzMax NG? |
Im Zuge der Repo-Aufräumarbeiten soll die Compile-Anleitung in die Dokumentation wandern. In einem Branch sind die ursprünglichen Dateien schon hinterlegt, müssen nun aber noch ins passende Format gebracht und aktualisiert werden.
Dabei sollte auch auf die GitHub Actions hingewiesen und #1 berücksichtigt werden.
The text was updated successfully, but these errors were encountered: