39 lines
1.4 KiB
Plaintext
39 lines
1.4 KiB
Plaintext
dnl Configuration for Rust-based PHP extension via ext-php-rs.
|
|
dnl Allows phpize to recognize this extension during source compilation (PIE fallback).
|
|
|
|
PHP_ARG_ENABLE([kreuzberg],
|
|
[whether to enable the kreuzberg extension],
|
|
[AS_HELP_STRING([--enable-kreuzberg],
|
|
[Enable kreuzberg extension support])],
|
|
[yes])
|
|
|
|
if test "$PHP_KREUZBERG_ENABLED" = "yes"; then
|
|
dnl Recognize the extension directory for phpize/make
|
|
PHP_NEW_EXTENSION(kreuzberg, [], $ext_shared)
|
|
|
|
dnl Invoke cargo build to compile the Rust FFI library
|
|
AC_CONFIG_COMMANDS([cargo-build], [
|
|
if test -f "crates/kreuzberg-php/Cargo.toml"; then
|
|
cargo build --release --manifest-path crates/kreuzberg-php/Cargo.toml || exit 1
|
|
cargo_output_dir="crates/kreuzberg-php/target/release"
|
|
ext_soname="kreuzberg"
|
|
|
|
dnl Detect output filename based on platform
|
|
if test -f "${cargo_output_dir}/libkreuzberg_php.dylib"; then
|
|
cargo_lib="${cargo_output_dir}/libkreuzberg_php.dylib"
|
|
elif test -f "${cargo_output_dir}/libkreuzberg_php.so"; then
|
|
cargo_lib="${cargo_output_dir}/libkreuzberg_php.so"
|
|
else
|
|
AC_MSG_ERROR([cargo build succeeded but .so/.dylib not found])
|
|
fi
|
|
|
|
dnl Copy the compiled library to modules/ directory for phpize to install
|
|
cp "${cargo_lib}" "modules/${ext_soname}.so" || exit 1
|
|
else
|
|
AC_MSG_ERROR([crates/kreuzberg-php/Cargo.toml not found])
|
|
fi
|
|
], [
|
|
extension_name=kreuzberg
|
|
])
|
|
fi
|