* libjbigi:

- Add documentation on dynamic build option
      - Add two speed tests to the build script
      - Clean up the build script, make it easier to build dynamic
This commit is contained in:
zzz
2008-05-12 13:47:15 +00:00
parent db34665bb1
commit 5be7ea1fc5
3 changed files with 78 additions and 20 deletions

View File

@ -1,4 +1,10 @@
Prior to building the jbigi library, you will need to fetch the GMP source
If you have a libgmp.so installed on your system already
(check in /usr/lib), you can build a dynamically linked libjbigi.so as follows:
cd jbigi
build.sh dynamic
The built library is jbigi/lib/libjbigi.so .
Otherwise, prior to building the jbigi library, you will need to fetch the GMP source
from http://www.swox.com/gmp/, saving it to jbigi/gmp-4.2.2.tar.bz2 (it will
be unpacked and built as necessary).
@ -16,9 +22,12 @@ it will be used only if the router fails to load the native library.
To build the native jbigi libraries for all supported CPUs (on the current OS),
go into jbigi/ and run build-all.sh (the results will be under jbigi/lib/)
After copying the files to the i2p/ directory,
The build.sh script runs two speed tests, one with your existing
I2P installation and one with the new libjbigi.
Alternatively, after copying the files to the i2p/ directory,
to run a speed test comparing the native library to the java library,
run the shell script below.
run the shell script below. Adjust the I2P= line as necessary.
-----------------

View File

@ -1,5 +1,7 @@
***net.i2p.util.NativeBigInteger, native part of the code****
See ../README for instructions.
Execute the build.sh script to produce jbigi library files optimized for a number of different CPU-types.
TODO: What is jbigi
@ -7,7 +9,9 @@ TODO: Document generated folder structure
TODO: Instructions for adding the libraries to a jar
Linux-specific information:
Some linux distributions comes bundled with GMP. There is currently no out-of-the-box support for this in the current build-scripts.
Some linux distributions comes bundled with GMP.
There is currently no out-of-the-box support for this in the current build-scripts.
Windows-specific information:
The best way of building the jbigi dll's is to install Mingw {URL} and msys {URL}. The combination of these two should be able to run the included build-scripts without modifications.
The best way of building the jbigi dll's is to install Mingw {URL} and msys {URL}.
The combination of these two should be able to run the included build-scripts without modifications.

View File

@ -1,14 +1,42 @@
#/bin/sh
#
# Build the jbigi library for i2p
#
# To build a static library:
# download gmp-4.2.2.tar.bz2 to this directory
# (if a different version, change the VER= line below)
# build.sh
#
# To build a dynamic library (you must have a libgmp.so somewhere in your system)
# build.sh dynamic
#
# The resulting library is lib/libjbigi.so
#
mkdir -p lib/
mkdir -p bin/local
VER=4.2.2
if [ "$1" != "dynamic" -a ! -d gmp-$VER ]
then
TAR=gmp-$VER.tar.bz2
if [ ! -f $TAR ]
then
echo "GMP tarball $TAR not found. You must download it from http://gmplib.org/"
exit 1
fi
echo "Building the jbigi library with GMP Version $VER"
echo "Extracting GMP..."
tar -xjf gmp-$VER.tar.bz2
echo "Building..."
mkdir -p lib/
mkdir -p bin/local
fi
cd bin/local
echo "Building..."
if [ "$1" != "dynamic" ]
then
case `uname -sr` in
Darwin*)
# --with-pic is required for static linking
@ -18,5 +46,22 @@ Darwin*)
esac
make
sh ../../build_jbigi.sh static
else
sh ../../build_jbigi.sh dynamic
fi
cp *jbigi???* ../../lib/
echo 'Library copied to lib/'
cd ../..
I2P=~/i2p
if [ ! -f $I2P/lib/i2p.jar ]
then
echo "I2P installation not found in $I2P - correct \$I2P definition in script to run speed test"
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