-- The table that contains the lists of project files
type Project_Configuration is record
- Run_Path_Option : Name_List_Index := No_Name_List;
- -- The option to use when linking to specify the path where to look
- -- for libraries.
+ Run_Path_Option : Name_List_Index := No_Name_List;
+ -- The option to use when linking to specify the path where to look for
+ -- libraries.
- Executable_Suffix : Name_Id := No_Name;
- -- The suffix of executables, when specified in the configuration
- -- or in package Builder of the main project. When this is not
- -- specified, the executable suffix is the default for the platform.
+ Executable_Suffix : Name_Id := No_Name;
+ -- The suffix of executables, when specified in the configuration or in
+ -- package Builder of the main project. When this is not specified, the
+ -- executable suffix is the default for the platform.
- -- Linking
+ -- Linking
- Linker : Path_Name_Type := No_Path;
- -- Path name of the linker driver. Specified in the configuration
- -- or in the package Builder of the main project.
+ Linker : Path_Name_Type := No_Path;
+ -- Path name of the linker driver. Specified in the configuration or in
+ -- the package Builder of the main project.
- Minimum_Linker_Options : Name_List_Index := No_Name_List;
- -- The minimum options for the linker driver. Specified in the
- -- configuration.
+ Map_File_Option : Name_Id := No_Name;
+ -- Option to use when invoking the linker to build a map file
- Linker_Executable_Option : Name_List_Index := No_Name_List;
- -- The option(s) to indicate the name of the executable in the
- -- linker command. Specified in the configuration. When not
- -- specified, default to -o <executable name>.
+ Minimum_Linker_Options : Name_List_Index := No_Name_List;
+ -- The minimum options for the linker driver. Specified in the
+ -- configuration.
- Linker_Lib_Dir_Option : Name_Id := No_Name;
- -- The option to specify where to find a library for linking.
- -- Specified in the configuration. When not specified, defaults to
- -- "-L".
+ Linker_Executable_Option : Name_List_Index := No_Name_List;
+ -- The option(s) to indicate the name of the executable in the linker
+ -- command. Specified in the configuration. When not specified, default
+ -- to -o <executable name>.
- Linker_Lib_Name_Option : Name_Id := No_Name;
- -- The option to specify the name of a library for linking. Specified
- -- in the configuration. When not specified, defaults to "-l".
+ Linker_Lib_Dir_Option : Name_Id := No_Name;
+ -- The option to specify where to find a library for linking. Specified
+ -- in the configuration. When not specified, defaults to "-L".
- -- Libraries
+ Linker_Lib_Name_Option : Name_Id := No_Name;
+ -- The option to specify the name of a library for linking. Specified in
+ -- the configuration. When not specified, defaults to "-l".
- Library_Builder : Path_Name_Type := No_Path;
- -- The executable to build library (specified in the configuration)
+ -- Libraries
- Lib_Support : Library_Support := None;
- -- The level of library support. Specified in the configuration.
- -- Support is none, static libraries only or both static and shared
- -- libraries.
+ Library_Builder : Path_Name_Type := No_Path;
+ -- The executable to build library (specified in the configuration)
- -- Archives
+ Lib_Support : Library_Support := None;
+ -- The level of library support. Specified in the configuration. Support
+ -- is none, static libraries only or both static and shared libraries.
- Archive_Builder : Name_List_Index := No_Name_List;
- -- The name of the executable to build archives, with the minimum
- -- switches. Specified in the configuration.
+ Archive_Builder : Name_List_Index := No_Name_List;
+ -- The name of the executable to build archives, with the minimum
+ -- switches. Specified in the configuration.
- Archive_Builder_Append_Option : Name_List_Index := No_Name_List;
- -- The options to append object files to an archive
+ Archive_Builder_Append_Option : Name_List_Index := No_Name_List;
+ -- The options to append object files to an archive
- Archive_Indexer : Name_List_Index := No_Name_List;
- -- The name of the executable to index archives, with the minimum
- -- switches. Specified in the configuration.
+ Archive_Indexer : Name_List_Index := No_Name_List;
+ -- The name of the executable to index archives, with the minimum
+ -- switches. Specified in the configuration.
- Archive_Suffix : File_Name_Type := No_File;
- -- The suffix of archives. Specified in the configuration. When not
- -- specified, defaults to ".a".
+ Archive_Suffix : File_Name_Type := No_File;
+ -- The suffix of archives. Specified in the configuration. When not
+ -- specified, defaults to ".a".
- Lib_Partial_Linker : Name_List_Index := No_Name_List;
+ Lib_Partial_Linker : Name_List_Index := No_Name_List;
- -- Shared libraries
+ -- Shared libraries
- Shared_Lib_Driver : File_Name_Type := No_File;
- -- The driver to link shared libraries. Set with attribute
- -- Library_GCC. Default to gcc.
+ Shared_Lib_Driver : File_Name_Type := No_File;
+ -- The driver to link shared libraries. Set with attribute Library_GCC.
+ -- Default to gcc.
- Shared_Lib_Prefix : File_Name_Type := No_File;
- -- Part of a shared library file name that precedes the name of the
- -- library. Specified in the configuration. When not specified,
- -- defaults to "lib".
+ Shared_Lib_Prefix : File_Name_Type := No_File;
+ -- Part of a shared library file name that precedes the name of the
+ -- library. Specified in the configuration. When not specified, defaults
+ -- to "lib".
- Shared_Lib_Suffix : File_Name_Type := No_File;
- -- Suffix of shared libraries, after the library name in the shared
- -- library name. Specified in the configuration. When not specified,
- -- default to ".so".
+ Shared_Lib_Suffix : File_Name_Type := No_File;
+ -- Suffix of shared libraries, after the library name in the shared
+ -- library name. Specified in the configuration. When not specified,
+ -- default to ".so".
- Shared_Lib_Min_Options : Name_List_Index := No_Name_List;
- -- Comment ???
+ Shared_Lib_Min_Options : Name_List_Index := No_Name_List;
+ -- The minimum options to use when building a shared library
- Lib_Version_Options : Name_List_Index := No_Name_List;
- -- Comment ???
+ Lib_Version_Options : Name_List_Index := No_Name_List;
+ -- The options to use to specify a library version
- Symbolic_Link_Supported : Boolean := False;
- -- Comment ???
+ Symbolic_Link_Supported : Boolean := False;
+ -- True if the platform supports symbolic link files
- Lib_Maj_Min_Id_Supported : Boolean := False;
- -- Comment ???
+ Lib_Maj_Min_Id_Supported : Boolean := False;
+ -- True if platform supports library major and minor options, such as
+ -- libname.so -> libname.so.2 -> libname.so.2.4
- Auto_Init_Supported : Boolean := False;
- -- Comment ???
+ Auto_Init_Supported : Boolean := False;
+ -- True if automatic initialisation is supported for shared stand-alone
+ -- libraries.
end record;
Default_Project_Config : constant Project_Configuration :=
(Run_Path_Option => No_Name_List,
Executable_Suffix => No_Name,
Linker => No_Path,
+ Map_File_Option => No_Name,
Minimum_Linker_Options => No_Name_List,
Linker_Executable_Option => No_Name_List,
Linker_Lib_Dir_Option => No_Name,
Name_Local_Config_File : constant Name_Id := N + 706;
Name_Local_Configuration_Pragmas : constant Name_Id := N + 707;
Name_Locally_Removed_Files : constant Name_Id := N + 708;
- Name_Mapping_File_Switches : constant Name_Id := N + 709;
- Name_Mapping_Spec_Suffix : constant Name_Id := N + 710;
- Name_Mapping_Body_Suffix : constant Name_Id := N + 711;
- Name_Metrics : constant Name_Id := N + 712;
- Name_Naming : constant Name_Id := N + 713;
- Name_Object_Generated : constant Name_Id := N + 714;
- Name_Objects_Linked : constant Name_Id := N + 715;
- Name_Objects_Path : constant Name_Id := N + 716;
- Name_Objects_Path_File : constant Name_Id := N + 717;
- Name_Object_Dir : constant Name_Id := N + 718;
- Name_Pic_Option : constant Name_Id := N + 719;
- Name_Pretty_Printer : constant Name_Id := N + 720;
- Name_Prefix : constant Name_Id := N + 721;
- Name_Project : constant Name_Id := N + 722;
- Name_Roots : constant Name_Id := N + 723;
- Name_Required_Switches : constant Name_Id := N + 724;
- Name_Run_Path_Option : constant Name_Id := N + 725;
- Name_Runtime_Project : constant Name_Id := N + 726;
- Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 727;
- Name_Shared_Library_Prefix : constant Name_Id := N + 728;
- Name_Shared_Library_Suffix : constant Name_Id := N + 729;
- Name_Separate_Suffix : constant Name_Id := N + 730;
- Name_Source_Dirs : constant Name_Id := N + 731;
- Name_Source_Files : constant Name_Id := N + 732;
- Name_Source_List_File : constant Name_Id := N + 733;
- Name_Spec : constant Name_Id := N + 734;
- Name_Spec_Suffix : constant Name_Id := N + 735;
- Name_Specification : constant Name_Id := N + 736;
- Name_Specification_Exceptions : constant Name_Id := N + 737;
- Name_Specification_Suffix : constant Name_Id := N + 738;
- Name_Stack : constant Name_Id := N + 739;
- Name_Switches : constant Name_Id := N + 740;
- Name_Symbolic_Link_Supported : constant Name_Id := N + 741;
- Name_Sync : constant Name_Id := N + 742;
- Name_Synchronize : constant Name_Id := N + 743;
- Name_Toolchain_Description : constant Name_Id := N + 744;
- Name_Toolchain_Version : constant Name_Id := N + 745;
- Name_Runtime_Library_Dir : constant Name_Id := N + 746;
+ Name_Map_File_Option : constant Name_Id := N + 709;
+ Name_Mapping_File_Switches : constant Name_Id := N + 710;
+ Name_Mapping_Spec_Suffix : constant Name_Id := N + 711;
+ Name_Mapping_Body_Suffix : constant Name_Id := N + 712;
+ Name_Metrics : constant Name_Id := N + 713;
+ Name_Naming : constant Name_Id := N + 714;
+ Name_Object_Generated : constant Name_Id := N + 715;
+ Name_Objects_Linked : constant Name_Id := N + 716;
+ Name_Objects_Path : constant Name_Id := N + 717;
+ Name_Objects_Path_File : constant Name_Id := N + 718;
+ Name_Object_Dir : constant Name_Id := N + 719;
+ Name_Pic_Option : constant Name_Id := N + 720;
+ Name_Pretty_Printer : constant Name_Id := N + 721;
+ Name_Prefix : constant Name_Id := N + 722;
+ Name_Project : constant Name_Id := N + 723;
+ Name_Roots : constant Name_Id := N + 724;
+ Name_Required_Switches : constant Name_Id := N + 725;
+ Name_Run_Path_Option : constant Name_Id := N + 726;
+ Name_Runtime_Project : constant Name_Id := N + 727;
+ Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 728;
+ Name_Shared_Library_Prefix : constant Name_Id := N + 729;
+ Name_Shared_Library_Suffix : constant Name_Id := N + 730;
+ Name_Separate_Suffix : constant Name_Id := N + 731;
+ Name_Source_Dirs : constant Name_Id := N + 732;
+ Name_Source_Files : constant Name_Id := N + 733;
+ Name_Source_List_File : constant Name_Id := N + 734;
+ Name_Spec : constant Name_Id := N + 735;
+ Name_Spec_Suffix : constant Name_Id := N + 736;
+ Name_Specification : constant Name_Id := N + 737;
+ Name_Specification_Exceptions : constant Name_Id := N + 738;
+ Name_Specification_Suffix : constant Name_Id := N + 739;
+ Name_Stack : constant Name_Id := N + 740;
+ Name_Switches : constant Name_Id := N + 741;
+ Name_Symbolic_Link_Supported : constant Name_Id := N + 742;
+ Name_Sync : constant Name_Id := N + 743;
+ Name_Synchronize : constant Name_Id := N + 744;
+ Name_Toolchain_Description : constant Name_Id := N + 745;
+ Name_Toolchain_Version : constant Name_Id := N + 746;
+ Name_Runtime_Library_Dir : constant Name_Id := N + 747;
-- Other miscellaneous names used in front end
- Name_Unaligned_Valid : constant Name_Id := N + 747;
+ Name_Unaligned_Valid : constant Name_Id := N + 748;
-- Ada 2005 reserved words
- First_2005_Reserved_Word : constant Name_Id := N + 748;
- Name_Interface : constant Name_Id := N + 748;
- Name_Overriding : constant Name_Id := N + 749;
- Name_Synchronized : constant Name_Id := N + 750;
- Last_2005_Reserved_Word : constant Name_Id := N + 750;
+ First_2005_Reserved_Word : constant Name_Id := N + 749;
+ Name_Interface : constant Name_Id := N + 749;
+ Name_Overriding : constant Name_Id := N + 750;
+ Name_Synchronized : constant Name_Id := N + 751;
+ Last_2005_Reserved_Word : constant Name_Id := N + 751;
subtype Ada_2005_Reserved_Words is
Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word;
-- Mark last defined name for consistency check in Snames body
- Last_Predefined_Name : constant Name_Id := N + 750;
+ Last_Predefined_Name : constant Name_Id := N + 751;
---------------------------------------
-- Subtypes Defining Name Categories --