Skip to content

light weight (maybe) phpmicro build scripts

License

Notifications You must be signed in to change notification settings

emanuele-scarsella/lwmbs

 
 

Repository files navigation

lwmbs

一个 ^ 名字很奇怪的micro/cli构建系统,理论上不会有很多人看到这个项目所以无所谓了

用法

# prepare
# arch (glibc/musl dev only)
pacman -S base-devel cmake \
    vim \
    brotli \
    php xz tar git curl
# alpine (musl)
apk add alpine-sdk automake autoconf bison flex re2c cmake \
    vim \
    zlib-static zlib-dev \
    bzip2 bzip2-static bzip2-dev \
    zstd zstd-static zstd-dev \
    php81 xz tar curl
# centos 7 (oldest glibc amoung common distros)
yum groupinstall 'Development Tools'
yum install epel-release
yum install re2c perl-IPC-Cmd  \
    vim \
    glibc-static \
    xz zstd bzip2 tar curl
# you may also need a working cmake 3.16+ for building curl libzip things
# you need also a working php 8.1 cli (maybe an all-static binary built in alpine?)
# debian varients, suse varients etc...
false "why?"
# bsd
false "will lwmbs support them?"
# macos
brew install bison re2c
export PATH="/opt/homebrew/opt/bison/bin:/opt/homebrew/opt/re2c/bin:$PATH"
# you need also a working php 8.1 cli (brew install it
# windows
# you need VS (better v16 2019+)
# you need perl for openssl (grab a strawberry perl)
# you may want nasm for openssl
# you need a working PHP 8.1 distrubtion (just download it)
# you need php binary sdk from php
# optional
export https_proxy=https://someproxy
export GITHUB_USER=someuser
export GITHUB_TOKEN=ghp_dsad
# not optional
mkdir build
cd build
# prepare sources
../update_source.php ../src.json 8.1
# build micro (unix)
../build_micro.php "" ""
# build micro (win)
../build_micro.php "" "" --phpBinarySDKDir=<path to sdk> --vsVer=<version like 17> --arch=<arch x64/arm64>

  1. musl wrapper可能用不了
  2. glibc旧版本不兹磁全静态编译,全静态编译出来的东西也肯能有玄学bug
  3. opcache静态编译需要一些奇怪的环境(较新的gcc+gnuld+binutils/clang+lld)
  4. Windows下静态编译cli需要patch

CI

ci中构建了一个巨大的(20M+)micro,含部分常用扩展

没了

About

light weight (maybe) phpmicro build scripts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%