+73
-13
lines changedFilter options
+73
-13
lines changed Original file line number Diff line number Diff line change
@@ -6,9 +6,11 @@ echo_help()
6
6
echo " -n Specify NDK root path for the build."
7
7
echo " -a Select target API level."
8
8
echo " -t Select target architectures."
9
-
echo " Android supports the following architectures: armeabi armeabi-v7a arm64-v8a x86 x86_64."
9
+
echo " Android supports the following architectures: armeabi-v7a arm64-v8a x86 x86_64."
10
+
echo " -e Encryption library to be used. Possible options: openssl (default) mbedtls"
10
11
echo " -o Select OpenSSL (1.1.1 series) version. E.g. 1.1.1h"
11
-
echo " -s Select a specific SRT tag. E.g. v1.4.3"
12
+
echo " -m Select Mbed TLS version. E.g. v2.26.0"
13
+
echo " -s Select SRT version. E.g. v1.4.3"
12
14
echo
13
15
echo "Example: ./build-android -n /home/username/Android/Sdk/ndk/21.4.7075529 -a 28 -t \"armeabi-v7a arm64-v8a x86 x86_64\" -o 1.1.1h -s v1.4.3"
14
16
echo
@@ -17,11 +19,13 @@ echo_help()
17
19
# Init optional command line vars
18
20
NDK_ROOT=""
19
21
API_LEVEL=28
20
-
BUILD_TARGETS="armeabi armeabi-v7a arm64-v8a x86 x86_64"
22
+
BUILD_TARGETS="armeabi-v7a arm64-v8a x86 x86_64"
21
23
OPENSSL_VERSION=1.1.1h
22
24
SRT_VERSION=""
25
+
ENC_LIB=openssl
26
+
MBEDTLS_VERSION=v2.26.0
23
27
24
-
while getopts n:a:t:o:s: option
28
+
while getopts n:a:t:o:s:e:m: option
25
29
do
26
30
case "${option}"
27
31
in
@@ -30,6 +34,8 @@ do
30
34
t) BUILD_TARGETS=${OPTARG};;
31
35
o) OPENSSL_VERSION=${OPTARG};;
32
36
s) SRT_VERSION=${OPTARG};;
37
+
e) ENC_LIB=${OPTARG};;
38
+
m) MBEDTLS_VERSION=${OPTARG};;
33
39
*) twentytwo=${OPTARG};;
34
40
esac
35
41
done
@@ -49,7 +55,19 @@ fi
49
55
# Determine the path of the executing script
50
56
BASE_DIR=$(readlink -f $0 | xargs dirname)
51
57
52
-
$BASE_DIR/mkssl -n $NDK_ROOT -a $API_LEVEL -t "$BUILD_TARGETS" -o $OPENSSL_VERSION
58
+
if [ $ENC_LIB = 'openssl' ]; then
59
+
$BASE_DIR/mkssl -n $NDK_ROOT -a $API_LEVEL -t "$BUILD_TARGETS" -o $OPENSSL_VERSION
60
+
elif [ $ENC_LIB = 'mbedtls' ]; then
61
+
if [ ! -d $BASE_DIR/mbedtls ]; then
62
+
git clone https://github.com/ARMmbed/mbedtls mbedtls
63
+
if [ ! -z "$MBEDTLS_VERSION" ]; then
64
+
git -C $BASE_DIR/mbedtls checkout $MBEDTLS_VERSION
65
+
fi
66
+
fi
67
+
else
68
+
echo "Unknown encryption library. Possible options: openssl mbedtls"
69
+
exit 128
70
+
fi
53
71
54
72
if [ ! -d $BASE_DIR/srt ]; then
55
73
git clone https://github.com/Haivision/srt srt
@@ -58,12 +76,20 @@ if [ ! -d $BASE_DIR/srt ]; then
58
76
fi
59
77
fi
60
78
61
-
JNI_DIR=$BASE_DIR/prebuilt
62
-
63
79
for build_target in $BUILD_TARGETS; do
64
-
git -C $BASE_DIR/srt clean -fd
65
-
$BASE_DIR/mksrt -n $NDK_ROOT -a $API_LEVEL -t $build_target -s $BASE_DIR/srt -i $BASE_DIR/$build_target
80
+
LIB_DIR=$BASE_DIR/$build_target/lib
81
+
JNI_DIR=$BASE_DIR/prebuilt/$build_target
82
+
83
+
mkdir -p $JNI_DIR
66
84
67
-
mkdir -p $JNI_DIR/$build_target
68
-
cp $BASE_DIR/$build_target/lib/libsrt.so $JNI_DIR/$build_target/libsrt.so
85
+
if [ $ENC_LIB = 'mbedtls' ]; then
86
+
$BASE_DIR/mkmbedtls -n $NDK_ROOT -a $API_LEVEL -t $build_target -s $BASE_DIR/mbedtls -i $BASE_DIR/$build_target
87
+
cp $LIB_DIR/libmbedcrypto.so $JNI_DIR/libmbedcrypto.so
88
+
cp $LIB_DIR/libmbedtls.so $JNI_DIR/libmbedtls.so
89
+
cp $LIB_DIR/libmbedx509.so $JNI_DIR/libmbedx509.so
90
+
fi
91
+
92
+
git -C $BASE_DIR/srt clean -fd
93
+
$BASE_DIR/mksrt -n $NDK_ROOT -a $API_LEVEL -t $build_target -e $ENC_LIB -s $BASE_DIR/srt -i $BASE_DIR/$build_target
94
+
cp $LIB_DIR/libsrt.so $JNI_DIR/libsrt.so
69
95
done
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
1
+
#!/bin/sh
2
+
3
+
while getopts s:i:t:n:a: option
4
+
do
5
+
case "${option}"
6
+
in
7
+
s) SRC_DIR=${OPTARG};;
8
+
i) INSTALL_DIR=${OPTARG};;
9
+
t) ARCH_ABI=${OPTARG};;
10
+
n) NDK_ROOT=${OPTARG};;
11
+
a) API_LEVEL=${OPTARG};;
12
+
*) twentytwo=${OPTARG};;
13
+
esac
14
+
done
15
+
16
+
17
+
BUILD_DIR=/tmp/mbedtls_android_build
18
+
rm -rf $BUILD_DIR
19
+
mkdir $BUILD_DIR
20
+
cd $BUILD_DIR
21
+
cmake -DENABLE_TESTING=Off -DUSE_SHARED_MBEDTLS_LIBRARY=On \
22
+
-DCMAKE_PREFIX_PATH=$INSTALL_DIR -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR -DCMAKE_ANDROID_NDK=$NDK_ROOT \
23
+
-DCMAKE_SYSTEM_NAME=Android -DCMAKE_SYSTEM_VERSION=$API_LEVEL -DCMAKE_ANDROID_ARCH_ABI=$ARCH_ABI \
24
+
-DCMAKE_C_FLAGS="-fPIC" -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--build-id" \
25
+
-DCMAKE_BUILD_TYPE=RelWithDebInfo $SRC_DIR
26
+
cmake --build .
27
+
cmake --install .
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
1
1
#!/bin/sh
2
2
3
-
while getopts s:i:t:n:a: option
3
+
while getopts s:i:t:n:a:e: option
4
4
do
5
5
case "${option}"
6
6
in
@@ -9,13 +9,20 @@ do
9
9
t) ARCH_ABI=${OPTARG};;
10
10
n) NDK_ROOT=${OPTARG};;
11
11
a) API_LEVEL=${OPTARG};;
12
+
e) ENC_LIB=${OPTARG};;
12
13
*) twentytwo=${OPTARG};;
13
14
esac
14
15
done
15
16
16
17
17
18
cd $SRC_DIR
18
-
./configure --use-openssl-pc=OFF --OPENSSL_USE_STATIC_LIBS=true \
19
+
./configure --use-enclib=$ENC_LIB \
20
+
--use-openssl-pc=OFF --OPENSSL_USE_STATIC_LIBS=TRUE \
21
+
--OPENSSL_INCLUDE_DIR=$INSTALL_DIR/include \
22
+
--OPENSSL_CRYPTO_LIBRARY=$INSTALL_DIR/lib/libcrypto.a --OPENSSL_SSL_LIBRARY=$INSTALL_DIR/lib/libssl.a \
23
+
--STATIC_MBEDTLS=FALSE \
24
+
--MBEDTLS_INCLUDE_DIR=$INSTALL_DIR/include --MBEDTLS_INCLUDE_DIRS=$INSTALL_DIR/include \
25
+
--MBEDTLS_LIBRARIES=$INSTALL_DIR/lib/libmbedtls.so \
19
26
--CMAKE_PREFIX_PATH=$INSTALL_DIR --CMAKE_INSTALL_PREFIX=$INSTALL_DIR --CMAKE_ANDROID_NDK=$NDK_ROOT \
20
27
--CMAKE_SYSTEM_NAME=Android --CMAKE_SYSTEM_VERSION=$API_LEVEL --CMAKE_ANDROID_ARCH_ABI=$ARCH_ABI \
21
28
--CMAKE_C_FLAGS="-fPIC" --CMAKE_SHARED_LINKER_FLAGS="-Wl,--build-id" \
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4