# $Id: buildrel,v 1.49 2004/08/19 16:52:16 gareth Exp $
#
# Build the distribution package.
#
# A set of commands intended to be cut and pasted into a csh window.
setenv D `pwd`

# Update the release number.
cd $D/dist
vi RELEASE
setenv VERSION `sh -c '. RELEASE; echo $DBXML_VERSION'`
echo "Version: $VERSION"

# Make sure the source tree is up-to-date, generate new support files,
# commit anything that's changed.
cd $D && cvs -z3 -q update
cd $D/dist && sh s_all
cd $D && cvs -z3 -q commit

# Copy a development tree into a release tree.
setenv R /var/tmp/dbxml-$VERSION
rm -rf $R && mkdir -p $R
cd $D
rm -f xaa xab xac
cvs -z3 -q status | grep "Repository revision" | sed -e 's;.*CVSROOT/xml/;;' -e 's;.*CVSROOT/;;' -e 's;,v$;;' | split -l 1000
rm -f /tmp/tmp.tar
tar cf /tmp/tmp.tar `cat xaa`
tar rf /tmp/tmp.tar `cat xab`
tar rf /tmp/tmp.tar `cat xac`
cd $R
tar xpf /tmp/tmp.tar
rm /tmp/tmp.tar 

# Build the documentation
# Need to use a particular release of DB as doc source. Should
# not build against what's in the docs_src cvs head, as it may be
# too new.  Change DB_DIR to reflect the correct, installed DB
# version.  NOTE: using an absolute path here will cause
# problems building javadoc.  It expects a path relative to docs_src.
setenv DB_DIR ../xml/lib/db-4.2.52

cd $D/../docs_src
rm -rf $R/docs
rm -rf $D/docs
cp -r $DB_DIR/docs $D
rm -rf $D/docs/api_java
# need to make some files writable for the build
cd $D/docs && find . -type f | xargs chmod 666
# NOTE: this assumes that $D is ../xml from cwd
cd $D/../docs_src
sh build ../xml $DB_DIR | sed '/.html$/d'
sh build ../xml $DB_DIR javadoc
cp -r $D/docs $R

# ACQUIRE ROOT PRIVILEGES
cd $R && find . -type d | xargs chmod 775
cd $R && find . -type f | xargs chmod 444
cd $R && chmod 664 build_win32/*.dsp
cd $R/dist && sh s_perm
chown -R 100.100 $R
# DISCARD ROOT PRIVILEGES

# Create the tar archive release.
# Create the zip source release.
setenv T "$R/../dbxml-$VERSION.tar.gz"
cd $R/.. && tar cf - dbxml-$VERSION | gzip --best > $T
chmod 444 $T
setenv T "/var/tmp/dbxml-$VERSION.zip"
cd $R/.. && zip -r -9 $T dbxml-$VERSION
chmod 444 $T


######################################################################
######################################################################
# In the top-level dir on Windows:
######################################################################
# A set of commands intended to be cut and pasted into a bash window.
######################################################################

export D=`pwd`
cd $D/dist
export VERSION=`sh -c '. RELEASE; echo $DBXML_VERSION'`
echo "Version: $VERSION"

export PATHAN_HOME=/cygdrive/c/lib/vc6/libpathan-1.2-2
export XERCES_HOME=/cygdrive/c/lib/vc6/xerces-c-src2_4_0
export DB_HOME=/cygdrive/c/lib/vc6/db-4.2.52

# Build
cd $D/build_win32
msdev Berkeley_DB_XML.dsw /make "all - Release"
msdev Berkeley_DB_XML.dsw /make "dbxml_java - Release"

# Build Documentation
cd $D/docs_src
build

# NOW COPY THE JAVADOCS FROM UNIX TO WIN32

# Create binary tree
export R="/var/tmp/dbxml-$VERSION-win32"
rm -rf $R && mkdir -p $R/bin $R/lib $R/build_win32
cp -av $D/LICENSE $D/README $R
cp -av $D/docs $R
cp -av $D/include $R
cp -av $D/examples $R
cp -av $D/build_win32/Release/libdbxml12.dll $R/bin
cp -av $D/build_win32/Release/libdbxml12.lib $R/lib
cp -av $D/build_win32/Release/libdbxml_java12.dll $R/bin
cp -av $D/build_win32/Release/*.jar $R/lib
cp -av $D/build_win32/Release/dbxml_load.exe $R/bin
cp -av $D/build_win32/Release/dbxml_dump.exe $R/bin
cp -av $D/build_win32/dbxml_gettingStarted.dsw $R/build_win32
cp -av $D/build_win32/dbxml_example_*.dsp $R/build_win32
cp -av $D/build_win32/all.dsp $R/build_win32

cp -av $DB_HOME/build_win32/Release/libdb42.dll $R/bin
cp -av $DB_HOME/build_win32/Release/libdb_java42.dll $R/bin
cp -av $DB_HOME/build_win32/Release/libdb42.lib $R/lib
cp -av $DB_HOME/build_win32/Release/*.jar $R/lib
cp -av $DB_HOME/build_win32/db.h $R/include
cp -av $DB_HOME/build_win32/db_cxx.h $R/include
cp -av $DB_HOME/dbinc/cxx_common.h $R/include
cp -av $DB_HOME/dbinc/cxx_except.h $R/include

cp -av $PATHAN_HOME/lib/Pathan.dll $R/bin
cp -av $PATHAN_HOME/include/* $R/include
cp -av $PATHAN_HOME/lib/Pathan.lib $R/lib

cp -av $XERCES_HOME/bin/xerces-c_2_4_0.dll $R/bin
cp -av $XERCES_HOME/include/* $R/include
cp -av $XERCES_HOME/lib/xerces-c_2.lib $R/lib

# Create the zip release
export T="/var/tmp/dbxml-$VERSION-win32.zip"
cd $R/.. && zip -r -9 $T dbxml-$VERSION-win32
chmod 444 $T
