Things for Gordon to do with each teem release:

-2) make sure there are no tabs:
cat > tab.txt
(tab) (return)
^D

find . -name \*.c -exec grep -f tab.txt {} \; -print
find . -name \*.h -exec grep -f tab.txt {} \; -print
find . -name \*.txt -exec grep -f tab.txt {} \; -print
rm -f tab.txt

-1) update airTeemVersion and airTeemReleaseDate in air/misc.c

0) Bring documentation up-to-date with source tree
make sure all the unrrdu pages agree with unu usage info
cd ~/teem
cp README.txt ~/teemdoc/html/tree/
cp src/README.txt ~/teemdoc/html/tree/src/
cp src/CHANGES.txt ~/teemdoc/html/tree/src/
cp src/TODO.txt ~/teemdoc/html/tree/src/
cp src/LICENSE.txt ~/teemdoc/html/tree/src/
(cd ~/teemdoc; cvs commit -m "pre-release text file update")

1) Check namespace safety
  a) Make sure all library symbols are properly prefixed.  On linux,
  this should return nothing:
  cd teem/linux.32/lib
  nm libteem.so \
  | grep -v "gcc2_compiled." | grep -v " U " | grep -v " A " \
  | grep -v " t Letext" \
  | grep -v " air" | grep -v " _air" \
  | grep -v " hest" | grep -v " _hest" \
  | grep -v " biff" | grep -v " _biff" \
  | grep -v " ell" | grep -v " _ell" \
  | grep -v " nrrd" | grep -v " _nrrd" \
  | grep -v " unrrdu" | grep -v " _unrrdu" \
  | grep -v " dye" | grep -v " _dye" \
  | grep -v " moss" | grep -v " _moss" \
  | grep -v " gage" | grep -v " _gage" \
  | grep -v " bane" | grep -v " _bane" \
  | grep -v " limn" | grep -v " _limn" \
  | grep -v " hoover" | grep -v " _hoover" \
  | grep -v " mite" | grep -v " _mite" \
  | grep -v " alan" | grep -v " _alan" \
  | grep -v " coil" | grep -v " _coil" \
  | grep -v " ten" | grep -v " _ten" \
  | grep -v " echo" | grep -v " _echo"
  b) Make sure #defines in header files are properly prefixed:
  cd ../../include
  grep #define *.h | grep -v _export \
  | grep -v " echo" | grep -v " ell" | grep -v " gage" \
  | grep -v " AIR" | grep -v " _AIR" \
  | grep -v " HEST" | grep -v " _HEST" \
  | grep -v " BIFF" | grep -v " _BIFF" \
  | grep -v " ELL" | grep -v " _ELL" \
  | grep -v " NRRD" | grep -v " _NRRD" \
  | grep -v " UNRRDU" | grep -v " _UNRRDU" \
  | grep -v " DYE" | grep -v " _DYE" \
  | grep -v " MOSS" | grep -v " _MOSS" \
  | grep -v " GAGE" | grep -v " _GAGE" \
  | grep -v " BANE" | grep -v " _BANE" \
  | grep -v " LIMN" | grep -v " _LIMN" \
  | grep -v " HOOVER" | grep -v " _HOOVER" \
  | grep -v " MITE" | grep -v " _MITE" | grep -v "mite_" \
  | grep -v " ALAN" | grep -v " _ALAN" \
  | grep -v " COIL" | grep -v " _COIL" \
  | grep -v " ECHO" | grep -v " _ECHO" \
  | grep -v " TEN" | grep -v " _TEN"

2) Make sure it works
  "make teem/dev teem/install" on every supported architecture,
  and make sure Windows stuff also still works (if new files or
  libraries were added)

3) Create source-only tgz:
setenv VERSION <<version>>
cvs -d:ext:kindlmann@cvs.sourceforge.net:/cvsroot/teem co teem
cd teem
find . -name CVS  -exec rm -rf {} \;
cd ..; mv teem teem-${VERSION}-src
tar czvf teem-${VERSION}-src.tar.gz teem-${VERSION}-src
mv teem-${VERSION}-src.tar.gz ~/rel

4) Checkout a tree:

"make teem/install" on all platforms ...

mojojojo:
setenv TEEM_ARCH darwin.32
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/darwin/lib
setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/darwin/include
setenv TEEM_PNG_LPATH -L/home/sci/gk/usr/darwin/lib
setenv TEEM_PNG_IPATH -I/home/sci/gk/usr/darwin/include
scout:
setenv TEEM_ARCH darwin.64
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_PTHREAD
setenv TEEM_BZIP2_LPATH -L/sw/lib
setenv TEEM_BZIP2_IPATH -I/sw/include
setenv TEEM_ZLIB_LPATH -L/sw/lib
setenv TEEM_ZLIB_IPATH -I/sw/include
setenv TEEM_PNG_LPATH -L/sw/lib
setenv TEEM_PNG_IPATH -I/sw/include
carrot:
setenv TEEM_ARCH irix6.n32
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/irix6.n32/lib
setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include
setenv TEEM_PNG_LPATH -L/home/sci/gk/usr/irix6.n32/lib
setenv TEEM_PNG_IPATH -I/home/sci/gk/usr/irix6.n32/include
setenv PATH ${PATH}:/home/sci/gk/usr/local/irix6.n32/bin
rapture/ray/muse:
setenv TEEM_ARCH irix6.64
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/irix6.64/lib
setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include
setenv TEEM_PNG_LPATH -L/home/sci/gk/usr/irix6.64/lib
setenv TEEM_PNG_IPATH -I/home/sci/gk/usr/irix6.64/include

(options for being multi-threaded)
setenv TEEM_PTHREAD
setenv TEEM_LINK_SHARED
setenv PATH ${PATH}:/home/sci/gk/usr/local/irix6.64/bin
setenv LD_LIBRARY64_PATH ${LD_LIBRARY64_PATH}:/home/sci/gk/usr/local/irix6.64/lib
carnitas:
setenv TEEM_ARCH linux.32
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
# setenv TEEM_BZIP2_LPATH -L/home/sci/gk/usr/linux.32/lib
# setenv TEEM_BZIP2_IPATH -I/home/sci/gk/usr/include

(options for doing valgrind)
setenv OPT_CFLAG "-g"
setenv TEEM_LINK_SHARED
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/home/sci/gk/usr/local/linux.32/lib
setenv PATH ${PATH}:/home/sci/gk/usr/local/linux.32/bin
alias valgrind /home/sci/gk/usr/linux/bin/valgrind \
  --show-reachable=yes --leak-check=yes 

vision:
setenv TEEM_ARCH solaris
setenv TEEM_PNG
setenv TEEM_ZLIB
setenv TEEM_BZIP2
setenv TEEM_BZIP2_LPATH -L/home/gk/lib
setenv TEEM_BZIP2_IPATH -I/home/gk/include
setenv TEEM_ZLIB_LPATH -L/home/gk/lib
setenv TEEM_ZLIB_IPATH -I/home/gk/include
setenv TEEM_PNG_LPATH -L/usr/local/lib
setenv TEEM_PNG_IPATH -I/usr/local/include


5) Create Unix-ish binary builds (without src or docs):
   for each TEEM_ARCH in:
   irix6.n32 irix6.ia64 irix6.amd64 linux.32 linux.64 cygwin solaris darwin.32 darwin.64
-  ssh to some ARCH machine, copy teem-VERSION-src.tar.gz there if needed
-  setenv TEEM_XXX for all the externals that it makes sense to 
      compile into the distributed statically linked binaries
setenv VERSION 1.8.0
tar xzvf ~/rel/teem-${VERSION}-src.tar.gz
cd teem-${VERSION}-src; setenv TEEM_DEST `pwd`
cd src; make; cd ..
mv src/LICENSE.txt . 
yes | rm -rf README.txt aix cygwin darwin.32 darwin.64 irix6.64 \
      irix6.n32 linux.32 linux.amd64 linux.ia64 solaris win32 src
cd ..
mv teem-${VERSION}-src teem-${VERSION}-${TEEM_ARCH}
tar czvf teem-${VERSION}-${TEEM_ARCH}.tar.gz teem-${VERSION}-${TEEM_ARCH}
mv -f teem-${VERSION}-${TEEM_ARCH}.tar.gz ~/rel
rm -rf teem-${VERSION}-${TEEM_ARCH}

6) Create Windows binary builds.

7) put the builds on sourceforge:
cd ~/rel
ftp upload.sourceforge.net
binary
prompt
cd incoming
mput *.tar.gz

8) update online documentation (which may be done more often than releases)
cd ~/teemdoc
cvs commit -m "pre-release doc update"

ssh kindlmann@shell.sf.net

cd teem/htdocs
cvs update
exit

