Did you know ... Search Documentation:
Guidelines for Linux package managers

Over time, each distribution has established one or more packages for SWI-Prolog independently based on their own conventions. As a result, nobody knows what SWI-Prolog is called and which packages to install. We are guilty of this as well by using the short pl as the default system name.

Names of the executables

We wish to use the name swipl on all installations. The system comes with two helper programs, swipl-ld and swipl-rc.

Directory hierarchy

The default installation of SWI-Prolog creates the following items:

_prefix_/lib/swipl-<version>
This is a completely self-contained hierarchy that supports multiple architectures. Please do not split this. Almost all directories are searched relative to this directory or documented as located relative to this directory. Note that the doc directory is used by the documentation system.
_prefix_/bin/swipl, swipl-ld, swipl-rc
These binaries are relative symbolic links into the tree above. Do not rename these as the link information is used to find the above hierarchy. This keeps the package relocatable, and this very same mechanism can be used to create relocatable applications from SWI-Prolog.
_prefix_/man/man1/swipl.1, swipl-ld.1, swipl-rc.1
The standard Unix manpages. These files are localized based on the installation directories.

Making multiple packages

We would like to see that the default SWI-Prolog package installs the same development environment on every system. The default top level configure and make build all the packages we consider essential or small enough to include anyway. Debian likes small packages and we came to the following division:

swi-prolog-nox
Contains the core compiler and all standard libraries that do not introduce major new dependencies.
swi-prolog-x
Contains XPCE, the graphical front-end
swi-prolog-odbc
Contains the ODBC interface
swi-prolog-java
Contains the Java interface (JPL).
swi-prolog-doc
Contains all documentation

The package swi-prolog depends on swi-prolog-nox and swi-prolog-x, providing a good default system that does not introduce many dependencies on a standard workstation environment. See also Debian.

Building

The script build.templ (see unix) can be used to build and install the system. If you want to revert to more low-level primitives this file documents the common tweaks and the process. This file is actively maintained, so using it for building the distro will reduce your maintenance work.

Patches

If you need patches that are not really specific to your distro, such as incomplete cleanup in make distclean, missing DESTROOT or portability issues, please send them to mailto:bugs@swi-prolog.org.