From 3a5079e941c76ad403ed51f7c8fa91f1f30383e5 Mon Sep 17 00:00:00 2001 From: Dmitriy Derepko Date: Tue, 27 May 2025 10:57:31 +0300 Subject: [PATCH] docs: add macos instruction, update blocks --- README.md | 69 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index c5376f67725cd..f589ac934f56e 100644 --- a/README.md +++ b/README.md @@ -42,28 +42,55 @@ a default build, you will additionally need libxml2 and libsqlite3. On Ubuntu, you can install these using: - sudo apt install -y pkg-config build-essential autoconf bison re2c \ - libxml2-dev libsqlite3-dev +```shell +sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev +``` On Fedora, you can install these using: - sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel +```shell +sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel +``` + +On MacOS, you can install these using `brew`: + +```shell +brew install autoconf bison re2c iconv libxml2 sqlite +``` + +or with `MacPorts`: + +```shell +sudo port install autoconf bison re2c libiconv libxml2 sqlite3 +``` Generate configure: - ./buildconf +```shell +./buildconf +``` Configure your build. `--enable-debug` is recommended for development, see `./configure --help` for a full list of options. - # For development - ./configure --enable-debug - # For production - ./configure +```shell +# For development +./configure --enable-debug +# For production +./configure +``` + +Build PHP. To speed up the build, specify the maximum number of jobs using `-j` argument: -Build PHP. To speed up the build, specify the maximum number of jobs using `-j`: +On Windows: +```shell +make -j4 +``` - make -j4 +On Unix system: +```shell +make -j4 +``` The number of jobs should usually match the number of available cores, which can be determined using `nproc`. @@ -76,11 +103,25 @@ successful compilation of the sources to run this test suite. It is possible to run tests using multiple cores by setting `-jN` in `TEST_PHP_ARGS`: - make TEST_PHP_ARGS=-j4 test +```shell +make TEST_PHP_ARGS=-j4 test +``` Shall run `make test` with a maximum of 4 concurrent jobs: Generally the maximum number of jobs should not exceed the number of cores available. +Use `TESTS` variable to test only specific directories: + +```shell +make TESTS=tests/lang/ test +``` + +Or combine the variables: + +```shell +make TEST_PHP_ARGS=-j8 TESTS=tests/lang/ test +``` + The [qa.php.net](https://qa.php.net) site provides more detailed info about testing and quality assurance. @@ -88,9 +129,11 @@ testing and quality assurance. After a successful build (and test), PHP may be installed with: - make install +```shell +make install +``` -Depending on your permissions and prefix, `make install` may need super user +Depending on your permissions and prefix, `make install` may need superuser permissions. ## PHP extensions