#!/bin/sh -
#
# Run SWIG to generate the various APIs

echo "You should use SWIG Version: 1.3.39"
SWIG=swig
echo "Using version: `$SWIG -version`"
SWIG_DIR=../dist/swig
SWIG_FILE=$SWIG_DIR/dbxml.i

die() {
	echo "$@" >&2
	exit 1
}

[ -f $SWIG_FILE ] || die "Must be run from the dist directory"

# don't generate for csharp -- it's way out of date for 2.0
#for api in java python tcl ; do
for api in java python tcl ; do

	swig_args=""
	case $api in
	    java)
		swig_args="-nodefaultctor -nodefaultdtor -package com.sleepycat.dbxml $args"
		;;
	    python)
		swig_args="-threads"
		;;
	esac

	if [ -d ../src/$api ]; then
	    echo "Building $api API"
	    $SWIG -Wall -$api -c++ $swig_args -I$SWIG_DIR \
		-outdir ../src/$api/ -o ../src/$api/dbxml_${api}_wrap.cpp $SWIG_FILE
	fi
done

# Fixups for Java
JAVA_SRCTOP=../src/java
JAVA_PKGDIR=com/sleepycat/dbxml

cd $JAVA_SRCTOP
for f in *.java ; do
	rm -f $JAVA_SRCDIR/$f
	sed -f ../$SWIG_DIR/java-post.sed $f > $JAVA_PKGDIR/$f || exit $?
	rm -f $f
done
sed -f ../$SWIG_DIR/java-post.sed dbxml_java_wrap.cpp > t.cpp || exit $?
mv -f t.cpp dbxml_java_wrap.cpp
cd ../../dist

# Fixups for Python
PYTHON_SRC=../src/python
PYTHON_CXX=dbxml_python_wrap.cpp
sed -f $SWIG_DIR/python-post.sed $PYTHON_SRC/$PYTHON_CXX > $PYTHON_SRC/$PYTHON_CXX.tmp
cp $PYTHON_SRC/$PYTHON_CXX.tmp $PYTHON_SRC/$PYTHON_CXX


