chore: initial commit of OpenWRT
This commit is contained in:
76
flint1-armv7/build/build-mosh-static.sh
Executable file
76
flint1-armv7/build/build-mosh-static.sh
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
CROSS=arm-linux-gnueabihf
|
||||
CFLAGS_CROSS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
|
||||
CFLAGS_CROSS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard"
|
||||
# Debian armhf packages use these paths
|
||||
ARM_INCLUDE="-I/usr/include/arm-linux-gnueabihf -I/usr/include"
|
||||
ARM_LIBDIR="/usr/lib/arm-linux-gnueabihf"
|
||||
SYSROOT=/home/user/Public/Projects/OpenWRT/flint1-armv7/src/mosh-sysroot
|
||||
BUILDDIR=/tmp/mosh-arm-build
|
||||
SRCDIR=/home/user/Public/Projects/OpenWRT/flint1-armv7/src/mosh
|
||||
BINDIR=/home/user/Public/Projects/OpenWRT/flint1-armv7/binaries
|
||||
|
||||
mkdir -p "$SYSROOT" "$BUILDDIR" "$BINDIR"
|
||||
|
||||
echo "=== [1/3] Building protobuf host tools + ARM library ==="
|
||||
PROTO_VER=3.21.12
|
||||
cd "$BUILDDIR"
|
||||
rm -rf protobuf-"${PROTO_VER}"
|
||||
tar -xzf /tmp/protobuf-"${PROTO_VER}".tar.gz
|
||||
cd protobuf-"${PROTO_VER}"
|
||||
|
||||
# Build host protoc
|
||||
./configure --prefix=/tmp/host-protoc
|
||||
make -j$(nproc)
|
||||
make install
|
||||
HOST_PROTOC=/tmp/host-protoc/bin/protoc
|
||||
echo " host protoc: $($HOST_PROTOC --version)"
|
||||
|
||||
# Cross-compile protobuf library
|
||||
make distclean
|
||||
./configure \
|
||||
--host=${CROSS} \
|
||||
--prefix="$SYSROOT" \
|
||||
--with-protoc="$HOST_PROTOC" \
|
||||
CC=${CROSS}-gcc \
|
||||
CXX=${CROSS}-g++ \
|
||||
CFLAGS="-static ${CFLAGS_CROSS}" \
|
||||
CXXFLAGS="-static ${CFLAGS_CROSS} -std=c++14" \
|
||||
LDFLAGS="-static"
|
||||
make -j$(nproc)
|
||||
make install
|
||||
echo " protobuf ARM OK: $SYSROOT/lib/libprotobuf.a"
|
||||
|
||||
echo "=== [2/3] Configuring mosh ==="
|
||||
cd "$SRCDIR"
|
||||
[ -f configure ] || ./autogen.sh
|
||||
|
||||
./configure \
|
||||
--host=${CROSS} \
|
||||
--prefix="$SYSROOT" \
|
||||
CC=${CROSS}-gcc \
|
||||
CXX=${CROSS}-g++ \
|
||||
CFLAGS="-static ${CFLAGS_CROSS}" \
|
||||
CXXFLAGS="-static ${CFLAGS_CROSS}" \
|
||||
LDFLAGS="-static -L${SYSROOT}/lib -L${ARM_LIBDIR}" \
|
||||
LIBS="-lz -lzstd -ldl" \
|
||||
CPPFLAGS="-I${SYSROOT}/include ${ARM_INCLUDE}" \
|
||||
PKG_CONFIG="pkg-config" \
|
||||
PKG_CONFIG_PATH="${SYSROOT}/lib/pkgconfig:${ARM_LIBDIR}/pkgconfig" \
|
||||
PKG_CONFIG_LIBDIR="${SYSROOT}/lib/pkgconfig:${ARM_LIBDIR}/pkgconfig"
|
||||
|
||||
echo "=== [3/3] Compiling mosh ==="
|
||||
make -j$(nproc)
|
||||
|
||||
cp src/frontend/mosh-server "$BINDIR/mosh-server-static-armv7" 2>/dev/null || \
|
||||
cp src/frontend/mosh-server "$BINDIR/mosh-server-static-armv7"
|
||||
cp src/frontend/mosh-client "$BINDIR/mosh-client-static-armv7" 2>/dev/null || \
|
||||
cp src/frontend/mosh-client "$BINDIR/mosh-client-static-armv7"
|
||||
|
||||
echo ""
|
||||
echo "=== Build Complete ==="
|
||||
file "$BINDIR/mosh-server-static-armv7"
|
||||
file "$BINDIR/mosh-client-static-armv7"
|
||||
ls -lh "$BINDIR/"
|
||||
Reference in New Issue
Block a user