Installing panda3d into a local folder [debian linux]

The latest deb build is incompatible with squeeze now, due to the numerous out of date libraries it uses. I want to install panda3d into a local directory on a debian squeeze system, but I have some questions after having read the install files, introduction to panda3d and various forum discussions.

[]Why are the third party tools for linux omitted from later versions? For example, you need to go to the 1.6.2 release to find them panda3d.org/download/panda3d … x32.tar.gz. This bundle doesn’t exist for the 1.8 releases though. Wouldn’t their inclusion sensibly make compilation easier and less prone to dependency issues? Can I use the 1.6.2 thirdparty directory for my 1.8.1 build?[/*]

[*]How can I get the latest panda3d source, will running

cvs -z3 -d:pserver:anonymous@panda3d.cvs.sourceforge.net:/cvsroot/panda3d co -P MAIN

do the job?[/*]

[*]What does makepanda.py produce? Would it create a binary, which I can then run as an executable? Can I use makepanda.py to install panda3d into a local directory e.g.

makepanda.py --nothing --use-zlib --use-png --use-python --prefix /home/user/panda3d/

[/*]

[*]If I’d have to use installpanda.py to install to a local directory, would I be able to specify the makepanda.py options? For example, could I run

python makepanda/installpanda.py --prefix /home/user/panda3d --nothing --use-zlib --use-png --use-python --use-jpeg --use-ffmpeg --verbose

[/*]

[]What do the options do? Only a handful are explained in the docs. Is there any documentation for the other options? E.g. what is --use-pandatool or --use-openal? What does the --optimize X option do, will --optimize 4 make panda3d more optimised for my cpu? Is it like the cflag “-O2”?[/]

  1. Because it’s tricky to maintain thirdparty binaries that work for every single platform, due to many library incompatibilities with various distros. Instead, you can simply install most of the packages from the Ubuntu repositories.

  2. Yes, except it’s “panda3d” instead of “MAIN”.

3, 4. makepanda.py produces a “built” directory containing the compiled binaries and libraries. installpanda.py then installs the contents of that “built” directory into the appropriate location. You should not pass makepanda flags to installpanda.
However, in the case of debian, you should not use installpanda at all. You can instead pass the --installer flag (along with the others) to makepanda.py, which will cause it to generate a .deb archive that you can install.

  1. Most options disable or enable a particular feature. You should generally use “–everything” to compile with support for everything that’s available on your system. Makepanda will output which libraries weren’t found on the system, which should be an indicator of what you should install to get support for the features that you want. (For instance, for OpenAL support, you’ll need to install something like libopenal-dev.) --use-pandatool/–no-pandatool enables or disables the “pandatool” tree, which contains various tools to convert between model formats. --use-openal enables support for the OpenAL audio library.
    But again, --everything is the same as specifying all --use options - makepanda will automatically omit the packages that you don’t have on your system.
    –optimize 4 should only be used for release builds. It removes almost all error checking, so that even passing the wrong parameter to a function will make it crash.

That certainly answered most of my questions, but I have problem with running makepanda.py.

I tried following your recommendations, but when running

python makepanda/makepanda.py --everything --verbose --prefix /home/user/panda3d --installer 

the script printed out the help info. It only compiled when I omitted the --prefix option. Is there some other way to ensure that this method can be used to install panda3d to a local folder?

Not when using the installer. If you want a custom install location, you’ll need to invoke installpanda as a separate step (passing --prefix to installpanda) instead of using --installer.