forked from I2P_Developers/i2p.i2p
92 lines
2.9 KiB
Bash
Executable File
92 lines
2.9 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Build the jbigi library for i2p
|
|
#
|
|
# To build a static library:
|
|
# Set $I2P to point to your I2P installation
|
|
# Set $JAVA_HOME to point to your Java SDK
|
|
# build.sh
|
|
# This script downloads gmp-4.3.2.tar.bz2 to this directory
|
|
# (if a different version, change the GMP_VER= line below)
|
|
#
|
|
# To build a dynamic library (you must have a libgmp.so somewhere in your system)
|
|
# Set $I2P to point to your I2P installation
|
|
# Set $JAVA_HOME to point to your Java SDK
|
|
# build.sh dynamic
|
|
#
|
|
# The resulting library is lib/libjbigi.so
|
|
#
|
|
|
|
rm -rf bin/local
|
|
mkdir -p lib bin/local
|
|
|
|
# Import gmp version variables and download gmp.
|
|
. ./download_gmp.sh
|
|
|
|
|
|
# If JAVA_HOME isn't set, try to figure it out on our own
|
|
[ -z $JAVA_HOME ] && . ../find-java-home
|
|
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then
|
|
echo "ERROR: Cannot find jni.h! Looked in \"$JAVA_HOME/include/jni.h\"" >&2
|
|
echo "Please set JAVA_HOME to a java home that has the JNI" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Abort script on uncaught errors
|
|
set -e
|
|
|
|
cd bin/local
|
|
|
|
echo "Building..."
|
|
if [ "$1" != "dynamic" ]; then
|
|
case `uname -sr` in
|
|
Darwin*)
|
|
# --with-pic is required for static linking
|
|
../../gmp-${GMP_VER}/configure --with-pic;;
|
|
*)
|
|
# and it's required for ASLR
|
|
../../gmp-${GMP_VER}/configure --with-pic;;
|
|
esac
|
|
make
|
|
sh ../../build_jbigi.sh static
|
|
else
|
|
shift
|
|
sh ../../build_jbigi.sh dynamic
|
|
fi
|
|
|
|
cp *jbigi???* ../../lib/
|
|
echo 'Library copied to lib/'
|
|
cd ../..
|
|
|
|
if [ "$1" != "notest" ]; then
|
|
if [ -z "$I2P" ]; then
|
|
if [ -r $HOME/i2p/lib/i2p.jar ]; then
|
|
I2P="$HOME/i2p"
|
|
elif [ -r /usr/share/i2p/lib/i2p.jar ]; then
|
|
I2P="/usr/share/i2p"
|
|
else
|
|
echo "Please set the environment variable \$I2P to run tests." >&2
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f $I2P/lib/i2p.jar ]; then
|
|
echo "I2P installation not found" >&2
|
|
echo "We looked in $I2P" >&2
|
|
echo "Not running tests against I2P installation without knowing where it is." >&2
|
|
echo >&2
|
|
echo "Please set the environment variable I2P to the location of your"
|
|
echo "I2P installation (so that \$I2P/lib/i2p.jar works)." >&2
|
|
echo "If you do so, this script will run two tests to compare your" >&2
|
|
echo "installed jbigi with the one here you just compiled to see if" >&2
|
|
echo "there is a marked improvement." >&2
|
|
exit 1
|
|
fi
|
|
echo 'Running test with standard I2P installation...'
|
|
java -cp $I2P/lib/i2p.jar:$I2P/lib/jbigi.jar net.i2p.util.NativeBigInteger
|
|
echo
|
|
echo 'Running test with new libjbigi...'
|
|
java -Djava.library.path=lib/ -cp $I2P/lib/i2p.jar:$I2P/lib/jbigi.jar net.i2p.util.NativeBigInteger
|
|
echo 'If the second run shows better performance, please use the jbigi that you have compiled so that I2P will work better!'
|
|
echo "(You can do that just by copying lib/libjbigi.so over the existing libjbigi.so file in \$I2P)"
|
|
fi
|