mirror of
https://github.com/EasyTier/EasyTier.git
synced 2024-11-16 11:42:27 +08:00
df17a7bb68
* use correct i18n hook * fix peer rpc panic make sure server use correct transact id * fix dhcp recreate tun device after ip changed * use upx correctly * compile arm & armv7 * prepare to release v1.1.0
82 lines
2.3 KiB
Bash
82 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# env needed:
|
|
# - TARGET
|
|
# - GUI_TARGET
|
|
# - OS
|
|
|
|
# dependencies are only needed on ubuntu as that's the only place where
|
|
# we make cross-compilation
|
|
if [[ $OS =~ ^ubuntu.*$ ]]; then
|
|
sudo apt-get update && sudo apt-get install -qq crossbuild-essential-arm64 crossbuild-essential-armhf musl-tools
|
|
# for easytier-gui
|
|
if [[ $GUI_TARGET != '' ]]; then
|
|
sudo apt install libwebkit2gtk-4.0-dev \
|
|
build-essential \
|
|
curl \
|
|
wget \
|
|
file \
|
|
libssl-dev \
|
|
libgtk-3-dev \
|
|
libayatana-appindicator3-dev \
|
|
librsvg2-dev \
|
|
patchelf
|
|
fi
|
|
# curl -s musl.cc | grep mipsel
|
|
case $TARGET in
|
|
mipsel-unknown-linux-musl)
|
|
MUSL_URI=mipsel-linux-muslsf
|
|
;;
|
|
mips-unknown-linux-musl)
|
|
MUSL_URI=mips-linux-muslsf
|
|
;;
|
|
aarch64-unknown-linux-musl)
|
|
MUSL_URI=aarch64-linux-musl
|
|
;;
|
|
armv7-unknown-linux-musleabihf)
|
|
MUSL_URI=armv7l-linux-musleabihf
|
|
;;
|
|
armv7-unknown-linux-musleabi)
|
|
MUSL_URI=armv7m-linux-musleabi
|
|
;;
|
|
arm-unknown-linux-musleabihf)
|
|
MUSL_URI=arm-linux-musleabihf
|
|
;;
|
|
arm-unknown-linux-musleabi)
|
|
MUSL_URI=arm-linux-musleabi
|
|
;;
|
|
esac
|
|
|
|
if [ -n "$MUSL_URI" ]; then
|
|
mkdir -p ./musl_gcc
|
|
wget -c https://musl.cc/${MUSL_URI}-cross.tgz -P ./musl_gcc/
|
|
tar zxf ./musl_gcc/${MUSL_URI}-cross.tgz -C ./musl_gcc/
|
|
sudo ln -s $(pwd)/musl_gcc/${MUSL_URI}-cross/bin/*gcc /usr/bin/
|
|
fi
|
|
fi
|
|
|
|
# see https://github.com/rust-lang/rustup/issues/3709
|
|
rustup set auto-self-update disable
|
|
rustup install 1.75
|
|
rustup default 1.75
|
|
|
|
# mips/mipsel cannot add target from rustup, need compile by ourselves
|
|
if [[ $OS =~ ^ubuntu.*$ && $TARGET =~ ^mips.*$ ]]; then
|
|
cd "$PWD/musl_gcc/${MUSL_URI}-cross/lib/gcc/${MUSL_URI}/11.2.1" || exit 255
|
|
# for panic-abort
|
|
cp libgcc_eh.a libunwind.a
|
|
|
|
# for mimalloc
|
|
ar x libgcc.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
ar rcs libctz.a _ctzsi2.o _clz.o _bswapsi2.o
|
|
|
|
rustup toolchain install nightly-x86_64-unknown-linux-gnu
|
|
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
|
|
cd -
|
|
else
|
|
rustup target add $TARGET
|
|
if [[ $GUI_TARGET != '' ]]; then
|
|
rustup target add $GUI_TARGET
|
|
fi
|
|
fi
|