This project implements tools to make working with Ada projects easier. The main goal is project management and building. This is done through a BASH script called adaprj. Another tool adasrc exists for getting information from specific source files, not entire projects. adaprj uses adasrc to do most of its work. These tools assume a few standard UNIX tools, some GCC tools, and GNAT, are installed. These are grep, sed, sort, uniq, GNU ld, gnatmake, and gnatbind.

Design Goals

Firstly, adaprj should not seek to replace gprbuild. adaprj is designed to require as little configuration as possible, and as of this writing, is not configurable in any way. It might seem strange to have a project manager that offers no configuration; how could this work? It largely has to do with a few assumptions, and the fact that nearly everything that would be configured, is already done so elsewhere. This would not be possible with most other languages.


  1. The directory is the project. Source files of the project may be present inside of subdirectories, but none will be present outside of the directory.
  2. Dependencies are installed in standard system paths. For UNIX systems, the libraries and ali files are located in /usr/lib/ and the source files are located in /usr/include/.
  3. The project source files should all be built with the same flags. (This does not assume that every file has the same configuration pragmas however)
  4. It is desirable to build (almost) every package into a separate shared library. Explaination
  5. Binder code should be generated, compiled, and linked into the respective library, automatically.