make.sh 1.9 KB

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