ncc/docs/building_ncc.md
2022-08-11 15:17:02 -04:00

2.5 KiB

Building NCC from source

Building NCC from source is easy with very few requirements to start building. At the moment ncc can only be debugged or tested by building a redistributable source and installing it.

Requirements to build

  • php8.0+
  • php-mbstring
  • php-ctype
  • php-tokenizer (or php-common)
  • make
  • phpab
  • tar (optional)

Installing phpab

phpab is also known as PHP Autoload Builder, phpab is an open source tool used for creating autoload files, ncc needs this tool in order to generate it's autoload files whenever there's any changes to its source code.

This tool is only required for building and or creating a redistributable package of ncc. This component is not required to be installed to use ncc.

for some components that require static loading, ncc will automatically load it using it's own autoloader

The recommended way to install phpab is by using phive, if you don't have phive installed you can install it by running these commands in your terminal (from the official documentation)

wget -O phive.phar https://phar.io/releases/phive.phar
wget -O phive.phar.asc https://phar.io/releases/phive.phar.asc
gpg --keyserver hkps://keys.openpgp.org --recv-keys 0x9D8A98B29B2D5D79
gpg --verify phive.phar.asc phive.phar
chmod +x phive.phar
sudo mv phive.phar /usr/local/bin/phive

Once phive is installed, you can run the final command to install phpab

phive install phpab

Note: Optionally, you may want to have phab available in your $PATH, this can be done with this command. (Replace x.xx.x with your version number)

ln -s /home/user/.phive/phars/phpab-x.xx.x.phar /usr/bin/phpab

Building NCC

First, navigate to the main directory of NCC's source code where the Makefile is present. If you already attempted to or had built ncc before, it's recommended to use make clean before building.

Redist

Running redist from the Makefile will generate all the required autoloaders for ncc and move all the required files into one redistributable source folder under a directory called build/src

make redist

Tar

Running tar will run redist before packaging the redistributable source into a tar.gz file that can be distributed to other machines, this process is not a requirement.

make tar

Once you have a populated build/src folder, you can simply run execute the installer file to install your build of ncc onto the running machine.