| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #!/bin/bash
- usage="build [\"\"|new|uninstall|install|clean|only|genpy [\"\"|dtool|panda|direct|<relative path>] ]"
- usage=$(cat <<-EOS
- Usage: ./$(basename $0) [ mode [ module [ package ] ] ]
-
- [Be sure to cd to the panda3d directory first.]
-
- mode ""|new|uninstall|install|clean|only|genpy|--help
- module ""|dtool|panda|direct|<relative path>
- package one of the */src/* directories.
- Examples:
- ./build new
- ./build install
- ./build install panda
- ./build clean
- ./build clean panda
- ./build genpy
- ./build only panda express
- ./build quick panda express
- EOS
- )
- mode=$1
- module=$2
- base=$(pwd)
- wantGenPy=1
- #trap "exit" INT
- if [ "$mode" == "--help" ]; then
- echo "$usage"
- exit
- fi
- echo -e "\nSetting up build environment\n"
- if [ -f ./build_env ]; then
- source ./build_env || exit
- fi
- modules="dtool panda pandatool direct $modules"
- if [ "$module" != "" ]; then
- modules="$module"
- fi
- case "$mode" in
- ( only )
- cd $base/$module || exit
- ppremake || exit
- make uninstall install || exit
- modules_ppremake=""
- modules_clean=""
- modules_uninstall=""
- modules_install=""
- ;;
- ( quick )
- cd $base/$module/src/$3 || exit
- make || exit
- cd $base/$module || exit
- make install || exit
- wantGenPy=0
- modules_ppremake=""
- modules_clean=""
- modules_uninstall=""
- modules_install=""
- ;;
- ( new )
- # ...build the newest version of the code:
- echo -e "\nUpdating cvs\n"
- cd "$base" || exit
- ./cvs_update || exit
- cd "$base" || exit
- # This next command is allowed to fail (no || exit):
- echo -e "\nBuilding tags file\n"
- ctags -nR -h '+.I' --langmap='c:+.I' -h '+.T' --langmap='c:+.T' --fields=fmisS
- modules_ppremake=$modules
- modules_clean="direct $modules_clean"
- modules_uninstall=$modules
- modules_install=$modules
- ;;
- ( ppremake )
- modules_ppremake=$modules
- modules_clean=""
- modules_uninstall=""
- modules_install=""
- ;;
- ( clean )
- modules_ppremake=$modules
- modules_clean=$modules
- modules_uninstall=""
- modules_install=""
- ;;
- ( uninstall )
- modules_ppremake=$modules
- modules_clean=""
- modules_uninstall=$modules
- modules_install=""
- ;;
- ( install )
- modules_ppremake=$modules
- modules_clean=""
- modules_uninstall=$modules
- modules_install=$modules
- ;;
- ( "" )
- modules_ppremake=$modules
- # Some modules are small enough that we clean them for good measure:
- modules_clean="direct $modules_clean"
- modules_uninstall=$modules
- modules_install=$modules
- ;;
- ( genpy )
- modules_ppremake=""
- modules_clean=""
- modules_uninstall=""
- modules_install=""
- ;;
- ( * )
- echo -e "\nThat mode is not recognized ($mode)"
- echo "$usage"
- exit 1
- ;;
- esac
- echo " modules_ppremake =$modules_ppremake"
- echo " modules_clean =$modules_clean"
- echo " modules_uninstall =$modules_uninstall"
- echo " modules_install =$modules_install"
- for i in $modules_ppremake; do
- echo -e "\nStarting Ppremake of $i\n"
- cd "$base/$i" || exit
- ppremake || exit
- done
- for i in $modules_clean; do
- echo -e "\nStarting Clean of $i\n"
- cd "$base/$i" || exit
- make clean || exit
- done
- for i in $modules_uninstall; do
- echo -e "\nStarting Uninstall of $i\n"
- cd "$base/$i" || exit
- make uninstall || exit
- done
- for i in $modules_install; do
- echo -e "\nStarting Install (build) of $i\n"
- cd "$base/$i" || exit
- make install || exit
- done
- if (($wantGenPy)); then
- # Generate Python code:
- echo "Generating Python/C++ interface code"
- #cd $base || exit
- genPyCode || exit
- fi
- echo "done"
|