const gzip = require('gulp-gzip');
const inlineSource = require('gulp-inline-source');
const rename = require("gulp-rename");
-const through = require('through2');
+const through2 = require('through2');
const genHeader = (size, buf, len) => {
let idx = 0;
task('default', () => {
return src('dist/index.html')
.pipe(inlineSource())
- .pipe(through.obj((file, enc, cb) => {
+ .pipe(through2.obj((file, enc, cb) => {
fileSize = file.contents.length;
return cb(null, file);
}))
.pipe(gzip())
- .pipe(through.obj((file, enc, cb) => {
+ .pipe(through2.obj((file, enc, cb) => {
const buf = file.contents;
file.contents = Buffer.from(genHeader(fileSize, buf, buf.length));
return cb(null, file);
BUILD_ROOT="${BUILD_ROOT:-/opt/build}"
ZLIB_VERSION="${ZLIB_VERSION:-1.2.11}"
-JSON_C_VERSION="${JSON_C_VERSION:-0.13.1}"
+JSON_C_VERSION="${JSON_C_VERSION:-0.14}"
OPENSSL_VERSION="${OPENSSL_VERSION:-1.0.2u}"
-LIBUV_VERSION="${LIBUV_VERSION:-1.34.2}"
-LIBWEBSOCKETS_VERSION="${LIBWEBSOCKETS_VERSION:-3.2.2}"
+LIBUV_VERSION="${LIBUV_VERSION:-1.38.0}"
+LIBWEBSOCKETS_VERSION="${LIBWEBSOCKETS_VERSION:-4.0.19}"
build_zlib() {
echo "=== Building zlib-${ZLIB_VERSION} (${TARGET})..."
curl -sLo- https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz | tar xz -C ${BUILD_DIR}
pushd ${BUILD_DIR}/zlib-${ZLIB_VERSION}
env CHOST=${TARGET} ./configure --static --archs="-fPIC" --prefix=${STAGE_DIR}
- make -j4 install
+ make -j$(nproc) install
popd
}
echo "=== Building json-c-${JSON_C_VERSION} (${TARGET})..."
curl -sLo- https://s3.amazonaws.com/json-c_releases/releases/json-c-${JSON_C_VERSION}.tar.gz | tar xz -C ${BUILD_DIR}
pushd ${BUILD_DIR}/json-c-${JSON_C_VERSION}
- env CFLAGS=-fPIC ./configure --disable-shared --enable-static --prefix=${STAGE_DIR} --host=${TARGET}
- make -j4 install
+ mkdir build && cd build
+ cmake -DCMAKE_TOOLCHAIN_FILE=${BUILD_DIR}/cross-${TARGET}.cmake \
+ -DCMAKE_BUILD_TYPE=RELEASE \
+ -DCMAKE_INSTALL_PREFIX=${STAGE_DIR} \
+ -DBUILD_SHARED_LIBS=OFF \
+ ..
+ make -j$(nproc) install
popd
}
pushd ${BUILD_DIR}/openssl-${OPENSSL_VERSION}
env CC=${TARGET}-gcc AR=${TARGET}-ar RANLIB=${TARGET}-ranlib C_INCLUDE_PATH=${STAGE_DIR}/include \
./Configure dist -fPIC --prefix=/ --install_prefix=${STAGE_DIR}
- make -j4 > /dev/null
+ make -j$(nproc) > /dev/null
make install_sw
popd
}
pushd ${BUILD_DIR}/libuv-v${LIBUV_VERSION}
./autogen.sh
env CFLAGS=-fPIC ./configure --disable-shared --enable-static --prefix=${STAGE_DIR} --host=${TARGET}
- make -j4 install
+ make -j$(nproc) install
popd
}
sed -i 's/ websockets_shared//g' cmake/LibwebsocketsConfig.cmake.in
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=${BUILD_DIR}/cross-${TARGET}.cmake \
+ -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=${STAGE_DIR} \
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
-DCMAKE_EXE_LINKER_FLAGS="-static" \
-DLWS_UNIX_SOCK=ON \
-DLWS_IPV6=ON \
..
- make install
+ make -j$(nproc) install
+ sed -i 's/ssl;crypto;//g' ${STAGE_DIR}/lib/cmake/libwebsockets/LibwebsocketsTargets-release.cmake
popd
}
echo "=== Building target ${ALIAS} (${TARGET})..."
- rm -rf ${STAGE_DIR} ${BUILD_DIR}
+ rm -rf ${STAGE_DIR} ${BUILD_DIR}
mkdir -p ${STAGE_DIR} ${BUILD_DIR}
export PKG_CONFIG_PATH="${STAGE_DIR}/lib/pkgconfig"