mariadb/bdb/dist/s_javah
kent@mysql.com c6002966be mysql-test-run.pl:
Removed -c from /bin/sh call
make_win_src_distribution.sh:
  Copy all content in mysql-test
make_win_binary_distribution.sh, make_binary_distribution.sh:
  Add Perl version of mysql-test-run to package
s_win32_dsp, s_win32, s_vxworks, s_test, s_readme, s_java, s_javah:
  Bug #6209 changes for building Berkeley DB from BitKeeper on Solaris
2005-03-09 01:34:22 +01:00

55 lines
1.6 KiB
Bash
Executable file

#!/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