Here is a report of myself trying to compile GEM. I am running Debian 3.0 ("woody") on an AMD K62 400.
-------- 1 --------
cd ~/src/gem-0.87/src/Gnu; ./configure --prefix=/home/matju
checking for GLTTFont.h path... dirname: too few arguments Try `dirname --help' for more information. configure: error: can't find path to GLTTFont.h
I have it under /usr/include/GL/GLTTFont.h; I also had created symbolic links in /usr/include/GLTTFont.h last time I made a quick attempt at installing GEM. I remove them because maybe they're not a too good idea.
Having 'dirname' complaining is a quite bad idea, especially if that's because of 'too few arguments'... if it can get too few arguments, it probably can get too many: it seems like a quoting problem to me. what happens on systems on which there are spaces within filenames?
I also notice that the command to find GLTTFont.h does not honor C_INCLUDE_PATH, which is plain wrong. Some of my libraries are in /usr/X11R6, /opt, /home/matju, which are all three listed in that env-variable, but none of those 3 paths are searched. I suppose this will cause me problems with some subsequent libraries.
I've found a problem. /usr/include on my system is a symbolic link (that's a harddisk migration i never finished), so the 'find' command doesn't work properly on it.
Moving that directory back to the main partition...
Works. Starting to compile.
-------- 2 --------
make
[...]
g++ -L/usr/X11R6/lib -L../../../GemLibs/glm
-L../../../gem-0.84/src/AuxLibs/liborb
-L../../../gem-0.84/src/AuxLibs/particle -o Gem.pd_linux -L/usr/X11R6/lib
-L../../../GemLibs/glm -L../../../gem-0.84/src/AuxLibs/liborb
-L../../../gem-0.84/src/AuxLibs/particle ../Manips/*.o ../Particles/*.o
../Base/*.o ../MarkEx/*.o ../Pixes/*.o ../Controls/*.o ../Nongeos/*.o
../tv/*.o ../Geos/*.o -shared -L/usr/lib -lglib -lz -lparticle -lorb
-lgltt -lttf -ljpeg -ltiff -lglm -lmpeg3 -lmpeg -lglib -lpng -lquicktime
-lglut -lGLU -lGL -lm -Wl,-shared -Wl,-export-dynamic -lXxf86vm -lXext
-lX11 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/include/GL
-I../../../GemLibs/particle -I../../../GemLibs/liborb
-I../../../GemLibs/glm -I/home/matju/src/pd/src -I..
/usr/bin/ld: ne peut trouver -lparticle
collect2: ld returned 1 exit status
make: *** [Gem.pd_linux] Erreur 1
Now I don't know why gem-0.84 directories are listed, nor why it looks for AuxLibs when it's called GemLibs. I thought ./configure would take care of that part. I tried something:
find ../../../GemLibs -iname '*particle*' ../../../GemLibs/particle ../../../GemLibs/particle/libparticle.a ../../../GemLibs/particle/Particle.dsp ../../../GemLibs/particle/Particle.lib
cd ~/src; ln -s gem-0.87 gem-0.84 cd ~/src/gem-0.87/src; ln -s ../../GemLibs Auxlibs cd ~/src/gem-0.87/src/Gnu; make
(same error)
no excuse now: -L../../../gem-0.84/src/AuxLibs/particle means that ls -l ../../../gem-0.84/src/AuxLibs/particle should see something called libparticle.so or libparticle.a. Well it does. But g++ doesn't want to see it.
now I go in that "particle" dir and created libparticle.so in addition to .a; still does not work... so i try:
cp libparticle.so ~/lib
So it now says:
/usr/bin/ld: ne peut trouver -lorb
so i create a liborb.so and put it in ~/lib again. next attempt...
works!
-------- 3 --------
make install install -d //usr/local//share/doc/gem install: Ne peut créer le répertoire `//usr/local//share/doc'.: Permission non accordée make: *** [installdocs] Erreur 1
Well I never told it that it could install anything in /usr/local. I don't do that as root and I said "--prefix=/home/matju" before. That's not very well mannered of it.
At least Makefile has a PREFIX I can change to /home/matju. Trying again.
make install install -d //home/matju//share/doc/gem install -m644 ../../doc/* //home/matju//share/doc/gem install: Ne peut évaluer `../../doc/*' par stat(): Aucun fichier ou répertoire de ce type make: *** [installdocs] Erreur 1
Well, gem-doc isn't unpacked. It's bundled separately but it's required for "make install" to work... unpacking gem-doc ...
works!
-------- 4 --------
pd -lib gem gem: can't load library
I don't know why I have to do this again: pd -path /home/matju/lib/pd/externs -lib Gem
but it doesn't complain now.
01.redSquare.pd, clicking on "create":
error: GEM: X server has no OpenGL GLX extension MAN: create window Xlib: extension "GLX" missing on display ":0.0". Xlib: extension "GLX" missing on display ":0.0". error: GEM: Unable to create double buffer window error: GEM: Unable to create window error: GEM: gemwin: no window made
But I have this file here: /duesseldorf/usr/X11R6/lib/modules/extensions/libglx.a
Do I need to add it to some config file?
Looking in /etc/X11/XF86Config ... it's commented out ?
Closing all windows and restarting X11...
doing the same... an empty window appears, and then :
error: GEM: Unable to create single buffer window error: GEM: Error creating const context error: GEM: A serious error occured creating const Context error: GEM: Do not continue! MAN: create window
Then I click on "1". White square appears. Color and rotation and everything else works.
-------- 5 --------
I notice that example 2 is almost the same as example 1. Maybe it could use some kind of demux so that differences between the patches may be selected using a checkbox (I do that all of the time in my GridFlow examples)
I notice there's a problem with loading two patches at once and trying to create a new window while the one of the first patch is open (doesn't do it) and then hitting destroy on that same second patch (segmentation fault).
05.cube.pd does translations so big that the cube is very likely to disappear from screen on first try.
Well that's all I have to comment on for now. Cool!
Mathieu Bouchard http://artengine.ca/matju