build 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. #!/bin/sh
  2. #add in 'cont' support for NOT using make clean.
  3. #change this to 0 to not clean previously compiled files (faster/for dev)
  4. clean=0
  5. #### DO NOT EDIT BELOW THIS LINE #####
  6. # Awk out the version from source
  7. ver=`cat src/main.c 2>&1 | grep "char" | awk '/egg_version/ {print $4}' | sed -e 's/\"//g' | sed -e 's/\;//g'`
  8. numver=`cat src/main.c 2>&1 | grep "int" | awk '/egg_numver =/ {print $4}' | sed -e 's/\;//g'`
  9. if test -z "$ver"
  10. then
  11. ver="?.?.?"
  12. fi
  13. echo "*** wraith v${ver}/${numver} builder ***"
  14. echo ""
  15. debug=0
  16. all=0
  17. hub=0
  18. leaf=0
  19. #if test $# -lt 1; then
  20. if test -z "$1"; then
  21. echo "Usage: $0 -d all|leaf|hub"
  22. echo " -d: Builds a debug package."
  23. # echo " -c: Does not erase previously compiled files unless *necessary* (faster)"
  24. echo ""
  25. exit 1
  26. elif [ $1 = "all" ]; then
  27. all=1
  28. elif [ $1 = "leaf" ]; then
  29. leaf=1
  30. elif [ $1 = "hub" ]; then
  31. hub=1
  32. elif [ $1 = "-d" ]; then
  33. debug=1
  34. test=" "
  35. if ! test $# -lt 2; then
  36. if [ $2 = "all" ]; then
  37. all=1
  38. elif [ $2 = "leaf" ]; then
  39. leaf=1
  40. elif [ $2 = "hub" ]; then
  41. hub=1
  42. else
  43. all=1
  44. fi
  45. else
  46. all=1
  47. fi
  48. else
  49. all=1
  50. fi
  51. d=""
  52. if [ $debug = "1" ]; then
  53. d="d"
  54. fi
  55. if [ $all = "1" ]; then
  56. leaf=1
  57. hub=1
  58. fi
  59. packname=wraith
  60. ############# CHECK FOR pack/ FILES #################
  61. # Figure what bins we're making
  62. case `uname` in
  63. Linux) os=Linux;;
  64. FreeBSD) case `uname -r` in
  65. 5*) os=FreeBSD5;;
  66. 4*) os=FreeBSD4;;
  67. 3*) os=FreeBSD3;;
  68. esac;;
  69. OpenBSD) os=OpenBSD;;
  70. esac
  71. if test -z $os
  72. then
  73. echo "[!] Automated packaging disabled, `uname` isn't recognized"
  74. fi
  75. echo "[*] Building pack for $os"
  76. # Run ./configure, then verify it's ok
  77. echo "[*] Configuring..."
  78. umask 077 >/dev/null
  79. TCLDIR=`cat pack/conf.h 2>&1 | grep "//" | awk '/TCLDIR/ {print $2}' | sed -e 's/\"//g'`
  80. if test -z ${TCLDIR}
  81. then
  82. echo "[*] Searching for TCL in default dirs (edit $packname to change)"
  83. ./configure --silent --disable-tcl-threads
  84. else
  85. echo "[*] Searching for TCL in: $TCLDIR"
  86. ./configure --silent --disable-tcl-threads --with-tcllib=${TCLDIR}/lib/libtcl8.4.a --with-tclinc=${TCLDIR}/include/tcl.h
  87. fi
  88. # make clean, just in case
  89. if [ $clean = "1" ]; then
  90. echo "[*] Cleaning up old binaries/files..."
  91. make clean > /dev/null
  92. fi
  93. _leaf()
  94. {
  95. if [ $leaf = "1" ]; then
  96. # Build leaf and check
  97. echo "[*] Building ${d}leaf..."
  98. make ${d}leaf -s
  99. if ! test -f leaf
  100. then
  101. echo "[!] ${d}leaf build failed"
  102. exit 1
  103. fi
  104. fi
  105. }
  106. _hub()
  107. {
  108. if [ $hub = "1" ]; then
  109. # Build hub and check
  110. echo "[*] Building ${d}hub..."
  111. make ${d}hub -s
  112. if ! test -f hub
  113. then
  114. echo "[!] ${d}hub build failed"
  115. exit 1
  116. fi
  117. fi
  118. }
  119. if [ -f stamp.hub ]; then
  120. _hub
  121. _leaf
  122. else
  123. _leaf
  124. _hub
  125. fi
  126. # Wrap it nicely up into an archive
  127. echo "[*] Packaging..."
  128. packname=`basename $packname .cfg`
  129. if [ $all = "1" ]; then
  130. fls="leaf hub"
  131. elif [ $leaf = "1" ]; then
  132. fls="leaf"
  133. elif [ $hub = "1" ]; then
  134. fls="hub"
  135. fi
  136. for bin in $fls
  137. do
  138. mv -f $bin $bin.$os.$numver
  139. done
  140. tar -zcf $packname.$os.$numver.tgz *.$os.$numver
  141. rm -f *.$os.$numver
  142. echo "Binaries are now in '$packname.$os.$numver.tgz'."
  143. exit 0