| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- Panda3D Install --- using the 'makepanda' system.
- NOTE: As the makepanda build system changes more frequently
- than this document, some of the information is outdated.
- MAKE SURE YOU HAVE ALL OF THE SOURCE CODE
- The easiest way to download the source for panda is to download the
- "source package" from the panda3d website. If you downloaded a file
- labeled "source package", then you have everything you need. Skip to
- the next section.
- Alternately, it is possible to download the source in pieces. There
- are three pieces:
- 1. Source code from Github.
- 2. Third-party tools (not strictly necessary for Unix)
- You will need both to use makepanda. You can find the
- pieces on the panda website. Look for the files labeled "Panda3D
- source". You can also obtain the first piece
- directly from the github:
- Over https:
- https://github.com/panda3d/panda3d.git
- Over SSH:
- [email protected]:panda3d/panda3d.git
-
- Make sure you have both pieces. If you do, then your panda
- directory will contain the following subdirectories:
- direct - piece 1, source code from github
- doc - piece 1, source code from github
- dtool - piece 1, source code from github
- makepanda - piece 1, source code from github
- models - piece 1, source code from github
- panda - piece 1, source code from github
- pandatool - piece 1, source code from github
- contrib - piece 1, source code from github
- samples - piece 1, source code from github
- thirdparty - piece 2, third party tools
- If you have all of these, you're ready to go. If not, then you
- must have missed a piece.
- Linux/FreeBSD users may omit the "thirdparty" tree, but this means
- they will need to have the thirdparty software installed on the system.
- INVOKING MAKEPANDA
- Makepanda is a script that builds panda, all the way through. To
- invoke it under windows, change directory to the root of the panda
- source tree and type this:
- makepanda\makepanda.bat
- To invoke it under Linux or OSX, change directory to the root of
- the panda source tree and type this:
- makepanda/makepanda.py
- From this point forward, I will not be including the directory name or
- the extension in my examples. I will simply assume that you know to
- add the correct extension as demanded by your operating system.
- BUILDING PANDA: QUICK START
- The easy way to build panda is to type:
- makepanda --everything
- This will compile panda with all the features. It can take several
- hours, depending on the speed of your machine.
- You may wish to add the --verbose option to the makepanda
- command to get more verbose output information. This is
- especially useful when you run into a compiler error.
- The resulting copy of panda will be found in a subdirectory 'built'
- inside the source tree. (Given that you did not override this
- with the --outputdir option)
- INSTALLING PANDA
- If you are using Windows, OSX or a Linux distribution that supports DEB or
- RPM packages, the recommended way to install Panda3D is to run makepanda
- with the --installer option and then install the resulting .exe, .deb, .rpm
- or .dmg package. This is a safe solution that makes sure all the files are
- installed in the correct places and all the paths are configured correctly.
- More information can be found below.
- Linux and FreeBSD users can install Panda3D manually, however, using the
- following sequence of commands (execute as root):
- python makepanda/installpanda.py --prefix /usr/local
- ldconfig
- MAKEPANDA COMMAND-LINE OPTIONS
- The default invocation of makepanda is a good way to test panda on
- your machine. However, it compiles several features that you probably
- don't need. To disable the extra features, you need to specify
- command-line options to makepanda. If you invoke:
- makepanda --help
- it will show you the available command-line options:
- --help (print the help message you're reading now)
- --verbose (print out more information)
- --runtime (build a runtime build instead of an SDK build)
- --installer (build an installer)
- --optimize X (optimization level can be 1,2,3,4)
- --version X (set the panda version number)
- --lzma (use lzma compression when building Windows installer)
- --distributor X (short string identifying the distributor of the build)
- --outputdir X (use the specified directory instead of 'built')
- --host URL (set the host url (runtime build only))
- --threads N (use the multithreaded build system. see manual)
- --osxtarget N (the OSX version number to build for (OSX only))
- --universal (build universal binaries (OSX only))
- --override "O=V" (override dtool_config/prc option value)
- --static (builds libraries for static linking)
- --target X (experimental cross-compilation (android only))
- --arch X (target architecture for cross-compilation)
- --use-python --no-python (enable/disable use of PYTHON)
- --use-direct --no-direct (enable/disable use of DIRECT)
- --use-gl --no-gl (enable/disable use of GL)
- --use-gles --no-gles (enable/disable use of GLES)
- --use-gles2 --no-gles2 (enable/disable use of GLES2)
- --use-dx9 --no-dx9 (enable/disable use of DX9)
- --use-tinydisplay --no-tinydisplay (enable/disable use of TINYDISPLAY)
- --use-nvidiacg --no-nvidiacg (enable/disable use of NVIDIACG)
- --use-egl --no-egl (enable/disable use of EGL)
- --use-eigen --no-eigen (enable/disable use of EIGEN)
- --use-openal --no-openal (enable/disable use of OPENAL)
- --use-fmodex --no-fmodex (enable/disable use of FMODEX)
- --use-vorbis --no-vorbis (enable/disable use of VORBIS)
- --use-ffmpeg --no-ffmpeg (enable/disable use of FFMPEG)
- --use-swscale --no-swscale (enable/disable use of SWSCALE)
- --use-swresample --no-swresample (enable/disable use of SWRESAMPLE)
- --use-ode --no-ode (enable/disable use of ODE)
- --use-bullet --no-bullet (enable/disable use of BULLET)
- --use-pandaphysics --no-pandaphysics (enable/disable use of PANDAPHYSICS)
- --use-speedtree --no-speedtree (enable/disable use of SPEEDTREE)
- --use-zlib --no-zlib (enable/disable use of ZLIB)
- --use-png --no-png (enable/disable use of PNG)
- --use-jpeg --no-jpeg (enable/disable use of JPEG)
- --use-tiff --no-tiff (enable/disable use of TIFF)
- --use-squish --no-squish (enable/disable use of SQUISH)
- --use-freetype --no-freetype (enable/disable use of FREETYPE)
- --use-maya6 --no-maya6 (enable/disable use of MAYA6)
- --use-maya65 --no-maya65 (enable/disable use of MAYA65)
- --use-maya7 --no-maya7 (enable/disable use of MAYA7)
- --use-maya8 --no-maya8 (enable/disable use of MAYA8)
- --use-maya85 --no-maya85 (enable/disable use of MAYA85)
- --use-maya2008 --no-maya2008 (enable/disable use of MAYA2008)
- --use-maya2009 --no-maya2009 (enable/disable use of MAYA2009)
- --use-maya2010 --no-maya2010 (enable/disable use of MAYA2010)
- --use-maya2011 --no-maya2011 (enable/disable use of MAYA2011)
- --use-maya2012 --no-maya2012 (enable/disable use of MAYA2012)
- --use-maya2013 --no-maya2013 (enable/disable use of MAYA2013)
- --use-maya20135 --no-maya20135 (enable/disable use of MAYA20135)
- --use-maya2014 --no-maya2014 (enable/disable use of MAYA2014)
- --use-maya2015 --no-maya2015 (enable/disable use of MAYA2015)
- --use-max6 --no-max6 (enable/disable use of MAX6)
- --use-max7 --no-max7 (enable/disable use of MAX7)
- --use-max8 --no-max8 (enable/disable use of MAX8)
- --use-max9 --no-max9 (enable/disable use of MAX9)
- --use-max2009 --no-max2009 (enable/disable use of MAX2009)
- --use-max2010 --no-max2010 (enable/disable use of MAX2010)
- --use-max2011 --no-max2011 (enable/disable use of MAX2011)
- --use-max2012 --no-max2012 (enable/disable use of MAX2012)
- --use-max2013 --no-max2013 (enable/disable use of MAX2013)
- --use-max2014 --no-max2014 (enable/disable use of MAX2014)
- --use-fcollada --no-fcollada (enable/disable use of FCOLLADA)
- --use-vrpn --no-vrpn (enable/disable use of VRPN)
- --use-openssl --no-openssl (enable/disable use of OPENSSL)
- --use-fftw --no-fftw (enable/disable use of FFTW)
- --use-artoolkit --no-artoolkit (enable/disable use of ARTOOLKIT)
- --use-opencv --no-opencv (enable/disable use of OPENCV)
- --use-directcam --no-directcam (enable/disable use of DIRECTCAM)
- --use-vision --no-vision (enable/disable use of VISION)
- --use-gtk3 --no-gtk3 (enable/disable use of GTK3)
- --use-npapi --no-npapi (enable/disable use of NPAPI)
- --use-mfc --no-mfc (enable/disable use of MFC)
- --use-wx --no-wx (enable/disable use of WX)
- --use-fltk --no-fltk (enable/disable use of FLTK)
- --use-carbon --no-carbon (enable/disable use of CARBON)
- --use-cocoa --no-cocoa (enable/disable use of COCOA)
- --use-x11 --no-x11 (enable/disable use of X11)
- --use-xf86dga --no-xf86dga (enable/disable use of XF86DGA)
- --use-xrandr --no-xrandr (enable/disable use of XRANDR)
- --use-xcursor --no-xcursor (enable/disable use of XCURSOR)
- --use-pandatool --no-pandatool (enable/disable use of PANDATOOL)
- --use-pview --no-pview (enable/disable use of PVIEW)
- --use-deploytools --no-deploytools (enable/disable use of DEPLOYTOOLS)
- --use-skel --no-skel (enable/disable use of SKEL)
- --use-pandafx --no-pandafx (enable/disable use of PANDAFX)
- --use-pandaparticlesystem --no-pandaparticlesystem (enable/disable use of PA
- NDAPARTICLESYSTEM)
- --use-contrib --no-contrib (enable/disable use of CONTRIB)
- --use-sse2 --no-sse2 (enable/disable use of SSE2)
- --use-neon --no-neon (enable/disable use of NEON)
- --use-touchinput --no-touchinput (enable/disable use of TOUCHINPUT)
- --nothing (disable every third-party lib)
- --everything (enable every third-party lib)
- --directx-sdk=X (specify version of DX9 SDK to use: jun2010, aug2009, mar200
- 9, aug2006)
- --platform-sdk=X (specify MSPlatSdk to use: win71, win61, win60A, winserver20
- 03r2)
- --use-icl (experimental setting to use an intel compiler instead of MS
- VC on Windows)
- Makepanda shows you all the available options, not all of which may be
- relevant to your operating system. For example, makepanda can build a
- plugin for 3D Studio Max. However, there is no 3D Studio Max for
- Linux, so the options --use-max# are irrelevant under Linux.
- SELECTING PANDA FEATURES
- Panda contains a large number of optional features. For example, if
- panda is compiled with PNG support, then panda will be able to load
- textures from PNG image files.
- Some of these features require the use of bulky third-party libraries.
- For example, 'helix' is a streaming video library from real networks.
- If you do not plan on using streaming video in your 3D world, then
- you may be interested in compiling panda without helix. This will
- shave several megabytes off of the panda libraries.
- To select panda features, you need to specify one of two different
- command-line options:
- makepanda --everything
- makepanda --nothing
- You can follow either of these with a list of specific exceptions.
- For example, you can say:
- makepanda --everything --no-helix --no-openssl
- makepanda --nothing --use-zlib --use-png
- If a certain package could not be found, it is automatically
- omitted and a warning message is shown when running makepanda.
- Please note that if you abort makepanda, and invoke it again, it
- will continue where it left off the last time you ran it. However,
- if you change the combination of selected features, the compilation
- process may start from scratch the next time you invoke makepanda.
- USING YOUR OWN LIBRARIES
- Panda3D uses a number of third-party libraries: libpng, libjpeg,
- openssl, etc. If you are using a Unix variant, many of these
- libraries come with the operating system. Panda3D will use these
- OS-supplied libraries where possible, so if your OS comes with a copy
- of libpng, Panda3D uses that.
- For convenience, the panda source distribution includes precompiled
- copies of many of the third-party libraries. You will find these
- libraries in a subdirectory labeled 'thirdparty'. If you are happy
- with the versions we have provided, then you don't need to do anything
- special.
- If you are not satisfied with the versions of the libraries we have
- provided, you may supply your own versions. To do so, duplicate the
- 'thirdparty' tree, substitute your own libraries, and then use
- the --thirdparty option to point makepanda to your libraries.
- THE EDIT-COMPILE-DEBUG CYCLE
- A small caution: if you invoke 'makepanda' with one set of options,
- and then invoke 'makepanda' using the exact same set of options, the
- second time will be fast. It will see that everything has already
- been built, and it will do no actual compilation. As a result,
- makepanda can be used as part of an edit-compile-debug cycle.
- However, if you invoke makepanda with a *different* set of options,
- makepanda may need to recompile and relink a lot of files. This is
- because several of those options change the values of '#define'
- headers, so changing the options requires a recompilation.
- It is all too easy to accidentally invoke 'makepanda' with the wrong
- options, thereby triggering an hour-long recompilation. To avoid this
- situation, we recommend that you write a short script containing the
- options you intend to use regularly. For example, I regularly compile
- panda without eigen. I have a very short Windows BAT file called
- "mkp.bat" that looks like this:
- @echo off
- makepanda --everything --no-eigen
- This helps me avoid accidentally typing makepanda with the wrong
- options.
- BUILDING A WINDOWS INSTALLER
- Under Windows, makepanda can create an executable installer. All you
- need to do is pass the --installer option to makepanda. The makepanda
- option --lzma will cause the installer to be compressed with LZMA
- compression, which is better, but it takes a long time to do the
- compression.
- BUILDING A LINUX DEB OR RPM PACKAGE
- Under Linux, passing the --installer option to makepanda will
- cause makepanda to try to build a deb or rpm package. For this to
- work, you have to be using a Linux distribution that includes either
- the dpkg-deb or rpmbuild binary.
- BUILDING A MACOSX DMG PACKAGE
- Under Mac OSX, you can also use the --installer option, which will
- generate a .dmg archive containing the Panda3D installation, which
- needs to be placed in your /Applications/ directory.
- The .dmg also contains a shell script that automatically sets up the
- library and python search paths in your .bash_profile file so you don't
- have to do that yourself every time you want to use Panda3D.
|