build 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. #!/bin/sh
  2. # Awk out the version from source
  3. ver="?.?.?"
  4. ver=`grep "char" src/main.c | awk '/egg_version/ {print $4}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
  5. numver=`grep "int" src/main.c | awk '/egg_numver =/ {print $4}' | sed -e 's/\;//g'`
  6. PACKNAME=`grep "PACKNAME " pack/pack.cfg | awk '/PACKNAME/ {print $2}'`
  7. clear
  8. case $[(`date '+%s'` % 5)] in
  9. 0) echo " *"
  10. echo " * * **"
  11. echo "** *** ** **"
  12. echo "** * ** **"
  13. echo " ** *** **** *** **** ******** **"
  14. echo " ** *** *** * **** **** * **** *** ******** ** ***"
  15. echo " ** *** **** ** **** * *** * *** ** ** * ***"
  16. echo " ** ** ** ** * **** ** ** *** ***"
  17. echo " ** ** ** ** ** ** ** ** ** **"
  18. echo " ** ** ** ** ** ** ** ** ** **"
  19. echo " ** ** ** ** ** ** ** ** ** **"
  20. echo " ** ** * ** ** ** ** ** ** **"
  21. echo " ******* ******* *** ** ** ** ** ** **"
  22. echo " ***** ***** *** ***** ** *** * ** ** **"
  23. echo " *** ** *** bryan ** **"
  24. echo " version ${ver}*"
  25. echo " *"
  26. echo " *"
  27. echo " *" ;;
  28. 1) echo " ::: === === :::==== :::==== ::: :::==== ::: ==="
  29. echo " ::: === === ::: === ::: === ::: :::==== ::: ==="
  30. echo " === === === ======= ======== === === ========"
  31. echo " =========== === === === === === === === ==="
  32. echo " ==== ==== === === === === === === === ==="
  33. echo " \`version ${ver}'"
  34. echo " \`-bryan-'" ;;
  35. 2) echo " .__ __ .__"
  36. echo ' __ _ ______________ |__|/ |_| |__'
  37. echo ' \ \/ \/ /\_ __ \__ \ | \ __\ | \'
  38. echo ' \ / | | \// __ \| || | | Y \'
  39. echo ' \/\_/ |__| (____ /__||__| |___| /'
  40. echo " - bryan - \/version ${ver}\/" ;;
  41. 3) echo " dBPdBPdBP dBBBBBb dBBBBBb dBP dBBBBBBP dBP dBP"
  42. echo " dBP BB"
  43. echo " dBPdBPdBP dBBBBK dBP BB dBP dBP dBBBBBP"
  44. echo " dBPdBPdBP dBP BB dBP BB dBP dBP dBP dBP"
  45. echo " dBBBBBBBP dBP dB' dBBBBBBB dBP dBP dBP dBP"
  46. echo " version ${ver} by bryan" ;;
  47. 4) echo " /"
  48. echo " # #/"
  49. echo " ### # ##"
  50. echo "## # ## ##"
  51. echo "## ## ##"
  52. echo " ## ### #### ### /### /### ### ########## /##"
  53. echo " ## ### ###/ ###/ #### / ###/ ########### ## / ###"
  54. echo " ## ### ### ## ###/ ### ## ## ##/ ###"
  55. echo " ## ## ## ## ## ## ## ## ## ##"
  56. echo " ## ## ## ## ## ## ## ## ## ##"
  57. echo " ## ## ## ## ## ## ## ## ## ##"
  58. echo " ## ## ## ## ## ## ## ## ## ##"
  59. echo " ## /# / ## ## /# ## ## ## ##"
  60. echo " ######/ ######/ ### ####/ ## ### /## ## ##"
  61. echo " ##### ##### ### ### ##/##/ ## ## ##"
  62. echo " \_version ${ver}/"
  63. echo " \_by bryan/"
  64. echo " /"
  65. echo " /" ;;
  66. esac
  67. echo
  68. usage()
  69. {
  70. echo "Usage: $0 [-c] [-d] [-t dir] [-T] [all|hub|leaf]"
  71. echo
  72. echo " The options are as follows:"
  73. echo " -c Cleans up old binaries/files before compile."
  74. echo " -d Builds a debug package."
  75. echo " -t dir Where to search for TCL libraries."
  76. echo " -T Builds TCL if it is not on the system."
  77. }
  78. debug=0
  79. all=0
  80. hub=0
  81. leaf=0
  82. clean=0
  83. type=
  84. tcldir=
  85. buildtcl=0
  86. while getopts t:Tcdh opt ; do
  87. case "$opt" in
  88. c) clean=1 ;;
  89. d) debug=1 ;;
  90. t) tcldir="$OPTARG" ;;
  91. h) usage; exit 0 ;;
  92. T) buildtcl=1 ;;
  93. *) usage; exit 1 ;;
  94. esac
  95. done
  96. shift $(($OPTIND - 1))
  97. if [ $buildtcl = "1" ]; then
  98. echo "Hold tight"
  99. misc/maketcl
  100. rm -rf tcl8.4.4*
  101. echo "Done. (You must run ./build again with normal parameters)"
  102. exit 0
  103. fi
  104. if test -z "$1"; then
  105. usage
  106. exit 1
  107. else
  108. if [ $1 = "all" ]; then
  109. all=1
  110. elif [ $1 = "leaf" ]; then
  111. leaf=1
  112. type="leaf"
  113. elif [ $1 = "hub" ]; then
  114. hub=1
  115. type="hub"
  116. else
  117. all=1
  118. # usage
  119. # exit 1
  120. fi
  121. fi
  122. if [ $debug = "1" ]; then
  123. d="d"
  124. else
  125. d=""
  126. fi
  127. if [ $all = "1" ]; then
  128. type="all"
  129. leaf=1
  130. hub=1
  131. fi
  132. ############# CHECK FOR pack/ FILES #################
  133. # Figure what bins we're making
  134. case `uname` in
  135. Linux) os=Linux;;
  136. FreeBSD) case `uname -r` in
  137. 5*) os=FreeBSD5;;
  138. 4*) os=FreeBSD4;;
  139. 3*) os=FreeBSD3;;
  140. esac;;
  141. OpenBSD) os=OpenBSD;;
  142. esac
  143. if test -z $os
  144. then
  145. echo "[!] Automated packaging disabled, `uname` isn't recognized"
  146. fi
  147. echo "[*] Building ${PACKNAME}::${type} for $os"
  148. # Run ./configure, then verify it's ok
  149. echo "[*] Configuring..."
  150. umask 077 >/dev/null
  151. if test -z "$tcldir"; then
  152. echo "[*] Searching for TCL in default paths (use '-t dir' to change)"
  153. ./configure --silent --disable-tcl-threads
  154. else
  155. echo "[*] Searching for TCL in: $tcldir"
  156. ./configure --silent --disable-tcl-threads --with-tcllib=${tcldir}/lib/libtcl8.4.a --with-tclinc=${tcldir}/include/tcl.h
  157. fi
  158. MAKE="`which gmake`"
  159. if test -z "${MAKE}"; then
  160. MAKE="`which make`"
  161. fi
  162. echo "[*] Using '${MAKE}'"
  163. # make clean, just in case
  164. if [ $clean = "1" ]; then
  165. echo "[*] Cleaning up old binaries/files..."
  166. ${MAKE} clean > /dev/null
  167. fi
  168. _leaf()
  169. {
  170. if [ $leaf = "1" ]; then
  171. # Build leaf and check
  172. echo "[*] Building ${d}leaf..."
  173. ${MAKE} ${d}leaf -s
  174. if ! test -f leaf
  175. then
  176. echo "[!] ${d}leaf build failed"
  177. exit 1
  178. fi
  179. fi
  180. }
  181. _hub()
  182. {
  183. if [ $hub = "1" ]; then
  184. # Build hub and check
  185. echo "[*] Building ${d}hub..."
  186. ${MAKE} ${d}hub -s
  187. if ! test -f hub
  188. then
  189. echo "[!] ${d}hub build failed"
  190. exit 1
  191. fi
  192. fi
  193. }
  194. if [ -f stamp.hub ]; then
  195. _hub
  196. _leaf
  197. else
  198. _leaf
  199. _hub
  200. fi
  201. # Wrap it nicely up into an archive
  202. echo "[*] Packaging..."
  203. if [ $all = "1" ]; then
  204. fls="leaf hub"
  205. elif [ $leaf = "1" ]; then
  206. fls="leaf"
  207. elif [ $hub = "1" ]; then
  208. fls="hub"
  209. fi
  210. if test -n "$d"; then
  211. d="-debug"
  212. fi
  213. for bin in $fls
  214. do
  215. mv -f $bin $bin.$os.$numver${d}
  216. done
  217. tar -zcf ${PACKNAME}.$os.$numver${d}.tgz *.$os.$numver${d}
  218. rm -f *$os.$numver${d}
  219. echo "Binaries are now in '${PACKNAME}.$os.$numver${d}.tgz'."
  220. exit 0