diff --git a/src/SPC/builder/unix/library/librdkafka.php b/src/SPC/builder/unix/library/librdkafka.php index 69fe04d4..28290ea0 100644 --- a/src/SPC/builder/unix/library/librdkafka.php +++ b/src/SPC/builder/unix/library/librdkafka.php @@ -25,6 +25,10 @@ trait librdkafka }, '--disable-zstd' ) + ->ignoreConfigureArgs( + '--with-pic', + '--enable-pic', + ) ->configure( '--disable-curl', '--disable-sasl', diff --git a/src/SPC/util/executor/UnixAutoconfExecutor.php b/src/SPC/util/executor/UnixAutoconfExecutor.php index dc1741fd..46eb678d 100644 --- a/src/SPC/util/executor/UnixAutoconfExecutor.php +++ b/src/SPC/util/executor/UnixAutoconfExecutor.php @@ -16,6 +16,8 @@ class UnixAutoconfExecutor extends Executor protected array $configure_args = []; + protected array $ignore_args = []; + public function __construct(protected BSDLibraryBase|LinuxLibraryBase|MacOSLibraryBase $library) { parent::__construct($library); @@ -27,7 +29,10 @@ class UnixAutoconfExecutor extends Executor */ public function configure(...$args): static { - $configure_args = implode(' ', array_merge($args, $this->getDefaultConfigureArgs(), $this->configure_args)); + // remove all the ignored args + $args = array_merge($args, $this->getDefaultConfigureArgs(), $this->configure_args); + $args = array_diff($args, $this->ignore_args); + $configure_args = implode(' ', $args); $this->shell->exec("./configure {$configure_args}"); return $this; @@ -92,6 +97,15 @@ class UnixAutoconfExecutor extends Executor return $this; } + /** + * Ignore some configure args, to bypass the configure option checking for some libs. + */ + public function ignoreConfigureArgs(...$args): static + { + $this->ignore_args = [...$this->ignore_args, ...$args]; + return $this; + } + public function appendEnv(array $env): static { $this->shell->appendEnv($env);