I also prepare the following environment variables, i have to say that setting DYLD_LIBRARY_PATH always makes me feel a little clumsy, is there a way how i could avoid that? Could at least some of those settings go into Config.pp?
I also fix some problems with the linkage of ffmpeg in advance, sed is my friend
i enclose the #include statements with extern “C” {}
find ~/src/panda3d -regex '.*[c|cxx|h]' -type f -exec sed -i -e 's/#include \"avio.h\"/extern \"C\" {\
#include \"avio.h\"\
}/g' {} \;
find ~/src/panda3d -regex '.*[c|cxx|h]' -type f -exec sed -i -e 's/#include \"avformat.h\"/extern \"C\" {\
#include \"avformat.h\"\
}/g' {} \;
find ~/src/panda3d -regex '.*[c|cxx|h]' -type f -exec sed -i -e 's/#include \"avcodec.h\"/extern \"C\" {\
#include \"avcodec.h\"\
}/g' {} \;
Then i get serious and put in my Config.pp:
cd panda3d
cp ~/src/Config.pp .
The files contents looks like this:
Reading that you might guess that i don’t feel confident enough to try out
fmod ex integration until now. That’s right since i want to get rid of
another problem first. I am going to explain that very soon. The
compilation itself runs very smooth:
cd ppremake
aclocal
autoheader
automake --foreign -a
autoconf
./configure
make install
cd ../dtool
make clean
make uninstall
ppremake
find ~/src/panda3d/dtool -name Makefile -exec sed -i -e 's/dynamic_lookup/dynamic_lookup -headerpad_max_install_names/g' {} \;
make install
A note here - I get this output from ppremake:
After building and installing dtools i compile panda which takes more that 1,5 hours:
cd ../panda
make clean
make uninstall
ppremake
find ~/src/panda3d/panda -name Makefile -exec sed -i -e 's/dynamic_lookup/dynamic_lookup -headerpad_max_install_names/g' {} \;
make install
Here I want to note that I ‘hardcode’ -headerpad_max_install_names into the Makefiles everywhere where I suppose a .dylib ot .so file to be baked. That should help me to avoid problems later on when I want to move panda to be distributed on a dvd (or usb stick). After the build step for panda itself i also install the “direct” part of panda, again with relocateable libs:
cd ../direct
make clean
make uninstall
ppremake
find ~/src/panda3d/direct -name Makefile -exec sed -i -e 's/dynamic_lookup/dynamic_lookup -headerpad_max_install_names/g' {} \;
make install
When that steps are all taken i usually open up another terminal, just to get rid of all the environment variables i had to set before. Especially
DYLD_LIBRARY_PATH is something I would not want to have set just for fun, I allways eye on it as it would mess up my system. I use a trick and link all the libraries into /usr/local/lib so they woule be found without the use of DYLD_LIBRARY_PATH:
sudo ln -s /usr/local/panda/lib/* /usr/local/lib
Then i want to run the last steps of the installation process. I run genPyCode and put Config.prc into etc:
So far so good. Now comes the twist: My panda does not work at all! If i run pandatest.py i just get a WHITE WINDOW, nothing else. pandarest.py reads (its from the tutorials):
This process hangs, I can not stop it with Ctrl-C, only with Ctrl-Z
followed by
kill -9 %1
The output of the task looks like this:
I have been trying this for a week now and I really have no clue what I could have done wrong. But: The window stays WHITE. Sorry, no panda for me!
I also found a thread here that dealt with the same problem, but I could not really find out if it was solved…
My goal is to make “universal” panda3d binaries that can be relocated on a DVD, or a USB Stick. I hope that panda is not broken and that i can also get sound to work. Please help me, I would definitively be willing to contribute universal binaries as soon as they work!!!
I am still stuck.
I compiled panda > 10 times now, i always get a white window and the process freezes; Is there anyone who can help me? Has anyone had the same problems before and solved them? Please help me!
and again: i only get a white window, i can not get panda to work; Has any other osx user had the same problems? I am getting a bit desperate here. My very first compilation is functional, but i need to apply the linker flag -headerpad_max_install_names to make the libraries relocatable.
Is there a way to make libraries relocatable without needing to re-link them? Is it not possible to have universal binaries for panda? Why do I only get a white window? What information should i provide to the forum so anyone can help me?
The white window sounds like a serious problem with your graphics drivers. Do other 3-D applications work OK on your machine? Can you go to toontown.com or piratesonline.com (both applications written using Panda) and play them successfully?
If those commercial games also fail with a white window, there must be something wrong with your graphics drivers somehow. If they succeed, then there’s something funny with the way you’re building Panda.
Try building just a bare-bones minimum Panda. It should build out of the box, especially if you don’t care about linking with lots of third-party libraries like fmod, and you don’t try to do fancy stuff with relocatable libraries.
Hello, David!
I can totally play toontown!
No problems, no white screen.
I was trying to re-compile panda on another machine, i am still getting the same result: Only a white screen, i have to kill the app with kill -9; I am very desperate by now since i tried to build panda with no extra libs at all, just with “-headerpad_max_install_names” as linker parameter.
Now i will try without that parameter.
Hopefully it will work.
Thank you for giving me hints, David!
finally it started to work again!
the problems vanished as soon as i reformatted my drive, re-installed the complete system (tiger) and then rebuilt panda, without threading support, without ssl.
now i want to try out - step by step - which features are useable on OSX
The problem with the header max whatever only exists if you try to use py2app. You can easily build a application the way i did it without the compile parameter. if you build a package manually (platypus and a starting script), you may shorten the lib-path, which makes the header_max… obsolete. I have tried around quite a bit, but the structure i use does work (see my other posts).
Iirc you can build panda3d platform indepentant, however i currently dont remember how (and i have never tried it). I have successfully compiled panda3d under intel tiger quite a lot of times, the big problems arise under leopard. I also never included threading support, so i cant tell if it’s possible. However i do know compiling with ssl is possible.
These are my experiences, i hope those informations help a bit.
if you recompile, remove the /usr/local/panda (or move it away), i rarely succeeded compiling panda3d successfully if it was there (i’m quite sure no linking against /usr/local/panda/… was active)
Check if panda3d’s pview works. If it does not, there is no sense building direct (i hope i dont mix up panda & direct).