2020-06-26 13:48:50 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
2020-06-29 11:41:34 +02:00
|
|
|
[[ -z "$TARGET" ]] && echo "Please set the TARGET variable" && exit 1
|
|
|
|
|
|
|
|
if [ "$(id -u)" == "0" ]; then
|
|
|
|
[[ -z "$TO_UID" ]] && echo "Please set the TO_UID variable" && exit 1
|
|
|
|
fi
|
2020-06-26 13:48:50 +02:00
|
|
|
|
|
|
|
cd secp256k1
|
|
|
|
|
|
|
|
if [ "$TARGET" == "mingw" ]; then
|
|
|
|
CONF_OPTS="CFLAGS=-fpic --host=x86_64-w64-mingw32"
|
|
|
|
elif [ "$TARGET" == "linux" ]; then
|
|
|
|
CONF_OPTS="CFLAGS=-fpic"
|
2020-06-29 13:02:45 +02:00
|
|
|
[ "$CROSS" == "1" ] && sudo apt -y install libgmp-dev
|
2020-06-29 11:41:34 +02:00
|
|
|
elif [ "$TARGET" == "darwin" ]; then
|
|
|
|
CONF_OPTS="--host=x86_64-w64-darwin"
|
2020-06-26 13:48:50 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
./autogen.sh
|
|
|
|
./configure $CONF_OPTS --enable-experimental --enable-module_ecdh --enable-module-recovery --enable-benchmark=no --enable-shared=no --enable-exhaustive-tests=no --enable-tests=no
|
|
|
|
make clean
|
|
|
|
make
|
|
|
|
|
2020-06-29 11:41:34 +02:00
|
|
|
[[ ! -z "$TO_UID" ]] && chown -R $TO_UID:$TO_UID .
|
|
|
|
|
2020-06-26 13:48:50 +02:00
|
|
|
cd ..
|
|
|
|
|
|
|
|
mkdir -p build/$TARGET
|
2020-06-26 20:50:32 +02:00
|
|
|
cp -v secp256k1/.libs/libsecp256k1.a build/$TARGET/
|
2020-06-26 13:48:50 +02:00
|
|
|
|
2020-06-29 11:41:34 +02:00
|
|
|
[[ ! -z "$TO_UID" ]] && chown -R $TO_UID:$TO_UID build
|
|
|
|
|
2020-06-26 20:50:32 +02:00
|
|
|
CC=gcc
|
2020-06-26 13:48:50 +02:00
|
|
|
JNI_HEADERS=$TARGET
|
|
|
|
|
|
|
|
if [ "$TARGET" == "linux" ]; then
|
|
|
|
OUTFILE=libsecp256k1-jni.so
|
2020-06-29 11:41:34 +02:00
|
|
|
ADD_LIB=-lgmp
|
2020-06-26 13:48:50 +02:00
|
|
|
elif [ "$TARGET" == "darwin" ]; then
|
|
|
|
OUTFILE=libsecp256k1-jni.dylib
|
2020-06-29 11:41:34 +02:00
|
|
|
if [ -z "$CROSS_TRIPLE" ]; then
|
|
|
|
ADD_LIB=-lgmp
|
|
|
|
fi
|
2020-06-26 13:48:50 +02:00
|
|
|
elif [ "$TARGET" == "mingw" ]; then
|
|
|
|
OUTFILE=secp256k1-jni.dll
|
2020-06-26 20:50:32 +02:00
|
|
|
CC=/usr/src/mxe/usr/bin/x86_64-w64-mingw32.static-gcc
|
2020-06-26 13:48:50 +02:00
|
|
|
JNI_HEADERS=linux
|
2020-06-26 20:50:32 +02:00
|
|
|
CC_OPTS="-fpic"
|
2020-06-26 13:48:50 +02:00
|
|
|
fi
|
|
|
|
|
2020-07-01 13:53:26 +02:00
|
|
|
$CC -shared $CC_OPTS -o build/$TARGET/$OUTFILE jni/src/org_bitcoin_Secp256k1CFunctions.c -Ijni/headers/ -Ijni/headers/java -Ijni/headers/$JNI_HEADERS/ -Isecp256k1/ -lsecp256k1 -Lbuild/$TARGET/ $ADD_LIB
|
2020-06-29 11:41:34 +02:00
|
|
|
|
|
|
|
[[ ! -z "$TO_UID" ]] && chown -R $TO_UID:$TO_UID build
|
|
|
|
|
|
|
|
echo "Build done for $TARGET"
|