build 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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 --enable-ipv6
  84. else
  85. echo "[*] Searching for TCL in: $TCLDIR"
  86. ./configure --silent --disable-tcl-threads --enable-ipv6 --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. if [ $leaf = "1" ]; then
  94. # Build leaf and check
  95. echo "[*] Building ${d}leaf..."
  96. make ${d}leaf -s
  97. if ! test -f leaf
  98. then
  99. echo "[!] ${d}leaf build failed"
  100. exit 1
  101. fi
  102. fi
  103. if [ $hub = "1" ]; then
  104. # Build hub and check
  105. echo "[*] Building ${d}hub..."
  106. make ${d}hub -s
  107. if ! test -f hub
  108. then
  109. echo "[!] ${d}hub build failed"
  110. exit 1
  111. fi
  112. fi
  113. # Wrap it nicely up into an archive
  114. echo "[*] Packaging..."
  115. packname=`basename $packname .cfg`
  116. if [ $all = "1" ]; then
  117. fls="leaf hub"
  118. elif [ $leaf = "1" ]; then
  119. fls="leaf"
  120. elif [ $hub = "1" ]; then
  121. fls="hub"
  122. fi
  123. for bin in $fls
  124. do
  125. mv -f $bin $bin.$os.$numver
  126. done
  127. tar -zcf $packname.$os.$numver.tgz *.$os.$numver
  128. rm -f *.$os.$numver
  129. echo "Binaries are now in '$packname.$os.$numver.tgz'."
  130. exit 0