Updated Linux build script + added script to build musl libc for all target platforms.

This commit is contained in:
LoRd_MuldeR 2022-04-19 20:47:15 +02:00
parent e78b144413
commit 5fbe240b51
Signed by: mulder
GPG Key ID: 2B5913365F57E03F
2 changed files with 48 additions and 15 deletions

33
etc/utils/linux/mk-musl.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/bash
# sudo apt install crossbuild-essential-i386
# sudo apt install crossbuild-essential-arm64
set -e
cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
function mk_musl() {
local outdir="/usr/local/musl/${1}-linux-gnu"
local build="musl-build-${1}"
rm -rf "${build}" && mkdir -p "${build}"
tar -xvf "musl-latest.tar.gz" --strip-components=1 -C "${build}"
pushd "${build}"
if [ -z "${2}" ]; then
./configure --prefix="${outdir}"
else
./configure --host="${2}" --prefix="${outdir}"
fi
make
sudo rm -rf "${outdir}"
sudo make install
popd
}
if [ "$(gcc -dumpmachine)" != "x86_64-linux-gnu" ]; then
echo "This script is supposed to run on the native \"x86_64-linux-gnu\" platform !!!"
exit 1
fi
curl -vkf -o "musl-latest.tar.gz" "https://musl.libc.org/releases/musl-latest.tar.gz"
mk_musl x86_64
mk_musl i686 i686-linux-gnu
mk_musl aarch64 aarch64-linux-gnu

View File

@ -1,23 +1,23 @@
#!/bin/bash #!/bin/bash
# See "etc/utils/linux/mk-musl.sh" in order to build musl libc!
set -e set -e
cd -- "$(dirname -- "${BASH_SOURCE[0]}")" cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
mkdir -p "out" function mk_slunk() {
local command="make -B CC=/usr/local/musl/${1}-linux-gnu/bin/musl-gcc STATIC=1 STRIP=1 FLTO=1"
if [ ! -z "${2}" ]; then
command="${command} ${2}"
fi
$BASH -x -c "${command}"
cp -vf "frontend/bin/slunkcrypt" "out/slunkcrypt-${1}"
}
rm -rf "out" && mkdir -p "out"
$BASH -x -c "make clean" $BASH -x -c "make clean"
case "$(getconf LONG_BIT)" in mk_slunk "x86_64" "MARCH=x86-64 MTUNE=nocona"
"64") mk_slunk "i686" "MARCH=pentiumpro MTUNE=generic"
$BASH -x -c "make -B CC=musl-gcc CPU=64 FLTO=1 STATIC=1 STRIP=1 MARCH=x86-64 MTUNE=nocona" mk_slunk "aarch64"
cp -vf "frontend/bin/slunkcrypt" "out/slunkcrypt-x64"
;;
"32")
$BASH -x -c "make -B CC=musl-gcc CPU=32 FLTO=1 STATIC=1 STRIP=1 MARCH=pentiumpro MTUNE=generic"
cp -vf "frontend/bin/slunkcrypt" "out/slunkcrypt-i686"
;;
*)
echo "Unknown platform!"
exit 1
;;
esac
printf "\033[1;32m\nBuild completed successfully.\033[0m\n\n" printf "\033[1;32m\nBuild completed successfully.\033[0m\n\n"