:-'Generic Commit'
This commit is contained in:
parent
c972e51e4c
commit
b88258f49f
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,7 +3,7 @@ build/
|
|||||||
**/build/
|
**/build/
|
||||||
**/cmake-build-*/
|
**/cmake-build-*/
|
||||||
output/
|
output/
|
||||||
openssl*/
|
**/openssl-*/
|
||||||
|
|
||||||
|
|
||||||
# Compiled Object files
|
# Compiled Object files
|
||||||
|
@ -14,7 +14,7 @@ if [ ! -f "${DROPSHELL_BUILD_DIR}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
/bin/bash "${SCRIPT_DIR}/build_openssl.sh"
|
#/bin/bash "${SCRIPT_DIR}/build_openssl.sh"
|
||||||
|
|
||||||
|
|
||||||
# run the build script
|
# run the build script
|
||||||
|
86
dropshell-tool/build_openssl.sh
Normal file → Executable file
86
dropshell-tool/build_openssl.sh
Normal file → Executable file
@ -1,18 +1,78 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
export ARCH=x86_64
|
|
||||||
export MUSL_PREFIX=$HOME/.musl-cross/${ARCH}-linux-musl-cross
|
|
||||||
export SYSROOT=$MUSL_PREFIX/${ARCH}-linux-musl/sysroot
|
|
||||||
export CC=$MUSL_PREFIX/bin/${ARCH}-linux-musl-gcc
|
|
||||||
export AR=$MUSL_PREFIX/bin/${ARCH}-linux-musl-ar
|
|
||||||
export RANLIB=$MUSL_PREFIX/bin/${ARCH}-linux-musl-ranlib
|
|
||||||
|
|
||||||
OPENSSL_VERSION=1.1.1w
|
OPENSSL_VERSION=3.5.1
|
||||||
|
|
||||||
wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
tar xf openssl-${OPENSSL_VERSION}.tar.gz
|
BUILD_DIR="${SCRIPT_DIR}/build"
|
||||||
cd openssl-${OPENSSL_VERSION}
|
MUSL_CROSS_DIR="$HOME/.musl-cross"
|
||||||
|
mkdir -p "$BUILD_DIR"
|
||||||
|
|
||||||
CC=$CC AR=$AR RANLIB=$RANLIB ./Configure linux-x86_64 no-shared --prefix="$SYSROOT"
|
# Find all installed musl toolchains
|
||||||
make -j"$(nproc)"
|
TOOLCHAINS=()
|
||||||
make install_sw
|
for tc in "$MUSL_CROSS_DIR"/*-linux-musl-cross; do
|
||||||
|
[ -d "$tc" ] || continue
|
||||||
|
arch=$(basename "$tc" | sed 's/-linux-musl-cross//')
|
||||||
|
TOOLCHAINS+=("$arch")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ${#TOOLCHAINS[@]} -eq 0 ]; then
|
||||||
|
echo "No musl toolchains found in $MUSL_CROSS_DIR. Exiting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Found musl toolchains: ${TOOLCHAINS[*]}"
|
||||||
|
|
||||||
|
for ARCH in "${TOOLCHAINS[@]}"; do
|
||||||
|
echo "==============================="
|
||||||
|
echo "Checking OpenSSL for $ARCH..."
|
||||||
|
echo "==============================="
|
||||||
|
if [ "$ARCH" = "x86_64" ]; then
|
||||||
|
MUSL_PREFIX="$MUSL_CROSS_DIR/x86_64-linux-musl-cross"
|
||||||
|
OPENSSL_TARGET=linux-x86_64
|
||||||
|
elif [ "$ARCH" = "aarch64" ]; then
|
||||||
|
MUSL_PREFIX="$MUSL_CROSS_DIR/aarch64-linux-musl-cross"
|
||||||
|
OPENSSL_TARGET=linux-aarch64
|
||||||
|
else
|
||||||
|
# Try to guess OpenSSL target for other musl toolchains
|
||||||
|
OPENSSL_TARGET="linux-$ARCH"
|
||||||
|
MUSL_PREFIX="$MUSL_CROSS_DIR/${ARCH}-linux-musl-cross"
|
||||||
|
fi
|
||||||
|
SYSROOT="$MUSL_PREFIX/${ARCH}-linux-musl/sysroot"
|
||||||
|
CC="$MUSL_PREFIX/bin/${ARCH}-linux-musl-gcc"
|
||||||
|
AR="$MUSL_PREFIX/bin/${ARCH}-linux-musl-ar"
|
||||||
|
RANLIB="$MUSL_PREFIX/bin/${ARCH}-linux-musl-ranlib"
|
||||||
|
|
||||||
|
if [ -f "$SYSROOT/usr/lib/libssl.a" ]; then
|
||||||
|
echo "libssl.a already exists for $ARCH at $SYSROOT/usr/lib/libssl.a, skipping build."
|
||||||
|
echo
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$BUILD_DIR"
|
||||||
|
if [ ! -d "openssl-${OPENSSL_VERSION}" ]; then
|
||||||
|
if [ ! -f "openssl-${OPENSSL_VERSION}.tar.gz" ]; then
|
||||||
|
wget "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
|
||||||
|
fi
|
||||||
|
tar xf "openssl-${OPENSSL_VERSION}.tar.gz"
|
||||||
|
fi
|
||||||
|
cd "openssl-${OPENSSL_VERSION}"
|
||||||
|
|
||||||
|
# Clean previous build for this arch
|
||||||
|
make clean || true
|
||||||
|
|
||||||
|
echo "Configuring for $ARCH with sysroot $SYSROOT..."
|
||||||
|
CC="$CC" AR="$AR" RANLIB="$RANLIB" ./Configure "$OPENSSL_TARGET" no-shared --prefix="$SYSROOT/usr"
|
||||||
|
echo "Building..."
|
||||||
|
make -j"$(nproc)"
|
||||||
|
echo "Installing to $SYSROOT/usr ..."
|
||||||
|
make install_sw
|
||||||
|
cd "$BUILD_DIR"
|
||||||
|
echo "Done for $ARCH."
|
||||||
|
echo
|
||||||
|
# Remove build dir for next arch to avoid cross contamination
|
||||||
|
rm -rf "openssl-${OPENSSL_VERSION}"
|
||||||
|
tar xf "openssl-${OPENSSL_VERSION}.tar.gz"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "OpenSSL built and installed for all detected musl toolchains."
|
Loading…
x
Reference in New Issue
Block a user