From 87d4d768c549b168de56ab93b9cd274b3bba696a Mon Sep 17 00:00:00 2001 From: Josh Yelon Date: Tue, 22 Feb 2005 23:38:46 +0000 Subject: [PATCH] Updated to reflect changes in makepanda --- doc/doc/INSTALL-MK | 158 ++++++++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 72 deletions(-) diff --git a/doc/doc/INSTALL-MK b/doc/doc/INSTALL-MK index d4f3fd1adc..c8c429620e 100644 --- a/doc/doc/INSTALL-MK +++ b/doc/doc/INSTALL-MK @@ -10,30 +10,29 @@ Panda3D Install --- using the 'makepanda' system. INVOKING MAKEPANDA Makepanda is a script that builds panda, all the way through. To -invoke it under windows, type this: +invoke it under windows, change directory to the root of the panda +source tree and type this: - makepanda + makepanda\makepanda.bat -To invoke it under Linux, you need to type the 'py' extension -explicitly: +To invoke it under Linux, change directory to the root of the panda +source tree and type this: - makepanda.py + makepanda/makepanda.py -From this point forward, I will not be including the 'py' extension -in my examples, I will simply assume that you know to add it if your -OS requires it. +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 --default + makepanda --everything -This will compile panda with all the default options. The default is -to compile every feature, every subsystem, and every tool that can -possibly be built. It can take several hours, depending on the speed -of your machine. +This will compile panda with all the features. It can take several +hours, depending on the speed of your machine. The resulting copy of panda will be found in a subdirectory 'built' inside the source tree. You can invoke panda programs directly out of @@ -45,7 +44,7 @@ If you choose to do so, you must first copy the subdirectories and 'direct/src' into 'built/direct/src'. -BUILDING PANDA: COMMAND-LINE OPTIONS +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 @@ -60,74 +59,89 @@ it will show you the available command-line options: --optimize X (optimization level can be 1,2,3,4) --thirdparty X (directory containing third-party software) --complete (copy models, samples, direct into the build) - --no-installer (don't bother building the executable installer) + --installer (build an executable installer) --v1 X (set the major version number) --v2 X (set the minor version number) --v3 X (set the sequence version number) --lzma (use lzma compression when building installer) - --no-zlib (disable the use of ZLIB) - --no-png (disable the use of PNG) - --no-jpeg (disable the use of JPEG) - --no-tiff (disable the use of TIFF) - --no-vrpn (disable the use of VRPN) - --no-fmod (disable the use of FMOD) - --no-nvidiacg (disable the use of NVIDIACG) - --no-helix (disable the use of HELIX) - --no-nspr (disable the use of NSPR) - --no-openssl (disable the use of OPENSSL) - --no-freetype (disable the use of FREETYPE) - --no-fftw (disable the use of FFTW) - --no-miles (disable the use of MILES) - --no-maya5 (disable the use of MAYA5) - --no-maya6 (disable the use of MAYA6) - --no-max5 (disable the use of MAX5) - --no-max6 (disable the use of MAX6) - --no-max7 (disable the use of MAX7) + --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-vrpn --no-vrpn (enable/disable use of VRPN) + --use-fmod --no-fmod (enable/disable use of FMOD) + --use-nvidiacg --no-nvidiacg (enable/disable use of NVIDIACG) + --use-helix --no-helix (enable/disable use of HELIX) + --use-nspr --no-nspr (enable/disable use of NSPR) + --use-openssl --no-openssl (enable/disable use of OPENSSL) + --use-freetype --no-freetype (enable/disable use of FREETYPE) + --use-fftw --no-fftw (enable/disable use of FFTW) + --use-miles --no-miles (enable/disable use of MILES) + --use-maya5 --no-maya5 (enable/disable use of MAYA5) + --use-maya6 --no-maya6 (enable/disable use of MAYA6) + --use-max5 --no-max5 (enable/disable use of MAX5) + --use-max6 --no-max6 (enable/disable use of MAX6) + --use-max7 --no-max7 (enable/disable use of MAX7) - --no-nothing (don't use any of the third-party packages) - --default (use default options for everything not specified) + --nothing (disable every third-party lib) + --everything (enable every third-party lib) 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 5. However, there is no 3D Studio Max for -linux, so the option --no-max5 is largely irrelevant under Linux. +Linux, so the option --use-max5 is 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 Note that 'makepanda' is a new tool. The panda3d team has not had -time to test all the options. It is very likely that several do not -work. However, we have thoroughly tested the --default configuration, -which works flawlessly on the machines we own. +time to test every combination of options. It is likely that most +combinations do not work. The only combination we can vouch for at +this time is '--everything'. In the next release, we hope to be able +to vouch for a large number of different combinations. -The options you are most likely to be interested in are: ---no-installer: Under Windows, makepanda builds an installer --- a -neatly packaged EXE file containing a panda distribution. This takes -time and disk space, and you probably don't need to build your own -installer. This option is only relevant under Windows. +USING YOUR OWN LIBRARIES ---no-helix: Helix is realmedia's library of subroutines for playing -realvideo files, realaudio files, and streaming video and audio. It's -a large library, and unless you're planning on using this feature, you -might be able to shave several megabytes off your panda tree. This -option is only relevant under Windows. +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. ---no-openssl: Panda3D can download resources from encrypted websites. -Again, this is a large library, and unless you're planning on using -this feature, you might be able to shave several megabytes off your -panda tree. This option is much less useful under Linux, where openssl -is normally provided as a shared library, and therefore doesn't really -cost any disk space. +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. ---thirdparty: Panda3D uses a number of third-party libraries: libpng, -fftw, nspr, etc. Panda3D obtains these libraries from the host -operating system where possible, so if your OS comes with a copy of -libpng, Panda3D uses that. Those libraries which are not provided by -the host operating system are included in the source tar-ball under a -subdirectory 'thirdparty'. 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. +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 @@ -147,11 +161,11 @@ 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 helix and without the installer. I have a very short -Windows BAT file called "mkp.bat" that looks like this: +panda without helix. I have a very short Windows BAT file called +"mkp.bat" that looks like this: @echo off - makepanda --no-installer --no-helix + makepanda --everything --no-helix This helps me avoid accidentally typing makepanda with the wrong options. @@ -164,10 +178,10 @@ panda3d sources. BUILDING THE SOURCE TAR-BALL AND THE RPM -If you want to build an RPM, it is fairly easy to do so. First, you -need a panda source tar-ball. If you do not already have one, build -one using 'maketarball.py'. You will need to specify a version -number. +If you are using Linux and you want to build an RPM, it is fairly easy +to do so. First, you need a panda source tar-ball. If you do not +already have one, build one using 'maketarball.py'. You will need to +specify a version number. maketarball.py --v1 58 --v2 23 --v3 95