diff --git a/src/SPC/builder/BuilderBase.php b/src/SPC/builder/BuilderBase.php index 59f371ef..3d5648ef 100644 --- a/src/SPC/builder/BuilderBase.php +++ b/src/SPC/builder/BuilderBase.php @@ -233,8 +233,15 @@ abstract class BuilderBase */ abstract public function buildPHP(int $build_target = BUILD_TARGET_NONE); + /** + * @throws WrongUsageException + * @throws RuntimeException + * @throws FileSystemException + */ public function buildSharedExts(): void { + FileSystem::replaceFileLineContainsString(BUILD_BIN_PATH . '/php-config', 'extension_dir="', 'extension_dir="' . BUILD_MODULES_PATH . '"'); + FileSystem::createDir(BUILD_MODULES_PATH); foreach ($this->getExts() as $ext) { if (!$ext->isBuildShared()) { continue; @@ -242,6 +249,9 @@ abstract class BuilderBase logger()->info('Building extension [' . $ext->getName() . '] as shared extension (' . $ext->getName() . '.so)'); $ext->buildShared(); } + if (getenv('EXTENSION_DIR')) { + FileSystem::replaceFileLineContainsString(BUILD_BIN_PATH . '/php-config', 'extension_dir="', 'extension_dir="' . getenv('EXTENSION_DIR') . '"'); + } } /** diff --git a/src/SPC/builder/Extension.php b/src/SPC/builder/Extension.php index 808d8c54..1402bc58 100644 --- a/src/SPC/builder/Extension.php +++ b/src/SPC/builder/Extension.php @@ -319,10 +319,10 @@ class Extension ->execWithEnv(BUILD_BIN_PATH . '/phpize') ->execWithEnv('./configure ' . $this->getUnixConfigureArg(true) . ' --with-php-config=' . BUILD_BIN_PATH . '/php-config --enable-shared --disable-static') ->execWithEnv('make clean') - ->execWithEnv('make -j' . $this->builder->concurrency); + ->execWithEnv('make -j' . $this->builder->concurrency) + ->execWithEnv('make install'); // copy shared library - FileSystem::createDir(BUILD_MODULES_PATH); $extensionDirFile = (getenv('EXTENSION_DIR') ?: $this->source_dir . '/modules') . '/' . $this->getName() . '.so'; $sourceDirFile = $this->source_dir . '/modules/' . $this->getName() . '.so'; if (file_exists($extensionDirFile)) {