build.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. abspath=$(cd "$(dirname "$0")";pwd)
  3. source $abspath/func.sh
  4. if [ $# -lt 1 ] ;then
  5. echo "Usage:$0 all|clean" && exit
  6. fi
  7. root_path=$(pwd)
  8. system=$(uname -s)
  9. if [ "$system" == "Linux" ] ;then
  10. platform="linux"
  11. else
  12. platform="macosx"
  13. fi
  14. if [ "$1" == "all" ] ;then
  15. # compile skynet
  16. echo "开始编译skynet..."
  17. cd $root_path/skynet
  18. real_path=$(pwd)
  19. echo "cd $real_path"
  20. if [ "$platform" == "macosx" ] ;then
  21. make $platform MALLOC_STATICLIB= SKYNET_DEFINES=-DNOUSE_JEMALLOC
  22. else
  23. make $platform
  24. fi
  25. # compile 3rd
  26. echo "创建三方库目录..."
  27. cd $root_path
  28. mkdir -p ./lib/luaclib/
  29. mkdir -p ./lib/cservice
  30. echo "开始编译第三方库..."
  31. elif [ "$1" == "init" ] ; then
  32. echo "复制配置文件目录..."
  33. if [[ ! -n $2 ]]; then
  34. green_echo "请指明源路径" && exit
  35. fi
  36. echo $2
  37. echo $(pwd)
  38. rm -rf ./run/etc
  39. mkdir -p ./run/etc
  40. cp ./run/common/preload.lua ./run/etc/preload.lua
  41. cp ./run/common/public.conf ./run/etc/public.conf
  42. cp -rf ./run/$2/* ./run/etc/
  43. set_global
  44. cd $root_path
  45. echo "system = '$platform'" >> ./run/etc/public.conf
  46. nodeList=`get_process_list`
  47. loggerSet=`get_config loggerSet`
  48. for pname in ${nodeList[@]} ; do
  49. ori_node=`get_cluster_name ${pname}`
  50. blue_echo "new nodename: ${pname} clusterName: ${ori_node}"
  51. # if [[ ${ori_node} != ${pname} ]] ; then
  52. # fi
  53. cp -rf ./run/common/${ori_node}.conf ./run/etc/${pname}.conf
  54. if [ "$platform" == "macosx" ] ;then
  55. res=`sed -i "" "s/nodeName = \"${ori_node}\"/nodeName = \"${pname}\"/g" ./run/etc/${pname}.conf`
  56. else
  57. res=`sed -i "s/nodeName = \"${ori_node}\"/nodeName = \"${pname}\"/g" ./run/etc/${pname}.conf`
  58. fi
  59. if [[ ${loggerSet} = "add" ]]; then
  60. echo -e "\nlogger = root..\"log/${pname}.log\"\n" >> ./run/etc/${pname}.conf
  61. fi
  62. done
  63. exit 1
  64. elif [ "$1" == "clean" ] ; then
  65. rm -rf ./lib/luaclib/*.so
  66. rm -rf ./lib/cservice/*.so
  67. cd $root_path/skynet
  68. make $1
  69. fi
  70. echo -e "\n"
  71. cd $root_path/3rd
  72. real_path=$(pwd)
  73. sh build.sh $1