#!/bin/sh -
#       $Id: s_swig,v 1.11 2004/01/22 17:51:43 gmf Exp $
#
# Run SWIG to generate the various APIs

SWIG=swig
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"

for api in csharp java python tcl php4 ; do

	swig_args=""
	case $api in
	java)
		swig_args="-nodefault -package com.sleepycat.dbxml $args"
		;;
	php4)
		swig_args="-phpfull"
		# don't modify these cvs files as a side effect of swig.
		mv ../src/$api/config.m4 ../src/$api/config.m4.save
		mv ../src/$api/Makefile.in ../src/$api/Makefile.in.save
		;;
	esac

	if [ -d ../src/$api ]; then
	    echo "Building $api API"
	    $SWIG -Wall -$api -c++ $swig_args -I$SWIG_DIR \
		-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
cd ../../dist

# Fixups for PHP
PHP_SRC=../src/php4
if [ -d $PHP_SRC ]; then
    rm -f $PHP_SRC/CREDITS
    rm -f $PHP_SRC/dbxml_php4.php
    if [ -f $PHP_SRC/config.m4.save ]; then
	mv $PHP_SRC/config.m4.save $PHP_SRC/config.m4
    fi
    if [ -f $PHP_SRC/Makefile.in.save ]; then
	mv $PHP_SRC/Makefile.in.save $PHP_SRC/Makefile.in
    fi
fi

