mirror of
https://github.com/jetkvm/kvm.git
synced 2025-09-16 08:38:14 +00:00
Add compiler optimization flags targeting ARM Cortex-A7 with NEON support to improve performance of audio library builds and Go binaries. The flags enable vectorization, fast math, and loop unrolling for better execution speed on the target hardware.
52 lines
1.7 KiB
Bash
52 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# tools/build_audio_deps.sh
|
|
# Build ALSA and Opus static libs for ARM in $HOME/.jetkvm/audio-libs
|
|
set -e
|
|
|
|
# Accept version parameters or use defaults
|
|
ALSA_VERSION="${1:-1.2.14}"
|
|
OPUS_VERSION="${2:-1.5.2}"
|
|
|
|
JETKVM_HOME="$HOME/.jetkvm"
|
|
AUDIO_LIBS_DIR="$JETKVM_HOME/audio-libs"
|
|
TOOLCHAIN_DIR="$JETKVM_HOME/rv1106-system"
|
|
CROSS_PREFIX="$TOOLCHAIN_DIR/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf"
|
|
|
|
mkdir -p "$AUDIO_LIBS_DIR"
|
|
cd "$AUDIO_LIBS_DIR"
|
|
|
|
# Download sources
|
|
[ -f alsa-lib-${ALSA_VERSION}.tar.bz2 ] || wget -N https://www.alsa-project.org/files/pub/lib/alsa-lib-${ALSA_VERSION}.tar.bz2
|
|
[ -f opus-${OPUS_VERSION}.tar.gz ] || wget -N https://downloads.xiph.org/releases/opus/opus-${OPUS_VERSION}.tar.gz
|
|
|
|
# Extract
|
|
[ -d alsa-lib-${ALSA_VERSION} ] || tar xf alsa-lib-${ALSA_VERSION}.tar.bz2
|
|
[ -d opus-${OPUS_VERSION} ] || tar xf opus-${OPUS_VERSION}.tar.gz
|
|
|
|
# Optimization flags for ARM Cortex-A7 with NEON
|
|
OPTIM_CFLAGS="-O3 -mcpu=cortex-a7 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -ffast-math -funroll-loops"
|
|
|
|
export CC="${CROSS_PREFIX}-gcc"
|
|
export CFLAGS="$OPTIM_CFLAGS"
|
|
export CXXFLAGS="$OPTIM_CFLAGS"
|
|
|
|
# Build ALSA
|
|
cd alsa-lib-${ALSA_VERSION}
|
|
if [ ! -f .built ]; then
|
|
CFLAGS="$OPTIM_CFLAGS" ./configure --host arm-rockchip830-linux-uclibcgnueabihf --enable-static=yes --enable-shared=no --with-pcm-plugins=rate,linear --disable-seq --disable-rawmidi --disable-ucm
|
|
make -j$(nproc)
|
|
touch .built
|
|
fi
|
|
cd ..
|
|
|
|
# Build Opus
|
|
cd opus-${OPUS_VERSION}
|
|
if [ ! -f .built ]; then
|
|
CFLAGS="$OPTIM_CFLAGS" ./configure --host arm-rockchip830-linux-uclibcgnueabihf --enable-static=yes --enable-shared=no --enable-fixed-point
|
|
make -j$(nproc)
|
|
touch .built
|
|
fi
|
|
cd ..
|
|
|
|
echo "ALSA and Opus built in $AUDIO_LIBS_DIR"
|