mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +08:00
146 lines
7.6 KiB
INI
146 lines
7.6 KiB
INI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; static-php-cli (spc) env configuration
|
|
;
|
|
; This file is used to set default env vars for static-php-cli build.
|
|
; As dynamic build process, some of these vars can be overwritten by CLI options.
|
|
; And you can also overwrite these vars by setting them in your shell environment.
|
|
;
|
|
; We need to use some pre-defined internal env vars, like `BUILD_ROOT_PATH`, `DOWNLOAD_PATH`, etc.
|
|
; Please note that these vars cannot be defined in this file, they are only be defined before static-php-cli running.
|
|
;
|
|
; Here's a list of env vars, these value cannot be changed anywhere:
|
|
;
|
|
; WORKING_DIR: the working directory of the build process. (default: `$(pwd)`)
|
|
; ROOT_DIR: the root directory of static-php-cli. (default: `/path/to/static-php-cli`, when running in phar or micro mode: `phar://path/to/spc.phar`)
|
|
; BUILD_ROOT_PATH: the root path of the build process. (default: `$(pwd)/buildroot`)
|
|
; BUILD_INCLUDE_PATH: the path of the include files. (default: `$BUILD_ROOT_PATH/include`)
|
|
; BUILD_LIB_PATH: the path of the lib files. (default: `$BUILD_ROOT_PATH/lib`)
|
|
; BUILD_BIN_PATH: the path of the bin files. (default: `$BUILD_ROOT_PATH/bin`)
|
|
; PKG_ROOT_PATH: the root path of the package files. (default: `$(pwd)/pkgroot`)
|
|
; SOURCE_PATH: the path of the source files. (default: `$(pwd)/source`)
|
|
; DOWNLOAD_PATH: the path of the download files. (default: `$(pwd)/downloads`)
|
|
; CPU_COUNT: the count of the CPU cores. (default: `$(nproc)`)
|
|
; SPC_ARCH: the arch of the current system, for some libraries needed `--host=XXX` args. (default: `$(uname -m)`, e.g. `x86_64`, `aarch64`, `arm64`)
|
|
; GNU_ARCH: the GNU arch of the current system. (default: `$(uname -m)`, e.g. `x86_64`, `aarch64`)
|
|
; MAC_ARCH: the MAC arch of the current system. (default: `$(uname -m)`, e.g. `x86_64`, `arm64`)
|
|
;
|
|
; * These vars are only be defined in Unix (macOS, Linux, FreeBSD)Builder and cannot be changed anywhere:
|
|
; PATH: static-php-cli will add `$BUILD_BIN_PATH` to PATH.
|
|
; PKG_CONFIG: static-php-cli will set `$BUILD_BIN_PATH/pkg-config` to PKG_CONFIG.
|
|
; PKG_CONFIG_PATH: static-php-cli will set `$BUILD_LIB_PATH/pkgconfig` to PKG_CONFIG_PATH.
|
|
;
|
|
; * These vars are only be defined in LinuxBuilder and cannot be changed anywhere:
|
|
; SPC_LINUX_DEFAULT_CC: the default compiler for linux. (For alpine linux: `gcc`, default: `$GNU_ARCH-linux-musl-gcc`)
|
|
; SPC_LINUX_DEFAULT_CXX: the default c++ compiler for linux. (For alpine linux: `g++`, default: `$GNU_ARCH-linux-musl-g++`)
|
|
; SPC_LINUX_DEFAULT_AR: the default archiver for linux. (For alpine linux: `ar`, default: `$GNU_ARCH-linux-musl-ar`)
|
|
|
|
|
|
[global]
|
|
; Build concurrency for make -jN, default is CPU_COUNT, this value are used in every libs.
|
|
SPC_CONCURRENCY=${CPU_COUNT}
|
|
; Ignore PHP version check before building some extensions
|
|
SPC_SKIP_PHP_VERSION_CHECK="no"
|
|
; Ignore some check item for bin/spc doctor command, comma separated (e.g. SPC_SKIP_DOCTOR_CHECK_ITEMS="if homebrew has installed")
|
|
SPC_SKIP_DOCTOR_CHECK_ITEMS=""
|
|
; EXTENSION_DIR where the built php will look for extension when a .ini instructs to load them
|
|
; only useful for builds targeting not pure-static linking
|
|
; default paths
|
|
; Ubuntu/Debian: /usr/lib/php/{PHP_VERSION}/
|
|
; RHEL: /usr/lib64/php/modules
|
|
; Alpine: /usr/lib/php{PHP_VERSION}/modules
|
|
; where {PHP_VERSION} is 84 for php 8.4
|
|
; EXTENSION_DIR=
|
|
|
|
[windows]
|
|
; php-sdk-binary-tools path
|
|
PHP_SDK_PATH="${WORKING_DIR}\php-sdk-binary-tools"
|
|
; upx executable path
|
|
UPX_EXEC="${PKG_ROOT_PATH}\bin\upx.exe"
|
|
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
|
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,cli_static
|
|
|
|
[linux]
|
|
; include PATH for musl libc.
|
|
SPC_LIBC=musl
|
|
; compiler environments
|
|
CC=${SPC_LINUX_DEFAULT_CC}
|
|
CXX=${SPC_LINUX_DEFAULT_CXX}
|
|
AR=${SPC_LINUX_DEFAULT_AR}
|
|
LD=ld.gold
|
|
; default compiler flags, used in CMake toolchain file, openssl and pkg-config build
|
|
SPC_DEFAULT_C_FLAGS="-fPIC"
|
|
SPC_DEFAULT_CXX_FLAGS=
|
|
; extra libs for building php executable, used in `make` command for building php (this value may changed by extension build process, space separated)
|
|
SPC_EXTRA_LIBS=
|
|
; upx executable path
|
|
UPX_EXEC=${PKG_ROOT_PATH}/bin/upx
|
|
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
|
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream
|
|
|
|
; *** default build command for building php ***
|
|
; buildconf command
|
|
SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
|
|
; configure command
|
|
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --enable-shared=no --enable-static=yes --disable-all --disable-cgi --disable-phpdbg --with-pic"
|
|
; make command
|
|
SPC_CMD_PREFIX_PHP_MAKE="make -j${CPU_COUNT}"
|
|
; embed type for php, static (libphp.a) or shared (libphp.so)
|
|
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
|
|
|
; *** default build vars for building php ***
|
|
; CFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS="${SPC_DEFAULT_C_FLAGS} -fPIE"
|
|
; CPPFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS="-I${BUILD_INCLUDE_PATH}"
|
|
; LDFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
|
|
; LIBS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_LIBS="-ldl -lpthread -lm"
|
|
; EXTRA_CFLAGS for `make` php
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie -Os -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-ident -fPIE -fPIC"
|
|
; EXTRA_LIBS for `make` php
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lpthread -lm"
|
|
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
|
|
; EXTRA_LDFLAGS_PROGRAM for `make` php
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-all-static -Wl,-O1 -pie"
|
|
|
|
[macos]
|
|
; compiler environments
|
|
CC=clang
|
|
CXX=clang++
|
|
; default compiler flags, used in CMake toolchain file, openssl and pkg-config build
|
|
SPC_DEFAULT_C_FLAGS="--target=${MAC_ARCH}-apple-darwin"
|
|
SPC_DEFAULT_CXX_FLAGS="--target=${MAC_ARCH}-apple-darwin"
|
|
; extra libs for building php executable, used in `make` command for building php (this value may changed by extension build process, space separated)
|
|
SPC_EXTRA_LIBS=
|
|
; phpmicro patches, for more info, see: https://github.com/easysoft/phpmicro/tree/master/patches
|
|
SPC_MICRO_PATCHES=static_extensions_win32,cli_checks,disable_huge_page,vcruntime140,win32,zend_stream,macos_iconv
|
|
|
|
; *** default build command for building php ***
|
|
; buildconf command
|
|
SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
|
|
; configure command
|
|
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --enable-shared=no --enable-static=yes --disable-all --disable-cgi --disable-phpdbg"
|
|
; make command
|
|
SPC_CMD_PREFIX_PHP_MAKE="make -j${CPU_COUNT}"
|
|
|
|
; *** default build vars for building php ***
|
|
; CFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS="${SPC_DEFAULT_C_FLAGS} -Werror=unknown-warning-option"
|
|
; CPPFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS="-I${BUILD_INCLUDE_PATH}"
|
|
; LDFLAGS for configuring php
|
|
SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
|
|
; EXTRA_CFLAGS for `make` php
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie -Os -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
|
; EXTRA_LIBS for `make` php
|
|
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-lresolv"
|
|
; embed type for php, static (libphp.a) or shared (libphp.dylib)
|
|
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
|
|
|
|
[freebsd]
|
|
; compiler environments
|
|
CC=clang
|
|
CXX=clang++
|