i2pd for Android
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

94 lines
2.3 KiB

#!/bin/bash
# https://stackoverflow.com/a/246128
SOURCE="${0}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )"
# Checking Android SDK
if [ -z "$ANDROID_HOME" -a "$ANDROID_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_HOME is empty. Run 'export ANDROID_HOME=[PATH_TO_SDK]'\033[0m"
exit
fi
# Checking Android NDK
if [ -z "$ANDROID_NDK_HOME" -a "$ANDROID_NDK_HOME" == "" ]; then
echo -e "\033[31mFailed! ANDROID_NDK_HOME is empty. Run 'export ANDROID_NDK_HOME=[PATH_TO_NDK]'\033[0m"
exit 1
fi
_NDK_OPTS="-j `nproc` NDK_MODULE_PATH=$DIR"
help()
{
echo "Syntax: $(basename "$SOURCE") [-m|d|s|h|v]"
echo "Options:"
echo "b Build binary."
echo "d Debug build."
echo "s Strip binaries."
echo "x Skip libraries rebuild."
echo "v Verbose NDK output."
echo "h Print this Help."
echo
}
while getopts ":dbsvxh" option; do
case $option in
d) # debug build
_NDK_OPTS="$_NDK_OPTS NDK_DEBUG=1"
;;
b) # build binary
_BINARY=1
;;
s) # strip binaries
_STRIP=1
;;
x) # skip libraries rebuild
_SKIP_LIBS=1
;;
v) # verbose output
_NDK_OPTS="$_NDK_OPTS V=1 NDK_LOG=1"
;;
h) # display help
help
exit;;
\?) # Invalid option
echo "Error: Invalid option. Use $(basename "$SOURCE") -h for help"
exit;;
esac
done
# Building
if [ -z "$_SKIP_LIBS" ]; then
echo "Building boost..."
./build_boost.sh
echo "Building openssl..."
./build_openssl.sh
echo "Building miniupnpc..."
./build_miniupnpc.sh
fi
if [ ! -z "$_BINARY" ]; then
echo "Building i2pd..."
$ANDROID_NDK_HOME/ndk-build $_NDK_OPTS
fi
echo "Processing binaries (if requested)..."
pushd $DIR/../libs > /dev/null
for xarch in $(ls .); do
if [ ! -z "$_STRIP" ]; then
$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip -s $xarch/i2pd
fi
if [ ! -z "$_MODULE" ]; then
mv $xarch/i2pd $xarch/libi2pd.so
fi
done
popd > /dev/null
echo "Compilation finished"