summaryrefslogtreecommitdiff
path: root/db-4.8.30/dist/s_java_swig
diff options
context:
space:
mode:
Diffstat (limited to 'db-4.8.30/dist/s_java_swig')
-rwxr-xr-xdb-4.8.30/dist/s_java_swig73
1 files changed, 73 insertions, 0 deletions
diff --git a/db-4.8.30/dist/s_java_swig b/db-4.8.30/dist/s_java_swig
new file mode 100755
index 0000000..686c521
--- /dev/null
+++ b/db-4.8.30/dist/s_java_swig
@@ -0,0 +1,73 @@
+#!/bin/sh -
+# $Id$
+#
+# Run SWIG to generate the Java APIs
+
+t=/tmp/__db_a
+trap 'rm -f $t ; exit 0' 0
+trap 'rm -f $t ; exit 1' 1 2 3 13 15
+
+SWIG=swig
+SWIG_DIR=../libdb_java
+SWIG_FILE=$SWIG_DIR/db.i
+PACKAGE="com.sleepycat.db.internal"
+
+die() {
+ echo "$@" >&2
+ exit 1
+}
+
+[ -f $SWIG_FILE ] || die "Must be run from the dist directory"
+
+for api in java ; do
+ echo "Building $api API"
+
+ swig_args=""
+ case $api in
+ java)
+ swig_args="-nodefaultctor -nodefaultdtor -package $PACKAGE $args"
+ ;;
+ esac
+
+ $SWIG -Wall -$api $swig_args -I$SWIG_DIR \
+ -o ../libdb_$api/db_${api}_wrap.c $SWIG_FILE || exit $?
+done
+
+# Skip Java sources if run with "-n"
+if [ "x$1" = "x-n" ] ; then
+ rm -f $SWIG_DIR/*.java
+ exit 0
+fi
+
+# Fixups for Java
+JAVA_SRCTOP=../java/src
+JAVA_PKGDIR=com/sleepycat/db/internal
+JAVA_SRCDIR=$JAVA_SRCTOP/$JAVA_PKGDIR
+
+# SWIG 1.3.18 puts the Java files in the same directory as the native code.
+cd $SWIG_DIR
+[ -f Db.java ] || exit 1
+
+for f in *.java ; do
+ case $f in
+ SWIGTYPE*)
+ die "Interface contains unresolved types: $f"
+ esac
+ rm -f $JAVA_SRCDIR/$f
+ perl -p $SWIG_DIR/java-post.pl < $f > $JAVA_SRCDIR/$f || exit $?
+ rm -f $f
+done
+
+# db_config.h must be the first #include, move it to the top of the file.
+(
+ echo '#include "db_config.h"'
+ sed '/#include "db_config.h"/d' < db_java_wrap.c
+) > $t && cp $t db_java_wrap.c
+
+# The following might become redundant with newer swig versions.
+# builds usually already define _CRT_SECURE_NO_DEPRECATE
+(
+ sed -e '/# define _CRT_SECURE_NO_DEPRECATE/i\
+# undef _CRT_SECURE_NO_DEPRECATE' < db_java_wrap.c
+) > $t && cp $t db_java_wrap.c
+