Преглед изворни кода

This should be at the root of panda3d maybe I'll move it later

Dave Schuyler пре 21 година
родитељ
комит
7f1efe3c04
1 измењених фајлова са 161 додато и 0 уклоњено
  1. 161 0
      doc/build

+ 161 - 0
doc/build

@@ -0,0 +1,161 @@
+#!/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"
+