#! /bin/bash # This is just a helper script to generatePythonCode to cover # the three or four cases we use all the time # usage: genPyCode [opts] [linux|win-debug|win-release|win-publish|install|release] [other libs] # -g adds libgateway # -t adds libtoontown # -p adds libpirates # -v adds libvrpn # -e adds libpandaegg # -n doesn't perform a squeeze base_dir=$(pwd) extra_genPyCode_libs="" fSqueeze="squeezeMe" optimizeFlag="" ppython=ppython ppythonOptimizeFlag="" while getopts ogtpven flag; do case $flag in o) extra_genPyCode_libs="$extra_genPyCode_libs libotp" ;; g) extra_genPyCode_libs="$extra_genPyCode_libs libgateway" ;; t) extra_genPyCode_libs="$extra_genPyCode_libs libtoontown" ;; p) extra_genPyCode_libs="$extra_genPyCode_libs libpirates" ;; v) extra_genPyCode_libs="$extra_genPyCode_libs libvrpn" ;; e) extra_genPyCode_libs="$extra_genPyCode_libs libpandaegg" ;; n) fSqueeze="" ;; esac done shift `expr $OPTIND - 1` buildType="$1" shift extra_genPyCode_libs="$extra_genPyCode_libs $*" if [ "$INSTALL_DIR" != "" ]; then install_dir="$INSTALL_DIR" elif [ "$PANDA_INSTALL" != "" ]; then install_dir="$PANDA_INSTALL" elif [ "$DIRECT" != "" ]; then install_dir="$DIRECT" else install_dir=./install fi if [ "$DIRECT" == "" ]; then if [ "$PLAYER" != "" -a -d "$PLAYER/direct" ]; then DIRECT="$PLAYER/direct" elif [ -d direct ]; then DIRECT=direct else echo "Define PLAYER to point to the panda & direct source root." exit 1 fi fi pyDir=$DIRECT/lib/py extDir=$DIRECT/src/extensions pSqueezer=$DIRECT/src/showbase/pandaSqueezer.py if [ "$buildType" = "linux" ]; then cd $DIRECT/bin ppython -d generatePythonCode -v -d $pyDir -e $extDir -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit pSqueezer=$DIRECT/src/showbase/pandaSqueezer.py elif [ "$buildType" = "win-debug" ]; then cd $DIRECT/bin pyDir="$(cygpath -w $pyDir)" extDir="$(cygpath -w $extDir)" pSqueezer="$(cygpath -w $pSqueezer)" ppython -d generatePythonCode -v -d $pyDir -e $extDir -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit elif [ "$buildType" = "win-release" ]; then cd $DIRECT/bin pyDir="$(cygpath -w $pyDir)" extDir="$(cygpath -w $extDir)" pSqueezer="$(cygpath -w $pSqueezer)" ppython generatePythonCode -v -d $pyDir -e $extDir -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit elif [ "$buildType" = "win-publish" ]; then # no assertions, no comments, no docstrings cd $DIRECT/bin pyDir="$(cygpath -w $pyDir)" extDir="$(cygpath -w $extDir)" pSqueezer="$(cygpath -w $pSqueezer)" ppython -OO generatePythonCode -O -v -d $pyDir -e $extDir -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit optimizeFlag="-O" ppythonOptimizeFlag="-OO" elif [ "$buildType" = "install" ]; then # Use relative paths; as installed on a machine without ctattach etc. pyDir=$install_dir/lib/py ppython=$install_dir/bin/ppython pSqueezer=$DIRECT/src/showbase/pandaSqueezer.py $ppython -d $install_dir/bin/generatePythonCode -O -v -d $pyDir -e $DIRECT/src/extensions -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit elif [ "$buildType" = "release" ]; then # Use relative paths; as installed on a machine without ctattach etc. pyDir=$install_dir/lib/py ppython=$install_dir/bin/ppython pSqueezer=$DIRECT/src/showbase/pandaSqueezer.py $ppython $install_dir/bin/generatePythonCode -v -d $pyDir -e $DIRECT/src/extensions -i libdtoolconfig libpandaexpress libpanda libpandaphysics libdirect $extra_genPyCode_libs || exit else echo "Invalid parameter: $buildType" exit 1 fi if [ "$fSqueeze" = "squeezeMe" ]; then echo SQUEEZING PandaModules rm -f $pyDir/PandaModules.py* || exit $ppython $ppythonOptimizeFlag $pSqueezer $optimizeFlag -d $pyDir || exit else # renaming PandaModulesUnsqueezed.py to PandaModules.py cd $pyDir || exit rm -f PandaModules.py* || exit echo # junk line needed to keep mv from failing mv PandaModulesUnsqueezed.py PandaModules.py || exit fi echo DONE