make.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. SMARTDNS_CONF=$SMARTDNS_DIR/etc/smartdns/smartdns.conf
  7. SMARTDNS_OPT=$CURR_DIR/smartdns-opt.conf
  8. showhelp()
  9. {
  10. echo "Usage: make [OPTION]"
  11. echo "Options:"
  12. echo " -o output directory."
  13. echo " --arch archtecture."
  14. echo " --ver version."
  15. echo " -h show this message."
  16. }
  17. build()
  18. {
  19. ROOT=/tmp/smartdns-optware
  20. rm -fr $ROOT
  21. mkdir -p $ROOT
  22. cp $CURR_DIR/* $ROOT/ -af
  23. cd $ROOT/
  24. mkdir $ROOT/opt/usr/sbin -p
  25. mkdir $ROOT/opt/etc/init.d -p
  26. mkdir $ROOT/opt/etc/smartdns/ -p
  27. cp $SMARTDNS_CONF $ROOT/opt/etc/smartdns/
  28. cp $SMARTDNS_OPT $ROOT/opt/etc/smartdns/
  29. cp $CURR_DIR/S50smartdns $ROOT/opt/etc/init.d/
  30. cp $SMARTDNS_BIN $ROOT/opt/usr/sbin
  31. sed -i "s/# *server-name smartdns/server-name smartdns/g" $ROOT/opt/etc/smartdns/smartdns.conf
  32. sed -i "s/^Architecture.*/Architecture: $ARCH/g" $ROOT/control/control
  33. sed -i "s/Version:.*/Version: $VER/" $ROOT/control/control
  34. cd $ROOT/control
  35. chmod +x *
  36. tar zcf ../control.tar.gz --owner=0 --group=0 ./
  37. cd $ROOT
  38. tar zcf data.tar.gz --owner=0 --group=0 opt
  39. tar zcf $OUTPUTDIR/smartdns.$VER.$FILEARCH.ipk --owner=0 --group=0 control.tar.gz data.tar.gz debian-binary
  40. rm -fr $ROOT/
  41. }
  42. main()
  43. {
  44. OPTS=`getopt -o o:h --long arch:,ver:,filearch: \
  45. -n "" -- "$@"`
  46. if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
  47. # Note the quotes around `$TEMP': they are essential!
  48. eval set -- "$OPTS"
  49. while true; do
  50. case "$1" in
  51. --arch)
  52. ARCH="$2"
  53. shift 2;;
  54. --filearch)
  55. FILEARCH="$2"
  56. shift 2;;
  57. --ver)
  58. VER="$2"
  59. shift 2;;
  60. -o )
  61. OUTPUTDIR="$2"
  62. shift 2;;
  63. -h | --help )
  64. showhelp
  65. return 0
  66. shift ;;
  67. -- ) shift; break ;;
  68. * ) break ;;
  69. esac
  70. done
  71. if [ -z "$ARCH" ]; then
  72. echo "please input arch."
  73. return 1;
  74. fi
  75. if [ -z "$FILEARCH" ]; then
  76. FILEARCH=$ARCH
  77. fi
  78. if [ -z "$OUTPUTDIR" ]; then
  79. OUTPUTDIR=$CURR_DIR;
  80. fi
  81. build
  82. }
  83. main $@
  84. exit $?