Makefile for downloading and building gnat from github source.
Repository | Build Status |
---|---|
Github Actions: | |
bootstrap | |
Travis CI: | |
gnat-builder | |
xmlada | |
gprbuild | |
gnatcoll-core | |
gnatcoll-bindings | |
gnatcoll-db | |
langkit | |
libadalang | |
gtkada | |
gps | |
spark2014 |
This is a Makefile and a set of patches to build a gcc/gnat tool chain including gcc compiler, libraries, and GPS IDE.
- # install ubuntu bionic minimal
- sudo apt-get update && sudo apt-get upgrade
- sudo apt-get install build-essential git
- git clone https://github.com/steve-cs/gnat-builder
- cd gnat-builder
- make prerequisites-install
- make release-download
- make release-install
This starts from linux distribution gcc/gnat compiler and bootstraps a new compiler, ada tool chain, and gps. The first time you bootstrap the gcc compiler it may take some time as it downloads the entire github/gcc-mirror/gcc repository and then does an enable-bootstrap (build the compiler three times) build.
After doing the prerequisites above it should be as simple as:
- make bootstrap-install
After doing (at least) the prerequisites above:
- make clean
- make gcc-version=trunk gcc
- make gcc-install
After installing a release or bootstrap:
- make all
- make all-install
-or simply-
- make
- make install
Save a snapshot of the contents of the prefix as a locally defined release. Change <my-release-id>. It ends up being both part of a directory name and part of a filename, so no spaces, "/", or other special characters. If release= isn't specified it will repace the default release in the local cache.
-
# save a release
-
make release=<my-release-id> release
-
# re-install a release
-
make release=<my-release-id> release-install
This is used by the release, release-download, and release-install targets.
This is either a tag or a branch of gcc as it exists in the github.com gcc-mirror/gcc repository. Currently this is limited to: master, trunk, gcc-8-branch, gcc-7-branch, gcc-7_2_0-release.
Currently this is limited to master.
This specifies where the build tools directory is or will be located. Its contents are deleted by a number of targets including prefix-clean, bootstrap-clean.