Install

A fresh checkout ships a pinned stable compiler, so the normal setup path does not require Free Pascal or a system toolchain.

git clone https://github.com/yoctobyte/pxx
cd pxx
./install.sh

The root install.sh is the friendly setup script. It verifies that a compiler can run on the host, writes a ready-to-use ./pxx wrapper in the project root, and optionally offers to install a PATH wrapper, fetch external libraries, install ESP32 tooling, build the Eliah IDE, and run demos.

For unattended setup:

./install.sh --yes

Wrapper installs

The wrapper calls the pinned compiler and adds the project library roots, so a plain command can find bundled RTL/PCL units from any working directory:

./pxx hello.pas hello

The lower-level tools/install.sh only creates or removes a wrapper. Use it when the checkout is already set up and you only want to change where pxx is found:

tools/install.sh --bindir "$HOME/.local/bin"

To remove that wrapper:

tools/install.sh --uninstall

The generated wrapper embeds the current library search roots. Re-run tools/install.sh after moving the checkout or after adding new library directories that should be visible to every compile.

Optional libraries and tools

The default checkout is self-contained. Extra source trees and vendor SDKs are installed on demand and stay outside git-tracked source.

Fetch candidate third-party libraries used for compatibility experiments:

tools/install_lib_candidates.sh
tools/install_lib_candidates.sh lua
tools/install_lib_candidates.sh tiny-regex-c freebsd-regex

The fetched trees go under library_candidates/, which is gitignored by policy. Use FORCE=1 to refresh an existing candidate:

FORCE=1 tools/install_lib_candidates.sh lua

Install QEMU user-mode helpers for Linux cross-target smoke runs:

tools/install_qemu.sh

ESP32 setup is larger because it pulls vendor tooling. The root installer offers it interactively; after installation, source the ESP-IDF environment printed by the tool before using the ESP32 helpers.

Building from source

PXX is self-hosting, but a recovery bootstrap can seed it from Free Pascal:

sudo apt install fpc make
make bootstrap
make test

You only need FPC for bootstrap or recovery builds. Normal use of a checkout can run through the pinned compiler.

Next