This commit is contained in:
parent
a5e339a358
commit
7bf624589f
@ -91,48 +91,55 @@ fi
|
|||||||
INSTALL_DIR="$USER_HOME/.musl-cross"
|
INSTALL_DIR="$USER_HOME/.musl-cross"
|
||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
|
|
||||||
MUSL_CC_URL="https://musl.cc"
|
|
||||||
TMPDIR=$(mktemp -d)
|
TMPDIR=$(mktemp -d)
|
||||||
trap 'rm -rf "$TMPDIR"' EXIT
|
trap 'rm -rf "$TMPDIR"' EXIT
|
||||||
|
|
||||||
# x86_64
|
function install_musl_cross() {
|
||||||
if [ ! -d "$INSTALL_DIR/x86_64-linux-musl-cross" ]; then
|
local TOOLCHAIN="$1"
|
||||||
echo "Downloading x86_64 musl cross toolchain..."
|
local MUSL_CC_URL="https://musl.cc"
|
||||||
wget -nc -O "$TMPDIR/x86_64-linux-musl-cross.tgz" $MUSL_CC_URL/x86_64-linux-musl-cross.tgz
|
if [ ! -d "$INSTALL_DIR/$TOOLCHAIN" ]; then
|
||||||
tar -C "$INSTALL_DIR" -xvf "$TMPDIR/x86_64-linux-musl-cross.tgz"
|
echo "Downloading $TOOLCHAIN musl cross toolchain..."
|
||||||
fi
|
wget -nc -O "$TMPDIR/$TOOLCHAIN.tgz" $MUSL_CC_URL/$TOOLCHAIN.tgz
|
||||||
|
tar -C "$INSTALL_DIR" -xvf "$TMPDIR/$TOOLCHAIN.tgz"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# x86_64 native
|
function check_path() {
|
||||||
if [ ! -d "$INSTALL_DIR/x86_64-linux-musl-native" ]; then
|
if [ -n "$SUDO_USER" ] && [ "$SUDO_USER" != "root" ]; then
|
||||||
echo "Downloading x86_64 musl native toolchain..."
|
local BASHRC="$USER_HOME/.bashrc"
|
||||||
wget -nc -O "$TMPDIR/x86_64-linux-musl-native.tgz" $MUSL_CC_URL/x86_64-linux-musl-native.tgz
|
local TOOLCHAIN="$1"
|
||||||
tar -C "$INSTALL_DIR" -xvf "$TMPDIR/x86_64-linux-musl-native.tgz"
|
local MUSL_PATH="$INSTALL_DIR/$TOOLCHAIN/bin"
|
||||||
fi
|
if ! echo "$PATH" | grep -q "$MUSL_PATH"; then
|
||||||
|
echo "Adding $MUSL_PATH to PATH in $BASHRC"
|
||||||
|
PATH_LINE="export PATH=\"$MUSL_PATH:\$PATH\""
|
||||||
|
if ! grep -Fxq "$PATH_LINE" "$BASHRC"; then
|
||||||
|
echo "" >> "$BASHRC"
|
||||||
|
echo "# Add musl cross compilers to PATH for dropshell" >> "$BASHRC"
|
||||||
|
echo "$PATH_LINE" >> "$BASHRC"
|
||||||
|
echo "Added musl cross compilers to $BASHRC"
|
||||||
|
echo "You should run 'source ~/.bashrc' to update your PATH"
|
||||||
|
else
|
||||||
|
echo "You should run 'source ~/.bashrc' to update your PATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# aarch64
|
|
||||||
if [ ! -d "$INSTALL_DIR/aarch64-linux-musl-cross" ]; then
|
TOOLCHAIN_LIST=(
|
||||||
echo "Downloading aarch64 musl cross toolchain..."
|
"aarch64-linux-musl-cross"
|
||||||
wget -nc -O "$TMPDIR/aarch64-linux-musl-cross.tgz" $MUSL_CC_URL/aarch64-linux-musl-cross.tgz
|
"x86_64-linux-musl-cross"
|
||||||
tar -C "$INSTALL_DIR" -xvf "$TMPDIR/aarch64-linux-musl-cross.tgz"
|
"x86_64-linux-musl-native"
|
||||||
fi
|
)
|
||||||
|
|
||||||
|
for TOOLCHAIN in "${TOOLCHAIN_LIST[@]}"; do
|
||||||
|
install_musl_cross "$TOOLCHAIN"
|
||||||
|
check_path "$TOOLCHAIN"
|
||||||
|
done
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
rm -rf "$TMPDIR"
|
rm -rf "$TMPDIR"
|
||||||
|
|
||||||
# If run with sudo, add to invoking user's ~/.bashrc
|
|
||||||
if [ -n "$SUDO_USER" ] && [ "$SUDO_USER" != "root" ]; then
|
|
||||||
BASHRC="$USER_HOME/.bashrc"
|
|
||||||
EXPORT_LINE="export PATH=\"$INSTALL_DIR/x86_64-linux-musl-cross/bin:$INSTALL_DIR/aarch64-linux-musl-cross/bin:\$PATH\""
|
|
||||||
if ! grep -Fxq "$EXPORT_LINE" "$BASHRC"; then
|
|
||||||
echo "" >> "$BASHRC"
|
|
||||||
echo "# Add musl cross compilers to PATH for bb64" >> "$BASHRC"
|
|
||||||
echo "$EXPORT_LINE" >> "$BASHRC"
|
|
||||||
echo "Added musl cross compilers to $BASHRC"
|
|
||||||
else
|
|
||||||
echo "musl cross compiler PATH already present in $BASHRC"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------
|
||||||
# COMPLETE
|
# COMPLETE
|
||||||
# ----------------------------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user