build 8.4 KB

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