#!/usr/bin/env bash # Build libkazeia_tts.so (SHARED, JNI) + test_jni_tts (harness standalone). set -euo pipefail HERE="$(cd "$(dirname "$0")" && pwd)" NDK_ROOT="${ANDROID_NDK_ROOT:-/opt/Kazeia/android-ndk-r27d}" CXX="$NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang++" JNI="$HERE/jni" INC="$HERE/include" LIB="$HERE/lib" DEC="/opt/Kazeia/kazeia-tts-decoder-ggml" mkdir -p "$HERE/b-jni" CFLAGS=( -std=c++17 -O3 -fPIC -march=armv8.6-a+i8mm+bf16+dotprod+fp16 -Wno-unused-parameter -Wno-unused-variable -Wno-sign-compare -I"$INC" -I"$DEC/src" ) SRCS=( "$JNI/kazeia_tts_jni.cpp" "$JNI/tts_engine.cpp" "$JNI/cp_inference.cpp" "$JNI/sampler.cpp" "$JNI/kazeia_text_tokenizer.cpp" ) LIBS=( "$DEC/build-android-engine/libqwen3tts-decoder.a" -L"$LIB" -lllama -lggml -lggml-base -lggml-cpu -Wl,-rpath,'$ORIGIN' -llog -ldl -lm ) echo "== building libkazeia_tts.so ==" "$CXX" "${CFLAGS[@]}" -shared "${SRCS[@]}" "${LIBS[@]}" -o "$HERE/b-jni/libkazeia_tts.so" ls -la "$HERE/b-jni/libkazeia_tts.so" # Harness JNI sans VM Java : dlopen + JNIEnv mock minimal, vérifie load/synthesize/free. echo "== building test_jni_tts (harness sans Java VM) ==" "$CXX" "${CFLAGS[@]}" \ "$JNI/test_jni_tts.cpp" \ -Wl,-rpath,'$ORIGIN' \ -ldl -lm \ -o "$HERE/b-jni/test_jni_tts" ls -la "$HERE/b-jni/test_jni_tts"