Skip to content
Christopher Jefferson edited this page Nov 7, 2022 · 1 revision

This aims to be a specification of how packages should be built, and possibly installed. The aim is that packages which meet this specification should be handled automatically.

Currently handled by BuildPackages.sh

  • $GAPROOT refers to the root directory of the current GAP installation.

Building is always done within the root directory of the package

  • If a package contains a file called ./prerequisites.sh, then ./prerequisites.sh "$GAPROOT" will be executed.
  • If a package contains ./autogen.sh, but no ./configure then ./autogen.sh will be executed (this is mainly to support packages which have been checked out of a git repository, released packages should have a configure script)
  • If a ./configure exists then ./configure; make; make clean; will be run. If the package was built with Autoconf, then ./configure will be passed --with-gaproot=$GAPROOT, and some other options.

Building documentation

The major missing thing is building documentation. Most packages have either makedoc.g, makedocrel.g or doc/make_doc. Some packages also have a doc target in their Makefile

There are a couple of obvious ways a package could denote how to build docs:

  1. Have one of the common existing filenames
  2. Require make doc builds the documentation
Clone this wiki locally