make.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/bin/sh
  2. CURR_DIR=$(cd $(dirname $0);pwd)
  3. VER="`date +"1.%Y.%m.%d-%H%M"`"
  4. SMARTDNS_DIR=$CURR_DIR/../../
  5. SMARTDNS_BIN=$SMARTDNS_DIR/src/smartdns
  6. showhelp()
  7. {
  8. echo "Usage: make [OPTION]"
  9. echo "Options:"
  10. echo " -o output directory."
  11. echo " --arch archtecture."
  12. echo " --ver version."
  13. echo " -h show this message."
  14. }
  15. build()
  16. {
  17. PKG_ROOT=/tmp/smartdns-linux
  18. rm -fr $PKG_ROOT
  19. mkdir -p $PKG_ROOT/smartdns
  20. cd $PKG_ROOT/
  21. # Generic x86_64
  22. mkdir $PKG_ROOT/smartdns/src -p
  23. mkdir $PKG_ROOT/smartdns/package -p
  24. cd $SMARTDNS_DIR
  25. cp package/windows $PKG_ROOT/smartdns/package/ -a
  26. cp etc systemd *.md LICENSE install $PKG_ROOT/smartdns/ -a
  27. cp src/smartdns $PKG_ROOT/smartdns/src -a
  28. if [ $? -ne 0 ]; then
  29. echo "copy smartdns file failed"
  30. rm -fr $PKG_ROOT
  31. exit 1
  32. fi
  33. cd $PKG_ROOT
  34. tar zcf $OUTPUTDIR/smartdns.$VER.$FILEARCH.tar.gz smartdns
  35. if [ $? -ne 0 ]; then
  36. echo "create package failed"
  37. rm -fr $PKG_ROOT
  38. exit 1
  39. fi
  40. cd $CURR_DIR
  41. rm -fr $PKG_ROOT
  42. }
  43. main()
  44. {
  45. OPTS=`getopt -o o:h --long arch:,ver:,filearch: \
  46. -n "" -- "$@"`
  47. if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
  48. # Note the quotes around `$TEMP': they are essential!
  49. eval set -- "$OPTS"
  50. while true; do
  51. case "$1" in
  52. --arch)
  53. ARCH="$2"
  54. shift 2;;
  55. --filearch)
  56. FILEARCH="$2"
  57. shift 2;;
  58. --ver)
  59. VER="$2"
  60. shift 2;;
  61. -o )
  62. OUTPUTDIR="$2"
  63. shift 2;;
  64. -h | --help )
  65. showhelp
  66. return 0
  67. shift ;;
  68. -- ) shift; break ;;
  69. * ) break ;;
  70. esac
  71. done
  72. if [ -z "$ARCH" ]; then
  73. echo "please input arch."
  74. return 1;
  75. fi
  76. if [ -z "$FILEARCH" ]; then
  77. FILEARCH=$ARCH
  78. fi
  79. if [ -z "$OUTPUTDIR" ]; then
  80. OUTPUTDIR=$CURR_DIR;
  81. fi
  82. build
  83. }
  84. main $@
  85. exit $?