diff --git a/builder/scripts.d/45-libNE10.sh b/builder/scripts.d/45-libNE10.sh new file mode 100755 index 0000000000..65f610658a --- /dev/null +++ b/builder/scripts.d/45-libNE10.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +SCRIPT_REPO="https://github.com/gnattu/Ne10.git" +SCRIPT_COMMIT="545f4f18014cdbf9fb5fb1a9f5d24000200dfa8b" + +ffbuild_enabled() { + [[ $TARGET == win* ]] && return -1 + [[ $TARGET == *arm64 ]] && return 0 + return -1 +} + +ffbuild_dockerbuild() { + git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" Ne10 + cd Ne10 + + mkdir -p build && cd build + + local myconf=( + -DGNULINUX_PLATFORM=ON # macOS is also "GNU Linux". This target means all unix-like target + ) + + if [[ $TARGET == linux* ]]; then + myconf+=( + -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" + ) + elif [[ $TARGET == mac* ]]; then + : + else + echo "Unknown target" + return -1 + fi + + export NE10_LINUX_TARGET_ARCH=aarch64 + cmake .. "${myconf[@]}" + make -j$(nproc) + # NE10 does not have install method, we have to copy files with shell command + cp modules/libNE10.a "$FFBUILD_PREFIX"/lib/libNE10.a + cp -R ../inc "$FFBUILD_PREFIX"/include/libNE10 +} diff --git a/builder/scripts.d/50-libopus.sh b/builder/scripts.d/50-libopus.sh index 0a19f9f437..c26bd11878 100755 --- a/builder/scripts.d/50-libopus.sh +++ b/builder/scripts.d/50-libopus.sh @@ -31,9 +31,27 @@ ffbuild_dockerbuild() { return -1 fi - ./configure "${myconf[@]}" + if [[ $TARGET == linux* || $TARGET == mac* ]] && [[ $TARGET == *arm64 ]]; then + myconf+=( + --with-NE10-libraries="$FFBUILD_PREFIX"/lib + --with-NE10-includes="$FFBUILD_PREFIX"/include/libNE10 + ) + fi + + # Override previously set -O(n) option and the CC's default optimization options. + CFLAGS="$CFLAGS -O3" ./configure "${myconf[@]}" make -j$(nproc) make install + + if [[ $TARGET == *arm64 ]]; then + if [[ $TARGET == mac* ]]; then + gsed -i 's/-lopus/-lopus -lNE10/' "$FFBUILD_PREFIX"/lib/pkgconfig/opus.pc + gsed -i 's/-I${includedir}\/opus/-I${includedir}\/opus -I${includedir}\/libNE10/' "$FFBUILD_PREFIX"/lib/pkgconfig/opus.pc + else + sed -i 's/-lopus/-lopus -lNE10/' "$FFBUILD_PREFIX"/lib/pkgconfig/opus.pc + sed -i 's/-I${includedir}\/opus/-I${includedir}\/opus -I${includedir}\/libNE10/' "$FFBUILD_PREFIX"/lib/pkgconfig/opus.pc + fi + fi } ffbuild_configure() {