Skip to content

Commit 5ae8505

Browse files
committed
分步骤执行脚本
1 parent afa18bb commit 5ae8505

File tree

4 files changed

+61
-65
lines changed

4 files changed

+61
-65
lines changed

01-download.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
# Download packages libz, openssl, libuv and libwebsockets
4+
[ ! -f zlib-1.2.8.tar.gz ] && {
5+
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz
6+
}
7+
8+
[ ! -f openssl-1.0.2g.tar.gz ] && {
9+
wget https://openssl.org/source/openssl-1.0.2g.tar.gz
10+
}
11+
12+
[ ! -f libuv.tar.gz ] && {
13+
git clone https://github.com/libuv/libuv.git
14+
tar caf libuv.tar.gz libuv
15+
}
16+
17+
[ ! -f gyp.tar.gz ] && {
18+
git clone https://github.com/bnoordhuis/gyp.git
19+
tar caf gyp.tar.gz gyp
20+
}
21+
22+
[ ! -f libwebsockets.tar.gz ] && {
23+
git clone https://github.com/warmcat/libwebsockets.git
24+
tar caf libwebsockets.tar.gz libwebsockets
25+
}

02-prebuild.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
# Clean then Unzip
4+
[ -d zlib-1.2.8 ] && rm -fr zlib-1.2.8
5+
[ -d openssl-1.0.2g ] && rm -fr openssl-1.0.2g
6+
[ -d libwebsockets ] && rm -fr libwebsockets
7+
[ -d libuv ] && rm -fr libuv
8+
[ -d gyp ] && rm -fr gyp
9+
tar xf zlib-1.2.8.tar.gz
10+
tar xf openssl-1.0.2g.tar.gz
11+
tar xf libuv.tar.gz
12+
mkdir -p libuv/build
13+
mkdir -p libuv/out
14+
tar xf gyp.tar.gz -C libuv/build
15+
tar xf libwebsockets.tar.gz
16+
cd libwebsockets && git checkout -b v2.3.0 v2.3.0
17+
Lines changed: 13 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,18 @@
11
#!/bin/bash
22

3-
#
4-
# Build libwebsockets static library for Android
5-
#
6-
# requires debian package xutils-dev for makedepend (openssl make depend)
7-
#
8-
9-
# This is based on http://stackoverflow.com/questions/11929773/compiling-the-latest-openssl-for-android/
10-
# via https://github.com/warmcat/libwebsockets/pull/502
11-
3+
# 当一个命令执行失败时,shell会立即退出
4+
set -e
125
# path to NDK
136
export NDK=/opt/android-ndk
14-
15-
set -e
16-
17-
# Download packages libz, openssl, libuv and libwebsockets
18-
19-
[ ! -f zlib-1.2.8.tar.gz ] && {
20-
wget http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz
21-
}
22-
23-
[ ! -f openssl-1.0.2g.tar.gz ] && {
24-
wget https://openssl.org/source/openssl-1.0.2g.tar.gz
25-
}
26-
27-
[ ! -f libuv.tar.gz ] && {
28-
git clone https://github.com/libuv/libuv.git
29-
tar caf libuv.tar.gz libuv
30-
}
31-
32-
[ ! -f gyp.tar.gz ] && {
33-
git clone https://github.com/bnoordhuis/gyp.git
34-
tar caf gyp.tar.gz gyp
35-
}
36-
37-
[ ! -f libwebsockets.tar.gz ] && {
38-
git clone https://github.com/warmcat/libwebsockets.git
39-
tar caf libwebsockets.tar.gz libwebsockets
40-
}
41-
42-
# Clean then Unzip
43-
44-
[ -d zlib-1.2.8 ] && rm -fr zlib-1.2.8
45-
[ -d openssl-1.0.2g ] && rm -fr openssl-1.0.2g
46-
[ -d libwebsockets ] && rm -fr libwebsockets
47-
[ -d libuv ] && rm -fr libuv
48-
[ -d gyp ] && rm -fr gyp
49-
[ -d android-toolchain-aarch64 ] && rm -fr android-toolchain-aarch64
50-
tar xf zlib-1.2.8.tar.gz
51-
tar xf openssl-1.0.2g.tar.gz
52-
tar xf libuv.tar.gz
53-
mkdir -p libuv/build
54-
mkdir -p libuv/out
55-
tar xf gyp.tar.gz -C libuv/build
56-
tar xf libwebsockets.tar.gz
57-
58-
# create a local android toolchain
7+
# create a local android toolchain
598
$NDK/build/tools/make-standalone-toolchain.sh \
60-
--arch=arm64 \
61-
--platform=android-21 \
62-
--toolchain=aarch64-linux-android-4.9 \
63-
--install-dir=`pwd`/android-toolchain-aarch64
9+
--force \
10+
--arch=arm64 \
11+
--platform=android-21 \
12+
--toolchain=aarch64-linux-android-4.9 \
13+
--install-dir=`pwd`/android-toolchain-aarch64
6414

65-
# setup environment to use the gcc/ld from the android toolchain
15+
# setup environment to use the gcc/ld from the android toolchain
6616
export TOOLCHAIN_PATH=`pwd`/android-toolchain-aarch64/bin
6717
export TOOL=aarch64-linux-android
6818
export NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}/${TOOL}
@@ -96,7 +46,7 @@ echo 'build zlib done'
9646

9747
echo 'build openssl'
9848
# configure and build openssl
99-
[ ! -f ./android-toolchain-aarch64/lib/libssl.a ] && {
49+
{
10050
PREFIX=$TOOLCHAIN_PATH/..
10151
cd openssl-1.0.2g
10252
./Configure android --prefix=${PREFIX} no-shared no-idea no-mdc2 no-rc5 no-zlib no-zlib-dynamic enable-tlsext no-ssl2 no-ssl3 enable-ec enable-ecdh enable-ecp
@@ -135,10 +85,11 @@ PATH=$TOOLCHAIN_PATH:$PATH cmake \
13585
-DLWS_WITHOUT_TESTAPPS=ON \
13686
-DLWS_IPV6=OFF \
13787
-DLWS_USE_BUNDLED_ZLIB=OFF \
138-
-DLWS_WITH_SSL=OFF \
88+
-DLWS_WITH_SSL=ON \
13989
-DLWS_WITH_HTTP2=ON \
14090
-DLWS_WITH_LIBUV=ON \
14191
-DLWS_WITH_PLUGINS=ON \
92+
-DLWS_WITH_LWSWS=ON \
14293
-DLWS_OPENSSL_LIBRARIES="$TOOLCHAIN_PATH/../lib/libssl.a;$TOOLCHAIN_PATH/../lib/libcrypto.a" \
14394
-DLWS_OPENSSL_INCLUDE_DIRS=$TOOLCHAIN_PATH/../include \
14495
-DLWS_LIBUV_LIBRARIES="${TOOLCHAIN_PATH}/../../libuv/out/Debug/libuv.a" \
@@ -148,4 +99,4 @@ PATH=$TOOLCHAIN_PATH:$PATH cmake \
14899
PATH=$TOOLCHAIN_PATH:$PATH make
149100
PATH=$TOOLCHAIN_PATH:$PATH make install
150101
cd ../..
151-
}
102+
}

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,12 @@
1212

1313
1. 修改编译脚本,指定ndk所在路径。
1414

15-
1. 执行编译脚本。
16-
sh android-make-script.sh
15+
1. 按照编号执行编译脚本。
16+
17+
sh 01-download.sh
18+
sh 02-prebuild.sh
19+
sh 03-build.sh
1720

1821
## Docker镜像
1922

20-
TODO……
23+
TODO……

0 commit comments

Comments
 (0)