OSDN Git Service

8327438f0dbacd2720041e7ae1b62bb6b2aef46f
[slunkcrypt/SlunkCrypt.git] / etc / utils / linux / mk-musl.sh
1 #!/bin/bash
2 # sudo apt install crossbuild-essential-i386
3 # sudo apt install crossbuild-essential-arm64
4 set -e
5 cd -- "$(dirname -- "${BASH_SOURCE[0]}")"
6
7 function mk_musl() {
8         local outdir="/usr/local/musl/${1}-linux-gnu"
9         local build="musl-build-${1}"
10         rm -rf "${build}" && mkdir -p "${build}"
11         tar -xvf "musl-latest.tar.gz" --strip-components=1 -C "${build}"
12         pushd "${build}"
13         local optdirs="$(find './src' -mindepth 1 -maxdepth 1 -type d -printf '%f,' | sed 's/,$//g')"
14         if [ -z "${2}" ]; then
15                 ./configure --enable-optimize="${optdirs}" --disable-shared --prefix="${outdir}"
16         else
17                 ./configure --enable-optimize="${optdirs}" --disable-shared --prefix="${outdir}" --host="${2}"
18         fi
19         make
20         sudo rm -rf "${outdir}"
21         sudo make install
22         popd
23 }
24
25 if [ "$(gcc -dumpmachine)" != "x86_64-linux-gnu" ]; then
26         echo "This script is supposed to run on the native \"x86_64-linux-gnu\" platform !!!"
27         exit 1
28 fi
29
30 curl -vkf -o "musl-latest.tar.gz" "https://musl.libc.org/releases/musl-latest.tar.gz"
31
32 mk_musl x86_64
33 mk_musl i686 i686-linux-gnu
34 mk_musl aarch64 aarch64-linux-gnu