代码拉取完成,页面将自动刷新
同步操作将从 EMQX/neuron 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#!/bin/bash
set -e
compiler_prefix="x86_64-linux-gnu"
dir="/usr/local/"
install_dir=
arch=x86_64
while getopts ":c:d:a:" OPT; do
case ${OPT} in
a)
arch=$OPTARG
;;
c)
compiler_prefix=$OPTARG
;;
d)
dir=$OPTARG
;;
esac
done
install_dir=${dir}/${compiler_prefix}
#$1 rep
#$2 tag
#$3 compile option
function compile_source() {
git clone https://github.com/$1 tmp
cd tmp
git checkout -b br $2
mkdir build && cd build
cmake .. -DCMAKE_C_COMPILER=${compiler_prefix}-gcc \
-DCMAKE_CXX_COMPILER=${compiler_prefix}-g++ \
-DCMAKE_STAGING_PREFIX=${install_dir} \
-DCMAKE_PREFIX_PATH=${install_dir} \
$3
# github-hosted runners has 2 core
make -j4 && sudo make install
cd ../../
rm -rf tmp
}
function build_openssl() {
echo "Installing openssl (1.1.1)"
if [ $compiler_prefix == "x86_64-linux-gnu" ]; then
sudo apt-get install -y openssl libssl-dev
else
git clone -b OpenSSL_1_1_1 https://github.com/openssl/openssl.git
cd openssl
mkdir -p ${install_dir}/openssl/ssl
./Configure linux-${arch} no-asm shared \
--prefix=${install_dir}/openssl \
--openssldir=${install_dir}/openssl/ssl \
--cross-compile-prefix=${compiler_prefix}- \
--with-zlib-include=${install_dir}/zlib/include \
--with-zlib-lib=${install_dir}/zlib/lib
make clean
make -j4
make install_sw
make clean
cd ../
fi
}
function build_zlog() {
git clone -b 1.2.15 https://github.com/HardySimpson/zlog.git
cd zlog
make CC=${compiler_prefix}-gcc
if [ $compiler_prefix == "x86_64-linux-gnu" ]; then
sudo make install
sudo make PREFIX=${install_dir} install
else
sudo make PREFIX=${install_dir} install
fi
}
ssl_lib_flag="-DOPENSSL_ROOT_DIR=${install_dir}/openssl \
-DOPENSSL_INCLUDE_DIR=${install_dir}/openssl/include \
-DOPENSSL_LIBRARIES='${install_dir}/openssl/lib'"
build_zlog
compile_source yaml/libyaml.git 0.2.5 "-DBUILD_SHARED_LIBS=OFF"
compile_source madler/zlib.git v1.2.11
compile_source akheron/jansson.git v2.14 "-DJANSSON_BUILD_DOCS=OFF -DJANSSON_EXAMPLES=OFF"
build_openssl
compile_source neugates/nng.git HEAD "-DBUILD_SHARED_LIBS=OFF -DNNG_TESTS=OFF"
if [ $compiler_prefix == "x86_64-linux-gnu" ]; then
compile_source benmcollins/libjwt.git v1.13.1 "-DENABLE_PIC=ON -DBUILD_SHARED_LIBS=OFF"
compile_source neugates/MQTT-C.git HEAD "-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DMQTT_C_OpenSSL_SUPPORT=ON -DMQTT_C_EXAMPLES=OFF"
compile_source google/googletest.git release-1.11.0
else
compile_source benmcollins/libjwt.git v1.13.1 "${ssl_lib_flag} -DENABLE_PIC=ON -DBUILD_SHARED_LIBS=OFF"
compile_source neugates/MQTT-C.git HEAD "${ssl_lib_flag} -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DMQTT_C_OpenSSL_SUPPORT=ON -DMQTT_C_EXAMPLES=OFF"
fi
#compile_source ARMmbed/mbedtls.git v3.1.0 "-DCMAKE_BUILD_TYPE=Release -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DENABLE_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON"
#compile_source nanomq/nng.git nng-mqtt "-DBUILD_SHARED_LIBS=OFF -DNNG_TESTS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DNNG_ENABLE_TLS=ON"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。