forked from rsenn/qjs-net
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-libwebsockets.sh
118 lines (111 loc) · 3.75 KB
/
build-libwebsockets.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
build_libwebsockets() (
configure_libwebsockets "$@"
make_libwebsockets
)
make_libwebsockets() {
(set -x; make ${njobs:+-j} ${njobs:+$njobs} ${builddir:+-C} ${builddir:+$builddir} "$@")
}
cmake_run() {
{ cd $builddir && cmake "$@" -LA; } | {
IFS=":="
while read -r LINE; do
read -r NAME TYPE VALUE <<<"$LINE"
case $TYPE in
STRING | PATH | FILEPATH | BOOL)
echo "$NAME:$TYPE=$VALUE"
;;
*)
echo "$LINE" 1>&2
;;
esac
done > cmake-vars.txt
}
}
configure_libwebsockets() {
: ${sourcedir:=libwebsockets}
: ${builddir:=libwebsockets/build/$($CC -dumpmachine)}
: ${prefix:=/opt/libwebsockets} #-$(cd "$sourcedir" && git branch -a |sed -n '/^\*/ { s|^[* ]*||; s|-[a-z]*$||; s|\s||g; p }')}
: ${njobs:=10}
: ${relsrcdir:=$(realpath --relative-to $builddir $sourcedir)}
: ${PLUGINS:=OFF}
: ${DISKCACHE:=ON}
: ${CC:=gcc}
: ${SHARED:=OFF}
: ${CFLAGS:="-w"}
#if [ -n "$OPENSSL_PREFIX" -a -d "$OPENSSL_PREFIX" ]; then
# if [ -z "$OPENSSL_LIBDIR" ]; then
# OPENSSL_LIBDIR="$OPENSSL_PREFIX/lib"
# fi
# if [ -z "$OPENSSL_INCLUDEDIR" ]; then
# OPENSSL_INCLUDEDIR="$OPENSSL_PREFIX/include"
# fi
#else
# archlibdir=/usr/lib/$(${CC-gcc} -dumpmachine)
# if [ -n "$archlibdir" -a -d "$archlibdir" ]; then
# if [ -e "$archlibdir/libssl.so" ]; then
# OPENSSL_LIBDIR="$archlibdir"
# OPENSSL_INCLUDEDIR=/usr/include
# fi
# fi
#fi
#if [ -d "$OPENSSL_LIBDIR" ]; then
# LINK_FLAGS="${LINK_FLAGS:+$LINK_FLAGS }-Wl,-rpath=$OPENSSL_LIBDIR"
#fi
mkdir -p $builddir
set -- $relsrcdir ${TOOLCHAIN+"-DCMAKE_TOOLCHAIN_FILE:FILEPATH=$TOOLCHAIN"} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${VERBOSE-OFF} \
${prefix:+-DCMAKE_INSTALL_PREFIX:PATH="$prefix"} \
-DCOMPILER_IS_CLANG:BOOL=OFF \
${CC:+-DCMAKE_C_COMPILER:STRING=${CC}} \
-DCMAKE_BUILD_TYPE:STRING=${TYPE-RelWithDebInfo} \
-DCMAKE_{SHARED,MODULE}_LINKER_FLAGS="$LINK_FLAGS" \
-DLWS_WITH_SHARED:BOOL=${SHARED-OFF} \
-DLWS_WITH_STATIC:BOOL=${STATIC-ON} \
-DLWS_STATIC_PIC:BOOL=${PIC-ON} \
-DDISABLE_WERROR:BOOL=ON \
-DLWS_HAVE_LIBCAP:BOOL=FALSE \
-DLWS_ROLE_RAW_PROXY:BOOL=ON \
-DLWS_UNIX_SOCK:BOOL=ON \
-DLWS_WITH_DISKCACHE:BOOL="$DISKCACHE" \
-DLWS_WITH_ACCESS_LOG:BOOL=ON \
-DLWS_WITH_CGI:BOOL=OFF \
-DLWS_WITH_DIR:BOOL=ON \
-DLWS_WITH_EVLIB_PLUGINS:BOOL=OFF \
-DLWS_WITH_EXTERNAL_POLL:BOOL=ON \
-DLWS_WITH_FILE_OPS:BOOL=ON \
-DLWS_WITH_FSMOUNT:BOOL=OFF \
-DLWS_WITH_GENCRYPTO:BOOL=ON \
-DLWS_WITH_NETLINK:BOOL=OFF \
-DLWS_WITH_HTTP2:BOOL="${HTTP2:-ON}" \
-DLWS_WITH_HTTP_BROTLI:BOOL=ON \
-DLWS_WITH_HTTP_PROXY:BOOL=ON \
-DLWS_WITH_HTTP_STREAM_COMPRESSION:BOOL=ON \
-DLWS_WITH_LEJP:BOOL=ON \
-DLWS_WITH_LEJP_CONF:BOOL=OFF \
-DLWS_WITH_LIBUV:BOOL=OFF \
-DLWS_WITH_MINIMAL_EXAMPLES:BOOL=OFF \
-DLWS_WITH_NO_LOGS:BOOL=OFF \
-DLWS_WITHOUT_EXTENSIONS:BOOL=OFF \
-DLWS_WITHOUT_TESTAPPS:BOOL=ON \
-DLWS_WITH_PLUGINS_API:BOOL=$PLUGINS \
-DLWS_WITH_PLUGINS:BOOL=$PLUGINS \
-DLWS_WITH_PLUGINS_BUILTIN:BOOL=$PLUGINS \
-DLWS_WITH_RANGES:BOOL=ON \
-DLWS_WITH_SERVER:BOOL=ON \
-DLWS_WITH_SOCKS5:BOOL=ON \
-DLWS_WITH_SYS_ASYNC_DNS:BOOL=ON \
-DLWS_WITH_THREADPOOL:BOOL=ON \
-DLWS_WITH_UNIX_SOCK:BOOL=ON \
-DLWS_WITH_ZIP_FOPS:BOOL=ON \
-DLWS_WITH_ZLIB:BOOL=ON \
-DLWS_HAVE_HMAC_CTX_new:STRING=1 \
-DLWS_HAVE_EVP_MD_CTX_free:STRING=1 \
-DLWS_HAVE_RSA_SET0_KEY:BOOL=ON \
-DLWS_HAVE_ECDSA_SIG_set0:BOOL=ON \
-DLWS_HAVE_BN_bn2binpad:BOOL=ON \
${OPENSSL_INCLUDEDIR:+-DLWS_OPENSSL_INCLUDE_DIRS:PATH="${OPENSSL_INCLUDEDIR}"} \
${OPENSSL_LIBDIR:+-DLWS_OPENSSL_LIBRARIES:PATH="${OPENSSL_LIBDIR}/libcrypto.so;${OPENSSL_LIBDIR}/libssl.so"} \
"$@"
(echo -e "Command: cd $builddir && cmake $@" | sed 's,\s\+-, \n\t-,g') >&2
CFLAGS="-I$PWD/libwebsockets/lib/plat/unix${CFLAGS:+ $CFLAGS}" cmake_run "$@" 2>&1 | tee cmake.log
}