What is meant by GNU build system

These variables, exported by , implement build procedures for Common Lisp packages using “ASDF”. ASDF is a system definition facility for Common Lisp programs and libraries.

The system installs the packages in source form, and can be loaded using any common lisp implementation, via ASDF. The others, such as , install binary systems in the format which a particular implementation understands. These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded.

The build system uses naming conventions. For binary packages, the package name should be prefixed with the lisp implementation, such as for .

Additionally, the corresponding source package should be labeled using the same convention as python packages (see Python Modules), using the prefix.

For binary packages, each system should be defined as a Guix package. If one package contains several systems, package variants can be created in order to build all the systems. Source packages, which use , may contain several systems.

In order to create executable programs and images, the build-side procedures and can be used. They should be called in a build phase after the phase, so that the system which was just built can be used within the resulting image. requires a list of Common Lisp expressions to be passed as the argument.

If the system is not defined within its own file of the same name, then the parameter should be used to specify which file the system is defined in. Furthermore, if the package defines a system for its tests in a separate file, it will be loaded before the tests are run if it is specified by the parameter. If it is not set, the files , , , and will be tried if they exist.

If for some reason the package must be named in a different way than the naming conventions suggest, the parameter can be used to specify the name of the system.