mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-10 21:47:04 +03:00
73 lines
2.4 KiB
Bash
73 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
list="x86_64-linux-gnu-gcc x86-linux-gnu-gcc arm-linux-gnueabi-gcc aarch64-linux-gnu-gcc \
|
|
sparc64-linux-gnu-gcc mips-linux-gnu-gcc powerpc-linux-gnu-gcc x86_64-macos-darwin-gcc \
|
|
arm64-macos-darwin-cc x86_64-freebsd-gnu-gcc x86_64-solaris-gnu-gcc armv6-linux-gnueabi-gcc \
|
|
armv5-linux-gnueabi-gcc"
|
|
|
|
declare -A alias=( [x86-linux-gnu-gcc]=i686-stretch-linux-gnu-gcc \
|
|
[x86_64-linux-gnu-gcc]=x86_64-stretch-linux-gnu-gcc \
|
|
[arm-linux-gnueabi-gcc]=armv7-stretch-linux-gnueabi-gcc \
|
|
[armv5-linux-gnueabi-gcc]=armv6-stretch-linux-gnueabi-gcc \
|
|
[armv6-linux-gnueabi-gcc]=armv6-stretch-linux-gnueabi-gcc \
|
|
[aarch64-linux-gnu-gcc]=aarch64-stretch-linux-gnu-gcc \
|
|
[sparc64-linux-gnu-gcc]=sparc64-stretch-linux-gnu-gcc \
|
|
[mips-linux-gnu-gcc]=mips64-stretch-linux-gnu-gcc \
|
|
[powerpc-linux-gnu-gcc]=powerpc64-stretch-linux-gnu-gcc \
|
|
[x86_64-macos-darwin-gcc]=x86_64-apple-darwin19-gcc \
|
|
[arm64-macos-darwin-cc]=arm64-apple-darwin20.4-cc \
|
|
[x86_64-freebsd-gnu-gcc]=x86_64-cross-freebsd12.3-gcc \
|
|
[x86_64-solaris-gnu-gcc]=x86_64-cross-solaris2.x-gcc )
|
|
|
|
declare -A cflags=( [sparc64-linux-gnu-gcc]="-mcpu=v7" \
|
|
[mips-linux-gnu-gcc]="-march=mips32" \
|
|
[armv5-linux-gnueabi-gcc]="-march=armv5t -mfloat-abi=soft" \
|
|
[powerpc-linux-gnu-gcc]="-m32" )
|
|
|
|
declare -a compilers
|
|
|
|
IFS= read -ra candidates <<< "$list"
|
|
|
|
# do we have "clean" somewhere in parameters (assuming no compiler has "clean" in it...
|
|
if [[ $@[*]} =~ clean ]]; then
|
|
clean="clean"
|
|
fi
|
|
|
|
# first select platforms/compilers
|
|
for cc in ${candidates[@]}; do
|
|
# check compiler first
|
|
if ! command -v ${alias[$cc]:-$cc} &> /dev/null; then
|
|
if command -v $cc &> /dev/null; then
|
|
unset alias[$cc]
|
|
else
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
if [[ $# == 0 || ($# == 1 && -n $clean) ]]; then
|
|
compilers+=($cc)
|
|
continue
|
|
fi
|
|
|
|
for arg in $@
|
|
do
|
|
if [[ $cc =~ $arg ]]; then
|
|
compilers+=($cc)
|
|
fi
|
|
done
|
|
done
|
|
|
|
# then do the work
|
|
for cc in ${compilers[@]}
|
|
do
|
|
IFS=- read -r platform host package dummy <<< $cc
|
|
|
|
export CFLAGS=${cflags[$cc]}
|
|
CC=${alias[$cc]:-$cc}
|
|
|
|
make AR=${CC%-*}-ar CC=$CC PLATFORM=$platform HOST=$host $clean -j8
|
|
if [[ -n $clean ]]; then
|
|
continue
|
|
fi
|
|
done
|