|
|
@@ -156,7 +156,8 @@ before it. The packages are, in order:
|
|
|
support libraries (like HTTPClient) that Panda provides. At the
|
|
|
moment, most people probably won't find anything useful here, but
|
|
|
you're welcome to browse; and we will probably add more
|
|
|
- applications later.
|
|
|
+ applications later. You must build and install dtool, panda, anda
|
|
|
+ pandatool before you can build pandaapp.
|
|
|
|
|
|
In graphical form, here are the packages along with a few extras:
|
|
|
|
|
|
@@ -208,42 +209,50 @@ platforms easily.
|
|
|
HOW TO CONFIGURE PANDA FOR YOUR ENVIRONMENT
|
|
|
|
|
|
When you run ppremake within a Panda source tree, it reads in a number
|
|
|
-of configure variable definitions given in the file Config.pp in the
|
|
|
-root of the dtool package. Many of these variables will already have
|
|
|
-definitions that are sensible for you; some will not. You must
|
|
|
-customize these variables before you run ppremake.
|
|
|
+of configuration variable definitions given in the file Config.pp in
|
|
|
+the root of the dtool package, as well as in a custom Config.pp file
|
|
|
+that you specify. Many of the variables in dtool/Config.pp will
|
|
|
+already have definitions that are sensible for you; some will not.
|
|
|
+You must customize these variables before you run ppremake.
|
|
|
|
|
|
Normally, rather than modifying dtool/Config.pp directly, you should
|
|
|
-create your own, empty Config.pp file. By default, this file will be
|
|
|
-found in the root of the Panda install directory, but you may put it
|
|
|
-elsewhere if you prefer by setting the environment variable
|
|
|
-PPREMAKE_CONFIG to its full filename path (more on this in the
|
|
|
-platform-specific installation notes, below).
|
|
|
+create your own, empty Config.pp file. By default, this file should
|
|
|
+be stored in the root of the Panda install directory, as specified
|
|
|
+when you built ppremake, but you may put it elsewhere if you prefer by
|
|
|
+setting the environment variable PPREMAKE_CONFIG to its full filename
|
|
|
+path (more on this in the platform-specific installation notes,
|
|
|
+below).
|
|
|
|
|
|
The definitions you give in your personal Config.pp file will override
|
|
|
-those in the source directory. It is also possible simply to modify
|
|
|
-dtool/Config.pp, but this is not recommended as it makes it difficult
|
|
|
-to remember which customizations you have made, and makes installing
|
|
|
-updated versions of Panda problematic.
|
|
|
+those given in the file within dtool. It is also possible simply to
|
|
|
+modify dtool/Config.pp, but this is not recommended as it makes it
|
|
|
+difficult to remember which customizations you have made, and makes
|
|
|
+installing updated versions of Panda problematic.
|
|
|
|
|
|
The syntax of the Config.pp file is something like a cross between the
|
|
|
-C preprocessor and Makefile syntax. The full syntax of ppremake
|
|
|
-input scripts is described in more detail in another document, but the
|
|
|
-most common thing you will need to do is set the value of a variable
|
|
|
-using the #define statement. Look in dtool/Config.pp for numerous
|
|
|
-examples of this.
|
|
|
+C preprocessor and Makefile syntax. The full syntax of ppremake input
|
|
|
+scripts is described in more detail in another document, but the most
|
|
|
+common thing you will need to do is set the value of a variable using
|
|
|
+the #define statement (or the mostly equivalent #defer statement).
|
|
|
+Look in dtool/Config.pp for numerous examples of this.
|
|
|
|
|
|
Some of the variables you may define within the Config.pp file hold a
|
|
|
true or a false value by nature. It is important to note that you
|
|
|
indicate a variable is true by defining it to some nonempty string
|
|
|
(e.g. "yes" or "1"), and false by defining it to nothing. For
|
|
|
example:
|
|
|
+
|
|
|
#define HAVE_DX 1
|
|
|
+
|
|
|
Indicates you have the DirectX SDK installed, while
|
|
|
+
|
|
|
#define HAVE_DX
|
|
|
-Indicates you do not. Do not be tempted to define HAVE_DX to "no" or
|
|
|
-"0"; since these are both nonempty strings, they are considered to
|
|
|
-represent "true"!
|
|
|
+
|
|
|
+Indicates you do not. Do not be tempted to define HAVE_DX to no or 0;
|
|
|
+since these are both nonempty strings, they are considered to
|
|
|
+represent true! Also, don't try to use a pair of quotation marks to
|
|
|
+represent the empty string, since the quotation marks become part of
|
|
|
+the string (which is thus nonempty).
|
|
|
|
|
|
The comments within dtool/Config.pp describe a more complete list of
|
|
|
the variables you may define. The ones that you are most likely to
|
|
|
@@ -251,22 +260,32 @@ find useful are:
|
|
|
|
|
|
INSTALL_DIR - this is the prefix of the directory hierarchy into
|
|
|
which Panda should be installed. If this is not defined, the
|
|
|
- default for Unix systems is taken from the configure parameter to
|
|
|
- ppremake (usually /usr/local/panda); for Windows machines the
|
|
|
- default is C:\Panda3d.
|
|
|
+ default value is compiled into ppremake. A full description on
|
|
|
+ setting this parameter is given below in the section describing
|
|
|
+ how to build ppremake. On Unix systems this is taken from the
|
|
|
+ --prefix parameter to configure (usually /usr/local/panda); for
|
|
|
+ Windows users it is specified in config_msvc.h, and is set to
|
|
|
+ C:\Panda3d unless you modify it.
|
|
|
|
|
|
OPTIMIZE - define this to 1, 2, 3, or 4. This is not the same thing
|
|
|
as compiler optimization level; our four levels of OPTIMIZE define
|
|
|
broad combinations of compiler optimizations and debug symbols:
|
|
|
|
|
|
1 - No compiler optimizations, full debug symbols
|
|
|
- 2 - Full compiler optimizations, full debug symbols
|
|
|
- (if the compiler supports this)
|
|
|
- 3 - Full compiler optimizations, no debug symbols, non-debug heap
|
|
|
+ Windows: debug heap
|
|
|
+ 2 - Full compiler optimizations, debug symbols
|
|
|
+ Windows: debug heap
|
|
|
+ 3 - Full compiler optimizations,
|
|
|
+ Unix: no debug symbols
|
|
|
+ Windows: non-debug heap, debug symbols available in pdb files
|
|
|
4 - Full optimizations, no debug symbols, and asserts removed
|
|
|
+ Windows: non-debug heap
|
|
|
|
|
|
- Usually OPTIMIZE 2 or 3 is the most appropriate choice for
|
|
|
- development work.
|
|
|
+ Usually OPTIMIZE 3 is the most appropriate choice for development
|
|
|
+ work. We recommend OPTIMIZE 4 only for final QA and/or
|
|
|
+ distribution of a shippable product, never for any development or
|
|
|
+ alpha testing; and we recommend OPTIMIZE levels 1 and 2 only for
|
|
|
+ active development of the C++ code within Panda.
|
|
|
|
|
|
PYTHON_IPATH / PYTHON_LPATH / PYTHON_LIBS - the full pathname to
|
|
|
Python header files, if Python is installed on your system. As of
|
|
|
@@ -295,6 +314,9 @@ find useful are:
|
|
|
somewhere else on your machine, you can fill in the pathnames
|
|
|
here.)
|
|
|
|
|
|
+ Similar *_IPATH / *_LPATH / *_LIBS variables for other optional
|
|
|
+ third-party libraries.
|
|
|
+
|
|
|
|
|
|
|
|
|
HOW TO BUILD PANDA ON A UNIX SYSTEM
|
|
|
@@ -312,7 +334,6 @@ You may choose an alternate installation directory by using the
|
|
|
We recommend giving yourself write permission to this directory, so
|
|
|
that you can run 'make install' and similar scripts that will need to
|
|
|
write to this installation directory, without having to be root.
|
|
|
-
|
|
|
su root
|
|
|
mkdir /usr/local/panda
|
|
|
chown <your-user-name> /usr/local/panda
|
|
|
@@ -347,8 +368,8 @@ BUILD_FROM_CVS.txt in the ppremake source directory.
|
|
|
|
|
|
As mentioned above, the default installation directory is
|
|
|
/usr/local/panda. Thus, ppremake will install itself into
|
|
|
-/usr/local/panda/bin. If you prefer, you can install it in another
|
|
|
-directory by doing something like this:
|
|
|
+/usr/local/panda/bin. If you prefer, you can install Panda into
|
|
|
+another directory by doing something like this:
|
|
|
|
|
|
./configure --prefix=/my/install/directory
|
|
|
make
|
|
|
@@ -368,11 +389,11 @@ In bash:
|
|
|
PPREMAKE_CONFIG=~/Config.pp
|
|
|
export PPREMAKE_CONFIG
|
|
|
|
|
|
-You may find it a good idea to make these environment settings in your
|
|
|
-.cshrc or .bashrc file so that they will remain set for future sessions.
|
|
|
+You may find it a good idea to make this and other environment
|
|
|
+settings in your .cshrc or .bashrc file so that they will remain set
|
|
|
+for future sessions.
|
|
|
|
|
|
-Now that you have ppremake, you can test the configuration settings in
|
|
|
-your Config.pp file.
|
|
|
+Now you can test the configuration settings in your Config.pp file:
|
|
|
|
|
|
cd ~/panda3d/dtool
|
|
|
ppremake
|
|
|
@@ -386,10 +407,15 @@ way you expect.
|
|
|
|
|
|
Note that ppremake will also try to create several subdirectories in
|
|
|
the install directory, so you must have write access to the install
|
|
|
-directory in order for ppremake to run successfully.
|
|
|
+directory in order for ppremake to run completely successfully. If
|
|
|
+you did not choose to give yourself write access to the install
|
|
|
+directory, you may run ppremake as root; in this case we recommend
|
|
|
+running ppremake first as a normal user in order to compile, and then
|
|
|
+running ppremake again as root just before running make install as
|
|
|
+root.
|
|
|
|
|
|
-Now you can build the Panda3D sources. Begin with dtool (the current
|
|
|
-directory):
|
|
|
+Now that you have run ppremake, you can build the Panda3D sources.
|
|
|
+Begin with dtool (the current directory):
|
|
|
|
|
|
make
|
|
|
make install
|
|
|
@@ -405,9 +431,10 @@ build and install panda:
|
|
|
After installing panda, you are almost ready to run the program
|
|
|
"pview," which is a basic model viewer program that demonstrates some
|
|
|
Panda functionality. Successfully running pview proves that Panda is
|
|
|
-now installed and configured correctly. However, you must set up a
|
|
|
-Configrc file to set your runtime configuration options before you can
|
|
|
-run Panda and open up a graphics window. See HOW TO RUN PANDA, below.
|
|
|
+installed and configured correctly (at least as a C++ library).
|
|
|
+However, you must set up a Configrc file to set your runtime
|
|
|
+configuration options before you can run Panda and open up a graphics
|
|
|
+window. See HOW TO RUN PANDA, below.
|
|
|
|
|
|
If you wish, you may also build direct. You only need to build this
|
|
|
if you intend to use the Python interfaces.
|
|
|
@@ -573,7 +600,7 @@ PANDA FOR YOUR ENVIRONMENT, above.
|
|
|
edit C:\Panda3d\Config.pp
|
|
|
|
|
|
|
|
|
-Now you should be able to build dtool.
|
|
|
+Now you can test the configuration settings in your Config.pp file:
|
|
|
|
|
|
C:
|
|
|
cd \Panda3d\dtool
|
|
|
@@ -586,10 +613,14 @@ settings of many of the options you have configured. You should
|
|
|
examine this file now to ensure that your settings have been made the
|
|
|
way you expect.
|
|
|
|
|
|
+Now that you have run ppremake, you can build the Panda3D sources.
|
|
|
+Begin with dtool (the current directory):
|
|
|
+
|
|
|
make
|
|
|
make install
|
|
|
|
|
|
-Once dtool is fully built and installed, you can build panda.
|
|
|
+Once you have successfully built and installed dtool, you can then
|
|
|
+build and install panda:
|
|
|
|
|
|
cd \Panda3d\panda
|
|
|
ppremake
|
|
|
@@ -599,9 +630,10 @@ Once dtool is fully built and installed, you can build panda.
|
|
|
After installing panda, you are almost ready to run the program
|
|
|
"pview," which is a basic model viewer program that demonstrates some
|
|
|
Panda functionality. Successfully running pview proves that Panda is
|
|
|
-now installed and configured correctly. However, you must set up a
|
|
|
-Configrc file to set your runtime configuration options before you can
|
|
|
-run Panda and open up a graphics window. See HOW TO RUN PANDA, below.
|
|
|
+now installed and configured correctly (at least as a C++ library).
|
|
|
+However, you must set up a Configrc file to set your runtime
|
|
|
+configuration options before you can run Panda and open up a graphics
|
|
|
+window. See HOW TO RUN PANDA, below.
|
|
|
|
|
|
If you wish, you may also build direct. You only need to build this
|
|
|
if you intend to use the Python interfaces.
|
|
|
@@ -643,9 +675,9 @@ being found, check that your LD_LIBRARY_PATH setting (on Unix) or your
|
|
|
PATH (on Windows) includes the directory in which all of the Panda
|
|
|
libraries have been installed. (This is normally $INSTALL_DIR/lib, or
|
|
|
whatever you set INSTALL_DIR to followed by "lib". On Unix, this
|
|
|
-defaults to /usr/local/panda/lib. If you have defined INSTALL_LIB_DIR
|
|
|
-in your Config.pp, for instance to define Panda as a native Python
|
|
|
-module, you should use this directory instead.)
|
|
|
+defaults to /usr/local/panda/lib. If you have redefined
|
|
|
+INSTALL_LIB_DIR in your Config.pp, for instance to define Panda as a
|
|
|
+native Python module, you should use that directory instead.)
|
|
|
|
|
|
If you do get the above error message, you will need to create a
|
|
|
Configrc file to indicate some run-time parameters. This is different
|
|
|
@@ -659,8 +691,8 @@ convention, your custom Configrc file should not have any extension,
|
|
|
not even the extension ".txt"; this differentiates it from the
|
|
|
standard Configrc files which are also installed into the
|
|
|
$INSTALL_DIR/etc file (and having no extension causes your file to be
|
|
|
-loaded first, so your personal settings will override those in the
|
|
|
-other files).
|
|
|
+sorted to the top of the list, so that your personal settings will
|
|
|
+override those in the other files).
|
|
|
|
|
|
For now, add just the line:
|
|
|
|
|
|
@@ -692,8 +724,8 @@ wherever you put the Configrc file). Note that if you redefine
|
|
|
CONFIGRC_DIR, you will no longer automatically load the standard
|
|
|
Configrc files that were installed into $INSTALL_DIR/etc. It is
|
|
|
possible to configure Panda to search for Configrc files in more than
|
|
|
-one directory, but this is a little more complicated and is outside
|
|
|
-the scope of this document.
|
|
|
+one directory, but that's a little more complicated and is outside the
|
|
|
+scope of this document.
|
|
|
|
|
|
|
|
|
|
|
|
@@ -713,7 +745,7 @@ Config.pp file, then Python should have been detected by ppremake, and
|
|
|
it would have generated makefiles to build these wrappers
|
|
|
automatically. (You would have seen the program "interrogate" running
|
|
|
within each directory as panda was building, and you will have a
|
|
|
-number of *.in files installed into $INSTALL_DIR/etc.)
|
|
|
+number of *.in files now installed into $INSTALL_DIR/etc.)
|
|
|
|
|
|
If, for some reason, the interrogate program did not run, perhaps
|
|
|
because you defined an invalid directory in PYTHON_IPATH, you can go
|
|
|
@@ -738,20 +770,20 @@ standard Python module, so that it is not necessary to modify your
|
|
|
PYTHONPATH variable; see "Installing Panda as a standard Python
|
|
|
module", below.
|
|
|
|
|
|
-The second part to the Python interface is a series of Python wrapper
|
|
|
-classes that are generated, for each C++ class detected by
|
|
|
-interrogate. These classes must be generated after all of the C++
|
|
|
-code has been compiled and installed. Execute the following command
|
|
|
-(you might need to type rehash first if you use csh):
|
|
|
+The second part to the Python interface is a series of generated
|
|
|
+Python wrapper classes, for each C++ class detected by interrogate.
|
|
|
+These classes must be generated after all of the C++ code has been
|
|
|
+compiled and installed. Execute the following command (you might need
|
|
|
+to type rehash first if you use csh):
|
|
|
|
|
|
genPyCode
|
|
|
|
|
|
This is a script that was installed into $INSTALL_DIR/bin as part of
|
|
|
the build of direct. It invokes Python to read the *.in files
|
|
|
generated by interrogate, and generates the appropriate wrapper
|
|
|
-functions, which are written into $INSTALL_DIR/lib/pandac. (There
|
|
|
-will be several hundred generated Python modules, which are normally
|
|
|
-"squeezed" into a single file called PandaModules.pyz using
|
|
|
+functions, which are then written into $INSTALL_DIR/lib/pandac.
|
|
|
+(There will be several hundred generated Python modules, which are
|
|
|
+normally "squeezed" into a single file called PandaModules.pyz using
|
|
|
PythonWare's SqueezeTool. This squeeze step gives a significant
|
|
|
load-time speedup, especially on Windows; but if it causes problems,
|
|
|
you can use the option -n, e.g. 'genPyCode -n', to avoid it.)
|
|
|
@@ -776,8 +808,8 @@ Config.pp:
|
|
|
#define INSTALL_LIB_DIR /usr/lib/python2.2/site-packages
|
|
|
|
|
|
Where you give the actual path to the site-packages directory for your
|
|
|
-particular installation of Python. On Windows, this will probably be
|
|
|
-something like this:
|
|
|
+particular installation of Python. On Windows, this will probably
|
|
|
+look something like this:
|
|
|
|
|
|
#define INSTALL_LIB_DIR C:\Python22\Lib\site-packages
|
|
|
|
|
|
@@ -788,8 +820,8 @@ directory.
|
|
|
|
|
|
You may also need to set your LD_LIBRARY_PATH (on Unix) or PATH (on
|
|
|
Windows) to reference this new directory instead of $INSTALL_DIR/lib,
|
|
|
-especially if you want to be able run pview or any of the model
|
|
|
-converters occasionally.
|
|
|
+especially if you want to be able to run any of the Panda standalone
|
|
|
+programs occasionally, like pview or any of the model converters.
|
|
|
|
|
|
Unix users should note that you must have write permission to the
|
|
|
site-packages directory in order to install files there. You may
|
|
|
@@ -797,3 +829,35 @@ choose to run these install steps (ppremake, make install, genPyCode)
|
|
|
as root to avoid this problem. If you encounter difficulty running
|
|
|
genPyCode as root, make sure that you still have LD_LIBRARY_PATH
|
|
|
defined appropriately once you have become root.
|
|
|
+
|
|
|
+
|
|
|
+Testing the Python interface
|
|
|
+
|
|
|
+Assuming that you have already set up your Configrc file and tested
|
|
|
+that pview works, as described above in HOW TO RUN PANDA, you should
|
|
|
+now be ready to try to run Panda from within Python. Start up a
|
|
|
+Python shell and type the following command:
|
|
|
+
|
|
|
+ Python 2.2.2 (#37, Feb 10 2003, 18:00:06) [MSC 32 bit (Intel)] on win32
|
|
|
+ Type "help", "copyright", "credits" or "license" for more information.
|
|
|
+ >>> import direct.directbase.DirectStart
|
|
|
+
|
|
|
+You should see a graphics window come up, very similar to the one you
|
|
|
+saw when you ran pview. To load a particular model file into the
|
|
|
+scene, try something like this:
|
|
|
+
|
|
|
+ >>> m = loader.loadModel('/c/Panda3d/models/teapot.egg')
|
|
|
+ >>> m.reparentTo(render)
|
|
|
+
|
|
|
+Note that Panda expects a forward-slash convention for pathnames, with
|
|
|
+no leading drive letter, even on a Windows system. See the full
|
|
|
+description of how Panda maps these pathnames to Windows pathnames in
|
|
|
+HOW TO BUILD PANDA ON A WINDOWS SYSTEM, USING CYGWIN, above.
|
|
|
+
|
|
|
+You can now move the teapot around with the mouse, just as in pview
|
|
|
+(you may need to pull the camera back with the right mouse button in
|
|
|
+order to see the teapot).
|
|
|
+
|
|
|
+Congratulations! Panda 3D is now successfully installed. See the
|
|
|
+online documentation available at http://www.etc.cmu.edu/panda3d/ for
|
|
|
+more help about where to go next.
|