builder->configure_env; $envs = $env; $packages = 'openssl zlib readline libxml-2.0 '; // icu-uc icu-io icu-i18n libzstd $output = shell()->execWithResult($env . ' pkg-config --cflags-only-I --static ' . $packages); if (!empty($output[1][0])) { $cppflags = $output[1][0]; $envs .= " CPPFLAGS=\"{$cppflags}\""; } $output = shell()->execWithResult($env . ' pkg-config --libs-only-L --static ' . $packages); if (!empty($output[1][0])) { $ldflags = $output[1][0]; $envs .= " LDFLAGS=\"{$ldflags} -static\" "; } $output = shell()->execWithResult($env . ' pkg-config --libs-only-l --static ' . $packages); if (!empty($output[1][0])) { $libs = $output[1][0]; $envs .= " LIBS=\"{$libs}\" "; } FileSystem::resetDir($this->source_dir . '/build'); # 有静态链接配置 参考文件: src/interfaces/libpq/Makefile shell()->cd($this->source_dir . '/build')->exec( <<<'EOF' sed -i.backup "s/invokes exit'; exit 1;/invokes exit';/" ../src/interfaces/libpq/Makefile EOF ); shell()->cd($this->source_dir . '/build')->exec( <<<'EOF' sed -i.backup "293 s/^/#$/" ../src/Makefile.shlib EOF ); shell()->cd($this->source_dir . '/build')->exec( <<<'EOF' sed -i.backup "441 s/^/#$/" ../src/Makefile.shlib EOF ); shell()->cd($this->source_dir . '/build') ->exec( <<cd($this->source_dir . '/build')->exec($envs . ' make -C src/bin/pg_config install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/include install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/common install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/backend/port install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/port install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/backend/libpq install'); shell()->cd($this->source_dir . '/build')->exec($envs . ' make -C src/interfaces/libpq install'); shell()->cd($this->source_dir . '/build')->exec( <<