mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-17 20:34:51 +08:00
Add patchBeforeBuild method to modify Makefile CFLAGS and enhance build process
This commit is contained in:
parent
368ce75261
commit
d0b6a02432
@ -6,19 +6,30 @@ namespace Package\Library;
|
||||
|
||||
use StaticPHP\Attribute\Package\BuildFor;
|
||||
use StaticPHP\Attribute\Package\Library;
|
||||
use StaticPHP\Attribute\Package\PatchBeforeBuild;
|
||||
use StaticPHP\Package\LibraryPackage;
|
||||
use StaticPHP\Package\PackageBuilder;
|
||||
use StaticPHP\Util\FileSystem;
|
||||
|
||||
#[Library('bzip2')]
|
||||
class bzip2
|
||||
{
|
||||
#[PatchBeforeBuild]
|
||||
public function patchBeforeBuild(LibraryPackage $lib): void
|
||||
{
|
||||
FileSystem::replaceFileStr($lib->getSourceDir() . '/Makefile', 'CFLAGS=-Wall', 'CFLAGS=-fPIC -Wall');
|
||||
}
|
||||
|
||||
#[BuildFor('Linux')]
|
||||
#[BuildFor('Darwin')]
|
||||
public function build(LibraryPackage $lib, PackageBuilder $builder): void
|
||||
{
|
||||
shell()->cd($lib->getSourceDir())->initializeEnv($lib)
|
||||
->exec("make PREFIX='{$lib->getBuildRootPath()}' clean")
|
||||
->exec("make -j{$builder->concurrency} PREFIX='{$lib->getBuildRootPath()}' libbz2.a")
|
||||
$shell = shell()->cd($lib->getSourceDir())->initializeEnv($lib);
|
||||
$env = $shell->getEnvString();
|
||||
$cc_env = 'CC=' . escapeshellarg(getenv('CC') ?: 'cc') . ' AR=' . escapeshellarg(getenv('AR') ?: 'ar');
|
||||
|
||||
$shell->exec("make PREFIX='{$lib->getBuildRootPath()}' clean")
|
||||
->exec("make -j{$builder->concurrency} {$cc_env} {$env} PREFIX='{$lib->getBuildRootPath()}' libbz2.a")
|
||||
->exec('cp libbz2.a ' . $lib->getLibDir())
|
||||
->exec('cp bzlib.h ' . $lib->getIncludeDir());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user