Talk:Ada Programming/GNU Build System

Environment Variables
ADA_PROJECT_PATH

A directory list to be searched for GNAT project files.

ADA_INCLUDE_PATH

A directory list to be searched for Ada source files.

ADA_OBJECT_PATH

A directory list to be searched for object, library and Ada library information files

ADA

Ada compiler executable. It is usually "gnatgcc" or "gcc".

ADAFLAGS

Flags to be passed to $ADA

GNATMAKE, GNATBIND, GNATLINK, etc.

GNATMAKEFLAGS, GNATBINDFLAGS, GNATLINKFLAGS, etc.

GNAT toolsuite executables and their respective flags.

CCLD, CXXLD

Linker with cc style interface used to build binaries. $CXX is used instead of $CC whenever a project contain any piece of C++ code.

CCLDFLAGS, CXXLDFLAGS

Flags to be passed to $CCLD and $CXXLD

LIBS

(draft) Library search paths and library names

Configure script's responsibilities
These responsibilities are just a draft. Most of the Ada packages don't follow them.

$ADA is sometimes called $ADAC instead. configure SHALL handle $ADAC as well. configure MUST favor ADA over ADAC.

Maintainers must not use GNATMAKEFLAGS to store gnatbind flags or gnatlink flags etc. Instead, build automation system MUST handle $GNATBINDFLAGS etc. presence and construct resulting gnatmake command line. It MUST also handle $CCLD and $CCLDFLAGS presence. $CXXLD is invoked explicitly so it is not possible to forget about it.