#!/bin/sh # # Unix shell script to download, install and configure BerkeleyDBXML. # Requires `curl` program, which is obtainable from http://curl.haxx.se/ # A full build can easily take 15 minutes to run to completion. # # whoschek@lbl.gov # ################################################ # directory where the installation will go into ################################################ MYDIR="`dirname $0`" MYABSDIR="`cd $MYDIR; pwd`" INSTALL_DIR=$MYDIR/../.. #INSTALL_DIR=/opt/firebundle #INSTALL_DIR=/tmp/firebundle mkdir -p $INSTALL_DIR #rm -fr $INSTALL_DIR/dbxml-src mkdir -p $INSTALL_DIR/dbxml-src ABSINSTALL_DIR="`cd $INSTALL_DIR; pwd`" ################################################ # BerkeleyDBXML depends on berkeleydb, xerces-c and libpathan # VERSION to download, install & configure ################################################ DBXML_VERSION=1.2.1 #DBXML_VERSION=1.1.0 # only works with db-4.1.25 DB_VERSION=4.2.52 #DB_VERSION=4.1.25 XERCES_VERSION=2_4_0 #XERCES_VERSION=_2_5_0 PATHAN_VERSION=1.2-2 PATHAN_VERSION_SHORT=1.2 ################################################ # Find java ################################################ . `dirname $0`/util-find-jdk.sh echo "JAVA_HOME is now $JAVA_HOME" cd $INSTALL_DIR #rm -fr dbxml PATH=/usr/ccs/bin:$PATH PATH=/usr/bin:$PATH PATH=/usr/local/bin:$PATH PATH=$JAVA_HOME/bin:$PATH export PATH #LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH #export LD_LIBRARY_PATH #echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH" ################################################ # download xerces source ################################################ cd $INSTALL_DIR/dbxml-src if [ ! -r "$ABSINSTALL_DIR/dbxml/xerces/lib/libxerces-c.so" ] ; then if [ ! -r "xerces-c-src_$XERCES_VERSION.tar.gz" ] ; then URL=http://archive.apache.org/dist/xml/xerces-c/Xerces-C_$XERCES_VERSION/xerces-c-src$XERCES_VERSION.tar.gz #URL=http://archive.apache.org/dist/xml/xerces-c/xerces-c-src$XERCES_VERSION.tar.gz #URL=http://www.apache.org/dist/xml/xerces-c/xerces-c-src_$XERCES_VERSION.tar.gz echo "downloading $URL" curl --location --output xerces-c-src$XERCES_VERSION.tar.gz $URL #curl --location --output xerces-c-src_$XERCES_VERSION.tar.gz $URL #wget $URL # use wget if your platform does not have 'curl' fi rm -fr xerces-c-src$XERCES_VERSION rm -fr xerces gunzip < xerces-c-src$XERCES_VERSION.tar.gz | tar -xvf - mv xerces-c-src$XERCES_VERSION xerces #gunzip < xerces-c-src_$XERCES_VERSION.tar.gz | tar -xvf - #mv xerces-c-src_$XERCES_VERSION xerces #rm db-$VERSION.tar.gz ################################################ # configure, make and install ################################################ rm -fr $ABSINSTALL_DIR/dbxml/xerces cd xerces XERCESCROOT=`pwd` export XERCESCROOT cd src/xercesc/ MY_OS=`uname -s` > /dev/null 2>&1 case "$MY_OS" in Linux*) MY_OS="linux";; SunOS*) MY_OS="solaris";; Darwin*) MY_OS="macosx";; FreeBSD*) MY_OS="freebsd";; *) echo "$MY_OS platform not supported by script. Please install manually from http://www.apache.org/dist/xml/xerces-c/"; exit 1;; esac ./runConfigure -p$MY_OS -d -cgcc -xg++ -minmem -nsocket -tnative -rnone -P$ABSINSTALL_DIR/dbxml/xerces make make install cd $ABSINSTALL_DIR/dbxml-src #rm -fr xerces fi ################################################ # download pathan source ################################################ if [ ! -r "$ABSINSTALL_DIR/dbxml/libpathan/lib/libpathan.so" ] ; then XERCESCROOT=$ABSINSTALL_DIR/dbxml-src/xerces export XERCESCROOT if [ ! -r "libpathan-$PATHAN_VERSION-src.tar.gz" ] ; then URL=http://software.decisionsoft.com/software/pathan-1.2r2/libpathan-$PATHAN_VERSION-src.tar.gz echo "downloading $URL" curl --location --output libpathan-$PATHAN_VERSION-src.tar.gz $URL #wget $URL # use wget if your platform does not have 'curl' fi rm -fr libpathan-$PATHAN_VERSION_SHORT rm -fr libpathan gunzip < libpathan-$PATHAN_VERSION-src.tar.gz | tar -xvf - mv libpathan-$PATHAN_VERSION_SHORT libpathan #rm libpathan-$PATHAN_VERSION-src.tar.gz ################################################ # configure, make and install ################################################ rm -fr $ABSINSTALL_DIR/dbxml/libpathan cd libpathan if [ `uname -s` = SunOS ] ; then LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH" fi #PATH=/usr/local/bin:$PATH #export PATH # on redhat-9.0 I needed this to make it work: ln -s /usr/lib/libdb-4.1.so /usr/lib/libdb.so.3 ./runConfigure --prefix=$ABSINSTALL_DIR/dbxml/libpathan gmake gmake install #PATH=/usr/local/bin:$PATH #export PATH cd $ABSINSTALL_DIR/dbxml-src #rm -fr libpathan #rm -fr xerces fi ################################################ # download berkeley db source ################################################ if [ ! -r "$ABSINSTALL_DIR/dbxml/db/lib/libdb.so" ] ; then if [ ! -r "db-$DB_VERSION.tar.gz" ] ; then URL=http://www.sleepycat.com/update/snapshot/db-$DB_VERSION.tar.gz echo "downloading $URL" curl --location --output db-$DB_VERSION.tar.gz $URL #wget $URL # use wget if your platform does not have 'curl' fi rm -fr db-$DB_VERSION rm -fr db gunzip < db-$DB_VERSION.tar.gz | tar -xvf - mv db-$DB_VERSION db #rm db-$DB_VERSION.tar.gz ################################################ # configure, make and install ################################################ rm -fr $ABSINSTALL_DIR/dbxml/db cd db/build_unix if [ `uname -s` = Darwin ] ; then ../dist/configure --enable-static=no --enable-cxx --enable-java --prefix=$ABSINSTALL_DIR/dbxml/db LD_TWOLEVEL_NAMESPACE=1 else ../dist/configure --enable-static=no --enable-cxx --enable-java --prefix=$ABSINSTALL_DIR/dbxml/db fi make make install cd $ABSINSTALL_DIR/dbxml-src cp -f db/build_unix/dbexamples.jar $MYABSDIR/../lib/berkeleydb-examples.jar cp -f $ABSINSTALL_DIR/dbxml/db/lib/db.jar $MYABSDIR/../lib/berkeleydb.jar #rm -fr db fi ################################################ # download berkeley db xml source ################################################ if [ ! -r "$ABSINSTALL_DIR/dbxml/dbxml/lib/libdbxml.so" ] ; then if [ ! -r "dbxml-$DBXML_VERSION.tar.gz" ] ; then URL=http://www.sleepycat.com/update/snapshot/dbxml-$DBXML_VERSION.tar.gz echo "downloading $URL" curl --location --output dbxml-$DBXML_VERSION.tar.gz $URL #wget $URL # use wget if your platform does not have 'curl' fi rm -fr dbxml-$DBXML_VERSION rm -fr dbxml gunzip < dbxml-$DBXML_VERSION.tar.gz | tar -xvf - mv dbxml-$DBXML_VERSION dbxml #rm dbxml-$DBXML_VERSION.tar.gz ################################################ # configure, make and install ################################################ rm -fr $ABSINSTALL_DIR/dbxml/dbxml cd dbxml/build_unix PATH=/usr/ccs/bin/ar:$PATH export PATH ../dist/configure --enable-static=no --enable-java --with-berkeleydb=$ABSINSTALL_DIR/dbxml/db --with-pathan=$ABSINSTALL_DIR/dbxml/libpathan --with-xerces=$ABSINSTALL_DIR/dbxml/xerces --prefix=$ABSINSTALL_DIR/dbxml/dbxml make make install cd $ABSINSTALL_DIR/dbxml-src cp -f dbxml/build_unix/dbxmlexamples.jar $MYABSDIR/../lib/berkeleydbxml-examples.jar cp -f $ABSINSTALL_DIR/dbxml/dbxml/lib/dbxml.jar $MYABSDIR/../lib/berkeleydbxml.jar #rm -fr dbxml fi echo "Congrats. Done with installation"