In GNAT a compilation environment is defined by the current
directory at the time that a compile command is given. This current
directory is searched for a file whose name is gnat.adc
. If
this file is present, it is expected to contain one or more
configuration pragmas that will be applied to the current compilation.
However, if the switch -gnatA
is used, gnat.adc
is not
considered. When taken into account, gnat.adc
is added to the
dependencies, so that if gnat.adc
is modified later, an invocation of
gnatmake
will recompile the source.
Configuration pragmas may be entered into the gnat.adc
file
either by running gnatchop
on a source file that consists only of
configuration pragmas, or more conveniently by direct editing of the
gnat.adc
file, which is a standard format source file.
Besides gnat.adc
, additional files containing configuration
pragmas may be applied to the current compilation using the switch
-gnatec=`path'
where path
must designate an existing file that
contains only configuration pragmas. These configuration pragmas are
in addition to those found in gnat.adc
(provided gnat.adc
is present and switch -gnatA
is not used).
It is allowable to specify several switches -gnatec=
, all of which
will be taken into account.
Files containing configuration pragmas specified with switches
-gnatec=
are added to the dependencies, unless they are
temporary files. A file is considered temporary if its name ends in
.tmp
or .TMP
. Certain tools follow this naming
convention because they pass information to gcc
via
temporary files that are immediately deleted; it doesn’t make sense to
depend on a file that no longer exists. Such tools include
gprbuild
, gnatmake
, and gnatcheck
.
By default, configuration pragma files are stored by their absolute paths in
ALI files. You can use the -gnateb
switch in order to store them by
their basename instead.
If you are using project file, a separate mechanism is provided using project attributes.