I had partial success on a different route: re-packaging the Debian Gem binaries for Arch. Not so much with compilation.
One preliminary remark, because I totally forgot about it before: I'm not exactly using Arch Linux, but Manjaro, which is based on Arch. Technically Manjaro uses its own package repositories, and even though they are for the most part based on Arch's, there is always the possibility that something that works on my Manjaro system will not work on a pure Arch install, or the other way around.
========
Compilation:
/usr/lib/pd/extra/Gem/Gem.pd_linux: /usr/lib/pd/extra/Gem/Gem.pd_linux: undefined symbol: _Z25dispatchGemWindowMessagesR10WindowInfo
that looks like a Gem that was partially compiled without multicontext support. (?)
Blindly going from this tip, I tried compiling Gem with the configure option "--disable-multicontext", but now I'm getting a compile error (copied below).
I realised that building Gem on Arch/Manjaro is probably beyond my present skills, and I probably won't have enough time to jump in and learn as I go (also judging from the Gmerlin compilation issues discussed in the other sidethread). If somebody wants to give me directions on what to try, though, I'm happy to test things.
gemkeyboard.cpp: In Konstruktor »gemkeyboard::gemkeyboard()«: gemkeyboard.cpp:36:23: Fehler: ungültige Umwandlung von »void (*)(char*, int, int, void*)« in »KEYBOARD_CB« {aka »void (*)(const char*, int, int, void*)«} [-fpermissive] setKeyboardCallback(&gemkeyboard::keyboardCallback, this); ^~~~~~~~~~~~ In file included from gemkeyboard.cpp:19: ../../src/Gem/Event.h:77:56: Anmerkung: Argument 1 von »void setKeyboardCallback(KEYBOARD_CB, void*)« wird initialisiert GEM_EXTERN extern void setKeyboardCallback(KEYBOARD_CB callback, ~~~~~~~~~~~~^~~~~~~~ gemkeyboard.cpp: In Destruktor »virtual gemkeyboard::~gemkeyboard()«: gemkeyboard.cpp:46:26: Fehler: ungültige Umwandlung von »void (*)(char*, int, int, void*)« in »KEYBOARD_CB« {aka »void (*)(const char*, int, int, void*)«} [-fpermissive] removeKeyboardCallback(&gemkeyboard::keyboardCallback, this); ^~~~~~~~~~~~ In file included from gemkeyboard.cpp:19: ../../src/Gem/Event.h:82:59: Anmerkung: Argument 1 von »void removeKeyboardCallback(KEYBOARD_CB, void*)« wird initialisiert GEM_EXTERN extern void removeKeyboardCallback(KEYBOARD_CB callback, ~~~~~~~~~~~~^~~~~~~~ make[3]: *** [Makefile:726: libControls_la-gemkeyboard.lo] Fehler 1
========
Using Debian binaries for Arch:
I tried my luck with the "debtap" tool[1], which is meant to help generating Arch packages from .deb files, or even automate this to a degree.
With some adjustments (mostly renaming dependencies), I managed to install Gem 0.94, 0.94_pre1 and 0.93.3 from Debian packages on my system this way. However, with 0.94 and 0.94_pre1, when I create a [gemwin], I get runtime errors about "gemdefaultwindow.pd" and "gemdefaultwindow.pat" not being found. (gemwin.pd is found and the [gemwin] objected appears as if created correctly in the graphical interface.)
Indeed "gemdefaultwindow.pd" is not packaged with Gem 0.94(_pre1), instead there is "gemdefaultwindow-glx.pd"[2], but Pd/Gem still seems to search for it. Any ideas why?
The Gem 0.93.3 package, however, does have gemdefaultwindow.pd, which led me to try that version. The only problem I ran into was that libGLEW.so.2.0 was not found, because the version of glew on my system is more recent (2.1.0). Tentatively, I symlinked
ln -s libGLEW.so.2.1 libGLEW.so.2.0 in /usr/lib
… and success! At least the few example sketches I tested work fine now with Gem 0.93.3.
Obviously this is not a long-term solution (as far as piggybacking on Debian packages for Arch can be a long-term solution at all…). I would prefer to resolve the above error with version 0.94.
[1] https://github.com/helixarch/debtap [2] https://packages.debian.org/sid/amd64/gem/filelist