diff options
Diffstat (limited to 'bdb/dist/s_javah')
-rwxr-xr-x | bdb/dist/s_javah | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/bdb/dist/s_javah b/bdb/dist/s_javah new file mode 100755 index 00000000000..480856e4b5c --- /dev/null +++ b/bdb/dist/s_javah @@ -0,0 +1,55 @@ +#!/bin/sh - +# $Id: s_javah,v 1.1 2002/08/14 17:14:24 dda Exp $ +# +# Use javah to build the libdb_java/com_*.h header files. +# +# To run this, you will need a javac and javah in your PATH. +# If possible, install tools with a recent vintage, JDK 1.3 or higher is good. +# Using Sun's JDK rather than some other installation ensures +# that the header files will not be constantly changed. + +. RELEASE + +JAVAC=javac +JAVAH=javah +export CLASSPATH +CLASSPATH= + +# CLASSES are only those classes for which we have native methods. +D=com.sleepycat.db +CLASSES="$D.Dbc $D.DbEnv $D.Db $D.DbLock $D.DbLogc $D.DbLsn $D.Dbt $D.DbTxn $D.xa.DbXAResource" + +d=/tmp/__javah +c=$d/classes +trap 'rm -rf $d; exit 0' 0 1 2 3 13 15 + +rm -rf $d +mkdir $d || exit 1 +mkdir $c || exit 1 + +# Make skeleton versions of XA classes and interfaces +# We only need to compile them, not run them. +pkg="package javax.transaction.xa" +echo "$pkg; public interface XAResource {}" > $d/XAResource.java +echo "$pkg; public interface Xid {}" > $d/Xid.java +echo "$pkg; public class XAException extends Exception {}" \ + > $d/XAException.java + + +# Create the .class files and use them with javah to create the .h files +${JAVAC} -d $c $d/*.java \ + ../java/src/com/sleepycat/db/*.java \ + ../java/src/com/sleepycat/db/xa/*.java || exit 1 +${JAVAH} -classpath $c -d $d ${CLASSES} || exit 1 + +for cl in ${CLASSES}; do + h=`echo $cl | sed -e 's/\./_/g'`.h + t=$d/$h + f=../libdb_java/$h + if [ ! -f $t ]; then + echo "ERROR: $t does not exist" + exit 1 + fi + cmp $t $f > /dev/null 2>&1 || + (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f) +done |