diff options
Diffstat (limited to 'gcc/ada/projects.texi')
-rw-r--r-- | gcc/ada/projects.texi | 247 |
1 files changed, 145 insertions, 102 deletions
diff --git a/gcc/ada/projects.texi b/gcc/ada/projects.texi index 7072e0e6ada..4a6f0533eb4 100644 --- a/gcc/ada/projects.texi +++ b/gcc/ada/projects.texi @@ -41,7 +41,7 @@ project files allow you to specify: @item The directory in which the compiler's output (@file{ALI} files, object files, tree files, etc.) is to be placed @item The directory in which the executable programs are to be placed -@item Switch settings for any of the project-enabled tools; +@item ^Switch^Switch^ settings for any of the project-enabled tools; you can apply these settings either globally or to individual compilation units. @item The source files containing the main subprogram(s) to be built @item The source programming language(s) @@ -68,7 +68,7 @@ Subsystems}). More generally, the Project Manager lets you structure large development efforts into hierarchical subsystems, where build decisions are delegated to the subsystem level, and thus different compilation environments - (switch settings) used for different subsystems. + (^switch^switch^ settings) used for different subsystems. @item You can organize GNAT projects in a hierarchy: a child project can extend a parent project, inheriting the parent's source files and optionally overriding any of them with alternative versions @@ -89,7 +89,7 @@ easily handled: @itemize @bullet @item Using a common set of source files and generating object files in different - directories via different switch settings. It can be used for instance, for + directories via different ^switch^switch^ settings. It can be used for instance, for generating separate sets of object files for debugging and for production. @item Using a mostly-shared set of source files with different versions of some units or subunits. It can be used for instance, for grouping and hiding @@ -174,6 +174,7 @@ detailed later in this documentation. They are summarized here as a reference. @b{Object_Dir} attribute. In order to store objects in two or more object directories, the system must be split into distinct subsystems with their own project file. +/first exam @end table @@ -184,7 +185,8 @@ following examples. The Ada source files @file{pack.ads}, @file{pack.adb}, and @file{proc.adb} are in the @file{common/} directory. The file @file{proc.adb} contains an Ada main subprogram @code{Proc} that @code{with}s package @code{Pack}. We want to compile -these source files with the switch @option{-O2}, and put the resulting files in +these source files with the ^switch^switch^ +@option{^-O2^-O2^}, and put the resulting files in the directory @file{obj/}. @smallexample @@ -448,7 +450,8 @@ Its value is the path to the object directory, either absolute or relative to the directory containing the project file. This directory must already exist and be readable and writable, although some tools have a switch to create the directory if needed (See -the switch @code{-p} for @command{gnatmake} and @command{gprbuild}). +the switch @code{^-p^/CREATE_MISSING_DIRS^} for @command{gnatmake} +and @command{gprbuild}). If the attribute @code{Object_Dir} is not specified, it defaults to the project directory, that is the directory containing the project file. @@ -614,13 +617,13 @@ packages would be involved in the build process. @noindent Let's first examine the compiler switches. As stated in the initial description -of the example, we want to compile all files with @option{-O2}. This is a +of the example, we want to compile all files with @option{^-O2^-O2^}. This is a compiler switch, although it is usual, on the command line, to pass it to the builder which then passes it to the compiler. It is recommended to use directly the right package, which will make the setup easier to understand for other people. -Several attributes can be used to specify the switches: +Several attributes can be used to specify the ^switches^switches^: @table @asis @item @b{Default_Switches}: @@ -633,49 +636,53 @@ Several attributes can be used to specify the switches: likely be used for each language, and each compiler has its own set of switches). The value of the attribute is a list of switches. - In this example, we want to compile all Ada source files with the - @option{-O2} switch, and the resulting project file is as follows + In this example, we want to compile all Ada source files with the ^switch^switch^ + @option{^-O2^-O2^}, and the resulting project file is as follows (only the @code{Compiler} package is shown): @smallexample @b{package} Compiler @b{is} - @b{for} Default_Switches ("Ada") @b{use} ("-O2"); + @b{for} Default_Switches ("Ada") @b{use} ("^-O2^-O2^"); @b{end} Compiler; @end smallexample -@item @b{Switches}: -@cindex @code{Switches} - in some cases, we might want to use specific switches +@item @b{^Switches^Switches^}: +@cindex @code{^Switches^Switches^} + in some cases, we might want to use specific ^switches^switches^ for one or more files. For instance, compiling @file{proc.adb} might not be possible at high level of optimization because of a compiler issue. - In such a case, the @emph{Switches} + In such a case, the @emph{^Switches^Switches^} attribute (indexed on the file name) can be used and will override the switches defined by @emph{Default_Switches}. Our project file would become: @smallexample - @b{package} Compiler @b{is} - @b{for} Default_Switches ("Ada") @b{use} ("-O2"); - @b{for} Switches ("proc.adb") @b{use} ("-O0"); - @b{end} Compiler; + package Compiler is + for Default_Switches ("Ada") + use ("^-O2^-O2^"); + for ^Switches^Switches^ ("proc.adb") + use ("^-O0^-O0^"); + end Compiler; @end smallexample @noindent - @code{Switches} may take a pattern as an index, such as in: + @code{^Switches^Switches^} may take a pattern as an index, such as in: @smallexample - @b{package} Compiler @b{is} - @b{for} Default_Switches ("Ada") @b{use} ("-O2"); - @b{for} Switches ("pkg*") @b{use} ("-O0"); - @b{end} Compiler; + package Compiler is + for Default_Switches ("Ada") + use ("^-O2^-O2^"); + for ^Switches^Switches^ ("pkg*") + use ("^-O0^-O0^"); + end Compiler; @end smallexample @noindent - Sources @file{pkg.adb} and @file{pkg-child.adb} would be compiled with -O0, - not -O2. + Sources @file{pkg.adb} and @file{pkg-child.adb} would be compiled with ^-O0^-O0^, + not ^-O2^-O2^. @noindent - @code{Switches} can also be given a language name as index instead of a file + @code{^Switches^Switches^} can also be given a language name as index instead of a file name in which case it has the same semantics as @emph{Default_Switches}. However, indexes with wild cards are never valid for language name. @@ -689,7 +696,7 @@ Several attributes can be used to specify the switches: @end table The switches for the other tools are defined in a similar manner through the -@b{Default_Switches} and @b{Switches} attributes, respectively in the +@b{Default_Switches} and @b{^Switches^Switches^} attributes, respectively in the @emph{Builder} package (for @command{gnatmake} and @command{gprbuild}), the @emph{Binder} package (binding Ada executables) and the @emph{Linker} package (for linking executables). @@ -816,8 +823,8 @@ project C_Main is package Compiler is C_Switches := ("-pedantic"); for Default_Switches ("C") use C_Switches; - for Default_Switches ("Ada") use ("-gnaty"); - for Switches ("main.c") use C_Switches & ("-g"); + for Default_Switches ("Ada") use ("^-gnaty^-gnaty^"); + for ^Switches^Switches^ ("main.c") use C_Switches & ("-g"); end Compiler; end C_Main; @end smallexample @@ -841,7 +848,7 @@ In this specific situation the use of a variable could have been replaced by a reference to the @code{Default_Switches} attribute: @smallexample @c projectfile - for Switches ("c_main.c") use Compiler'Default_Switches ("C") & ("-g"); + for ^Switches^Switches^ ("c_main.c") use Compiler'Default_Switches ("C") & ("-g"); @end smallexample @noindent @@ -1353,10 +1360,12 @@ There are two main approaches to avoiding this duplication: @smallexample @c projectfile project Logging is package Compiler is - for Switches ("Ada") use ("-O2"); + for ^Switches^Switches^ ("Ada") + use ("^-O2^-O2^"); end Compiler; package Binder is - for Switches ("Ada") use ("-E"); + for ^Switches^Switches^ ("Ada") + use ("-E"); end Binder; end Logging; @@ -1364,7 +1373,7 @@ There are two main approaches to avoiding this duplication: project Build is package Compiler renames Logging.Compiler; package Binder is - for Switches ("Ada") use Logging.Binder'Switches ("Ada"); + for ^Switches^Switches^ ("Ada") use Logging.Binder'Switches ("Ada"); end Binder; end Build; @end smallexample @@ -1394,9 +1403,10 @@ There are two main approaches to avoiding this duplication: @smallexample @c projectfile abstract project Shared is - for Source_Files use (); -- no project + for Source_Files use (); -- no sources package Compiler is - for Switches ("Ada") use ("-O2"); + for ^Switches^Switches^ ("Ada") + use ("^-O2^-O2^"); end Compiler; end Shared; @@ -1482,7 +1492,7 @@ information, when the second will focus on improving code optimization). Let's enhance our example to support a debug and a release modes.The issue is to let the user choose what kind of system he is building: -use @option{-g} as compiler switches in debug mode and @option{-O2} +use @option{-g} as compiler switches in debug mode and @option{^-O2^-O2^} in release mode. We will also setup the projects so that we do not share the same object directory in both modes, otherwise switching from one to the other might trigger more recompilations than needed or mix objects from the 2 modes. @@ -1556,9 +1566,11 @@ sections in the project. The following example shows how this can be done: package Compiler is case Mode is when "debug" => - for Switches ("Ada") use ("-g"); + for ^Switches^Switches^ ("Ada") + use ("-g"); when "release" => - for Switches ("Ada") use ("-O2"); + for ^Switches^Switches^ ("Ada") + use ("^-O2^-O2^"); end case; end Compiler; end Build; @@ -2414,7 +2426,7 @@ building. The syntax looks like for External ("BUILD") use "PRODUCTION"; package Builder is - for Switches ("Ada") use ("-q"); + for ^Switches^Switches^ ("Ada") use ("-q"); end Builder; end Agg; @end smallexample @@ -2681,15 +2693,15 @@ an aggregate project. In this package, only the following attributes are valid: @table @asis -@item @b{Switches}: -@cindex @code{Switches} +@item @b{^Switches^Switches^}: +@cindex @code{^Switches^Switches^} This attribute gives the list of switches to use for the builder (@command{gprbuild} or @command{gnatmake}), depending on the language of the main file. For instance, @smallexample @c projectfile -for Switches ("Ada") use ("-d", "-p"); -for Switches ("C") use ("-p"); +for ^Switches^Switches^ ("Ada") use ("-d", "-p"); +for ^Switches^Switches^ ("C") use ("-p"); @end smallexample These switches are only read from the main aggregate project (the @@ -2705,8 +2717,8 @@ This attribute gives the list of compiler switches for the various languages. For instance, @smallexample @c projectfile -for Global_Compilation_Switches ("Ada") use ("-O1", "-g"); -for Global_Compilation_Switches ("C") use ("-O2"); +for Global_Compilation_Switches ("Ada") use ("^O1^-O1^", "-g"); +for Global_Compilation_Switches ("C") use ("^-O2^-O2^"); @end smallexample This attribute is only taken into account in the aggregate project @@ -2728,34 +2740,39 @@ both depend on C. Here is an extra for all of these projects: aggregate project Agg is for Project_Files use ("a.gpr", "b.gpr"); package Builder is - for Global_Compilation_Switches ("Ada") use ("-O2"); + for Global_Compilation_Switches ("Ada") use ("^-O2^-O2^"); end Builder; end Agg; with "c.gpr"; project A is package Builder is - for Global_Compilation_Switches ("Ada") use ("-O1"); + for Global_Compilation_Switches ("Ada") use ("^-O1^-O1^"); -- ignored end Builder; package Compiler is - for Default_Switches ("Ada") use ("-O1", "-g"); - for Switches ("a_file1.adb") use ("-O0"); + for Default_Switches ("Ada") + use ("^-O1^-O1^", "-g"); + for ^Switches^Switches^ ("a_file1.adb") + use ("^-O0^-O0^"); end Compiler; end A; with "c.gpr"; project B is package Compiler is - for Default_Switches ("Ada") use ("-O0"); + for Default_Switches ("Ada") use ("^-O0^-O0^"); end Compiler; end B; project C is package Compiler is - for Default_Switches ("Ada") use ("-O3", "-gnatn"); - for Switches ("c_file1.adb") use ("-O0", "-g"); + for Default_Switches ("Ada") + use ("^-O3^-O3^", + "^-gnatn^-gnatn^"); + for ^Switches^Switches^ ("c_file1.adb") + use ("^-O0^-O0^", "-g"); end Compiler; end C; @end smallexample @@ -2764,13 +2781,13 @@ then the following switches are used: @itemize @bullet @item all files from project A except a_file1.adb are compiled - with "-O2 -g", since the aggregate project has priority. + with "^-O2^-O2^ -g", since the aggregate project has priority. @item the file a_file1.adb is compiled with - "-O0", since the Compiler.Switches has priority + "^-O0^-O0^", since the Compiler.Switches has priority @item all files from project B are compiled with - "-O2", since the aggregate project has priority -@item all files from C are compiled with "-O2 -gnatn", except for - c_file1.adb which is compiled with "-O0 -g" + "^-O2^-O2^", since the aggregate project has priority +@item all files from C are compiled with "^-O2^-O2^ -gnatn", except for + c_file1.adb which is compiled with "^-O0^-O0^ -g" @end itemize Even though C is seen through two paths (through A and through @@ -3141,25 +3158,25 @@ The following packages are currently supported in project files @item Cross_Reference This package specifies the options used when calling the library tool @command{gnatxref} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item Eliminate This package specifies the options used when calling the tool @command{gnatelim} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item Finder This package specifies the options used when calling the search tool @command{gnatfind} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. -@item Gnatls +@item ^Gnatls^Gnatls^ This package the options to use when invoking @command{gnatls} via the @command{gnat} driver. -@item Gnatstub +@item ^Gnatstub^Gnatstub^ This package specifies the options used when calling the tool @command{gnatstub} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item IDE This package specifies the options used when starting an integrated @@ -3173,7 +3190,7 @@ The following packages are currently supported in project files @item Metrics This package specifies the options used when calling the tool @command{gnatmetric} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item Naming This package specifies the naming conventions that apply @@ -3184,7 +3201,7 @@ The following packages are currently supported in project files @item Pretty_Printer This package specifies the options used when calling the formatting tool @command{gnatpp} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item Remote This package is used by @command{gprbuild} to describe how distributed @@ -3192,7 +3209,7 @@ The following packages are currently supported in project files @item Stack This package specifies the options used when calling the tool @command{gnatstack} via the @command{gnat} driver. Its attributes - @b{Default_Switches} and @b{Switches} have the same semantics as for the + @b{Default_Switches} and @b{^Switches^Switches^} have the same semantics as for the package @code{Builder}. @item Synchronize This package specifies the options used when calling the tool @@ -3401,11 +3418,14 @@ last separator and the end are components of the string list. @end smallexample @noindent -If the external value is "-O2,-g", the result is ("-O2", "-g"). +If the external value is "^-O2^-O2^,-g", +the result is ("^-O2^-O2^", "-g"). -If the external value is ",-O2,-g,", the result is also ("-O2", "-g"). +If the external value is ",^-O2^-O2^,-g,", +the result is also ("^-O2^-O2^", "-g"). -if the external value is "-gnav", the result is ("-gnatv"). +if the external value is "^-gnatv^-gnatv^", +the result is ("^-gnatv^-gnatv^"). If the external value is ",,", the result is (""). @@ -3582,9 +3602,11 @@ project MyProj is package Compiler is case OS is when "GNU/Linux" | "Unix" => - for Switches ("Ada") use ("-gnath"); + for ^Switches^Switches^ ("Ada") + use ("-gnath"); when "NT" => - for Switches ("Ada") use ("-gnatP"); + for ^Switches^Switches^ ("Ada") + use ("^-gnatP^-gnatP^"); when others => null; end case; @@ -3608,8 +3630,8 @@ end MyProj; * Package Cross_Reference Attributes:: * Package Eliminate Attributes:: * Package Finder Attributes:: -* Package gnatls Attributes:: -* Package gnatstub Attributes:: +* Package ^gnatls^gnatls^ Attributes:: +* Package ^gnatstub^gnatstub^ Attributes:: * Package IDE Attributes:: * Package Install Attributes:: * Package Linker Attributes:: @@ -3663,8 +3685,9 @@ Here are some examples of attribute declarations: -- indexed attributes for Body ("main") use "Main.ada"; - for Switches ("main.ada") use ("-v", "-gnatv"); - for Switches ("main.ada") use Builder'Switches ("main.ada") & "-g"; + for ^Switches^Switches^ ("main.ada") + use ("-v", "^-gnatv^-gnatv^"); + for ^Switches^Switches^ ("main.ada") use Builder'Switches ("main.ada") & "-g"; -- indexed attributes copy (from package Builder in project Default) -- The package name must always be specified, even if it is the current @@ -3962,6 +3985,14 @@ the command line when linking a shared library. Value is a list of options that are to be used when linking a shared library. +@item @b{Library_Rpath_Options}: list, indexed, case-insensitive index + +Index is a language name. Value is a list of options for an invocation of the +compiler of the language. This invocation is done for a shared library project +with sources of the language. The output of the invocation is the path name +of a shared library file. The directory name is to be put in the run path +option switch when linking the shared library for the project. + @item @b{Library_Src_Dir}: single Value is the name of the directory where copies of the sources of the @@ -4158,10 +4189,10 @@ sources of runtime libraries are located. @item @b{Default_Switches}: list, indexed, case-insensitive index Index is a language name. Value is the list of switches to be used when binding -code of the language, if there is no applicable attribute Switches. +code of the language, if there is no applicable attribute ^Switches^Switches^. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, - others allowed +@item @b{^Switches^Switches^}: list, optional index, indexed, + case-insensitive index, others allowed Index is either a language name or a source file name. Value is the list of switches to be used when binding code. Index is either the source file name @@ -4215,7 +4246,7 @@ Index is a language name. Value is the list of builder switches to be used when building an executable of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is either a language name or a source file name. Value is the list of @@ -4261,9 +4292,9 @@ project tree. Index is a language name. Value is a list of switches to be used when invoking @code{gnatcheck} for a source of the language, if there is no applicable -attribute Switches. +attribute ^Switches^Switches^. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4276,7 +4307,7 @@ invoking @code{gnatcheck} for the source. @itemize @bullet -@item @b{Switches}: list +@item @b{^Switches^Switches^}: list Value is a list of switches to be used by the cleaning application. @@ -4292,6 +4323,16 @@ Index is a language names. Value is the list of extensions for file names derived from source file names that need to be cleaned in the object directory of the project. +@item @b{Artifacts_In_Object_Dir}: single + +Value is a list of file names expressed as regular expressions that are to be +deleted by gprclean in the object directory of the project. + +@item @b{Artifacts_In_Exec_Dir}: single + +Value is list of file names expressed as regular expressions that are to be +deleted by gprclean in the exec directory of the main project. + @end itemize @node Package Compiler Attributes @@ -4309,7 +4350,7 @@ Index is a language name. Value is a list of switches to be used when invoking the compiler for the language for a source of the project, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name or a language name. Value is the list of switches @@ -4543,7 +4584,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatxref} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4562,7 +4603,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatelim} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4581,7 +4622,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatfind} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4589,19 +4630,19 @@ invoking @code{gnatfind} for the source. @end itemize -@node Package gnatls Attributes -@subsubsection Package gnatls Attributes +@node Package ^gnatls^gnatls^ Attributes +@subsubsection Package ^gnatls^gnatls^ Attributes @itemize @bullet -@item @b{Switches}: list +@item @b{^Switches^Switches^}: list Value is a list of switches to be used when invoking @code{gnatls}. @end itemize -@node Package gnatstub Attributes -@subsubsection Package gnatstub Attributes +@node Package ^gnatstub^gnatstub^ Attributes +@subsubsection Package ^gnatstub^gnatstub^ Attributes @itemize @bullet @@ -4609,9 +4650,9 @@ Value is a list of switches to be used when invoking @code{gnatls}. Index is a language name. Value is a list of switches to be used when invoking @code{gnatstub} for a source of the language, if there is no applicable -attribute Switches. +attribute ^Switches^Switches^. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4658,16 +4699,18 @@ the handling of switches. Value is a string that specifies the name of the debugger to be used, such as gdb, powerpc-wrs-vxworks-gdb or gdb-4. -@item @b{gnatlist}: single +@item @b{^gnatlist^gnatlist^}: single -Value is a string that specifies the name of the @command{gnatls} utility +Value is a string that specifies the name of the @command{^gnatls^gnatls^} utility to be used to retrieve information about the predefined path; for example, -@code{"gnatls"}, @code{"powerpc-wrs-vxworks-gnatls"}. +@code{"^gnatls^gnatls^"}, @code{"powerpc-wrs-vxworks-gnatls"}. @item @b{VCS_Kind}: single Value is a string used to specify the Version Control System (VCS) to be used -for this project, for example CVS, RCS, ClearCase or Perforce. +for this project, for example "Subversion", "ClearCase". If the +value is set to "Auto", the IDE will try to detect the actual VCS used +on the list of supported ones. @item @b{VCS_File_Check}: single @@ -4746,7 +4789,7 @@ Index is a source file name or a language name. Value is the list of switches to be used at the beginning of the command line when invoking the linker to build an executable for the source or for its language. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name or a language name. Value is the list of switches @@ -4819,7 +4862,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatmetric} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4907,7 +4950,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatpp} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when @@ -4936,7 +4979,7 @@ Value is the root directory used by the slave machines. @itemize @bullet -@item @b{Switches}: list +@item @b{^Switches^Switches^}: list Value is the list of switches to be used when invoking @code{gnatstack}. @@ -4953,7 +4996,7 @@ Index is a language name. Value is a list of switches to be used when invoking @code{gnatsync} for a source of the language, if there is no applicable attribute Switches. -@item @b{Switches}: list, optional index, indexed, case-insensitive index, +@item @b{^Switches^Switches^}: list, optional index, indexed, case-insensitive index, others allowed Index is a source file name. Value is the list of switches to be used when |