Skip to content

Commit c0b3235

Browse files
committed
更新:使用新脚本编译.
1 parent 35e1746 commit c0b3235

File tree

6 files changed

+104
-253
lines changed

6 files changed

+104
-253
lines changed

.gitignore

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
*.tar.gz
2-
zlib-1.2.8
3-
openssl-1.0.2g
41
libwebsockets
5-
libuv
6-
android-toolchain-aarch64
7-
android-toolchain-arm
2+
arm64
3+
arm

01-download.sh

Lines changed: 0 additions & 27 deletions
This file was deleted.

02-prebuild.sh

Lines changed: 0 additions & 16 deletions
This file was deleted.

03-build-arm.sh

Lines changed: 0 additions & 102 deletions
This file was deleted.

03-build-arm64.sh

Lines changed: 0 additions & 102 deletions
This file was deleted.

build.sh

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#!/bin/bash
2+
3+
# 当一个命令执行失败时,shell会立即退出
4+
set -e
5+
# path to NDK
6+
export NDK=/opt/android-ndk
7+
8+
[ ! -d libwebsockets ] && {
9+
git clone https://github.com/warmcat/libwebsockets.git
10+
cd libwebsockets && git checkout -b v2.3.0 v2.3.0 && cd ..
11+
}
12+
13+
14+
echo $"Choose arch you like to build, arm(1) or arm64(2)? (1/2)"
15+
read ans;
16+
17+
case $ans in
18+
1)
19+
ARCH=arm
20+
TOOLCHAIN_NAME=arm-linux-android-4.9
21+
TOOL_PREFIX=arm-linux-androideabi-;;
22+
2)
23+
ARCH=arm64
24+
TOOLCHAIN_NAME=aarch64-linux-android-4.9
25+
TOOL_PREFIX=aarch64-linux-android-;;
26+
*)
27+
exit;;
28+
esac
29+
30+
# create a local android toolchain
31+
$NDK/build/tools/make-standalone-toolchain.sh \
32+
--force \
33+
--arch=${ARCH} \
34+
--platform=android-21 \
35+
--toolchain=${TOOLCHAIN_NAME} \
36+
--install-dir=`pwd`/${ARCH}
37+
38+
# setup environment to use the gcc/ld from the android toolchain
39+
export TOOLCHAIN_PATH=`pwd`/${ARCH}/bin
40+
export TOOL=${TOOL_PREFIX}
41+
export NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}/${TOOL}
42+
export CC=${NDK_TOOLCHAIN_BASENAME}gcc
43+
export CXX=${NDK_TOOLCHAIN_BASENAME}g++
44+
export LINK=${CXX}
45+
export LD=${NDK_TOOLCHAIN_BASENAME}ld
46+
export AR=${NDK_TOOLCHAIN_BASENAME}ar
47+
export RANLIB=${NDK_TOOLCHAIN_BASENAME}ranlib
48+
export STRIP=${NDK_TOOLCHAIN_BASENAME}strip
49+
50+
echo 'add zlib'
51+
# configure and build zlib
52+
cp -r thirdparty/zlib/${ARCH}/include ${ARCH}
53+
cp thirdparty/zlib/${ARCH}/lib/libz.a ${ARCH}/lib/libz.a
54+
echo 'add zlib done'
55+
56+
echo 'add openssl'
57+
# configure and build openssl
58+
cp -r thirdparty/openssl/${ARCH}/include/openssl ${ARCH}/include/openssl
59+
cp thirdparty/openssl/${ARCH}/lib/libcrypto.a ${ARCH}/lib/libcrypto.a
60+
cp thirdparty/openssl/${ARCH}/lib/libssl.a ${ARCH}/lib/libssl.a
61+
echo 'add openssl done'
62+
63+
echo 'add libuv'
64+
# configure and build libuv
65+
cp -r thirdparty/libuv/${ARCH}/include/libuv ${ARCH}/include/libuv
66+
cp thirdparty/libuv/${ARCH}/lib/libuv.a ${ARCH}/lib/libuv.a
67+
echo 'add libuv done'
68+
69+
# configure and build libwebsockets
70+
cd libwebsockets
71+
[ -d build ] && {
72+
rm -rf build
73+
}
74+
mkdir -p build
75+
cd build
76+
PATH=$TOOLCHAIN_PATH:$PATH cmake \
77+
-DCMAKE_C_COMPILER=$CC \
78+
-DCMAKE_AR=$AR \
79+
-DCMAKE_RANLIB=$RANLIB \
80+
-DCMAKE_C_FLAGS="$CFLAGS" \
81+
-DCMAKE_INSTALL_PREFIX=$TOOLCHAIN_PATH/.. \
82+
-DLWS_WITH_SHARED=ON \
83+
-DLWS_WITH_STATIC=ON \
84+
-DLWS_WITHOUT_DAEMONIZE=ON \
85+
-DLWS_WITHOUT_TESTAPPS=ON \
86+
-DLWS_IPV6=OFF \
87+
-DLWS_WITHOUT_TEST_SERVER=OFF \
88+
-DLWS_USE_BUNDLED_ZLIB=OFF \
89+
-DLWS_WITH_SSL=ON \
90+
-DLWS_WITH_HTTP2=ON \
91+
-DLWS_WITH_LIBUV=ON \
92+
-DLWS_WITH_PLUGINS=ON \
93+
-DLWS_WITH_LWSWS=ON \
94+
-DLWS_OPENSSL_LIBRARIES="$TOOLCHAIN_PATH/../lib/libssl.a;$TOOLCHAIN_PATH/../lib/libcrypto.a" \
95+
-DLWS_OPENSSL_INCLUDE_DIRS="$TOOLCHAIN_PATH/../include" \
96+
-DLWS_LIBUV_LIBRARIES="${TOOLCHAIN_PATH}/../lib/libuv.a" \
97+
-DLWS_LIBUV_INCLUDE_DIRS="${TOOLCHAIN_PATH}/../include/libuv" \
98+
-DCMAKE_BUILD_TYPE=Debug \
99+
..
100+
PATH=$TOOLCHAIN_PATH:$PATH make
101+
PATH=$TOOLCHAIN_PATH:$PATH make install
102+
cd ../..

0 commit comments

Comments
 (0)