#!/bin/sh # Awk out the version from source ver="?.?.?" ver=`grep "char" src/main.c | awk '/egg_version/ {print $4}' | sed -e 's/\"//g' | sed -e 's/\;//g'` numver=`grep "int" src/main.c | awk '/egg_numver =/ {print $4}' | sed -e 's/\;//g'` PACKNAME=`grep "PACKNAME " pack/pack.cfg | awk '/PACKNAME/ {print $2}'` clear case $[(`date '+%s'` % 6)] in 0) echo "@@@ @@@ @@@ @@@@@@@ @@@@@@ @@@ @@@@@@@ @@@ @@@" echo "@@@ @@@ @@@ @@@@@@@@ @@@@@@@@ @@@ @@@@@@@ @@@ @@@" echo "@@! @@! @@! @@! @@@ @@! @@@ @@! @@! @@! @@@" echo "!@! !@! !@! !@! @!@ !@! @!@ !@! !@! !@! @!@" echo "@!! !!@ @!@ @!@!!@! @!@!@!@! !!@ @!! @!@!@!@!" echo "!@! !!! !@! !!@!@! !!!@!!!! !!! !!! !!!@!!!!" echo "!!: !!: !!: !!: :!! !!: !!! !!: !!: !!: !!!" echo ":!: :!: :!: :!: !:! :!: !:! :!: :!: :!: !:!" echo " :::: :: ::: :: ::: :: ::: :: :: :: :::" echo " :: : : : : : : : : : : : : : :" ;; 1) echo " *" echo " * * **" echo "** *** ** **" echo "** * ** **" echo " ** *** **** *** **** ******** **" echo " ** *** *** * **** **** * **** *** ******** ** ***" echo " ** *** **** ** **** * *** * *** ** ** * ***" echo " ** ** ** ** * **** ** ** *** ***" echo " ** ** ** ** ** ** ** ** ** **" echo " ** ** ** ** ** ** ** ** ** **" echo " ** ** ** ** ** ** ** ** ** **" echo " ** ** * ** ** ** ** ** ** **" echo " ******* ******* *** ** ** ** ** ** **" echo " ***** ***** *** ***** ** *** * ** ** **" echo " *** ** *** ** **" echo " *" echo " *" echo " *" echo " *" ;; 2) echo " ::: === === :::==== :::==== ::: :::==== ::: ===" echo " ::: === === ::: === ::: === ::: :::==== ::: ===" echo " === === === ======= ======== === === ========" echo " =========== === === === === === === === ===" echo " ==== ==== === === === === === === === ===" ;; 3) echo " .__ __ .__" echo ' __ _ ______________ |__|/ |_| |__' echo ' \ \/ \/ /\_ __ \__ \ | \ __\ | \' echo ' \ / | | \// __ \| || | | Y \' echo ' \/\_/ |__| (____ /__||__| |___| /' echo " \/ \/" ;; 4) echo " dBPdBPdBP dBBBBBb dBBBBBb dBP dBBBBBBP dBP dBP" echo " dBP BB" echo " dBPdBPdBP dBBBBK dBP BB dBP dBP dBBBBBP" echo " dBPdBPdBP dBP BB dBP BB dBP dBP dBP dBP" echo " dBBBBBBBP dBP dB' dBBBBBBB dBP dBP dBP dBP" ;; 5) echo " /" echo " # #/" echo " ### # ##" echo "## # ## ##" echo "## ## ##" echo " ## ### #### ### /### /### ### ######## ## /##" echo " ## ### ### / ###/ #### / / ### / ### ######## ## / ###" echo " ## ### ###/ ## ###/ / ###/ ## ## ##/ ###" echo " ## ## ## ## ## ## ## ## ## ##" echo " ## ## ## ## ## ## ## ## ## ##" echo " ## ## ## ## ## ## ## ## ## ##" echo " ## ## ## ## ## ## ## ## ## ##" echo " ## /# / ## ## /# ## ## ## ##" echo " ######/ ######/ ### ####/ ## ### / ## ## ##" echo " ##### ##### ### ### ## ##/ ## ## ##" echo " /" echo " /" echo " /" echo " /" ;; esac echo usage() { echo "Usage: $0 [-c] [-d] [-t dir] [-T] [all|hub|leaf]" echo echo " The options are as follows:" echo " -c Cleans up old binaries/files before compile." echo " -d Builds a debug package." echo " -t dir Where to search for TCL libraries." echo " -T Builds TCL if it is not on the system." } debug=0 all=0 hub=0 leaf=0 clean=0 type= tcldir= buildtcl=0 while getopts t:Tcdh opt ; do case "$opt" in c) clean=1 ;; d) debug=1 ;; t) tcldir="$OPTARG" ;; h) usage; exit 0 ;; T) buildtcl=1 ;; *) usage; exit 1 ;; esac done shift $(($OPTIND - 1)) if [ $buildtcl = "1" ]; then echo "Hold tight" misc/maketcl rm -rf tcl8.4.4* echo "Done. (You must run ./build again with normal parameters)" exit 0 fi if test -z "$1"; then usage exit 1 else if [ $1 = "all" ]; then all=1 elif [ $1 = "leaf" ]; then leaf=1 type="leaf" elif [ $1 = "hub" ]; then hub=1 type="hub" else all=1 # usage # exit 1 fi fi if [ $debug = "1" ]; then d="d" else d="" fi if [ $all = "1" ]; then type="all" leaf=1 hub=1 fi ############# CHECK FOR pack/ FILES ################# # Figure what bins we're making case `uname` in Linux) os=Linux;; FreeBSD) case `uname -r` in 5*) os=FreeBSD5;; 4*) os=FreeBSD4;; 3*) os=FreeBSD3;; esac;; OpenBSD) os=OpenBSD;; esac if test -z $os then echo "[!] Automated packaging disabled, `uname` isn't recognized" fi echo "[*] Building ${PACKNAME}::${type} for $os" # Run ./configure, then verify it's ok echo "[*] Configuring..." umask 077 >/dev/null if test -z "$tcldir"; then echo "[*] Searching for TCL in default paths (use '-t dir' to change)" ./configure --silent --disable-tcl-threads else echo "[*] Searching for TCL in: $tcldir" ./configure --silent --disable-tcl-threads --with-tcllib=${tcldir}/lib/libtcl8.4.a --with-tclinc=${tcldir}/include/tcl.h fi MAKE="`which gmake`" if test -z "${MAKE}"; then MAKE="`which make`" fi echo "[*] Using '${MAKE}'" # make clean, just in case if [ $clean = "1" ]; then echo "[*] Cleaning up old binaries/files..." ${MAKE} clean > /dev/null fi _leaf() { if [ $leaf = "1" ]; then # Build leaf and check echo "[*] Building ${d}leaf..." ${MAKE} ${d}leaf -s if ! test -f leaf then echo "[!] ${d}leaf build failed" exit 1 fi fi } _hub() { if [ $hub = "1" ]; then # Build hub and check echo "[*] Building ${d}hub..." ${MAKE} ${d}hub -s if ! test -f hub then echo "[!] ${d}hub build failed" exit 1 fi fi } if [ -f stamp.hub ]; then _hub _leaf else _leaf _hub fi # Wrap it nicely up into an archive echo "[*] Packaging..." if [ $all = "1" ]; then fls="leaf hub" elif [ $leaf = "1" ]; then fls="leaf" elif [ $hub = "1" ]; then fls="hub" fi if test -n "$d"; then d="-debug" fi for bin in $fls do mv -f $bin $bin.$os.$numver${d} done tar -zcf ${PACKNAME}.$os.$numver${d}.tgz *.$os.$numver${d} rm -f *$os.$numver${d} echo "Binaries are now in '${PACKNAME}.$os.$numver${d}.tgz'." exit 0